Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Проекты > Проекты C++

Ответ
 
Опции темы
Старый 21.06.2009, 20:05   #16
Genius
Знающий
 
Аватар для Genius
 
Регистрация: 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
moka
.
 
Регистрация: 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 за это полезное сообщение:
Genius (21.06.2009), Mr_F_ (22.06.2009)
Старый 21.06.2009, 20:37   #18
jimon
 
Сообщений: n/a
Ответ: Статья: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
Genius
Знающий
 
Аватар для Genius
 
Регистрация: 02.11.2007
Сообщений: 255
Написано 27 полезных сообщений
(для 43 пользователей)
Ответ: Статья:Parallax Mapping

Сообщение от MoKa Посмотреть сообщение
Уделяй стилю наивысший приоритет. По опыту скажу - это меняет абсолютно дело, только от этого в основном зависит как читатель вникнет, или мельком пробежавшись испугается, и бросит.
Шейдер ужастный. Если ты пишешь статью, то не выкладывай вот-вот написанный шейдер, а поработай над ним.
Статья плохая, тема хорошая.
Ну уж извените у меня другой стиль написания кода!

Сообщение от MoKa Посмотреть сообщение
Потом меняй переменные, а то видно куски из других шейдеров и разные стили кодеров.
ну вот ни разу,писал с нуля шейдер для статьи,сначало хотел просто взять из своего движка...
(Offline)
 
Ответить с цитированием
Старый 21.06.2009, 20:42   #20
Genius
Знающий
 
Аватар для Genius
 
Регистрация: 02.11.2007
Сообщений: 255
Написано 27 полезных сообщений
(для 43 пользователей)
Ответ: Статья:Parallax Mapping

Сообщение от jimon Посмотреть сообщение
[code]
это написано и сдесь http://msdn.microsoft.com/en-us/library/bb172390.aspx
Цитата:Camera Space Transformations

У меня World-Space.
(Offline)
 
Ответить с цитированием
Старый 21.06.2009, 20:47   #21
jimon
 
Сообщений: n/a
Ответ: Статья:Parallax Mapping

Genius
ну и что ? ты читал что я писал ? мне вот интересно к какому виду d3d приводит нормаль при умножении на матрицу, к x,y,z,1 или к x,y,z,0
если x,y,z,0 то будет работать, если первое - то нет
 
Ответить с цитированием
Старый 21.06.2009, 20:50   #22
Genius
Знающий
 
Аватар для Genius
 
Регистрация: 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
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Статья:Parallax Mapping

Сообщение от Genius Посмотреть сообщение
Ну уж извените у меня другой стиль написания кода!
Дело в том что он для тебя может удобен. С моей точки зрения он никак не подходит для публики. Не припирайся, а задумайся, я говна не посоветую. Да есть многие кому нормально и так, есть многие кто прошёл мимо, есть многие кому пришлось ковыряться. Так вот недовольства можно уменьшить. Фишка в том что ты пишешь один, а читает многие. И чем ценее твоё время, чем время всех тех других? Если уловил о чём я, то приоритеты статьям поставишь выше. Статей дерьма в интернете куча, и по этой теме их тоже уйма. А вот нормальных и дружелюбных, любого рода статей очень мало. Но если они есть, то они на высоте у читателей. И они экономят время читателя, предостовляя всю нужную информацию и удобства.

Сообщение от Genius Посмотреть сообщение
ну вот ни разу,писал с нуля шейдер для статьи,сначало хотел просто взять из своего движка...
Куча стандартных имён. Использование разных привязок структур к функции, входящая объявляется заголовке функции, а выходящая внутри, это самая распространённая ещё одна загвоздка которая тратит ещё 3 строчки кода.
Шейдер - это не гипер исходник. Это мини программа. Мини - значит маленькая.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо moka за это полезное сообщение:
Mr_F_ (22.06.2009), Taugeshtu (24.06.2009)
Старый 22.06.2009, 04:06   #24
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: Статья:Parallax Mapping

MoKa, эдак ты отобьёшь желание писать общественно-полезные статьи.
Лучше покажи "как надо" Уверен, твой опыт многим пригодится. Хотя, понимаю: времени у нас у всех мало, но всё же статься оказалась бы незаменимой...
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо ABTOMAT за это полезное сообщение:
johnk (22.06.2009), SBJoker (22.06.2009)
Старый 22.06.2009, 11:19   #25
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: Статья:Parallax Mapping

Out.normal = normalize(mul(In.normal,World))
всё прально тут
__________________
бложик | geom.io | твиттер | faded | демо 1 2 | роботы | лайтмаппер
(Offline)
 
Ответить с цитированием
Старый 24.06.2009, 01:28   #26
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Статья:Parallax Mapping

ещё моммент такой, если нормализировать в вершинке, то у тебя будет повершинное освещение.
Сделай простой биллбоард, большой, поставь по серединке источник, и увидешь что он не подействует на пиксели. А только на вершинны как таковой.
А если будешь нормализовать в пиксельном будет ок.

Как-то наткнулся на это, вроде с этим и связано было..
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Статья pax FAQ 7 27.06.2011 04:13
Mapping -> Flattern Mapping Dzirt 3D Моделирование 7 13.11.2009 16:20
Parallax+Bump+Specular (Прозьба затестить). moka Болтовня 35 21.02.2008 19:25
Bump Mapping DRAG 3D-программирование 6 27.11.2006 23:30


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com