Напишу про буераки.
Последний апдейт был в середине октября, страшно подумать. И делал я их по чясику в неделю. И надеялся выдать версию к моменту, когда проекту исполниться год. Но нет. В прочем, даже такими темпами я сделал что-то о чём можно рассказать.
Во-первых, я сделал (а потом сломал) систему LOD. При этом она тупая и брутальная как чугунная секира. Смысл в том, что у меня есть две похожие сцены хай-поли и лоу-поли. Одна под другую подсунута бэкграундом (как скайбокс). Камеры в каждой сцене имеют одну позицию и ориентацию, но разные клип-плейны. В хайполи-сцене камера рендерит только передний план, в лоу-поли - всё остальное. Границы можно нахлестнуть друг на друга (и нужно иначе будут видны дыры в ландшафте). Ещё в шейдере можно замутить, чтобы передний план плавно фейдился в лоуполи, но это пожалуй изврат. Весь ландшафт порезан на квадраты (вот этими вот руками), и невидимые куски и все прочие объекты (как деревья) отсекаются фруструм кулингом.
Плюсы:
-Для реализации системы лод я не написал ни одной строчки кода. Что особенно круто, учитывая, что у меня он только интерпретируемый. Всё это работает на стандартном пайплайне движка и всяко мощно оптимизировано, както:
-DBVT culling. Для фруструм-кулинга используется дерево баундов сгенерированное физдвижком Bullet.
-Плавное переключение между лодами. Они не переключаются резко, по ним просто проползает секущая плоскость. Довольно интересный эффект, в случае отдаления от дерева, сначала под него подсовывается бильборд, потом убирается модель.
Минусы:
-Нужно вручную добавлять объекты в обе сцены, держать сцены похожими друг на друга. На практике вовсе не трудно.
-Позиции объектов в двух сценах дублируют друг-друга.
-Если объект присутствует в обоих сценах, что-то в пайплайне для него сделается два раза. (Вершиный шейдер наверно)
Впрочем всё это и не минусы нифига, учитывая время на разработку близкую к нулю и непревзойдённую эффективность. Если бы я писал систему ЛОД на питоне хрен бы додумался использовать дерево баундов. Перебирал бы циклом все объекты.
Вот так это выглядело, пока работало:

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

Ну и ещё одна фича, с которой я игрался, это физичные кусты:

Во время разработки часто глючили и не крепились к земле, поэтому их можно было протащить под днищем. Можно было оставить как фичу, но нет. В стоячем положении они быстро засыпают, поэтому в сцене их может быть дофига. Сейчас у меня есть два типа физичных кустов, большой и маленький и тонкая берёзка (которая качается если в неё врезаться, но прижать к земле её нельзя).
Ещё эти кусты иногда отпинывают машину на несколько десятков метров, что сосёво.
Ещё для всех текстур я использовал только свои фотографии. Надеюсь, это искупает тяжкий грех использования фотошопа.
Вот такие дела.
А, да. Вот так сейчас выглядит новая карта. Которая должна явить собой тотальный ништяк крутоты. И украситься всеми созданными мной ассетами. Сейчас тут 50000 полигонов, но я думаю накинуть ещё один субдивайд, чтобы все четыре колеса машины никогда не могли стоять на одном полигоне. Надеюсь, средние компы не сдохнут.
