1
0
mirror of https://github.com/LearnOpenGL-CN/LearnOpenGL-CN.git synced 2025-08-22 20:25:28 +08:00

Fix all the titles

This commit is contained in:
Meow J
2016-07-06 01:42:55 +08:00
parent 5dad4f21d8
commit 3ef7a53627
44 changed files with 512 additions and 527 deletions

View File

@@ -12,9 +12,9 @@
开发者最常用的一种方式是将字符纹理绘制到矩形方块上。绘制这些纹理方块其实并不是很复杂,然而检索要绘制的文字的纹理却变成了一项挑战性的工作。本教程将探索多种文字渲染的实现方法,并且着重对更加现代而且灵活的渲染技术(使用FreeType库)进行讲解。
## 经典文字渲染:使用位图字体
## 经典文字渲染:位图字体
在早期渲染文字时,选择你应用程序的字体(或者创建你自己的字体)来绘制文字是通过将所有用到的文字加载在一张大纹理图中来实现的。这张纹理贴图我们把它叫做位图字体(Bitmap Font),它包含了所有我们想要使用的字符。这些字符被称为**字形(glyph)**。每个字形根据他们的编号被放到位图字体中的确切位置在渲染这些字形的时候根据这些排列规则将他们取出并贴到指定的2D方块中。
在早期渲染文字时,选择你应用程序的字体(或者创建你自己的字体)来绘制文字是通过将所有用到的文字加载在一张大纹理图中来实现的。这张纹理贴图我们把它叫做**位图字体(Bitmap Font)**,它包含了所有我们想要使用的字符。这些字符被称为**字形(Glyph)**。每个字形根据他们的编号被放到位图字体中的确切位置在渲染这些字形的时候根据这些排列规则将他们取出并贴到指定的2D方块中。
![](http://learnopengl.com/img/in-practice/bitmapfont.png)
@@ -24,7 +24,7 @@
这种绘制文字的方式曾经得益于它的高速和可移植性而非常流行然而现在已经存在更加灵活的方式了。其中一个是我们即将展开讨论的使用FreeType库来加载TrueType字体的方式。
## 现代文字渲染:使用FreeType
## 现代文字渲染FreeType
FreeType是一个能够用于加载字体并将他们渲染到位图以及提供多种字体相关的操作的软件开发库。它是一个非常受欢迎的跨平台字体库被用于 Mac OSX、Java、PlayStation主机、Linux、Android等。FreeType的真正吸引力在于它能够加载TrueType字体。
@@ -320,4 +320,4 @@ RenderText(shader, "(C) LearnOpenGL.com", 540.0f, 570.0f, 0.5f, glm::vec3(0.3, 0
本教程演示了如何使用FreeType绘制TrueType文字。这种方式灵活、可缩放并支持多种字符编码。然而你的应用程序可能并不需要这么强大的功能性能更好的点阵字体也许是更可取的。当然你可以结合这两种方法通过动态生成位图字体中所有字符字形。这节省了从大量的纹理渲染器开关和基于每个字形紧密包装可以节省相当的一些性能。
另一个使用FreeType字体的问题是字形纹理是对应着一个固定的字体大小的因此直接对其放大就会出现锯齿边缘。此外对字形进行旋转还会使它们看上去变得模糊。通过将每个像素设为最近的字形轮廓的像素而不是直接设为实际栅格化的像素可以减轻这些问题。这项技术被称为**signed distance fields**Valve在几年前发表过一篇了[论文](http://www.valvesoftware.com/publications/2007/SIGGRAPH2007_AlphaTestedMagnification.pdf)探讨了他们通过这项技术来获得好得惊人的3D渲染效果。
另一个使用FreeType字体的问题是字形纹理是对应着一个固定的字体大小的因此直接对其放大就会出现锯齿边缘。此外对字形进行旋转还会使它们看上去变得模糊。通过将每个像素设为最近的字形轮廓的像素而不是直接设为实际栅格化的像素可以减轻这些问题。这项技术被称为**有向距离场(Signed Distance Fields)**Valve在几年前发表过一篇了[论文](http://www.valvesoftware.com/publications/2007/SIGGRAPH2007_AlphaTestedMagnification.pdf)探讨了他们通过这项技术来获得好得惊人的3D渲染效果。

View File

@@ -1,17 +0,0 @@
本文作者JoeyDeVries由Alex Zhao翻译自[http://learnopengl.com](http://learnopengl.com/#!Getting-started/Shaders)
01 《打砖块》
02 框架设计
03 精灵渲染
04 关卡
05 碰撞
01 球
02 碰撞检测
03 碰撞解析度
06 粒子系统
07 存档
08 升级
09 音频
10 文本渲染
11 最终幻想

View File

@@ -1,7 +1,10 @@
# Breakout
原文 | [Breakout](http://www.learnopengl.com/#!In-Practice/2D-Game/Breakout)
---|---
作者 | JoeyDeVries
翻译 | HHz(qq:1158332489)
校对 | 等待校对....
校对 | 暂无
看完前面的教程之后我们已适当地了解了OpenGL的内部运作原理并且我们已经能够用这些知识绘制一些复杂的图像。然而我们还只能做出一些小Demo并未达到用OpenGL开发实际应用的水平。这一部分主要介绍了一个用OpenGL制作的很简单的2D小游戏。本部分教程将展现OpenGL在较大较复杂程序中的强大之处。
@@ -25,7 +28,7 @@
因为小球不时可能会遇上砖块之间的缝隙所以它会继续弹开周围砖层进而离开缝隙。它后来若又进入了某个缺口依然遵循这个原则这就是为什么本节要叫这个名字Breakout的原因 ,小球必须 “Breakout”(弹出来).
*PS这段话不好翻译大概就是介绍打砖块的游戏规则
## OpenGL Breakout
# OpenGL Breakout
我们将完全利用opengl实现这个经典的电脑游戏几乎是2d游戏的基础这个版本的Breakout将能够运行在一些可出特效的显卡上。
@@ -43,6 +46,6 @@
这些教程将结合前面大量的概念,讲述了在之前所学的功能如何放在一起形成一个游戏。因此,最重要的是你完成了前面部分的教程。
同样有些东西也会提及其他教程的一些概念比如说帧缓冲FramebuffersSo,有必要时 被提及的教程会列出
同样有些东西也会提及其他教程的一些概念比如说帧缓冲Framebuffers所以,有必要时被提及的教程会列出
如果你已准备好开发本游戏,可以开始下一节了。