Как стать автором
Обновить

Комментарии 12

А что за игра будет?
красиво но возникают вопросы:
1. с формальной точки зрения вы реализовали рендер деревьев приблизительно так, движок рендерит траву есть ли другие вариаты чтоб таки не лишаться 3д обьектов РАЗ и не лишаться возможности взаимодействовать с конкретным деревом ДВА
2. каков вес расходов на скрытую камеру для рендера билбордов? Скажем у вас один вид деревьев то есть одна камера, а если деревьев будет 20 видов, ведь наступит момент когда текстура билбордов станет огромной и всё «убьёт»
3. не пробовали ли вы использовать новый-модный дотс для отсечения невидимых групп деревьев на процессоре для выключения компонета модели и уставливания им нужного лода модели руками?
1. Да, примерно так. Про траву, возможно, будет отдельная статья. Взаимодействовать с конкретным деревом не сложно. Зависит от того как это взамодействие будет выглядеть? Нужно срубить? Помечаем в массиве как «невидимое». Нужна особая кастомная анимация? То же самое, но на месте исчезнувшего ставим обычный GameObject.
2. Скрытой камеры нет. Все делает SpeedTree Modeller. Там готовятся billboards. В оффлайне. На каждое дерево — свой набор спрайтов. Там, в статье, есть пример как выглядит.
3. Unity 5.6 :)
потестил-посмотрел и вот к чему пришёл:
если вращать камеру то билборды которые находятся рядом с точкой обозрения ОЧЕНЬ заметно выглядят билбордами :(
очень сумбурно выглядит прохождение юнитов под-рядом с деревьями
посему вопрос таки открыт: может есть какой способ оставить деревья моделями но при этом получить их поболее?
я пока начитерил следующую схему: берём дерево делаем из деревьев скажем 20ти одну модель(чтоб отсекалась она за 1н раз а не по каждому отдельному дереву) и засаживаем мир вот такими вот «кустами» но возникают проблемыс неровностями ладшатфта когда крайние деревья начинают или врастать в землю или висеть над землёй… то есть схема тоже с недостатком.
Деревья и так модели. Они не GameObject'ы. Надо физика? Ставим коллидеры на местах деревьев. Надо непроходимость и огибание их отрядами? При генерации навмеша помечаем небольшие радиусы вокруг дерева как непроходимая область. Рендер деревьев при этом остается неизменный.
и таки есть решения без билбордов чтоб получше чем с коробки и можно в пару раз похуже чем с билборами?
Так билборды — это ж просто «худший» уровень LOD-а. Хотите совсем избавится от билбордов — не переключайтесь на соответствующий LOD. Ну и получите соответствующие проблемы.

Конкретно проблема «билборды которые находятся рядом с точкой обозрения ОЧЕНЬ заметно выглядят билбордами» частично может быть решена если схитрить и при переключении LOD учитывать не только дистанцию но и «близость к центру экрана» (вместе с ракурсом). А еще лучше учитывать «степень совпадения нормали поверхности на которой стоит дерево с направлением от нормали к камере»

Но в целом, когда «ракурс не ограничен», то с билбордами всегда будут те или иные проблемы, поэтому можно попытаться
А чем плохи GO в данной ситуации? Как я понимаю, вы всё равно используете какие-то объекты, точнее их массив (список), так почему не GO?
Нет, GameObject'ов нету. Есть массив позиций и типов мешей на уровне, которые рисуются без участия CPU. Kуллинг и LOD switch'ing полностью на GPU, в шейдре. Про это и статья.

Почему-то вспомнился сразу анонсированный MS Flight simulator 2020 https://www.youtube.com/watch?v=_TY56kA8oY0 Интересно, там похожая техника? На видео пока выглядит мягко говоря впечатляющее количество деревьев.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории