|
21.06.2009, 20:05
|
#16
|
Знающий
Регистрация: 02.11.2007
Сообщений: 255
Написано 27 полезных сообщений (для 43 пользователей)
|
Ответ: Статья:Parallax Mapping
Сообщение от Ize'g0re
Ты >< все новички.
Я не считаю себя новичком в блитце, но в шейдерах я новичок. Несмотря на это, я стремлюсь разобраться, а не скопипастить чужой шейдер "лишь бы работало".
Fail. Объясни мне пожалуйста поподробнее вот это:
Out.position = mul(In.position,World); /* домножаем позицию вершины на
мировую матрицу трансформации
*/
Out.position2 = Out.position; // Сохраняем её так-как она нам ещё понадобится
Out.position = mul(mul(Out.position,View),Proj); /* Домнажаем позицию
на матрицу вида и проекции*/
Out.normal = normalize(mul(In.normal,World)); /* Доманажаем нормаль на
мировую матрицу и нормализуем */
Out.tangent = normalize(mul(In.tangent,World)); /* Доманажаем тангент на
мировую матрицу и нормализуем */
Out.binormal = normalize(mul(In.binormal,World)); /* Доманажаем би-нормаль на
мировую матрицу и нормализуем */
Out.texcoord = In.texcoord; // сохраняем текстурные координаты
return Out; // Finish :)
Вот я не понимаю, для чего нужны все эти домножения, я не вижу цельной картины. Вообще ничего не понимаю, что откуда и куда приходит, и главное - зачем.
Считай, что ты ничего не объяснил, просто выложил код шейдера с незначительными комментариями. Объясни пожалуйста лично мне принцип, каким образом это делается? Пока ты не решишь эту задачу - не заслужишь моего "спасибо" а заодно оправдания слова "Статья" в заголовке темы.
|
Это уже не относится к тематике данной статьи,и не к кокой из статей про имено графические эффекты,это уже чисто 3Д графика.
З.Ы. Писал не ради твоего спасибо,писал от душы.
Последний раз редактировалось Genius, 21.06.2009 в 20:16.
|
(Offline)
|
|
21.06.2009, 20:35
|
#17
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Статья:Parallax Mapping
Поработай над стилем написания кода - это очень важный моммент. Удвоит читабельность.
Думай над переменными и колличеством кода. У тебя слишком много мусора.
Длинные комменты в шейдере для каждой строки, без подсветки синтаксиса очень забивают весь шейдер лишними символами - читабельность падает.
Это не только параллакс. Если ты хочешь показать параллакс, и бамп, то распиши отдельно каждую технику, и затем опиши как соединял.
Если ющаешь входную и выходную структуры, то юзай их нормально:
void vs_main( in VS_INPUT IN, out _OUTPUT OUT ) {
Потом меняй переменные, а то видно куски из других шейдеров и разные стили кодеров.
Т.к. в шейдере одна вершинная и пиксельная функции, то юзай простые имена структур, такие как sv, sp (Structure Vertex, Structure Pixel).
Имена функций также простые - fv, fp.
void fv( in sv IN, sp OUT ) {
Уделяй стилю наивысший приоритет. По опыту скажу - это меняет абсолютно дело, только от этого в основном зависит как читатель вникнет, или мельком пробежавшись испугается, и бросит.
Шейдер ужастный. Если ты пишешь статью, то не выкладывай вот-вот написанный шейдер, а поработай над ним.
Статья плохая, тема хорошая.
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо moka за это полезное сообщение:
|
|
21.06.2009, 20:37
|
#18
|
|
Ответ: Статья:Parallax Mapping
Out.normal = normalize(mul(In.normal,World)); /* Доманажаем нормаль на
мировую матрицу и нормализуем */
кстати, с каких пор это правильно ? нормали умножают на специальную матрицу
потому что если у тебя будет нормаль к примеру (0,1,0), а на экране она должна быть (0,0.7,0.7), а мировая матрица содержит смещение и сделает из неё (1,1.7,1.7) то после нормализации ты получишь совсем не то что нужно
это написано и сдесь http://msdn.microsoft.com/en-us/library/bb172390.aspx
|
|
|
21.06.2009, 20:40
|
#19
|
Знающий
Регистрация: 02.11.2007
Сообщений: 255
Написано 27 полезных сообщений (для 43 пользователей)
|
Ответ: Статья:Parallax Mapping
Сообщение от MoKa
Уделяй стилю наивысший приоритет. По опыту скажу - это меняет абсолютно дело, только от этого в основном зависит как читатель вникнет, или мельком пробежавшись испугается, и бросит.
Шейдер ужастный. Если ты пишешь статью, то не выкладывай вот-вот написанный шейдер, а поработай над ним.
Статья плохая, тема хорошая.
|
Ну уж извените у меня другой стиль написания кода!
Сообщение от MoKa
Потом меняй переменные, а то видно куски из других шейдеров и разные стили кодеров.
|
ну вот ни разу,писал с нуля шейдер для статьи,сначало хотел просто взять из своего движка...
|
(Offline)
|
|
21.06.2009, 20:42
|
#20
|
Знающий
Регистрация: 02.11.2007
Сообщений: 255
Написано 27 полезных сообщений (для 43 пользователей)
|
Ответ: Статья:Parallax Mapping
Сообщение от jimon
|
Цитата:Camera Space Transformations
У меня World-Space.
|
(Offline)
|
|
21.06.2009, 20:47
|
#21
|
|
Ответ: Статья:Parallax Mapping
Genius
ну и что ? ты читал что я писал ? мне вот интересно к какому виду d3d приводит нормаль при умножении на матрицу, к x,y,z,1 или к x,y,z,0
если x,y,z,0 то будет работать, если первое - то нет
|
|
|
21.06.2009, 20:50
|
#22
|
Знающий
Регистрация: 02.11.2007
Сообщений: 255
Написано 27 полезных сообщений (для 43 пользователей)
|
Ответ: Статья:Parallax Mapping
Сообщение от jimon
Genius
ну и что ? ты читал что я писал ? мне вот интересно к какому виду d3d приводит нормаль при умножении на матрицу, к x,y,z,1 или к x,y,z,0
если x,y,z,0 то будет работать, если первое - то нет
|
x,y,z,0
|
(Offline)
|
|
22.06.2009, 03:43
|
#23
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Статья:Parallax Mapping
Сообщение от Genius
Ну уж извените у меня другой стиль написания кода!
|
Дело в том что он для тебя может удобен. С моей точки зрения он никак не подходит для публики. Не припирайся, а задумайся, я говна не посоветую. Да есть многие кому нормально и так, есть многие кто прошёл мимо, есть многие кому пришлось ковыряться. Так вот недовольства можно уменьшить. Фишка в том что ты пишешь один, а читает многие. И чем ценее твоё время, чем время всех тех других? Если уловил о чём я, то приоритеты статьям поставишь выше. Статей дерьма в интернете куча, и по этой теме их тоже уйма. А вот нормальных и дружелюбных, любого рода статей очень мало. Но если они есть, то они на высоте у читателей. И они экономят время читателя, предостовляя всю нужную информацию и удобства.
Сообщение от Genius
ну вот ни разу,писал с нуля шейдер для статьи,сначало хотел просто взять из своего движка...
|
Куча стандартных имён. Использование разных привязок структур к функции, входящая объявляется заголовке функции, а выходящая внутри, это самая распространённая ещё одна загвоздка которая тратит ещё 3 строчки кода.
Шейдер - это не гипер исходник. Это мини программа. Мини - значит маленькая.
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо moka за это полезное сообщение:
|
|
22.06.2009, 04:06
|
#24
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: Статья:Parallax Mapping
MoKa, эдак ты отобьёшь желание писать общественно-полезные статьи.
Лучше покажи "как надо" Уверен, твой опыт многим пригодится. Хотя, понимаю: времени у нас у всех мало, но всё же статься оказалась бы незаменимой...
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо ABTOMAT за это полезное сообщение:
|
|
22.06.2009, 11:19
|
#25
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: Статья:Parallax Mapping
Out.normal = normalize(mul(In.normal,World))
|
всё прально тут
|
(Offline)
|
|
24.06.2009, 01:28
|
#26
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Статья:Parallax Mapping
ещё моммент такой, если нормализировать в вершинке, то у тебя будет повершинное освещение.
Сделай простой биллбоард, большой, поставь по серединке источник, и увидешь что он не подействует на пиксели. А только на вершинны как таковой.
А если будешь нормализовать в пиксельном будет ок.
Как-то наткнулся на это, вроде с этим и связано было..
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 09:59.
|