From 994b2801db208fce740c4437936006271d3c44e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=AD=E6=97=B6=E6=9D=B0?= <746715040@qq.com> Date: Mon, 21 Jun 2021 00:49:25 +0800 Subject: [PATCH 1/2] Update 07 Transformations.md --- docs/01 Getting started/07 Transformations.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/01 Getting started/07 Transformations.md b/docs/01 Getting started/07 Transformations.md index 4949769..9f6dd88 100644 --- a/docs/01 Getting started/07 Transformations.md +++ b/docs/01 Getting started/07 Transformations.md @@ -460,7 +460,7 @@ unsigned int transformLoc = glGetUniformLocation(ourShader.ID, "transform"); glUniformMatrix4fv(transformLoc, 1, GL_FALSE, glm::value_ptr(trans)); ``` -我们首先查询uniform变量的地址,然后用有`Matrix4fv`后缀的glUniform函数把矩阵数据发送给着色器。第一个参数你现在应该很熟悉了,它是uniform的位置值。第二个参数告诉OpenGL我们将要发送多少个矩阵,这里是1。第三个参数询问我们我们是否希望对我们的矩阵进行置换(Transpose),也就是说交换我们矩阵的行和列。OpenGL开发者通常使用一种内部矩阵布局,叫做列主序(Column-major Ordering)布局。GLM的默认布局就是列主序,所以并不需要置换矩阵,我们填`GL_FALSE`。最后一个参数是真正的矩阵数据,但是GLM并不是把它们的矩阵储存为OpenGL所希望接受的那种,因此我们要先用GLM的自带的函数value_ptr来变换这些数据。 +我们首先查询uniform变量的地址,然后用有`Matrix4fv`后缀的glUniform函数把矩阵数据发送给着色器。第一个参数你现在应该很熟悉了,它是uniform的位置值。第二个参数告诉OpenGL我们将要发送多少个矩阵,这里是1。第三个参数询问我们我们是否希望对我们的矩阵进行转置(Transpose),也就是说交换我们矩阵的行和列。OpenGL开发者通常使用一种内部矩阵布局,叫做列主序(Column-major Ordering)布局。GLM的默认布局就是列主序,所以并不需要置换矩阵,我们填`GL_FALSE`。最后一个参数是真正的矩阵数据,但是GLM并不是把它们的矩阵储存为OpenGL所希望接受的那种,因此我们要先用GLM的自带的函数value_ptr来变换这些数据。 我们创建了一个变换矩阵,在顶点着色器中声明了一个uniform,并把矩阵发送给了着色器,着色器会变换我们的顶点坐标。最后的结果应该看起来像这样: From f85f54fbdbd0a51ed916b0e26778fafff311cc0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=AD=E6=97=B6=E6=9D=B0?= <746715040@qq.com> Date: Mon, 21 Jun 2021 00:57:09 +0800 Subject: [PATCH 2/2] Update 07 Transformations.md --- docs/01 Getting started/07 Transformations.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/01 Getting started/07 Transformations.md b/docs/01 Getting started/07 Transformations.md index 9f6dd88..7d879fc 100644 --- a/docs/01 Getting started/07 Transformations.md +++ b/docs/01 Getting started/07 Transformations.md @@ -460,7 +460,7 @@ unsigned int transformLoc = glGetUniformLocation(ourShader.ID, "transform"); glUniformMatrix4fv(transformLoc, 1, GL_FALSE, glm::value_ptr(trans)); ``` -我们首先查询uniform变量的地址,然后用有`Matrix4fv`后缀的glUniform函数把矩阵数据发送给着色器。第一个参数你现在应该很熟悉了,它是uniform的位置值。第二个参数告诉OpenGL我们将要发送多少个矩阵,这里是1。第三个参数询问我们我们是否希望对我们的矩阵进行转置(Transpose),也就是说交换我们矩阵的行和列。OpenGL开发者通常使用一种内部矩阵布局,叫做列主序(Column-major Ordering)布局。GLM的默认布局就是列主序,所以并不需要置换矩阵,我们填`GL_FALSE`。最后一个参数是真正的矩阵数据,但是GLM并不是把它们的矩阵储存为OpenGL所希望接受的那种,因此我们要先用GLM的自带的函数value_ptr来变换这些数据。 +我们首先查询uniform变量的地址,然后用有`Matrix4fv`后缀的glUniform函数把矩阵数据发送给着色器。第一个参数你现在应该很熟悉了,它是uniform的位置值。第二个参数告诉OpenGL我们将要发送多少个矩阵,这里是1。第三个参数询问我们我们是否希望对我们的矩阵进行转置(Transpose),也就是说交换我们矩阵的行和列。OpenGL开发者通常使用一种内部矩阵布局,叫做列主序(Column-major Ordering)布局。GLM的默认布局就是列主序,所以并不需要转置矩阵,我们填`GL_FALSE`。最后一个参数是真正的矩阵数据,但是GLM并不是把它们的矩阵储存为OpenGL所希望接受的那种,因此我们要先用GLM的自带的函数value_ptr来变换这些数据。 我们创建了一个变换矩阵,在顶点着色器中声明了一个uniform,并把矩阵发送给了着色器,着色器会变换我们的顶点坐标。最后的结果应该看起来像这样: