Непрозрачная карта теней в Crystal Space
После примерно месяца кодинга мне удалось реализовать диспетчер визуализации(RM) для непрозрачных карт теней (OSM).
Основная идея в OSM это разрезание полупрозрачных объектов, в плоскостях перпендикулярных направлению источника света, и многократной отрисовки текстуры. На таких картах хранится сумма полупрозрачности(полученная с использованием добавления альфа-смешивания) на определенных расстояниях и используется для аппроксимации полупрозрачности каждой точки объекта(функция непрозрачности представлена на картинке ниже).
На данный момент OSM RM поддерживает только линейную схему разделения(интерполяция), хотя поддерживается несколько объектов и источников света. Дальше предполагаю работать на некоторых более продвинутых схемах разделения, которые должны избавиться от визуальных артефактах, от линейного разделения, а также сделать некоторые оптимизации в отношении целевой визуализации и теста на столкновения для каждого разделения.
Ниже вы можете найти сравнение между OSM с 4 и 8 фрагментами и параллельной реализацией разделения карты теней (PSSM) для Crystal Space 3D:
Основная идея в OSM это разрезание полупрозрачных объектов, в плоскостях перпендикулярных направлению источника света, и многократной отрисовки текстуры. На таких картах хранится сумма полупрозрачности(полученная с использованием добавления альфа-смешивания) на определенных расстояниях и используется для аппроксимации полупрозрачности каждой точки объекта(функция непрозрачности представлена на картинке ниже).
На данный момент OSM RM поддерживает только линейную схему разделения(интерполяция), хотя поддерживается несколько объектов и источников света. Дальше предполагаю работать на некоторых более продвинутых схемах разделения, которые должны избавиться от визуальных артефактах, от линейного разделения, а также сделать некоторые оптимизации в отношении целевой визуализации и теста на столкновения для каждого разделения.
Ниже вы можете найти сравнение между OSM с 4 и 8 фрагментами и параллельной реализацией разделения карты теней (PSSM) для Crystal Space 3D:
- PSSM
- OSM c 4-я разделениями
- OSM с 8-и разделениями