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