Crystal Space 3d по русски

Непрозрачная карта теней в Crystal Space

После примерно месяца кодинга мне удалось реализовать диспетчер визуализации(RM) для непрозрачных карт теней (OSM).

Основная идея в OSM это разрезание полупрозрачных объектов, в плоскостях перпендикулярных направлению источника света, и многократной отрисовки текстуры. На таких картах хранится сумма полупрозрачности(полученная с использованием добавления альфа-смешивания) на определенных расстояниях и используется для аппроксимации полупрозрачности каждой точки объекта(функция непрозрачности представлена на картинке ниже).

Картинка для OSM


На данный момент OSM RM поддерживает только линейную схему разделения(интерполяция), хотя поддерживается несколько объектов и источников света. Дальше предполагаю работать на некоторых более продвинутых схемах разделения, которые должны избавиться от визуальных артефактах, от линейного разделения, а также сделать некоторые оптимизации в отношении целевой визуализации и теста на столкновения для каждого разделения.

Ниже вы можете найти сравнение между OSM с 4 и 8 фрагментами и параллельной реализацией разделения карты теней (PSSM) для Crystal Space 3D:
  • PSSM
  • OSM c 4-я разделениями
  • OSM с 8-и разделениями


Система Orphus