
Ручной трехмерный рендер - 2
Неделя работы над рендером прошла под девизом «Медленно, зато не так страшно».
Если кому интересно — прошу под кат.
Всю неделю улучшал качество отображения динамических моделек, чтобы они не выглядели «какие-то жуткие модельки с торчащими пикселями» :)
Разумеется, в условиях флэша многого не добьешься, но кое-что удалось сделать.
По пунктам:
1. Сабпиксельная и сабтексельная точность.
Никогда не обращали внимание на рендерилку PSP? Там отчетливо видно, что края полигонов состоят из пикселей и края не сглажены. Но модельки перемещаются и вращаются плавно. Создается такое впечатление, что пиксели «перетекают» друг в друга.
Никогда не мог понять, как они это делают.
На этот раз понял :)
2. Мипмаппинг для моделек.
Тут все просто. Если моделька далеко и маленькая — нет смысла натягивать на нее большую текстуру, это будет выглядеть довольно страшно. Создаем несколько вариантов текстуры разного размера. При рендеринге выбирает ту, которая лучше подходит.
Получается неплохо.
Хотел сделать (сделал, на самом деле) мипмаппинг для статики тоже, но особого улучшения картинки это не принесло. Увы, особенности сканлайн-рендерилки.
3. Освещение для моделек.
Собственно освещение :)
Специально немного усилено, что создает «пересвеченность» моделек. Особенно заметно на панцире краба.
Источник света один, направленный, одноцветный.
На самом деле, не особая проблема сделать много цветных светильников, так что пока думаю.
В принципе, из «заявленных фич» остались только тени.
Вот с тенями засада.
В журнализме тени были фейковые. Копия модельки проецировалась на пол и рендерилась серым цветом с блендингом. На стены и объекты тени не падали. Просто и быстро.
Сейчас вот стою перед выбором — сделать такой же фейк или поднапрячься и выдать настоящие «стенсильные» тени.
Хочется, чтобы тени от домов падали на пацанов, пацаны затеняли других пацанов и все такое.
Проблема, как обычно, в скорости.
Если еще и сделать несколько источников света, тогда рендер просто умрет.
Может сделать тени только от «солнца», а освещение от нескольких?
Какие есть мысли? На такие фичи вообще кто-нибудь внимание обращает?

Демка.
Если тыкнуть Space, можно включить предыдущий рендер и ужаснуться.
megaswf.com/simple_serve/67259/
Если кому интересно — прошу под кат.
Всю неделю улучшал качество отображения динамических моделек, чтобы они не выглядели «какие-то жуткие модельки с торчащими пикселями» :)
Разумеется, в условиях флэша многого не добьешься, но кое-что удалось сделать.
По пунктам:
1. Сабпиксельная и сабтексельная точность.
Никогда не обращали внимание на рендерилку PSP? Там отчетливо видно, что края полигонов состоят из пикселей и края не сглажены. Но модельки перемещаются и вращаются плавно. Создается такое впечатление, что пиксели «перетекают» друг в друга.
Никогда не мог понять, как они это делают.
На этот раз понял :)
2. Мипмаппинг для моделек.
Тут все просто. Если моделька далеко и маленькая — нет смысла натягивать на нее большую текстуру, это будет выглядеть довольно страшно. Создаем несколько вариантов текстуры разного размера. При рендеринге выбирает ту, которая лучше подходит.
Получается неплохо.
Хотел сделать (сделал, на самом деле) мипмаппинг для статики тоже, но особого улучшения картинки это не принесло. Увы, особенности сканлайн-рендерилки.
3. Освещение для моделек.
Собственно освещение :)
Специально немного усилено, что создает «пересвеченность» моделек. Особенно заметно на панцире краба.
Источник света один, направленный, одноцветный.
На самом деле, не особая проблема сделать много цветных светильников, так что пока думаю.
В принципе, из «заявленных фич» остались только тени.
Вот с тенями засада.
В журнализме тени были фейковые. Копия модельки проецировалась на пол и рендерилась серым цветом с блендингом. На стены и объекты тени не падали. Просто и быстро.
Сейчас вот стою перед выбором — сделать такой же фейк или поднапрячься и выдать настоящие «стенсильные» тени.
Хочется, чтобы тени от домов падали на пацанов, пацаны затеняли других пацанов и все такое.
Проблема, как обычно, в скорости.
Если еще и сделать несколько источников света, тогда рендер просто умрет.
Может сделать тени только от «солнца», а освещение от нескольких?
Какие есть мысли? На такие фичи вообще кто-нибудь внимание обращает?

Демка.
Если тыкнуть Space, можно включить предыдущий рендер и ужаснуться.
megaswf.com/simple_serve/67259/
- +6
- ryzed
Комментарии (14)
Мне кажется надо делать освещение от одного источника и фейковые тени только на пол. Это все увидят.
P.S. а постмортем по CiviBalls будет? :)
Там и перфоманс еще, так что примерно через месяц напишу.
Тени только на пол меня смущают, на самом деле.
Стоит краб, весь такой освещенный, а тень от него под дом уходит. Непорядок.
Буду еще думать.
Выйдет бета молехила, а там уже все совсем по другому.
С другой стороны, базовые вещи остаются неизменными.
Общее представление обо «всем 3д», которое я использую, можно получить, пролистав старый фак эхи demo.design ( algolist.manual.ru/graphics/3dfaq/index.php ).
Применительно к флэшу многое работает по другому, но принципы те же.
Руки дойдут — сделаю пару постов.
Спасибо за ссылку, буду ждать новых постов. :)
отсечение полигонов камерой кривое. хорошо заметно когда во вращающемся теле оно начинает пропадать и появляться, хотя в зоне видимости. В обеих рендерах.
отсечение полигонов камерой кривое. хорошо заметно когда во вращающемся теле оно начинает пропадать и появляться, хотя в зоне видимости. В обеих рендерах.
Если есть пересечение OOBB с ближней плоскостью отсечения — моделька не рисуется.
В будущей игре ниже крыш домов камера опускаться не сможет, так что объект отклипается границами экрана раньше, чем ближней плоскостью.
Оптимизация :)
Это и так один из самых «больших» уровней.
По крайне мере, так планируется.
И было бы круто в следующую демку впихнуть красивую текстуру пола, чтоб вообще картинкой наслаждаться…
Буду пробовать сам, конечно, что-нибудь делать, но, скорее всего, придется искать текстурщика/моделлера на уровни.
На счёт теней: реалистичные тени здесь ни к чему, равно как и антиалиасинг. Никто не заметит разницы полная динамическая там тень, или просто размытый овал под персонажем. :)
Это точно)) Играют люди в WOW, и деньги платят)
А графика там… «инновационная», за то у всех летает :D