Показать сообщение отдельно
Старый 10.05.2014, 11:14   #122
tirarex
Бывалый
 
Аватар для tirarex
 
Регистрация: 23.11.2011
Сообщений: 863
Написано 334 полезных сообщений
(для 866 пользователей)
Ответ: Xors3D. Шейдеры. Урок первый

Вот такой вопрос .
Делаю спотлайт для деферреда и настигла проблема .

Код спотлайта

cD = cD * cLightColor;
float3 vLight = normalize(vLightPos - vWorldPos.xyz);
float NdotL = max(0.0f, dot(vNormal, vLight));
float cosAngle = max(0.0f, dot(-vSpotLightDir, vLight));
float resi = saturate(1.0f - distance(vWorldPos.xyz, vLightPos) / fLightRadius);
float spotAtten = smoothstep(vLightAngles.x, vLightAngles.z, cosAngle);
cD=cD*(NdotL*spotAtten);

из кода
xSetEffectVector gPostPoly,"vLightAngles",0.1,0,numval(180)


Чем больше vLightAngles.z тем ярче спотлайт
в итоге я получаю еле светлый свет при яркости 255(1в шейдере).
Как исправить я даже не знаю
(Offline)
 
Ответить с цитированием