oepngl学习笔记——让p(l)y变得cool~(光照)

本文介绍了如何在OpenGL中添加光照效果,以提升PLY模型的视觉表现。通过开启光照功能并绑定光源到相机,使得模型的每一个细节都能清晰呈现。同时,设置法向量以计算点的颜色。虽然目前的模型效果只是初步的,但已经比单纯的颜色块有了显著改进。下一部分将讨论用户操作及完整代码。
摘要由CSDN通过智能技术生成

上一讲我们大致讲了如何绘制ply。但是这还不够,你得到的东西看起来就像是一个颜色块。这是因为这个世界没有光,我们要加上光照的效果。为此,我们在Init函数里这样设置

glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);

这样我们开启了光照功能,并启动了light0,你可以依葫芦画瓢的启动light1,2,3,4……不过,要注意的是,在opengl管线编程,也就是像我们这样用函数设置各种效果的编程下,能启动的光源是有限的。同时,开启光源将关闭你的所有关于颜色的定义。

接着我们把光源绑在相机上,这样方便我们看清楚模型的每一个毛孔。

glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glLightfv(GL_LIGHT0, GL_POSITION, l_position);
gluLookAt(b, c, a,
        T_x, T_y, T_z,
        0, 1, 0);

1_position是一个数组,{0,0,0,1},前三个数据代表相机位置,最后一个一般情况下是1,如果想弄面光源(英文说是direction light),就写0,前三个参数就会变成光源方向。其他的值参考书里没讲,有兴趣的自己查吧。我们在调用视点变化函数指定相机状态之前说明光源位置,光源就会一起做变化,因为这里放在了(0,0,0),也就是相机初始点,所以之后不管怎么动,光源都在相机的地方。

同时,我们对于法向量也要设置,这样opengl才能计

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值