03-19-2022, 02:08 PM
В Xtreme3D нет глубины объекта, порядок рендеринга определяется либо порядком создания объектов и их родителей (osInherited), либо встроенным в движок алгоритмом сортировки (osRenderFarthestFirst, osRenderNearestFirst, osRenderBlendedLast). В данном случае прозрачные объекты типа воды надо создавать после непрозрачных. Например, можно создать им глобального родителя, который идет после scene:
Либо можно включить встроенную сортировку с учетом прозрачности: EngineSetObjectsSorting(osRenderBlendedLast), получится примерно то же самое, но видимо будет небольшая доп. нагрузка на проц (хотя я точно не измерял, насколько это существенно).
Другой, более хардкорный способ: рендерить функцией ViewerRenderEx вместо обычной ViewerRender, задавая явным образом порядок. В некоторых ситуациях очень удобно.
Код:
[== Неизвестный ==]
global.back = DummycubeCreate(0);
global.scene = DummycubeCreate(0);
global.transparent = DummycubeCreate(0);
global.front = DummycubeCreate(0);
Либо можно включить встроенную сортировку с учетом прозрачности: EngineSetObjectsSorting(osRenderBlendedLast), получится примерно то же самое, но видимо будет небольшая доп. нагрузка на проц (хотя я точно не измерял, насколько это существенно).
Другой, более хардкорный способ: рендерить функцией ViewerRenderEx вместо обычной ViewerRender, задавая явным образом порядок. В некоторых ситуациях очень удобно.