OpenGL-入门-光照

本文介绍了OpenGL中的光照处理,包括建立光照模型、法线向量、控制光源和材质,以及选择光照模型。在OpenGL中,光源、材质和光照环境是关键元素,法线向量用于计算光照效果。光源可以通过glEnable和glLight函数设置,材质属性通过glMaterial函数调整,光照模型通过glLightModel函数控制。最后,启用或禁用光照处理功能以呈现最终效果。
摘要由CSDN通过智能技术生成

一、建立光照模型

OpenGL 在处理光照时采用这样一种近似:把光照系统分为三部分,分别是光源、材质和光照环境。
  光源就是光的来源, 可以是前面所说的太阳或者电灯等。材质是指接受光照的各种物体的表面,由于物体如何反射光线只由物体表面决定 (OpenGL 中没有考虑光的折射)。
  材质特点就决定了物体反射光线的特点。光照环境是指一些额外的参数,它们将影响最终的光照画面,比如一些光线经过多次反射后,已经无法分清它究竟是由哪个光源发出,这时,指定一个“环境亮度” 参数,可以使最后形成的画面更接近于真实情况。
  在物理学中,光线如果射入理想的光滑平面,则反射后的光线是很规则的(这样的反射称为镜面反射)。光线如果射入粗糙的、不光滑的平面,则反射后的光线是杂乱的(这样的反射称为漫反射)。现实生活中的物体在反射光线时,并不是绝对的镜面反射或漫反射,但可以看成是这两种反射的叠加。对于光源发出的光线,可以分别设置其经过镜面反射和漫反射后的光线强度。对于被光线照射的材质,也可以分别设置光线经过镜面反射和漫反射后的光线强度。这些因素综合起 来,就形成了最终的光照效果。

二、法线向量

根据光的反射定律,由光的入射方向和入射点的法线就可以得到光的出射方向。因此,对于指定的物体,在指定了光源后,即可计算出光的反射方向,进而计算出光照效果的画面。在 OpenGL 中,法线的方向是用一个向量来表示。 不幸的是,OpenGL 并不会根据你所指定的多边形各个顶点来计算出这些多边形所构成的物体的表面的每个点的法线,通常,为了实现光照效果,需要在代码中为每一个顶点指定其法线向量。
  指定法线向量的方式与指定颜色的方式有雷同之处。
  在指定颜色时,只需要指定每一个顶点的颜色,OpenGL 就可以自 行计算顶点之间的其它点的颜色。并且,颜色一旦被指定,除非再指定新的颜色,否则以后指定的所有顶点都将以这一向量作为自己的颜色。使用 glColor* 函数可以指定颜色。
  在指定法线向量时,只需要指定每一个顶点的法线向量OpenGL 会自行计算顶点之间的其它点的法线向量。并且,法线向量一旦被指定,除非再指定新的法线向量,否则以后指定的所有顶点都将以这一向量作为自己的法线向量。而使用 glNormal函数则可以指定法线向量。
  注意:

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值