forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Xors3D (http://forum.boolean.name/forumdisplay.php?f=126)
-   -   Xors3D. Шейдеры. Урок первый (http://forum.boolean.name/showthread.php?t=8564)

CRASHER 15.03.2011 04:48

Ответ: Xors3D. Шейдеры. Урок первый
 
MoKa, спасибо, я тож конечно не самым лучшим образом отвечал, на меня не похоже. Принашу глубочайшие извинения MR_F если его обидел.
Вообще проблема в чем я пытаюсь изучить шейдеры. Для этого мне посоветовали хелпы по HLSL и DXSDK? Но понятия это растяжимые хелпы, и следовательно не зная что искать я не знаю даже как спросить. Спрошу тогда так, что бы ты ,MoKa, стал учить после вышеописанного урока по шейдерам?

moka 15.03.2011 13:24

Ответ: Xors3D. Шейдеры. Урок первый
 
Я бы стал писать простые шейдеры. Обучение как ты знаешь состоит из последовательных этапов. Начиная с простого к сложному.

Лучше всего когда понимаешь как шейдерный конвеер работает и как передедавать переменные и как из вершинного в попиксельный шейдер передаются данные. Для это напиши простой шейдер - простой диффуз. При этом попробуй это сделать без единого копипаста, но можно смотреть в чужой шейдер.
Разбери его до мелчайших деталей. В msdn на HLSL есть хорошая инфа о тех или иных общих момментах.
Далее усложняй, но важно понять представление вершины и пикселя в шейдере, "как шейдер видит" их :)
Тогда будет проще далее.

CRASHER 15.03.2011 15:45

Ответ: Xors3D. Шейдеры. Урок первый
 
Ладно, будем пытать Ся :)

CRASHER 15.03.2011 21:22

Ответ: Xors3D. Шейдеры. Урок первый
 
Пасибо мока сочитание терминов msdn и HLSL привели меня на ссылку где какраз то что я искал. С этого можно продолжить свое обучение шейдерам.
http://www.gamedev.ru/code/terms/HLSL?page=2
Советую после изучения первого урока полазать по ссылкам в конце этой странице всем несведующим :)

pepel 08.12.2011 17:55

Ответ: Xors3D. Шейдеры. Урок первый
 
а можно пример простого шейдера который тупо окрашивает обьект в белый цвет?

moka 08.12.2011 17:59

Ответ: Xors3D. Шейдеры. Урок первый
 
http://moka.ucoz.ru/load/0-0-0-102-20

pepel 08.12.2011 18:00

Ответ: Xors3D. Шейдеры. Урок первый
 
Цитата:

Сообщение от MoKa (Сообщение 213060)

спасибо. будем разбираться..

pepel 08.12.2011 20:46

Ответ: Xors3D. Шейдеры. Урок первый
 
кстати вопрос такой.
в примерах используется такой вариант передачи матриц:
float4x4 view_proj_matrix; - в шейдере
и xSetEffectMatrixSemantic poly, "MatWorldViewProj", WORLDVIEWPROJ в ксорсе


а в уроке тупо в шейдере float4x4 viewprojMatrix : MATRIX_VIEWPROJ;

т.е. эти варианты делают по сути одно и тоже?

moka 08.12.2011 20:54

Ответ: Xors3D. Шейдеры. Урок первый
 
Да, с одним отличем как эта матрица задаётся. В первом варианте, нада ручками указывать матрицу, а во втором, она будет автоматически назначена, исходя из объекта на который шейдер наложен. Второй лучше, если это не нужно менять из кода (не могу придумать необходиомсти), так что юзай второй.
Это называется семантики. В документации есть раздел про семантики.

ANIK123 30.12.2011 09:33

Ответ: Xors3D. Шейдеры. Урок первый
 
Привет Всем!)
Первый раз познакомился с написанием шейдеров вчера, ради постэффектов т к в основном для обьектов нужен только обычный диффуз)
Прошу помощи в реализации одной штуки:
возможно ли как нибудь использовать в шейдере внешнюю функцию? например для передачи положения текущего пикселя в двиг, чтобы сгенерировать маску (чтобы некий пост-эффект действовал только на некоторые обьекты) ? или может как то по другому можно? ибо через камераПик ну ооочень тормозно получается)

UPD: а что если изменить активный буффер на другой, отрендерить в него нужные шейдеры, перепригнуть на начальный буффер, отрендерить еще раз с нормальными шейдерамы и наложенным пост-эффектом с маской созданной в предыдущем буффере?

moka 08.01.2012 05:46

Ответ: Xors3D. Шейдеры. Урок первый
 
Т.к. ты только начал заниматься шейдерами, то ещё думаешь совсем в иной парадигме.
Суть шейдеров - математически обрабатывать тексели, и не более.
Зная на что шейдер как механизм может, ты будешь знать что можно с ними делать, а что нет (например передать какую-то внешнюю функцию, невозможно, да и зачем, если есть внутренние?).
Далее понимая возможности математики, и смекалки, сможешь придумать реализацию идеи.

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

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

LLI.T.A.L.K.E.R. 25.03.2012 08:46

Ответ: Xors3D. Шейдеры. Урок первый
 
Хотелось бы узнать, насколько баловство с шейдерами на этом сайте поможет общему применению. Есть ли отличия в написании кода? Значительны ли они?
Заранее благодарю.

Markova 25.03.2012 15:41

Ответ: Xors3D. Шейдеры. Урок первый
 
Цитата:

Сообщение от LLI.T.A.L.K.E.R. (Сообщение 223632)
Хотелось бы узнать, насколько баловство с шейдерами на этом сайте поможет общему применению. Есть ли отличия в написании кода? Значительны ли они?
Заранее благодарю.

В плане синтаксиса отличий нет, не имеет значения, где в последствие ты будишь использовать свои знания.

ANIK123 14.04.2012 02:41

Ответ: Xors3D. Шейдеры. Урок первый
 
Мужики, не получается применить пиксельный шейдер к спрайту - на иных объектах все ок, вопрос: есть ли какой-то специальный подход к спрайтам или к ним тупо не можно применять шейдеры вообще?

moka 14.04.2012 20:35

Ответ: Xors3D. Шейдеры. Урок первый
 
Есть объект Poly, можешь его создавать и применять шейдер на него.


Часовой пояс GMT +4, время: 19:16.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot