首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何照亮物体,phong模型

如何照亮物体,phong模型
EN

Stack Overflow用户
提问于 2012-11-22 06:47:03
回答 1查看 233关注 0票数 3

我正在尝试找出如何使用phong模型来缩放具有照明照明的颜色。例如,给定i= KaAx,其中ka是环境系数,Ax是环境照明强度,其中x可以是r,b或g,例如,我希望将其应用于纹理颜色为(1,0,1)的曲面。我试着将单个rgb值乘以I,(r*Ka*Ar.r,r*Kb*Ag,r*Kg*Ab)照明,但它可以完全改变颜色,这不是我想要的。

EN

回答 1

Stack Overflow用户

发布于 2014-01-15 05:57:34

好的,我看到了几件事:

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

对每种颜色(.r、.g、.b)和像太阳这样的平行光试试这个:

代码语言:javascript
复制
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。

原点设置为0.0,0.0,0.0

  • If的
  • NormalMatrix是ModelView,您还需要添加反射比,然后不要忘记计算反射法线...它与用于漫反射光的不同(除非天框的大小是无限的)。此外,带有环境skybox的立方体地图也有很大帮助。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13503325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档