-Eugene-
Не правильно, так:
http://lmgtfy.com/?q=shadow+map
И получил те же ссылки, суть же из них ясна в не зависимости от запроса. Спасибо, идею понял.
atavin-ta
Так просто поучительнее:)
Хотим рабочий пример.
А как Вам эта техника http://free-zg.t-com.hr/cssm/ ?
Что-то не видел обсуждения =)
ai-music
Вроде давненько щупал, чот помоему не очень было.
Что-то не понял, RTW Shadow Map в видео это тоже самое что и GPSM Shadow map?
Frest
Нет. Но направление мыслей похожее.
Executor
Ясно, спасибо
OUT.position.x=OUT.position.x/(abs(OUT.position.x)+1.0f); //вот и строчки. единица отвечает за степень искажения для меня подходит 1.0f, вы можете поискать другой подходящий коэффициент OUT.position.y=OUT.position.y/(abs(OUT.position.y)+1.0f);
Что-томне подсказывает, что это не правильно. Правильно так:
const float a=1.0f; //вот и строчки. единица отвечает за степень искажения для меня подходит 1.0f, вы можете поискать другой подходящий коэффициент OUT.position.x=OUT.position.x/(abs(OUT.position.x)+a)/(a+1.0f); OUT.position.y=OUT.position.y/(abs(OUT.position.y)+a)/(a+1.0f);
Иначе после преобразование значение 1 координаты переходит в 0.5.
А если матрица проективная, то:
const float a=1.0f; //вот и строчки. единица отвечает за степень искажения для меня подходит 1.0f, вы можете поискать другой подходящий коэффициент OUT.position.x=OUT.position.x/(abs(OUT.position.x/OUT.position.w)+a)/(a+1.0f); OUT.position.y=OUT.position.y/(abs(OUT.position.y/OUT.position.w)+a)/(a+1.0f);
костыль
сложно сказать, я уже давно не занимался этим делом...
но точно помню что никак нельзя обойти то что поликов не хватит...
т.к. мой метод сжимает по краям, а по той формуле что ты предлагаешь - сжимает сферически, в итоге мы утратим тени в верхнем нижнем левой и правой сторонах... т.к. RT шадоумапы квадратное, и сжатие квадратное - это оптимальное решение, если бы RT было круглым - то и сжатие круглое было бы идеальным решением.
но используйте то что работает в вашем случае.
Прикольно! - это можно вместо классической камеры смотрящей от источника света использовать path tracer какой-нить и вообще быстрые и реалистичные тени получать "на ура" )))) Почему-то я раньше это пропустил!
Не могу понять почему в статье написано вот так:
OUT.SMCD.xyz=posL.xyw; //SMCD - текстурные координаты наложения теневой карты на сцену. OUT.SMCD.x*=0.5f; OUT.SMCD.y=-OUT.SMCD.y*0.5f; OUT.SMCD.w=posL.z-0.0007f; //базис...
Почему компоненте z мы присваиваем w? А потом компоненте w присваиваем z? И зачем меняем знак у 'y'? Это хитрость какая-то?
z->w, поскольку в w хранится требуемая глубина.
знак у "y" меняется, поскольку без этого текстура тени спректируется зеркально по вертикали, а нам этого не нужно.
Аврелий
> z->w, поскольку в w хранится требуемая глубина.
> знак у "y" меняется, поскольку без этого текстура тени спректируется зеркально
> по горизонтали, а нам этого не нужно.
Я прям не врубаюсь... Это только к DirectX относится или вообще впринципе?
С какой стати в w хранится глубина? В w всегда 1 находится на сколько мне известно, а за глубину отвечает z. Или я что-то путаю? Если путаю, то объясните пожалуйста что.
Тема в архиве.