From a6ae1ba2854b38bd709813c0ec057067deaf38ac Mon Sep 17 00:00:00 2001 From: SuperAo Date: Sun, 28 Apr 2024 10:00:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=A1=E5=AF=B9=20docs/03=20Model=20Loading/?= =?UTF-8?q?02=20Mesh.md=EF=BC=8C=E5=B0=86"constructor"=E7=94=B1"=E6=9E=84?= =?UTF-8?q?=E9=80=A0=E5=99=A8"=E7=BF=BB=E8=AF=91=E4=B8=BA"=E6=9E=84?= =?UTF-8?q?=E9=80=A0=E5=87=BD=E6=95=B0"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/03 Model Loading/02 Mesh.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/03 Model Loading/02 Mesh.md b/docs/03 Model Loading/02 Mesh.md index b7c6790..5b8a5dc 100644 --- a/docs/03 Model Loading/02 Mesh.md +++ b/docs/03 Model Loading/02 Mesh.md @@ -4,7 +4,7 @@ ---|--- 作者 | JoeyDeVries 翻译 | Krasjet -校对 | 暂未校对 +校对 | [AoZhang](https://github.com/SuperAoao) 通过使用Assimp,我们可以加载不同的模型到程序中,但是载入后它们都被储存为Assimp的数据结构。我们最终仍要将这些数据转换为OpenGL能够理解的格式,这样才能渲染这个物体。我们从上一节中学到,网格(Mesh)代表的是单个的可绘制实体,我们现在先来定义一个我们自己的网格类。 @@ -51,9 +51,9 @@ class Mesh { }; ``` -你可以看到这个类并不复杂。在构造器中,我们将所有必须的数据赋予了网格,我们在setupMesh函数中初始化缓冲,并最终使用Draw函数来绘制网格。注意我们将一个着色器传入了Draw函数中,将着色器传入网格类中可以让我们在绘制之前设置一些uniform(像是链接采样器到纹理单元)。 +你可以看到这个类并不复杂。在构造函数中,我们将所有必须的数据赋予了网格,我们在setupMesh函数中初始化缓冲,并最终使用Draw函数来绘制网格。注意我们将一个着色器传入了Draw函数中,将着色器传入网格类中可以让我们在绘制之前设置一些uniform(像是链接采样器到纹理单元)。 -构造器的内容非常易于理解。我们只需要使用构造器的参数设置类的公有变量就可以了。我们在构造器中还调用了setupMesh函数: +构造函数的内容非常易于理解。我们只需要使用构造函数的参数设置类的公有变量就可以了。我们在构造函数中还调用了setupMesh函数: ```c++ Mesh(vector vertices, vector indices, vector textures) @@ -70,7 +70,7 @@ Mesh(vector vertices, vector indices, vector text ## 初始化 -由于有了构造器,我们现在有一大列的网格数据用于渲染。在此之前我们还必须配置正确的缓冲,并通过顶点属性指针定义顶点着色器的布局。现在你应该对这些概念都很熟悉了,但我们这次会稍微有一点变动,使用结构体中的顶点数据: +多亏了构造函数,我们现在有一大列的网格数据可以用于渲染。在此之前我们还必须配置正确的缓冲,并通过顶点属性指针定义顶点着色器的布局。现在你应该对这些概念都很熟悉了,但我们这次会稍微有一点变动:使用结构体中的顶点数据: ```c++ void setupMesh()