diff --git a/docs/01 Getting started/04 Hello Triangle.md b/docs/01 Getting started/04 Hello Triangle.md
index 221ed70..1a06e55 100644
--- a/docs/01 Getting started/04 Hello Triangle.md
+++ b/docs/01 Getting started/04 Hello Triangle.md
@@ -160,8 +160,18 @@ void main()
当前这个顶点着色器可能是我们能想到的最简单的顶点着色器了,因为我们对输入数据什么都没有处理就把它传到着色器的输出了。在真实的程序里输入数据通常都不是标准化设备坐标,所以我们首先必须先把它们转换至OpenGL的可视区域内。
## 编译着色器
+现在,我们暂时将顶点着色器的源代码硬编码在代码文件顶部的C风格字符串中:
-我们已经写了一个顶点着色器源码(储存在一个C的字符串中),但是为了能够让OpenGL使用它,我们必须在运行时动态编译它的源码。
+```c++
+const char *vertexShaderSource = "#version 330 core\n"
+ "layout (location = 0) in vec3 aPos;\n"
+ "void main()\n"
+ "{\n"
+ " gl_Position = vec4(aPos.x, aPos.y, aPos.z, 1.0);\n"
+ "}\0";
+```
+
+为了能够让OpenGL使用它,我们必须在运行时动态编译它的源代码。
我们首先要做的是创建一个着色器对象,注意还是用ID来引用的。所以我们储存这个顶点着色器为`unsigned int`,然后用glCreateShader创建这个着色器:
@@ -217,7 +227,7 @@ void main()
}
```
-片段着色器只需要一个输出变量,这个变量是一个4分量向量,它表示的是最终的输出颜色,我们应该自己将其计算出来。我们可以用`out`关键字声明输出变量,这里我们命名为FragColor。下面,我们将一个alpha值为1.0(1.0代表完全不透明)的橘黄色的`vec4`赋值给颜色输出。
+片段着色器只需要一个输出变量,这个变量是一个4分量向量,它表示的是最终的输出颜色,我们应该自己将其计算出来。声明输出变量可以使用`out`关键字,这里我们命名为FragColor。下面,我们将一个Alpha值为1.0(1.0代表完全不透明)的橘黄色的`vec4`赋值给颜色输出。
编译片段着色器的过程与顶点着色器类似,只不过我们使用GL_FRAGMENT_SHADER常量作为着色器类型: