3D编程技巧:OpenGL ES光照详解
1. 3D向量距离计算
在3D编程中,我们可以使用 dist() 和 distSquared() 方法来计算两个向量之间的距离。不过,这里没有像2D向量那样的 angle() 方法。虽然可以测量3D中两个向量之间的角度,但这个角度不在0到360度的范围内。通常,我们通过只使用每个向量的两个分量,并应用2D向量的 angle() 方法,来评估两个向量在x/y、z/y和x/z平面上的角度。在后续的游戏开发中,我们才会用到这个功能。
2. OpenGL ES光照概述
OpenGL ES中的光照是一个实用的特性,它能为3D游戏增添出色的视觉效果。要使用这个功能,我们需要了解OpenGL ES的光照模型。
3. 光照原理
光照的实现需要三个要素:
- 光源:用于发出光线。
- 被照亮的物体。
- 传感器:如眼睛或相机,用于捕捉光源发出并被物体反射回来的光子。
光照会根据以下因素改变物体的颜色感知:
- 光源类型
- 光源颜色和强度
- 光源相对于被照物体的位置和方向
- 物体的材质和纹理
光线反射的强度取决于光线照射到物体表面的角度。光线与表面越垂直,反射光的强度就越大。光线照射到表面后,会以两种方式反射:
- 漫反射:大部分光线以漫反射的方式反射,即反射光线会因物体表面的不规则性而随机散射。
- 镜面反射:部分反射是镜面反射,光线就像击中完美镜子一样反射
超级会员免费看
订阅专栏 解锁全文
1879

被折叠的 条评论
为什么被折叠?



