Войти
ПрограммированиеФорумГрафика

Графический конвеер и шейдеры (2 стр)

Страницы: 1 2 3 4 Следующая »
#15
17:41, 2 дек. 2010

а так хотелось))))
получается я цепляю карту нормалей как текстуру, а дальше считаю в шейдере цвет пикселя исходя из двух текстур и нормали полигона? тогда еще один вопрос: вроде как принята карта нормалей в виде красно-синей гаммы. значит есть и редакторы, которыми их получают и общие формулы - есть какой-то ликбез по ним?


#16
17:55, 2 дек. 2010

как тут не вспомнить завещание классика - учиться, учиться и ещё раз учиться
#17
17:57, 2 дек. 2010

А я правильно понимаю что можно просто сделать синий лежащий квадрат, над ним источник света. И если наложить на квадрат шейдер то он станет водой?

#18
17:59, 2 дек. 2010

умный указатель
> А я правильно понимаю что можно просто сделать синий лежащий квадрат, над ним
> источник света. И если наложить на квадрат шейдер то он станет водой?

спасибо, было 30 секунд отменного смеха, аж слезы выступили :)

#19
18:13, 2 дек. 2010

innuendo
не, ну а как тогда делают такую крутую воду, типа как в морровинде? вродеж шейдерами, или не так?
я б тоже такую хотел бы научиться делать: вот решил шейдеры учить

#20
18:14, 2 дек. 2010

умный указатель
>наложить на квадрат шейдер то он станет водой
блин, нет конешно.

поробую кратко описать что-как(далее можно будет придраться к любому слову):
есть 2 тапа шейдеров: вершинный(VS) и фрагментный(FS).

что такое VS?
программа, которая обрабатывает вершины твоего меха.
Обычно она занимается тем, что проецирует вершины + еще всякая фигня.
Хочеш вершинную анимацию? Измени VS.
например :

gl_Position = ftranform()*sin(time);
-изменение размера меха от времени.

что такое FS?
программа которая вычисляет атрибуты фрагмента.
Обычно(но не всегда!) фрагмент=пиксель.
например :

gl_FragColor = vec4( vec3(sin(time) ), 1.0);
- зависимоть цвета от времени.

так же из программы можно передать кое-какую информацию в шейдер. сам прочитаеш об этом.

-------------
ну есть еще Hull, Domain, Geometry Shader'ы, но сначало с VS/FS разберись.

#21
18:19, 2 дек. 2010

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

А как-тогда вобще делают такие крутые эффекты отблесков от воды?

И фрагметы чего кстати обрабатываются в фрагментном шейдере?

#22
18:20, 2 дек. 2010

умный указатель
> Мех - это меш?
нет, мех - это fur :)

#23
18:23, 2 дек. 2010

Try
Спасибо, вроде все и понятно обьяснил.
Попробую написать пару шейдеров с нуля. А то я скачивал проги с примерами шейдеров, запускал. Но даже не понимал что там менять.
А воду так реально сделать? Типа вершинный шейдер пускает волны, а пиксельный отблески делает?

#24
18:24, 2 дек. 2010

да.
когда разберешся с протыми шейдерами смотри сюда:
http://www.steps3d.narod.ru/tutorials/water-tutorial.html

#25
18:28, 2 дек. 2010

Try
оооооооо, спасибо тебе большое.

А кстати не посоветуешь, как с ними начать разбираться? Ты лично какие-то книги читал? Или туториалы хорошие. Может знаешь какие-нибудь полегче языком написаные?

там вот так фрагментнысй шейдер воду делает
gl_FragData [0] = vec4 ( gl_TexCoord [0].xy * 2.0 * SIZE - vec2 ( SIZE ), -1.0 + amplitude * turb.x, 1.0 );

примерно также как ты показал, только позамороченей входные параметры

#26
18:34, 2 дек. 2010

>Ты лично какие-то книги читал?
Уже не помню.

попробуй начать отсюда: http://www.steps3d.narod.ru/tutorials/lighting-tutorial.html

>gl_FragData
это MRT Rendering.

#27
18:54, 2 дек. 2010

Дорогой умный указатель, ваш вопрос звучит примерно как: "Я Вася Пупкин. Я слышал что гемдевелоперы зарабатывают много денег. Я тоже хочу. Научите меня как написать офигительную игру!". Ну и что тебе тут посоветуют? Фактически ты просишь научить тебя писать программы (а шейдер это просто программа, просто она выполняется внутри видеокарты). Кто будет тратить на тебя кучу времени и учить азам? Да еще на форуме? Для этого есть книжки. Почитай, потом если будут КОНКРЕТНЫЕ вопросы по РЕАЛИЗАЦИИ - спрашивай. Тогда тебе помогут. А пока это все детский лепет. Типа "если накожить квадрат на шейдер то он станет водой". Ты написал: Если наложить ПРОГРАММУ на ТЕКСТУРУ она станет водой. Что совершенно правильно. Осталось написать эту программу. Вот почитай книжки и напишешь.

#28
18:57, 2 дек. 2010

Кстати, вопрос возник. Ведь ничто не мешает переписать любой шейдер на работу с Г-буффером? Просто я думаю о переносимости Deferred Shading а.

#29
19:05, 2 дек. 2010

san
Ну мне вот хоть Try направление дал. В гугле много конечно чего есть про шейдеры, но из за этого даже сложно отфильтровать всю лишнию информацию.
P.S. Ну я думал может тут кто и частные уроки предложит - я б с радостью занимался.

Страницы: 1 2 3 4 Следующая »
ПрограммированиеФорумГрафика

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