初探计算机图形编程技术之OpenGL编程光照篇

在人类通过眼睛能感知的世界中,最终中的一个因素就是光照,所以OpenGL要想把现实世界展示到屏幕上也是离不开光照的。
光照效果

OpenGL的光照系统有三大部分组成:光源,材质,光照环境。

  • 光源就是光的来源,是“光”这种物质的提供者;
  • 材质是指被光源照射的物体的表面的反射、漫反射(OpenGL不考虑折射)特性;
  • 光照环境反应环境中所有光源发出的光经过无数次反射、漫反射之后整体环境所表现出来的光照效果。指定合适的光照环境参数可以使得最后形成的画面更接近于真实场景。

OpenGL如何构造光照模型

OpenGL需要知道的数据:景物表面任何一点被光照射后投向观察者眼中光亮度的大小。现实情况一个物体表面上一点的光亮度,受很多因素影响,想用一个数学模型表达出来非常难。所以OpenGL对这个过程进行了简单化处理,根据不同的环境将光照分成三种模型:漫射光,高光(镜面反射光)以及环境光。
漫射光
高光
环境光
不同光的计算的数学模型
  1. phong光照模型
  • 环境光:
    环境光数学模型

    其中la是一个常数。

  • 漫射光:
    漫射光数学模型
  • 高光:
    高光数学模型

    三种光综合得到总的光照模型:
    综合光照
  1. Blinn光照模型

    在漫射光、环境光上跟Phong模型是一致的,主要是在高光上做了简化处理:
    Blinn光照模型

    未完待续。。。

你可能感兴趣的:(初探计算机图形编程技术之OpenGL编程光照篇)