Навигация
· XNA FAQ
· С чего начать
· Конкурсы
· Обратная связь
· XNA Блоги
Сейчас на сайте
· Гостей: 1

· Пользователей: 0

· Всего пользователей: 3,684
· Новый пользователь: headron
Последние фото
Эх, чуть не проспал закрытие.
Эх, чуть не проспал ...
Альбом: XNA Engine

GB
GB
Альбом: XNA Engine

South Park Coon & Friends
South Park Coon & Fr...
Альбом: XNA Games

Блоги
yavshoke
» XboxOne - интерес...
dampirik
» Push уведомления ...
dampirik
» Реклама,статистик...
Chort
» XNA и StartCoroutine
Chort
» Curve Class
dampirik
» Реклама, статисти...
dampirik
» Увеличение скорос...
dampirik
» Реклама, статисти...
general
» Распаковка DxtCom...
general
» Как работать с XN...
Поддержка
microsoft.com
1gb.ru - Дом для вашего сайта
Статистика посещений:

Просмотр темы
 Распечатать тему
Тени
Flanir
#1 Распечатать сообщение
Опубликовано 28.08.2013 16:03:00
Младший специалист


Сообщений: 36
Зарегистрирован: 30.12.12

Хочу использовать shadow_mapping для реализации теней, но вот несколько вопросов хотел спросить сперва:

во-первых, основной источник света-солнце, а поэтому направленное источник освещения использовать не хочу, просто точечный. Но уроков по точечным я не нашел. Везде только по направленным, на raimers(или как там) тоже смотрел.И ещё много другого
во-вторых, у меня ландшафт, обычные статичные модели и заскиненные модели отрисовываются разными шейдерами( заскинненные модели вообще через skinnedeffect) ,как быть тут? ведь надо нарисовать ед-ую карту глубины.
в-третьих, если point_light будет слишком далеко в небе, то ведь будут очень так сказать пиксельные тени, что делать тут?
 
CSharpCraft
#2 Распечатать сообщение
Опубликовано 28.08.2013 16:19:57
Аватар пользователя

Специалист


Сообщений: 190
Зарегистрирован: 27.03.13

Реализовать точечный источник света вместо напарвленного в этом случае не очень хорошая идея
Изменил(а) CSharpCraft, 28.08.2013 16:20:12
 
Flanir
#3 Распечатать сообщение
Опубликовано 28.08.2013 17:14:05
Младший специалист


Сообщений: 36
Зарегистрирован: 30.12.12

А что тогда вообще лучше исспользовать для теней при точечном источнике света?
 
gugenot
#4 Распечатать сообщение
Опубликовано 28.08.2013 17:56:21
Аватар пользователя

Специалист


Сообщений: 96
Зарегистрирован: 17.08.12

Может я и подзабыл, но когда я делал этот маппинг, просто фотографировал все необходимые объекты в рендертаргет из положения, где как мне казалось должно быть солнце, а потом это фото накладывал на ландшафт в виде дополнительной прозрачной текстуры с серыми полупрозрачными пятнами от моделей. Причём ни разновидность источника света, ни способ прорисовки моделей никакой роли не играли. Откуда все эти заморочки?
У меня настенный календарь на месяц заканчивается. За билетами на церемонию конца света обращайтесь в личку.
 
Flanir
#5 Распечатать сообщение
Опубликовано 28.08.2013 18:01:23
Младший специалист


Сообщений: 36
Зарегистрирован: 30.12.12

идею понялSmile Но вот вопрос встречный, как мне накладывать эту текстуру на ландшафт, если у меня ландшафт генерируется и на него накладывается текстура с опр-ой переодичностью?
 
gugenot
#6 Распечатать сообщение
Опубликовано 28.08.2013 18:14:07
Аватар пользователя

Специалист


Сообщений: 96
Зарегистрирован: 17.08.12

Flanir написал:
идею понялSmile Но вот вопрос встречный, как мне накладывать эту текстуру на ландшафт, если у меня ландшафт генерируется и на него накладывается текстура с опр-ой переодичностью?

Ща гляну... Я накладывал не на весь ландшафт, а только на его часть в зоне видимости. Кажется там что-то было заморочено. Посмотрю, отпишусь.
У меня настенный календарь на месяц заканчивается. За билетами на церемонию конца света обращайтесь в личку.
 
gugenot
#7 Распечатать сообщение
Опубликовано 28.08.2013 18:22:27
Аватар пользователя

Специалист


Сообщений: 96
Зарегистрирован: 17.08.12

А, ну тут просто в шейдер ландшафта передаётся не тока текстура теней но и её ViewMatr и ProjMatr матрицы.
Загрузить источник  GeSHi: HLSL
  1.  
  2. effect.Parameters["o_ShadowMapTexture"].SetValue(txtShadowMap);
  3. effect.Parameters["o_mLightView"].SetValue(shadowMap1.mShadowViewMatr);
  4. effect.Parameters["o_mLightProj"].SetValue(shadowMap1.mShadowProjMatr);
  5. ////////////////////////////////////////////
  6. effect.Parameters["b_lengthToBadShadow"].SetValue(lengthToBadShadow);
  7. effect.Parameters["b_ShadowMapBridgeTexture"].SetValue(txtShadowMapBridge);
  8. effect.Parameters["b_mLightViewBridge"].SetValue(shadowMappingBridges1.mShadowViewMatr);
  9. effect.Parameters["b_mLightProjBridge"].SetValue(shadowMappingBridges1.mShadowProjMatr);
  10.  
Добавлено за 0.009 секунд, используя GeSHi 1.0.8.2

У меня настенный календарь на месяц заканчивается. За билетами на церемонию конца света обращайтесь в личку.
 
CSharpCraft
#8 Распечатать сообщение
Опубликовано 28.08.2013 18:59:18
Аватар пользователя

Специалист


Сообщений: 190
Зарегистрирован: 27.03.13

http://blogs.msdn.com/b/rucoding4fun/archive/2011/10/04/adding-awesome-lighting-effects-to-your-xna-game.aspx
В этом сэмпле реализация разных источников освещения
 
Flanir
#9 Распечатать сообщение
Опубликовано 28.08.2013 20:11:36
Младший специалист


Сообщений: 36
Зарегистрирован: 30.12.12

CSharpCraft,спасибо попробую разобраться..хотя для меня там многое будет сложно Smile

gugenot, я в шейдерах ещё не очень, мог бы сказать, что должно твориться в пиксельном шейдере, а что в вершинном? заранее спасибо.
Я в общем пока понял так:
Помещаем камеру в источник света и направляем её по источнику света.
Рисуем картинку,без ландшафта, так чтобы модели все рисовались, например, серым цветом.
Далее передаем с матрицами вида и проекции эту текстуру в шейдер. А вот дальше
я не понимаю, а все потому что ещё пока шейдеры не до конца понял и все операции в них.
Мне вот интересно, что дальше будет:
Получается , что чем выше солнце, тем более разрывистые и пиксельные получатся тени?
Тогда как в примере, что привел CSharpCraft можно делать множество снимков с высоты чуть меньшей, но тогда может получиться так, что какой-то снимок окажется в доме или ещё что-то.
 
gugenot
#10 Распечатать сообщение
Опубликовано 28.08.2013 21:10:27
Аватар пользователя

Специалист


Сообщений: 96
Зарегистрирован: 17.08.12

Flanir написал:

gugenot, я в шейдерах ещё не очень, мог бы сказать, что должно твориться в пиксельном шейдере, а что в вершинном? заранее спасибо.
Я в общем пока понял так:
Помещаем камеру в источник света и направляем её по источнику света.
Рисуем картинку,без ландшафта, так чтобы модели все рисовались, например, серым цветом.
Далее передаем с матрицами вида и проекции эту текстуру в шейдер. А вот дальше
я не понимаю, а все потому что ещё пока шейдеры не до конца понял и все операции в них.
Мне вот интересно, что дальше будет:
Получается , что чем выше солнце, тем более разрывистые и пиксельные получатся тени?
Тогда как в примере, что привел CSharpCraft можно делать множество снимков с высоты чуть меньшей, но тогда может получиться так, что какой-то снимок окажется в доме или ещё что-то.

Ну как бы тут камера у солнца не там где у игрока. У каждого своя. И матрицы тоже. Камеру для солнца помещаем по прямой от места взгляда, в направлении, направляющие косинусы которого совпадают со светом. А расстояние до него - хозяин-барин. Но близко не надо, а то тени начнут расти и разбегаться. Размер текстуры тени можно связать с матрицей проекции. Надо увеличил, надо- уменьшил. Главное размер текстуры чтобы постоянный был.
Что должно твориться в пиксельном шейдере, а что в вершинном есть в примерах.
Бороться с пикселями можго двумя способами:
- разумными параметрами матриц.(их надо менять в зависимости от расстояния до земли) Ну тут Вам геометрия в помощь.
Эти матрицы имеют смысл, понять который можно посмотрев их параметры.
- Blur (ну это в пиксельном шейдере)
Ещё можно сочетать шадовмаппинг со стенсильными тенями где это можно, чтобы не грузить комп.
gugenot присоединил изображение:


[109,45Kb]
Изменил(а) gugenot, 28.08.2013 21:19:46
У меня настенный календарь на месяц заканчивается. За билетами на церемонию конца света обращайтесь в личку.
 
CSharpCraft
#11 Распечатать сообщение
Опубликовано 29.08.2013 11:11:48
Аватар пользователя

Специалист


Сообщений: 190
Зарегистрирован: 27.03.13

А вообще это дело очень сложно и будет очень много кушать производительности.
Вот еще один способ - http://kavayii.bl...gpu-1.html
 
Перейти на форум:
Авторизация
Логин

Пароль



Вы не зарегистрированы?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Мини-чат
Вы должны авторизироваться, чтобы добавить сообщение.

27.08.2014
Я умею немного на asp.net + html и css

22.08.2014
на ASP mvc 3 есть пару проектов. Могу помочь, если нужно. Обидно, если закроется Frown

21.08.2014
я тоже ноль

21.08.2014
Я в вебе только с php занимался да и то на уровне чтоб работало.

21.08.2014
Я в вебе полный ноль…

21.08.2014
Переводить его надо, хоть на ту же азуру. И двиг менять на что-то современное. Если есть веб-разрабы - можем скооперироваться. Один делать не буду.

21.08.2014
не знаю всех нюансов по оплате и все хорошее когда нибудь заканчивается

21.08.2014
А что случилось?

21.08.2014
похоже сайт будет работать до 28го числа

09.08.2014
Апи пока не видел. Но есть приложение в магазине Live Lock Screen BETA, так что думаю скоро будет

08.08.2014
Я про API для Update1. На нем работает это

08.08.2014
А что именно нужно? Чтото и сейчас открыто http://msdn.micro.
...105).aspx

06.08.2014
Кто-нибудь слышал об открытии доступа к Lock Screen Api?

31.07.2014
VPDExpress на базе MVS 2012, ни в какую не ловит исключения. Даже если их сам создаешь. И всех так?

25.07.2014
С днем системного администратора причастных к этой профессии! По случаю - тортик от жены

RSS каналы сайта
XNA - Новости
XNA - Статьи
XNA - Форум
XNA - Галерея
XNA - Файлы
Время загрузки: 0,19 секунд 8,709,620 уникальных посетителей