Войти
Nebula CommunityФорум

nebula2 grass-shader

#0
22:46, 12 сен. 2006

Собственно кто работал с последними версиями экспортёра и тулсов, то наверняка заметил, что там есть травка, так вот обычный набор шейдеров работает нормально, а вот когда добрался до океана и травы, то никаких изменений при изменении параметров. Мучал их по всякому... может у кого получалось травку сделать на кубике? ;)


#1
13:56, 5 фев. 2007

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

#2
0:59, 7 мая 2007

а можно ли сделать через шейдер генерацию травы по карте? Берём битмэп и в зависимости от насыщенности ставим туда полигон с текстурой травы. Высота будет задаваться числом от 0 - 255 (2 бит на цвет). частота генерации пускай задаётся константой

#3
8:26, 16 сен. 2007

отпишитесь, пожалуйста, те, у кого получилось что-то сделать в данном вопросе.

2pbmaster: я думаю общественности было бы интересно узнать, что нужно подправить, что бы оно корректно работало, а главное - где исправлять?

2All: Подскажите пожалуйста последовательность действий, необходимых для реализации следующей задумки:
1. В зависимости от климата, типа почвы, влажности и сезона трава должна выглядеть по разному. Если Климат холодный, то в этом месте должна быть одна текстура травы, если почва песчанная - другая. Если дожди постоянно, то трава зелёная и густая, если засушливая погода, то она высыхает, если зима, то вместо травы должен быть снег.

2. Исходные данные (картинки, в которых каждый пиксель отображает данные соотвествующему положению в сетке ландшафта. Т.е. если сетка с разрешением пиксель\метр, то данные соотносятся на площадь в один квадратный метр и все свойства для него будут одинаковыми в пределах этого квадрата)
- Карта высот (оттенки серого) (по которой генерится ландшафтная сетка. разрешение 1024х1024 пикселя, что соотвествует 1024х1024 метра игровых)
- Карта типа поверхности (цветная) (в соответсвие с цветом производится раскраска текстурами и тип травы). (Как вариант 8 масок альфа слоёв)
- Карта количества воды в данной ячейке (массив параметров для длины\роста\насыщенности)
- Температурная карта (цвет травы, или снег)
В итоге должна получится карта травы (массив с данными роста, насыщенности, типа травы)

3. Аппаратная реализация.
Шейдер или код программы должны отрисовывать билбоарды травы с соотвествующей текстурой.

Как встроить шейдер, написанный в rendermonkey в Небулу?
Какой писать скрипт?
Как присовить этот шейдер ландшафту?
Как добавить звук шелеста травы при прохождении через неё?
Как задать анимацию волн на поверхности от ветра? (параметры - направления и силы)

4. Альтернативные варианты.
Может быть использовать систему частиц небулы и траву рисовать партиклами?
Как программировать систему частиц и реально ли её заточить под траву с моими нуждами?


Заранее спасибо за любую помощь в решении этого вопроса. Думаю обсуждение этого вопроса будет весьма и весьма полезно всем читателям форума, кто осваивает этот движок.

#4
16:49, 6 фев. 2008

Слишком много вопросов...

Какие из них остались открытыми?

Прошло более 9 месяцев
#5
2:28, 14 ноя. 2008

STC
Да про траву, про траву...
Про воду тоже.

З.Ы
Посты раз в полгода вселяют надежду :)

#6
9:25, 14 ноя. 2008

Про траву не думал
А вот водичка работает.

Технгологически вода сделана по Тессендорфу.
FFT считаю на проце, результат в виде набора высот и смещений по xy (dusplacement), запизиваю в тесктуру, которую читаю в VS.
Для удобства работы с процедурным мешем пришлось написать обертку над  nShapeNode.
Для удобства работы с процедурными текстурами написал обертку над nD3d9Texture.
Для рендера отражений - nReflectionCameraNode


З.Ы.
да уж :)

#7
10:52, 14 ноя. 2008

STC
О! Я уж думал что никого не осталось. :)
Ясно, спасибо.

Nebula CommunityФорум

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