Войти
ФлеймФорумРазработка игр

Ещё один глупый вопрос по рендеру - густой лес. (3 стр)

Страницы: 1 2 3
#30
12:22, 17 янв. 2017

eugeneloza
Я много экспериментировал на эту тему.
Чуть позже распишу подробнее.


#31
12:27, 17 янв. 2017

Билборды для дальних объектов рендерятся один раз. Иногда с одного ракурса, иногда - с нескольких, чисто для разнообразия.

#32
12:27, 17 янв. 2017

-Eugene-
Благодарю! Надеюсь, что поможет.
Я не особо "смышлён" в таких вопросах :) Так что пока изобретаю велосипед вместе с велосипедной дорожкой.

#33
16:27, 17 янв. 2017

eugeneloza
> так и не понял, для чего ещё одну операцию (ориентацию на игрока) на каждый спрайт вешать?
С точки зрения точности, оба варианта более-менее равноценны, поэтому на первый план выходит отсутствие резких скачков.
Я бы, вообще, интерполировал между тремя положениями на геосфере (не факт, правда, что производительности хватит).
А может, ответ более простой: они просто переиспользуют код от пререндеренных спрайтов.

#34
22:36, 17 янв. 2017

eugeneloza
Итак...
Есть куча разных способов построить и нарисовать прокси для растительности, расскажу о тех, что пробовал лично.
Разумеется, все они используют только пререндеренные текстуры.

1) Обычная супер-лоу-поли геометрия.
+ Теоретически, самое красивое решение.
Выделить в растении несколько поверхностей и отрендерить их в текстуру. Например, несколько вертикальных плоскостей в форме Х/Ж/итд. Или отрендерить ветки. Или как угодно, зависит от растения.

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

Автоматически сгенерировать ее я нормально так и не смог, а вручную рисовать не хочу и не буду. Забил.

2) Прокси геометрия из нескольких пререндеренных изображений модели.
Похоже на прошлый вариант, но рисуется всего несколько слоев (не все!) с нужными ракурсами. Используется в UE4.

+ Можно генерировать процедурно по заданному паттерну, например 8 вертикальных ракурсов, или 8 вертикальных ракурсов+8 диагональных ракурсов, или еще как-нибудь.
- Требует сложного шейдера и нетривиальной текстурной развертки.
+ Прилично выглядит со разных ракурсов, это зависит только от фантазии автора шейдера и развертки. Видел где-то вариацию, рендерящую едва ли не сотню ракурсов и дающую почти трехмерные деревья (со своими недостатками).
+ Нет перпендикулярных полигонов.

Хороший метод, но требует сложного кода шейдеров и не только. При переезде на Urho я забил.

3) Билборды. Это не обязательно квады, повернутые к экрану. Геометрия и логика отрисовки может быть произвольной. Главное отличие от предыдущих методов - координаты вершин зависят от камеры. Остановился я на этом типе, но у него тоже есть свои вариации.

Биллборд может свободно вращаться нормалью к камере, а может быть ограничен вращением вокруг оси (обычно ствола).
Первый всегда невыроджен, но смотрится неестественно. Второй приятнее, но вырождается при взгляде сверху.
При некоторой фантазии можно смешать эти два варианта и получить нечто компромисное (на чем я сейчас и остановился)

Биллборд можно ориентировать, используя позицию камеры, а можно - направление взгляда. Первое мне кажется более стабильным, т.к. ничего не плавает при поворотах камеры.

Биллборд можно по-разному текстурировать. Никто не запрещает использовать больше одного ракурса модели, но это усложнит шейдер.
Я пока остановился на восьми вертикальных ракурсах. Выглядит прилично при взгляде сбоку и сносно - при взгляде сверху. Добавь еще и диагональные ракурсы - будет еще лучше.
Но чем больше ракурсов, тем сложнее смешивать.

Для меня было важно сделать плавный переход как между ЛОДами, так и при изменении ракурса. И если первое делается легко на CPU, то второе может вызвать проблемы.
Смешивать по альфе можно, но это не дружит с DS. Я остановился на dithering-e, основанном на текстурных координатах. Рандомное переключение квадратных кусков текстуры выглядит довольно ненавязчиво и применимо почти к любому типу прокси.

Ща, попробую скринов достать.

Update:

+ Показать
#35
2:35, 18 янв. 2017

-Eugene-
Облака - просто текстура? Или рендер?

#36
3:21, 18 янв. 2017

-Eugene-
Ужасные деревья, эта чернота в листве выедает глаза.

#37
9:44, 18 янв. 2017

MrShoor
Скачанные фотки, увы.

gamedevfor
Какое отношение настройки освещения имеют к этой теме? Что нашел, то и заскринил.
Но вообще - спасибо, в тестовой сцене не было амбиента. Поправил, пока не забыл.

#38
13:19, 18 янв. 2017

-Eugene-
Спасибо огромное, буду изучать вечером :)

Страницы: 1 2 3
ФлеймФорумРазработка игр

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