我试图弄清楚如何使用phong模型使用照明照明来缩放颜色。例如,给定I = KaAx,其中ka是环境系数,Ax是环境照明强度,其中x可以是rb或g,我想将其应用于纹理颜色为(1,0,1)的表面,例如。我尝试将各个rgb值乘以I,(r * Ka * Ar.r,r * Kb * Ag,r * Kg * Ab)照明,但唉,它可以完全改变颜色,这不是我想要的。
答案 0 :(得分:0)
好的,我看到的东西很少:
对每种颜色(.r,.g,.b)和像Sun这样的定向光试试:
pixel_color.r=clamp_to_1 // clamp to <0.0,1.1>
(
texture_color.r*glColor.r // pixel color without lighting
*( // apply lighting
diffuse.r*((glNormal.xyz*NormalMatrix).light_dir.xyz) // diffuse * dot product of light source direction and normal vectors. If you need also consider distance just multiply by next term...
+ambient.r // ambient light is additive !!!
)
);
PS。