Собственно кто работал с последними версиями экспортёра и тулсов, то наверняка заметил, что там есть травка, так вот обычный набор шейдеров работает нормально, а вот когда добрался до океана и травы, то никаких изменений при изменении параметров. Мучал их по всякому... может у кого получалось травку сделать на кубике? ;)
там "немного" недоделаный шейдер травы. если его помучать - то что-то получается в итоге - но за счет большого числа полигонов. т. е. шейдер травы берет плэйн из нескольких сотен полигонов и рандомайзит его по высоте. получается отстой. движок генерить траву инстансами через шейдер (как правильно) совсем не умеет. я как раз занимаюсь сейчас эффектами для nebula2.
а можно ли сделать через шейдер генерацию травы по карте? Берём битмэп и в зависимости от насыщенности ставим туда полигон с текстурой травы. Высота будет задаваться числом от 0 - 255 (2 бит на цвет). частота генерации пускай задаётся константой
отпишитесь, пожалуйста, те, у кого получилось что-то сделать в данном вопросе.
2pbmaster: я думаю общественности было бы интересно узнать, что нужно подправить, что бы оно корректно работало, а главное - где исправлять?
2All: Подскажите пожалуйста последовательность действий, необходимых для реализации следующей задумки:
1. В зависимости от климата, типа почвы, влажности и сезона трава должна выглядеть по разному. Если Климат холодный, то в этом месте должна быть одна текстура травы, если почва песчанная - другая. Если дожди постоянно, то трава зелёная и густая, если засушливая погода, то она высыхает, если зима, то вместо травы должен быть снег.
2. Исходные данные (картинки, в которых каждый пиксель отображает данные соотвествующему положению в сетке ландшафта. Т.е. если сетка с разрешением пиксель\метр, то данные соотносятся на площадь в один квадратный метр и все свойства для него будут одинаковыми в пределах этого квадрата)
- Карта высот (оттенки серого) (по которой генерится ландшафтная сетка. разрешение 1024х1024 пикселя, что соотвествует 1024х1024 метра игровых)
- Карта типа поверхности (цветная) (в соответсвие с цветом производится раскраска текстурами и тип травы). (Как вариант 8 масок альфа слоёв)
- Карта количества воды в данной ячейке (массив параметров для длины\роста\насыщенности)
- Температурная карта (цвет травы, или снег)
В итоге должна получится карта травы (массив с данными роста, насыщенности, типа травы)
3. Аппаратная реализация.
Шейдер или код программы должны отрисовывать билбоарды травы с соотвествующей текстурой.
Как встроить шейдер, написанный в rendermonkey в Небулу?
Какой писать скрипт?
Как присовить этот шейдер ландшафту?
Как добавить звук шелеста травы при прохождении через неё?
Как задать анимацию волн на поверхности от ветра? (параметры - направления и силы)
4. Альтернативные варианты.
Может быть использовать систему частиц небулы и траву рисовать партиклами?
Как программировать систему частиц и реально ли её заточить под траву с моими нуждами?
Заранее спасибо за любую помощь в решении этого вопроса. Думаю обсуждение этого вопроса будет весьма и весьма полезно всем читателям форума, кто осваивает этот движок.
Слишком много вопросов...
Какие из них остались открытыми?
STC
Да про траву, про траву...
Про воду тоже.
З.Ы
Посты раз в полгода вселяют надежду :)
Про траву не думал
А вот водичка работает.
Технгологически вода сделана по Тессендорфу.
FFT считаю на проце, результат в виде набора высот и смещений по xy (dusplacement), запизиваю в тесктуру, которую читаю в VS.
Для удобства работы с процедурным мешем пришлось написать обертку над nShapeNode.
Для удобства работы с процедурными текстурами написал обертку над nD3d9Texture.
Для рендера отражений - nReflectionCameraNode
З.Ы.
да уж :)
STC
О! Я уж думал что никого не осталось. :)
Ясно, спасибо.
Тема в архиве.