Х-СОМ: The last hope
GameDev.ru / Сообщества / Х-СOM The last hope / Форум / три проблемы с сортировкой спрайтов. ( upd: решено ) (комментарии)

три проблемы с сортировкой спрайтов. ( upd: решено ) (комментарии)

Страницы: 1 2 Следующая »
progmanПостоялецwww24 авг. 201118:18#0
три проблемы с сортировкой спрайтов. ( не решено ) (комментарии)

Это сообщение сгенерировано автоматически.

TilkПостоялецwww24 авг. 201118:18#1
А что если прибегнуть к функциям реального 3D? Задать параметры Bouding Box для каждого объекта, задать положение камеры. Произвести расчеты, узнать что кого закрывает и на основании этих данных составить точный список с порядком рендера.


С другой стороны, этот порядок ведь надо лишь 1 раз сосчитать для сцены, может стоит самому это сделать?
Вот более простой вариант - каждому объекту добавить свойство render_index - порядковый номер в очереди рендера. И когда в редакторе раскидываешь по миру объекты - менять этот index и смотреть нет ли косяков.

Соответственно движущиеся игроки тоже будут иметь свой render_index, который можно менять в зависимости от положения на карте (если стоишь за окном, то решетка тебя закрывает. Если перед ним - ты закрываешь решетку окна - другой render_index)

@!!exПостоялецwww24 авг. 201118:32#2
надо использовать буфер глубины.
Для каждого объекта хранить не только его спрайт в виде изображения, но и спрайт в виде карты высот.
Эту карту использовать для расчета глубины.
Тогда сортировка вообще будет ненужна и геометрия будет корректно стыковаться с спрайтами.
TilkПостоялецwww24 авг. 201118:33#3
Гениально))
progmanПостоялецwww24 авг. 201118:50#4
Tilk
> А что если прибегнуть к функциям реального 3D?
лезут свои косяки. долго объяснять но я пробовал.

и потом в примере с деревом - геометрически оно и должно было в стену врисоваться. так что в 3Д было точно так же.
там где тетке стоит на лестнице и ее башка за стеной это решаемо. а вот с деревом хз.
бить на тайлы его не хочется

TilkПостоялецwww24 авг. 201118:53#5
А значения глубины пикселей возможно задать как-то для текстуры спрайта как альфа канал?
progmanПостоялецwww24 авг. 201118:55#6
@!!ex
> надо использовать буфер глубины.
> Для каждого объекта хранить не только его спрайт в виде изображения, но и
> спрайт в виде карты высот.
> Эту карту использовать для расчета глубины.
> Тогда сортировка вообще будет ненужна и геометрия будет корректно стыковаться с
> спрайтами.

это не сильно поможет но сильно усложнит рендер.
не побоюсь повториться - дерево в нижней своей части и должно было врости в здание так как его крона четко в стену упирается. никакой DEPTH_TEST тут не спасет.
я вижу такой выход: в редакторе карт каждому объекту автоматически наздачать renderorder и хранить в карте.
в случае таких вот косяков вручную изменять этот renderorder чтобы порядок был верным.

progmanПостоялецwww24 авг. 201118:56#7
Tilk
> А значения глубины пикселей возможно задать как-то для текстуры спрайта как
> альфа канал?
а альфа юзается во всю.  хранить в отдельной текстуре - можно.
но см предыдущий пост почему мне оно не сильно поможет.
TilkПостоялецwww24 авг. 201119:01#8
>я вижу такой выход: в редакторе карт каждому объекту автоматически наздачать renderorder и хранить в карте.
>в случае таких вот косяков вручную изменять этот renderorder чтобы порядок был верным.
Да, я это имел в виду в первом посте) По идее в этом нет ничего страшного. Кармак вроде что-то похожее делал :)
progmanПостоялецwww24 авг. 201119:01#9
OpenXcomd 2011-08-24 20-43-06-09 | три проблемы с сортировкой спрайтов. ( upd: решено ) (комментарии)
первая трабла решена )

каждому объекту назначил доп параметр высота. по дефолту 0 - т.е объект занимает в высоту 1 клетку
если больше 0 то объект рисуется не в той клетке физически в которой находится а левелом выше.

TilkПостоялецwww24 авг. 201119:05#10
А как насчет этого?
Изображение
progmanПостоялецwww24 авг. 201119:10#11
Tilk
> А как насчет этого?
картинку не вижу (
progmanПостоялецwww24 авг. 201119:13#12
openxcomd_2011_08_24_20_43_06_09 | три проблемы с сортировкой спрайтов. ( upd: решено ) (комментарии) - тут надо у дерева renderorder сдвинуть чтобы оно как бэ перед стеной было, но это уже в редакторе который сейчас пишется
TilkПостоялецwww24 авг. 201119:16#13
Успехов!
@!!exПостоялецwww24 авг. 201119:22#14
я про render order ничего не понял. как оно по вашему должно работать?
а работа через глубину, как минимум позволит избежать проблем с интеграцией 3Д моделей в игру.
Страницы: 1 2 Следующая »

/ Форум / разработка ремейка Х-СОМ

Тема в архиве.

2001—2018 © GameDev.ru — Разработка игр