Я співуюся з простим процедурним 3D-моделюванням, щоб зробити маленькі будівлі для 3D-друку. Приклад:
Щоб зробити моделі більш зрозумілими на екрані, я реалізував базове тіньове картографування для одного спрямованого світла. Оскільки моя сцена не змінюється, я просто відображаю карту тіней один раз, використовуючи вікно, орієнтоване на осі сцени, щоб зрозуміти, якими мають бути межі тіньової карти. Тіні та межі виглядають так, ніби я маю всі матриці правильно, але прийти трохи ближче виглядає жахливо:
З читання, яке я зробив, я розумію, що паніруючи з петером, і що я можу з цим зробити, але нерівні краї, які, на мою думку, є формою проективного згладжування, виглядають настільки погано, що я думаю, що в моїй базовій реалізації щось не так.
Я зламав піксельний шейдер, щоб показати межі тіньового текселя:
У мене білінеарне фільтрування текстури (без цього я отримую серйозні тіньові прищі). На жаль, і моя спроба PCF теж не вдалася - це виглядає так само нарвано:
Ось єдиний зразок з вимкненою білінеарною фільтрацією:
Чи схоже це на "типовий" проективний псевдонім? Чи зможе динамічне відображення тіньової карти, використовуючи фруктовий вигляд, вирізаний на сцені, можливо, каскадно, вирішити проблему?
Редагувати: Додавання крупного плану білінеарної фільтрації, опублікування порівняння тіней, просто щоб показати, що я отримую. Погані тіньові прищі з’являються через внутрішні краї; Я моделюю зі складеними віртуальними блоками і не виконую належну операцію об'єднання. З мого читання, реалізація булевих операцій над багатогранниками не є тривіальною, але також дозволить мені реалізувати статичні об'єми тіней, а також очистити деякі програми для 3D-друку.