interlocutor писал(а):
Уважаемые разработчики! Столкнулся с этой проблемой при разработке изометрической игры. Спрайты относительно небольшие, это моргание, в принципе, не очень существенно, но заметно и хотелось бы этот глюк исправить.
Изометрическая сцена построена следующим образом. Есть виртуальное трехмерное пространство, в нем двигаются объекты. Проекционные координаты (Clip.x, Clip.y), как и Z-глубина, рассчитываются по формулам, исходя из координат в 3D-пространстве. Далее происходит сортировка по Z-глубине. Если объекты находятся рядом и перекрываются, иногда происходит z-fighting.
у меня была изометрическая социалка в соц сети. и насколько помню я, сама ось z была направлена вверх.
а что до индекса сортировки объектов, я вычислял его след образом:
1)первое что надо сказать, точка регистрации клипа у меня была самый нижний угол, самого крайнего тайла из всех которые составляли объект.
2)исходя из этого я сначала сортировал объекты по "y" если значения совпадали, я смотрел на "x" чем больше его значение тем ближе объект ко мне.
3)ну и последнее, отсутствие графических артефактов может быть только в простых играх, в более сложных, объекты больше 1 тайла или невообразимые формы, добиться этого невозможно. и это не мои доводы. по этому иногда приходится менять немного геймплей, чтобы такие объекты не перекрывали друг друга.