Opengl场景中加光照包含几个步骤,各个步骤实现用的函数是什么?

Opengl场景中加光照包含几个步骤,各个步骤实现用的函数是什么?,第1张

1.设置漫射光&环境光,并制定光源位置

glLightfv(GL_LIGHT1, GL_AMBIENT, LightAmbient)// 设置环境光

glLightfv(GL_LIGHT1, GL_DIFFUSE, LightDiffuse)// 设置漫射光

glLightfv(GL_LIGHT1, GL_POSITION,LightPosition)// 设置光源位置

2.启用光源

glEnable(GL_LIGHT1)// 启用一号光源

2.设定各表面法线

glNormal3f( 0.0f, 0.0f,-1.0f)// 法线背向观察者

2.禁用光源

glDisable(GL_LIGHTING)// 禁用光源

标号相同即无顺序区别。

来源:NEHEOPENGL中文教程

MORE iNFORMATION , 度娘一下~

%首先你先要明白的一点是OpenglGL中任何几何图形都是有两个面的,如果你法线设置正确,那么顶点的最终颜色应该与顶点法线向量和光线向量的夹角有关, 夹角越大顶点的颜色就越暗,夹角越小顶点的颜色就越亮。你之所以说球无论怎么旋转都是亮的是因为球的每个顶点在旋转时它的法线向量也是跟着旋转的,所以能得到正确的光照结果。就你这个程序,这样的结果是正确的,因为你的线段在旋转时它的法线也跟着一起旋转了, 那么当它的背面朝向你时它的颜色会暗一些。 其实球也是一样的, 只不过它的背面在球内部你看不到罢了,其实也是暗的。 无论球怎么旋转它所呈现在你面前的都是正面。 你想要你的线段在任何角度看都是亮的可以在每次旋转线段时重新设置线段每个顶点的法线,使其与光线的夹角为0°或是你想要的角度。 不过我想提醒你, 无论你想要做什么课题这样设置都不是一件什么好事情, 它并不有趣。 请保持Opengl给你程序带来的正确性。 #%


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11519860.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存