Тема: Странное.
Показать сообщение отдельно
Старый 27.11.2011, 03:37   #274
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Странное.

Да и я в RUST'е делал, с изменением размера динамично исходя из положеня, ведь в зените будет маленькое..
Вот вырезки из шейдера, за стиль приношу извенения, раньше опыта и дисциплины не хватало:

VecSky.xyz = normalize(PosCam-IN.pWorld);
DotSun = pow(max(dot(VecSun,VecSky.xyz),0.0f),SizeSun);
Color.rgb += DotSun;
VecSky.xyz - это тупо вектор от центра камеры к обрабатываемому пикселю.
VecSun - это вектор (переменная), которую ты посылаешь с кода. Вектор от камеры, где солнце находится, например { 0,1,0 } - это вертикально сверху.
SizeSun нада большим числом, попробуй сперва 10f например, потом поэксперементируй, я не помню уже.
Собственно и всё. На деле всё ОЧЕНЬ просто, и можно без проблем регулировать и положение и размер, и цвет да что угодно. Не мудри с нормалями - они не стабильны, используй как предложил вектор между камерой и позицией пикселя.

Глянь RUST, я когда-то делал небо там, правда сейчас бы сделал лучше, но там неплохо закат был имхо.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
dsd (27.11.2011)