Skip to content

Commit

Permalink
review <Displaying Graphics with OpenGL ES - Defining Shapes>
Browse files Browse the repository at this point in the history
  • Loading branch information
kesenhoo committed Mar 22, 2017
1 parent e9c9d5a commit 3d236f1
Showing 1 changed file with 9 additions and 9 deletions.
18 changes: 9 additions & 9 deletions graphics/opengl/shapes.md
@@ -1,14 +1,14 @@
# 定义形状
# 定义形状(Defining Shapes)

> 编写:[jdneo](https://github.com/jdneo) - 原文:<http://developer.android.com/training/graphics/opengl/shapes.html>
在一个OpenGL ES View的上下文(Context)中定义形状,是创建你的杰作所需要的第一步。在了解关于OpenGL ES如何定义图形对象的基本知识之前,通过OpenGL ES 绘图可能会有些困难
在一个 OpenGL ES View 的上下文(Context)中定义形状,是创建你的杰作所需要的第一步。在了解关于 OpenGL ES 如何定义图形对象的基本知识之前,想通过 OpenGL ES 直接绘图可能会有些困难

这节课将讲解OpenGL ES相对于Android设备屏幕的坐标系,定义形状和形状表面的基本知识,如定义一个三角形和一个矩形
这节课将讲解 OpenGL ES 相对于 Android 设备屏幕的坐标系,定义形状和形状表面的基本知识,例如定义一个三角形和一个矩形

## 定义一个三角形
## 定义一个三角形(Define a Triangle)

OpenGL ES允许我们使用三维空间的坐标来定义绘画对象。所以在我们能画三角形之前,必须先定义它的坐标。在OpenGL 中,典型的办法是为坐标定义一个浮点型的顶点数组。为了高效起见,我们可以将坐标写入一个[ByteBuffer](http://developer.android.com/reference/java/nio/ByteBuffer.html)它将会传入OpenGl ES的图形处理流程中
OpenGL ES 允许我们使用三维空间的坐标系来定义绘画对象。所以在我们能画三角形之前,必须先定义它的坐标。在 OpenGL 中,典型的办法是为坐标定义一个浮点型的顶点数组。为了高效起见,我们可以将坐标写入一个 [ByteBuffer](http://developer.android.com/reference/java/nio/ByteBuffer.html)它将会传入 OpenGl ES 的图形处理流程中

```java
public class Triangle {
Expand Down Expand Up @@ -44,13 +44,13 @@ public class Triangle {
}
```

默认情况下,OpenGL ES会假定一个坐标系,在这个坐标系中,[0, 0, 0](分别对应X轴坐标, Y轴坐标, Z轴坐标)对应的是GLSurfaceView的中心[1, 1, 0]对应的是右上角,[-1, -1, 0]对应的则是左下角。如果想要看此坐标系的插图说明,可以阅读[OpenGL ES](http://developer.android.com/guide/topics/graphics/opengl.html#faces-winding)开发手册。
默认情况下,OpenGL ES 会假定一个坐标系,在这个坐标系中,[0, 0, 0](分别对应X轴坐标, Y轴坐标, Z轴坐标)对应的是 GLSurfaceView 的中心[1, 1, 0]对应的是右上角,[-1, -1, 0]对应的则是左下角。如果想要看此坐标系的插图说明,可以阅读 [OpenGL ES](http://developer.android.com/guide/topics/graphics/opengl.html#faces-winding) 开发手册。

注意到这个形状的坐标是以逆时针顺序定义的。绘制的顺序非常关键,因为它定义了哪一面是形状的正面(希望绘制的一面),以及背面(使用OpenGL ES的Cull Face功能可以让背面不要绘制)。更多关于该方面的信息,可以阅读[OpenGL ES](http://developer.android.com/guide/topics/graphics/opengl.html#faces-winding)开发手册。

## 定义一个矩形
## 定义一个矩形(Define a Square)

在OpenGL中定义三角形非常简单,那么你是否想要来点更复杂的呢?比如,定义一个矩形?有很多方法可以用来定义矩形,不过在OpenGL ES中最典型的办法是使用两个三角形拼接在一起
在 OpenGL 中定义三角形非常简单,那么你是否想要来点更复杂的呢?比如,定义一个矩形?有很多方法可以用来定义矩形,不过在 OpenGL ES 中最典型的办法是使用两个三角形拼接在一起

![ccw-square](ccw-square.png "使用两个三角形画一个矩形")

Expand Down Expand Up @@ -94,4 +94,4 @@ public class Square {
}
```

该样例可以看作是一个如何使用OpenGL创建复杂图形的启发,通常来说,我们需要使用三角形的集合来绘制对象。在下一节课中,我们将学习如何在屏幕上画这些形状。
该样例可以看作是一个如何使用 OpenGL 创建复杂图形的启发,通常来说,我们需要使用三角形的集合来绘制对象。在下一节课中,我们将学习如何在屏幕上画这些形状。

0 comments on commit 3d236f1

Please sign in to comment.