Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Программирование игр, графики и искусственного интеллекта > XNA cube map


Автор: Bonus 7.2.2009, 16:30
Пишу свой рендер на XNA, уже реализовал освещение и тени для Directional- и Spot-источников, 
начал реализацию Point light'ов с помощью cubemap и столкнулся с проблемой:
XNA работает с right-hand системой координат (аналоги в directX - это LookAtRH и PerspectiveFovRH), 
а в HLSL для выборки из cubemap'ы используется инструкция texCUBE, которая работает с left-hand системой координат.

В сети нет примеров решения этой проблемы. Более того, я не нашел даже примеров для реализации real-time отражений для XNA,
работающих через cubemap.

Как обойти данную проблему? Буду рад любой помощи.

Автор: mr.DUDA 8.2.2009, 13:43
Мне помогало изменить знак z перед выбором из кубемапа. Более правильные способы видимо описаны http://www.geometrictools.com/Documentation/LeftHandedToRightHanded.pdf и в гугле.

Автор: Bonus 8.2.2009, 14:25
спасибо

Автор: Bonus 8.2.2009, 19:30
Действительно заработало

Код

float3 lightToPixelWS = input.WorldPosition - lightPosition;
lightToPixelWS.z = -lightToPixelWS.z;
float shadowMapDepth = texCUBE(shadowSampler, normalize(lightToPixelWS));


спасибо mr.DUDA

Автор: EgoBrain 15.2.2009, 13:42
Извините за вторжение, а где можно почитать для новичков по поводу первых строк первого сабжа?
Цитата

уже реализовал освещение и тени для Directional- и Spot-источников

Автор: Bonus 15.2.2009, 19:17
http://ru.ziggyware.com/readarticle.php?article_id=16
http://ru.ziggyware.com/readarticle.php?article_id=9
http://www.ziggyware.com/readarticle.php?article_id=235

Автор: EgoBrain 16.2.2009, 03:10
Цитата(Bonus @ 15.2.2009,  19:17)
http://ru.ziggyware.com/readarticle.php?article_id=16
http://ru.ziggyware.com/readarticle.php?article_id=9
http://www.ziggyware.com/readarticle.php?article_id=235

Спасибо, особенно за ссылки на русскоязычные статьи. Там ХNA, но думаю я разберусь, все почти тоже самое (у меня MDX).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)