gpt4 book ai didi

graphics - 如何照亮物体,phong 模型

转载 作者:行者123 更新时间:2023-12-02 19:22:02 26 4
gpt4 key购买 nike

我试图弄清楚如何使用 phong 模型通过照明照明来缩放颜色。例如,给定 I = KaAx,其中 ka 是环境系数,Ax 是环境照明强度,其中 x 可以是 r b 或 g,我想将其应用于纹理颜色为 (1,0,1) 的表面。我尝试将各个 rgb 值乘以 I, (r*Ka*Ar.r,r*Kb*Ag,r*Kg*Ab) 照明,但可惜,它可以完全改变颜色,这不是我想要的。

最佳答案

好吧,我看到了一些东西:

  • 环境光和漫射光不应相乘,而应使用加法
  • 你没有使用任何法线向量或光线方向/位置(至少我在任何地方都找不到它)
  • 您还应该使用 glColor 参数(除非您根本不使用它)

对每种颜色(.r、.g、.b)和定向光(如太阳)尝试此操作:

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。

  • NormalMatrix 是原点设置为 [0.0,0.0,0.0] 的 ModelView(无位置偏移)
  • 如果您还想添加反射率,那么不要忘记计算反射法线...它与用于漫射光的不同(除非天空盒大小无限)。带有环境天空盒的立方体贴图也有很大帮助。

关于graphics - 如何照亮物体,phong 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13503325/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com