1
0
mirror of https://github.com/LearnOpenGL-CN/LearnOpenGL-CN.git synced 2025-08-23 04:35:28 +08:00

Merge pull request #1 from Geequlim/master

synchronize changes
This commit is contained in:
keyantu
2015-06-15 15:31:56 +08:00
3 changed files with 38 additions and 9 deletions

View File

@@ -0,0 +1,16 @@
本文作者JoeyDeVries由Geequlim翻译自[http://learnopengl.com](http://learnopengl.com/#!Getting-started/Hello-Triangle)
##你好,三角形
未翻译完成...
---
由于OpenGL使用的是三维坐标系而我们的屏幕和窗口都是由二维像素组成的所以OpenGL的一项重要工作就是将三维坐标系转换到二维像素使得我们的屏幕能够显示显示这些数据。将三维坐标转换为二维坐标的过程使用OpenGL的图形渲染管线来管理。图形渲染管线可以被分为两大部分
1. 将三维坐标系转换为二维的屏幕坐标
2. 将转换得到的二维坐标中的每一个点转换为具体的像素颜色
在本教程中我们将简单的讨论OpenGL的渲染管线并使用它来创建一些给力的像素图。
二维坐标系与像素坐标系有一点不同,一个二维坐标描述的是在二维空间中一个确切点的位置,而一个二维像素是一个由二维坐标和屏幕的分辨率所决定的近似值.
图形渲染管线将一系列的三维坐标转化为你屏幕中的像素颜色。图形渲染管线可以被分为若干个部分每一个部分都需要上一部分的输出数据作为其输入数据。所有部分都是高效运行并且可以是同时进行的由于这一并行的机制现代的图形处理器GPU)拥有成千上万个核心通过快速地执行一些小程序来处理渲染管线中每一部分的数据。这些小程序被称为着色器Shader
许多着色器都允许开发者进行配置OpenGL允许我们写自己的着色器来替换已经存在的默认着色器。由于着色器程序是使用GPU执行的这样我们就可以通过书写自己的着色器程序来对渲染进行更加细微的控制也能减轻CPU的运算量。OpenGL的着色器程序使用GLSL(OpenGL Shading Language)语言编写,我们将在接下来的教程中探索如何使用它。
下图是对渲染管线流程简介,其中蓝色的部分允许我们编写自己的着色器程序进行控制。
(img)

View File

@@ -1,7 +1,3 @@
<style>
.centerHV{text-align:center}
</style>
本文作者JoeyDeVries由Geequlim翻译自[http://learnopengl.com](http://learnopengl.com/#!Lighting/Colors)
## 颜色
@@ -14,9 +10,7 @@
我们在现实生活中看到某一物体的颜色并不是这个物体的真实颜色而是它所反射的颜色。换句话说,那些不能被物体吸收的颜色(被反射的颜色)就是我们能够感知到的物体的颜色。例如,太阳光被认为是由许多不同的颜色组合成的白色光(如下图所示)。如果我们将白色的太阳光照在一个蓝色的玩具上,这个蓝色的玩具会吸收白色光中除了蓝色以外的所有颜色,不被吸收的蓝色光被反射到我们的眼中,使我们看到了一个蓝色的玩具。下图显示的是一个珊瑚红的玩具,它以不同强度的方式反射了几种不同的颜色。
<div class="centerHV">
<img src="http://learnopengl.com/img/lighting/light_reflection.png"/>
</div>
正如你所见,白色的阳光是一种所有可见颜色的集合,上面的物体吸收了其中的大部分颜色,它仅反射了那些代表这个物体颜色的部分,这些被反射颜色的组合就是我们感知到的颜色(此例中为珊瑚红)。
@@ -134,9 +128,8 @@
glBindVertexArray(0);
为了让你的程序简洁易读,请把上述的所有代码片段放在你程序中合适的位置。如果一切顺利,运行效果将会如下图所示:
<div class="centerHV">
<img src="http://learnopengl.com/img/lighting/colors_scene.png"/>
</div>
没什么好看的是吗?但我承诺接下来的教程中它会给你有趣的视觉效果。

View File

@@ -1,2 +1,22 @@
# LearnOpenGL-CN
learnopengl.com系列教程的中文翻译
learnopengl.com系列教程的中文翻译,目前正在翻译中。
---
###翻译组成员请注意
####关于如何认领翻译?
由于我们的志愿者来自五湖四海,
为了避免冲突。请志愿者们先fork Geequlim/LearnOpenGL-CN。同步到本地后找到要翻译的文章创建一个如下所示的只包含作者、翻译者和原文链接信息的markdown文件并提交发布请求
本文作者JoeyDeVries由Geequlim翻译自http://learnopengl.com
译文的文件命名统一规范为:
<两位数的章序列> <章名称>/<两位数节序列> 节名称/<两位数小节序列> 小节名称.md
例如:
05 Advanced Lighting/03 Shadows/02 Point Shadows.md
欢迎志愿者们加入翻译组交流QQ群383745868