2024年5月9日发(作者:)
图元是构成复杂物体的基本绘图要素。在OpenGL ES中,你可以使用的图元有点,
线,三角形。它们都有非常强的自我解释性,我觉得你需要有些例子让你看到它们。
首先,让我们来看看一些代码,然后我们可以谈论这是怎么回事,这样您就可以使用
它来创建一些自己的代码。
图元 #1 - 三角形
三角形是最“复杂”的图元,但是很容易使用,并且非常实用,这将是你可以绘制的
第一个OpenGL的图元。当我们绘制一个三角形的时候,我们需要告诉OpenGL在3d空间
中的三角形的3系坐标,并且,OpenGL将非常顺利的渲染这个三角形。
在开始之前,复制00教程中的项目代码或者从这里下载下项目代码: AppleCoder-
.在XCode中打开,开启EAGLView.m文件,找到drawView函数。
这里就是施展魔法的地方。
首先,我们需要定义一个三角形。要做到这点,我们需要知道在我们要处理的坐标的
两种类型:模型和世界。模型坐标是指我们正在绘制的实际图元,世界坐标告诉OpenGL
观察者在哪里。(在世界坐标中,观察者一般在(0.0,0.0,0.0)的地方)
第一个例子将说明这点。首先,我们定义这个三角形在模型空间使用3 x 3d 坐标
(x,y,z):
const GLfloat triangleVertices[] = {
0.0, 1.0, -6.0,// Triangle top centre
-1.0, -1.0, -6.0,// bottom left
1.0, -1.0, -6.0,// bottom right
};
如上所示,这里使用了3个坐标来表示一个三角形,需要注意的是,我们定义三角形
顶点是逆时针来显示的。虽然描述三角形的可以用逆时针也可以用顺时针,但是我们必须
和上述一样用逆时针来描述三角形。不过,我建议你用逆时针来描述三角形,因为我们以
后可以用逆三角形来达到一些先进的功能。
(补充:逆三角形在3d中被认为是正面,而顺三角形则被认为是反面。在纹理渲染
中被使用到)
虽然本教程应该是纯粹的iPhone OpenGL ES的,对于初学者来说,我会简要的描述
三维坐标系统。看看这张图片:
发布评论