XTK Мерцание в наложенной сетке

Итак, я попытался наложить 2 меша в xtk с альфа-смешиванием, задав разные цвета и непрозрачность.

Пример можно увидеть здесь http://biostat.jhsph.edu/~jmuschel/XTK_Flicker_Example/

Этого не происходит, если две сетки визуализируются в одном модуле визуализации, но не перекрываются.

Кажется, я не могу понять, почему это произошло с мерцанием.


person John M    schedule 04.07.2013    source источник


Ответы (2)


Это алгоритм сортировки, который вам не по душе. При рендеринге прозрачных объектов графические движки, такие как three.js или xtk, любят сортировать объекты в сцене от задней части к передней, чтобы прозрачность накапливалась правильно (подробнее об этом читайте в 'Learning WebGL').

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

Чтобы решить эту проблему, вы можете попытаться сначала выполнить рендеринг внутреннего объекта.

person havarc    schedule 05.07.2013

Вы можете отключить переупорядочивание рендерера (что также является решением к этой проблеме в three.js), выполнив

r0 = new X.renderer3D();
r0.init();
r0.config.ORDERING_ENABLED = false

Таким образом, порядок, в котором вы добавляете объекты в сцену, будет определять порядок, в котором они отображаются. Это устранило мою проблему с мерцанием.

person Jonathan Foster    schedule 18.10.2014