mirror of
https://github.com/LearnOpenGL-CN/LearnOpenGL-CN.git
synced 2025-08-23 04:35:28 +08:00
Merge pull request #2 from LearnOpenGL-CN/new-theme
update with master branch
This commit is contained in:
@@ -170,7 +170,7 @@ glUniform4f(vertexColorLocation, 0.0f, greenValue, 0.0f, 1.0f);
|
||||
|
||||
首先我们通过<fun>glfwGetTime()</fun>获取运行的秒数。然后我们使用<fun>sin</fun>函数让颜色在0.0到1.0之间改变,最后将结果储存到<var>greenValue</var>里。
|
||||
|
||||
接着,我们用<fun>glGetUniformLocation</fun>查询uniform `ourColor`的位置值。我们为查询函数提供着色器程序和uniform的名字(这是我们希望获得的位置值的来源)。如果<fun>glGetUniformLocation</fun>返回`-1`就代表没有找到这个位置值。最后,我们可以通过<fun>glUniform4f</fun>函数设置uniform值。注意,查询uniform地址不要求你之前使用过着色器程序,但是更新一个unform之前你**必须**先使用程序(调用<fun>glUseProgram</fun>),因为它是在当前激活的着色器程序中设置unform的。
|
||||
接着,我们用<fun>glGetUniformLocation</fun>查询uniform `ourColor`的位置值。我们为查询函数提供着色器程序和uniform的名字(这是我们希望获得的位置值的来源)。如果<fun>glGetUniformLocation</fun>返回`-1`就代表没有找到这个位置值。最后,我们可以通过<fun>glUniform4f</fun>函数设置uniform值。注意,查询uniform地址不要求你之前使用过着色器程序,但是更新一个uniform之前你**必须**先使用程序(调用<fun>glUseProgram</fun>),因为它是在当前激活的着色器程序中设置uniform的。
|
||||
|
||||
!!! Important
|
||||
|
||||
@@ -444,4 +444,4 @@ while(...)
|
||||
|
||||
1. 修改顶点着色器让三角形上下颠倒:[参考解答](http://learnopengl.com/code_viewer.php?code=getting-started/shaders-exercise1)
|
||||
2. 使用uniform定义一个水平偏移量,在顶点着色器中使用这个偏移量把三角形移动到屏幕右侧:[参考解答](http://learnopengl.com/code_viewer.php?code=getting-started/shaders-exercise2)
|
||||
3. 使用`out`关键字把顶点位置输出到片段着色器,并将片段的颜色设置为与顶点位置相等(来看看连顶点位置值都在三角形中被插值的结果)。做完这些后,尝试回答下面的问题:为什么在三角形的左下角是黑的?:[参考解答](http://learnopengl.com/code_viewer.php?code=getting-started/shaders-exercise3)
|
||||
3. 使用`out`关键字把顶点位置输出到片段着色器,并将片段的颜色设置为与顶点位置相等(来看看连顶点位置值都在三角形中被插值的结果)。做完这些后,尝试回答下面的问题:为什么在三角形的左下角是黑的?:[参考解答](http://learnopengl.com/code_viewer.php?code=getting-started/shaders-exercise3)
|
||||
|
@@ -26,7 +26,7 @@ Phong光照很棒,而且性能较高,但是它的镜面反射在某些条件
|
||||
|
||||

|
||||
|
||||
当视线方向恰好与反射向量对称时,半程向量就与法线向量重合。这样观察者距离原来的反射方向越近,镜面反射的高光就会越强。
|
||||
当视线方向恰好与(想象中的)反射向量对齐时,半程向量就与法线向量重合。这样观察者的视线越接近原本的反射方向,镜面反射的高光就会越强。
|
||||
|
||||
这里,你可以看到无论观察者往哪里看,半程向量和表面法线之间的夹角永远都不会超过90度(当然除了光源远远低于表面的情况)。这样会产生和Phong反射稍稍不同的结果,但这时看起来会更加可信,特别是发光值参数比较低的时候。Blinn-Phong着色模型也正是早期OpenGL固定函数输送管道(fixed function pipeline)所使用的着色模型。
|
||||
|
||||
|
@@ -127,7 +127,7 @@ $$
|
||||
\begin{bmatrix} \Delta U_1 & \Delta V_1 \\ \Delta U_2 & \Delta V_2 \end{bmatrix}^{-1} \begin{bmatrix} E_{1x} & E_{1y} & E_{1z} \\ E_{2x} & E_{2y} & E_{2z} \end{bmatrix} = \begin{bmatrix} T_x & T_y & T_z \\ B_x & B_y & B_z \end{bmatrix}
|
||||
$$
|
||||
|
||||
这样我们就可以解出\(T\)和\(B\)了。这需要我们计算出delta纹理坐标矩阵的拟阵。我不打算讲解计算逆矩阵的细节,但大致是把它变化为,1除以矩阵的行列式,再乘以它的共轭矩阵。
|
||||
这样我们就可以解出\(T\)和\(B\)了。这需要我们计算出delta纹理坐标矩阵的拟阵。我不打算讲解计算逆矩阵的细节,但大致是把它变化为,1除以矩阵的行列式,再乘以它的伴随矩阵(Adjugate Matrix)。
|
||||
|
||||
$$
|
||||
\begin{bmatrix} T_x & T_y & T_z \\ B_x & B_y & B_z \end{bmatrix} = \frac{1}{\Delta U_1 \Delta V_2 - \Delta U_2 \Delta V_1} \begin{bmatrix} \Delta V_2 & -\Delta V_1 \\ -\Delta U_2 & \Delta U_1 \end{bmatrix} \begin{bmatrix} E_{1x} & E_{1y} & E_{1z} \\ E_{2x} & E_{2y} & E_{2z} \end{bmatrix}
|
||||
|
@@ -1,6 +1,6 @@
|
||||
# 渲染文本
|
||||
|
||||
| 原文 | [Particles](https://learnopengl.com/#!In-Practice/2D-Game/Render-text) |
|
||||
| 原文 | [Render text](https://learnopengl.com/#!In-Practice/2D-Game/Render-text) |
|
||||
| ---- | ---------------------------------------- |
|
||||
| 作者 | JoeydeVries |
|
||||
| 翻译 | [aillieo](https://github.com/aillieo) |
|
||||
|
@@ -72,7 +72,7 @@ pages:
|
||||
- 后期处理: '06 In Practice/2D-Game/07 Postprocessing.md'
|
||||
- 道具: '06 In Practice/2D-Game/08 Powerups.md'
|
||||
- 音效: '06 In Practice/2D-Game/09 Audio.md'
|
||||
- 渲染文字: '06 In Practice/2D-Game/10 Render Text.md'
|
||||
- 渲染文本: '06 In Practice/2D-Game/10 Render Text.md'
|
||||
- 结语: '06 In Practice/2D-Game/11 Final thoughts.md'
|
||||
|
||||
site_name: 'LearnOpenGL CN'
|
||||
|
Reference in New Issue
Block a user