forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Алгоритмика (http://forum.boolean.name/forumdisplay.php?f=21)
-   -   3д модели и 2д окружение. (http://forum.boolean.name/showthread.php?t=20062)

Gector 27.10.2015 11:23

3д модели и 2д окружение.
 
Вложений: 1
Привет, булка! У меня вопрос.
Я тут на базовом уровне разобрался с совмещением 2д бекграунда и 3д моделей в ортогональной проекции (аля Pillars Of Ethernity). Но пока ума не приложу как реализовать перекрытие модели спрайтом и наоборот(как на картинке в аттаче). Пока самая простая идея - назначать порядок отрисовки исходя из дистанции от камеры. Но есть подозрения, что если гометрия будет сложнее тонкой стенки - то работать такой способ будет работать некорректно.
Есть у кого-нибудь соображения как это сделать?

Mr_F_ 27.10.2015 11:27

Ответ: 3д модели и 2д окружение.
 
классически в изометричных играх чем выше Y, тем дальше объект в порядке отрисовки.
ещё вариант - если 2д бекграунд рендерится в каком-нибудь максе, то записывать попиксельную глубину и выводить её в збуфер, или свой аналогичный запилить.

Gector 27.10.2015 17:09

Ответ: 3д модели и 2д окружение.
 
Цитата:

Сообщение от Mr_F_ (Сообщение 300892)
классически в изометричных играх чем выше Y, тем дальше объект в порядке отрисовки.
ещё вариант - если 2д бекграунд рендерится в каком-нибудь максе, то записывать попиксельную глубину и выводить её в збуфер, или свой аналогичный запилить.

Вот я как раз о классическом варианте больше (Alone In The Dark, Bioforge, Longest Journey). Тут сложность в том, чтобы определить какой критерий взять за основу глубины.

Mr_F_ 27.10.2015 17:51

Ответ: 3д модели и 2д окружение.
 
на твоей картинке не вижу проблемы - Y человечка выше Y кубика - значит он рендерится после.
также, длинные стены нужно разбивать на короткие фрагменты с отдельной сортировкой.

Gector 27.10.2015 18:17

Ответ: 3д модели и 2д окружение.
 
Цитата:

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

У меня был еще вариант - юзать данные нормалей от геометрии уровня (те нормали, что смотрят в камеру) и смотреть где стоит 3д модель. Если спереди относительно нормали - то рендерится поверх, если сзади - рендерится за ним.

Правда хотелось бы что-то изящней :D


Часовой пояс GMT +4, время: 10:39.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot