From 365d216fe0f1a64d8cfccd3e99f64e875a19a4ff Mon Sep 17 00:00:00 2001 From: JChehe <574805242@qq.com> Date: Sat, 14 Oct 2017 16:03:19 +0800 Subject: [PATCH] more accurate Chinese translation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit I think this is a more accurate Chinese translation, 片段 / 片断 -> 片元 --- webgl/lessons/zh_cn/webgl-2d-drawimage.md | 2 +- .../zh_cn/webgl-3d-lighting-directional.md | 12 ++++---- .../lessons/zh_cn/webgl-3d-lighting-point.md | 20 ++++++------- webgl/lessons/zh_cn/webgl-3d-lighting-spot.md | 2 +- webgl/lessons/zh_cn/webgl-3d-orthographic.md | 8 ++--- ...l-3d-perspective-correct-texturemapping.md | 18 +++++------ webgl/lessons/zh_cn/webgl-3d-perspective.md | 2 +- webgl/lessons/zh_cn/webgl-3d-textures.md | 6 ++-- webgl/lessons/zh_cn/webgl-boilerplate.md | 6 ++-- webgl/lessons/zh_cn/webgl-fundamentals.md | 30 +++++++++---------- webgl/lessons/zh_cn/webgl-how-it-works.md | 26 ++++++++-------- webgl/lessons/zh_cn/webgl-image-processing.md | 16 +++++----- .../lessons/zh_cn/webgl-less-code-more-fun.md | 6 ++-- webgl/lessons/zh_cn/webgl-shaders-and-glsl.md | 28 ++++++++--------- webgl/lessons/zh_cn/webgl-text-texture.md | 2 +- 15 files changed, 92 insertions(+), 92 deletions(-) diff --git a/webgl/lessons/zh_cn/webgl-2d-drawimage.md b/webgl/lessons/zh_cn/webgl-2d-drawimage.md index f70b178e8..e3dfb5d65 100644 --- a/webgl/lessons/zh_cn/webgl-2d-drawimage.md +++ b/webgl/lessons/zh_cn/webgl-2d-drawimage.md @@ -49,7 +49,7 @@ WebGL需要上传`x, y`, `x + width, y`, `x, y + height`, 和 v_texcoord = a_texcoord; } -和一个简单的片断着色器 +和一个简单的片元着色器 precision mediump float; diff --git a/webgl/lessons/zh_cn/webgl-3d-lighting-directional.md b/webgl/lessons/zh_cn/webgl-3d-lighting-directional.md index 5d978f33f..a240b12f4 100644 --- a/webgl/lessons/zh_cn/webgl-3d-lighting-directional.md +++ b/webgl/lessons/zh_cn/webgl-3d-lighting-directional.md @@ -240,7 +240,7 @@ function setNormals(gl) { 现在让着色器使用它 -首先在顶点着色器中只将法向量传递给片断着色器 +首先在顶点着色器中只将法向量传递给片元着色器 attribute vec4 a_position; -attribute vec4 a_color; @@ -255,14 +255,14 @@ function setNormals(gl) { // 将位置和矩阵相乘 gl_Position = u_matrix * a_position; - - // 将颜色传到片断着色器 + - // 将颜色传到片元着色器 - v_color = a_color; - + // 将法向量传到片段着色器 + + // 将法向量传到片元着色器 + v_normal = a_normal; } -然后在片断着色器中将法向量和光照方向点乘 +然后在片元着色器中将法向量和光照方向点乘 ``` precision mediump float; @@ -342,7 +342,7 @@ void main() { // 将位置和矩阵相乘 * gl_Position = u_worldViewProjection * a_position; -* // 重定向法向量并传递给片断着色器 +* // 重定向法向量并传递给片元着色器 * v_normal = mat3(u_world) * a_normal; } ``` @@ -411,7 +411,7 @@ void main() { // 将位置和矩阵相乘 gl_Position = u_worldViewProjection * a_position; - // 重定向法向量并传递给片段着色器 + // 重定向法向量并传递给片元着色器 * v_normal = mat3(u_worldInverseTranspose) * a_normal; } ``` diff --git a/webgl/lessons/zh_cn/webgl-3d-lighting-point.md b/webgl/lessons/zh_cn/webgl-3d-lighting-point.md index b1c2b2e00..92b598992 100644 --- a/webgl/lessons/zh_cn/webgl-3d-lighting-point.md +++ b/webgl/lessons/zh_cn/webgl-3d-lighting-point.md @@ -53,21 +53,21 @@ Description: 如何在WebGL中实现点光源 // 将位置和矩阵相乘 gl_Position = u_worldViewProjection * a_position; - // 重定向法向量并传递给片断着色器 + // 重定向法向量并传递给片元着色器 v_normal = mat3(u_worldInverseTranspose) * a_normal; + // 计算表面的世界坐标 + vec3 surfaceWorldPosition = (u_world * a_position).xyz; + + // 计算表面到光源的方向 - + // 传递给片断着色器 + + // 传递给片元着色器 + v_surfaceToLight = u_lightWorldPosition - surfaceWorldPosition; } -在片断着色器中需要将表面到光源的方向进行单位化, +在片元着色器中需要将表面到光源的方向进行单位化, 注意,虽然我们可以在顶点着色器中传递单位向量, -但是 `varying` 会进行插值再传给片断着色器, -所以片断着色器中的向量基本上不是单位向量了。 +但是 `varying` 会进行插值再传给片元着色器, +所以片元着色器中的向量基本上不是单位向量了。 precision mediump float; @@ -151,7 +151,7 @@ Description: 如何在WebGL中实现点光源 {{{diagram url="resources/specular-lighting.html" width="500" height="400" className="noborder" }}} 所以首先我们需要传入相机位置,计算表面到相机的方向矢量, -然后传递到片断着色器。 +然后传递到片元着色器。 attribute vec4 a_position; attribute vec3 a_normal; @@ -172,22 +172,22 @@ Description: 如何在WebGL中实现点光源 // 将位置和矩阵相乘 gl_Position = u_worldViewProjection * a_position; - // 重定向法向量并传递到片断着色器 + // 重定向法向量并传递到片元着色器 v_normal = mat3(u_worldInverseTranspose) * a_normal; // 计算表面的世界坐标 vec3 surfaceWorldPosition = (u_world * a_position).xyz; // 计算表面到光源的方向 - // 然后传递到片断着色器 + // 然后传递到片元着色器 v_surfaceToLight = u_lightWorldPosition - surfaceWorldPosition; + // 计算表面到相机的方向 - + // 然后传递到片断着色器 + + // 然后传递到片元着色器 + v_surfaceToView = u_viewWorldPosition - surfaceWorldPosition; } -然后在片断着色器中计算表面到光源和相机之间的 `halfVector`, +然后在片元着色器中计算表面到光源和相机之间的 `halfVector`, 将它和法向量相乘,查看光线是否直接反射到眼前。 // 从顶点着色器中传入的值 diff --git a/webgl/lessons/zh_cn/webgl-3d-lighting-spot.md b/webgl/lessons/zh_cn/webgl-3d-lighting-spot.md index 299c927c9..340550e43 100644 --- a/webgl/lessons/zh_cn/webgl-3d-lighting-spot.md +++ b/webgl/lessons/zh_cn/webgl-3d-lighting-spot.md @@ -46,7 +46,7 @@ Description: 如何在 WebGL 中实现聚光灯的效果 让我们来实现它。 -首先修改[上文](webgl-3d-lighting-point.html)的片断着色器。 +首先修改[上文](webgl-3d-lighting-point.html)的片元着色器。 ``` precision mediump float; diff --git a/webgl/lessons/zh_cn/webgl-3d-orthographic.md b/webgl/lessons/zh_cn/webgl-3d-orthographic.md index 95e04d413..ad9dbb946 100644 --- a/webgl/lessons/zh_cn/webgl-3d-orthographic.md +++ b/webgl/lessons/zh_cn/webgl-3d-orthographic.md @@ -319,7 +319,7 @@ var m4 = { 拖动滑块很难看出它是三维的,让我们给矩形上不同的颜色。 需要在顶点着色器中添加一个属性和一个可变量, -将颜色值传到片断着色器中。 +将颜色值传到片元着色器中。 这是新的顶点着色器 @@ -336,13 +336,13 @@ void main() { // 将位置和矩阵相乘. gl_Position = u_matrix * a_position; -+ // 将颜色传递给片段着色器 ++ // 将颜色传递给片元着色器 + v_color = a_color; } ``` -然后在片断着色器中使用颜色 +然后在片元着色器中使用颜色 ``` diff --git a/webgl/lessons/zh_cn/webgl-3d-textures.md b/webgl/lessons/zh_cn/webgl-3d-textures.md index 68a67f66d..1f42e8c46 100644 --- a/webgl/lessons/zh_cn/webgl-3d-textures.md +++ b/webgl/lessons/zh_cn/webgl-3d-textures.md @@ -8,7 +8,7 @@ Description: WebGL中如何使用纹理 中得到启发,如果我们讲的再深入一点可能更好理解。 首先需要调整着色器以便使用纹理,这里是顶点着色器的修改部分, -我们需要传递纹理坐标,在这个例子中直接将它们传到片断着色器中。 +我们需要传递纹理坐标,在这个例子中直接将它们传到片元着色器中。 attribute vec4 a_position; *attribute vec2 a_texcoord; @@ -21,11 +21,11 @@ Description: WebGL中如何使用纹理 // 将位置和矩阵相乘 gl_Position = u_matrix * a_position; - * // 传递纹理坐标到片断着色器 + * // 传递纹理坐标到片元着色器 * v_texcoord = a_texcoord; } -在片断着色器中声明一个 sampler2D 类型的全局变量,可以让我们引用一个纹理, +在片元着色器中声明一个 sampler2D 类型的全局变量,可以让我们引用一个纹理, 然后使用从顶点着色器传入的纹理坐标调用 `texture2D` 方法, 在纹理上找到对应的颜色。 diff --git a/webgl/lessons/zh_cn/webgl-boilerplate.md b/webgl/lessons/zh_cn/webgl-boilerplate.md index f05134d6a..9d21e6670 100644 --- a/webgl/lessons/zh_cn/webgl-boilerplate.md +++ b/webgl/lessons/zh_cn/webgl-boilerplate.md @@ -5,7 +5,7 @@ Description: WebGL应用中常用的代码 学习WebGL似乎有些难度,因为大多数教程都想一次教完所有东西, 而我会尽量避免这样,在需要合适的时候讲一些小的知识点。 -WebGL复杂的原因之一是需要两个方法,一个顶点着色器和一个片断着色器。 +WebGL复杂的原因之一是需要两个方法,一个顶点着色器和一个片元着色器。 这两个方法通常是在你的GPU上运行,也是高速运行的保障。 所以它们是一种自定义语言,目的是能够在GPU上良好运行。 这两个方法需要编译并链接在一起,而这个过程在 99% 的WbgGL应用中是一样的。 @@ -48,7 +48,7 @@ WebGL复杂的原因之一是需要两个方法,一个顶点着色器和一个 * * @param {!WebGLRenderingContext) gl WebGL上下文。 * @param {!WebGLShader} vertexShader 一个顶点着色器。 - * @param {!WebGLShader} fragmentShader 一个片断着色器。 + * @param {!WebGLShader} fragmentShader 一个片元着色器。 * @return {!WebGLProgram} 程序 */ function createProgram(gl, vertexShader, fragmentShader) { @@ -123,7 +123,7 @@ WebGL复杂的原因之一是需要两个方法,一个顶点着色器和一个 * * @param {!WebGLRenderingContext} gl WebGL上下文。 * @param {string} vertexShaderId 顶点着色器的标签id。 - * @param {string} fragmentShaderId 片断着色器的标签id。 + * @param {string} fragmentShaderId 片元着色器的标签id。 * @return {!WebGLProgram} 程序。 */ function createProgramFromScripts( diff --git a/webgl/lessons/zh_cn/webgl-fundamentals.md b/webgl/lessons/zh_cn/webgl-fundamentals.md index 6ccbd29cc..ae02897b9 100644 --- a/webgl/lessons/zh_cn/webgl-fundamentals.md +++ b/webgl/lessons/zh_cn/webgl-fundamentals.md @@ -7,13 +7,13 @@ WebGL经常被当成3D API,人们总想“我可以使用WebGL和**一些神 WebGL在电脑的GPU中运行。因此你需要使用能够在GPU上运行的代码。 这样的代码需要提供成对的方法。每对方法中一个叫顶点着色器, -另一个叫片段着色器,并且使用一种和C或C++类似的强类型的语言 +另一个叫片元着色器,并且使用一种和C或C++类似的强类型的语言 [GLSL](webgl-shaders-and-glsl.html)。 (GL着色语言)。 每一对组合起来称作一个 *program*(着色程序)。 顶点着色器的作用是计算顶点的位置。根据计算出的一系列顶点位置,WebGL可以对点, -线和三角形在内的一些图元进行光栅化处理。当对这些图元进行光栅化处理时需要使用片断着色器方法。 -片断着色器的作用是计算出当前绘制图元中每个像素的颜色值。 +线和三角形在内的一些图元进行光栅化处理。当对这些图元进行光栅化处理时需要使用片元着色器方法。 +片元着色器的作用是计算出当前绘制图元中每个像素的颜色值。 几乎整个WebGL API都是关于如何设置这些成对方法的状态值以及运行它们。 对于想要绘制的每一个对象,都需要先设置一系列状态值,然后通过调用 @@ -46,13 +46,13 @@ WebGL在电脑的GPU中运行。因此你需要使用能够在GPU上运行的代 4. 可变量(Varyings) - 可变量是一种顶点着色器给片断着色器传值的方式,依照渲染的图元是点, - 线还是三角形,顶点着色器中设置的可变量会在片段着色器运行中获取不同的插值。 + 可变量是一种顶点着色器给片元着色器传值的方式,依照渲染的图元是点, + 线还是三角形,顶点着色器中设置的可变量会在片元着色器运行中获取不同的插值。 ## WebGL Hello World WebGL只关心两件事:裁剪空间中的坐标值和颜色值。使用WebGL只需要给它提供这两个东西。 -你需要提供两个着色器来做这两件事,一个顶点着色器提供裁剪空间坐标值,一个片断着色器提供颜色值。 +你需要提供两个着色器来做这两件事,一个顶点着色器提供裁剪空间坐标值,一个片元着色器提供颜色值。 无论你的画布有多大,裁剪空间的坐标范围永远是 -1 到 1 。 这里有一个简单的WebGL例子展示WebGL的简单用法。 @@ -95,14 +95,14 @@ WebGL只关心两件事:裁剪空间中的坐标值和颜色值。使用WebGL 实际情况没有那么简单,因为 `positionBuffer` 将会被转换成二进制数据(见下文), 所以真实情况下从缓冲中读取数据有些麻烦,但是希望这个例子能够让你想象出顶点着色器是怎么执行的。 -接下来我们需要一个片段着色器 +接下来我们需要一个片元着色器 - // 片断着色器没有默认精度,所以我们需要设置一个精度 + // 片元着色器没有默认精度,所以我们需要设置一个精度 // mediump是一个不错的默认值,代表“medium precision”(中等精度) precision mediump float; void main() { - // gl_FragColor是一个片段着色器主要设置的变量 + // gl_FragColor是一个片元着色器主要设置的变量 gl_FragColor = vec4(1, 0, 0.5, 1); // 返回“瑞迪施紫色” } @@ -146,12 +146,12 @@ WebGL只关心两件事:裁剪空间中的坐标值和颜色值。使用WebGL