Показать сообщение отдельно
Старый 18.06.2012, 11:44   #78
Nikich
Бывалый
 
Регистрация: 22.12.2011
Сообщений: 844
Написано 150 полезных сообщений
(для 275 пользователей)
Ответ: Вопросы по XNA.

Нужна помощь с реализацией теней в 2D, а именно в теоритической части. Сам я придумал только один способ, но он должен быть крайне медленным.
В общем, вот в чем моя идея. После того как мы получили рендер сцены, в пиксельном шейдере меняем бэкграунд на белый(даже лучше на прозрачный). На это уйдет первый пасс. Второй пасс уходит на следующие:
Для каждого пикселя ищем угол от центра до него(до центра потому что источник света в центре), и зная угол, через синусы и косинусы приравниваем цвет этого пикселя к тому цвету пикселя, что лежит немного дальше. Таким образом, если пиксель рядом с предметом, что отбрасывает тень, то он(пиксель) станет черным. Хотя таким способом тени будут очень короткие, поэтому можно сделать еще один пасс на такую же функцию. Но можно и не делать, если длинные тени не нужны. Ну а потом накладываем на наш рендер то, что у нас получилось.
И как это все будет по скорости? И есть ли у вас другие предложения по этой теме?
(Offline)
 
Ответить с цитированием