Показать сообщение отдельно
Старый Сегодня, 15:09   #539
Sanderfol вне форума Sanderfol
Junior Member
Сообщений: 8
Репутация: 23
Sanderfol is on a distinguished road
Detective
Информация о репутации (Sanderfol)
×
За активное участие в жизни форума и помощь пользователям вы можете получить очки репутации. За определённое количество очков репутации вам будет присвоенно соответствующее звание. Полученное звание всегда будет отображаться в нижней части области Вашего профиля, слева от сообщения.
Sanderfol / 23
Detective
0
Gangster
55
Thug
100
Judge
159
Enforcer
260
Priest
396
Snitch
780
Hitman
800
Councilor
1200
Deputy
2501
Overseer
4896
Press
6020
Don
20000
Цитата:
Сообщение от Firefox3860 Посмотреть сообщение
Sanderfol, это "естественный" баг 3d-рендеринга, связанный с z-буфером. Когда более дальняя полупрозрачная поверхность рисуется в кадре после ближней, то её пиксели, перекрываемые ближней, отбрасываются, как и происходит со всеми остальными, непрозрачными поверхностями. Вообще, это должно решаться на уровне движка - путём сортировки на каждом кадре всех полупрозрачных поверхностей в зависимости от их дальности от камеры и отрисовки их в соответствии с этим порядком: от самых дальних к самым близким.

Ты, наверное, видел этот же баг с альфа-текстурами, когда делал свою визуализацию 4ds. Я, когда делал свою, тоже с этим столкнулся, у меня в программе идёт сортировка по лок. осям объектов. Но этого всё равно не достаточно, так как лок. ось не совпадает точно с каждой точкой геометрии объекта. В идеале надо сортировать по полигонам или отдельным вершинам, но это крайне сложно, и тоже идеальный результат не гарантирует...

В общем, это вина логики движка, а редактированием моделей это не исправить.
Я понял, что проблема кроется на уровне самого движка, хотя надеялся обойти её в 4DS с помощью экспериментов с флагами рендера. Кстати, в 4DS предусмотрен Z-bias (Depth bias), но он нужен лишь для предотвращения Z-fighting'а с обычными поверхностями. Как мне объяснили на MafiaHub, этот баг с некорректной сортировкой объектов с альфа-текстурами действительно можно исправить, но для этого придется лезть в код движка. То есть необходим реверс-инжиниринг (через Ghidra или IDA Pro), а затем - исправление логики (возможно, с привлечением ИИ вроде Claude или ChatGPT). В итоге, чтобы не тратить время на движок, проще сделать одну плоскость с альфой и забыть о проблеме))
цитата