翻译这套教程拖了两月了,最近的确散漫了一点,还经常用工作忙而当借口去说服自己,其实这样下去不好。当意识过来的时候发现已经三月份了。

最近越来越意识到做事情不能给自己挖坟。事情应该有始有终。

每天都干一两件自己想干但是又怕累的事情。(今年原文博客已被墙

原文:Stage3D / AGAL from scratch. Part VI – Organise your Matrices

eg.如果你E文不错的话  还是看E文比较带劲。本人E文非常烂,若有偏差请指出。

重新组织矩阵:

在前面的教程中,我们使用了矩阵在GPU上绘制三角形,

我的翻墙软件被封了。。哎 看来要停一停了又

原文:Stage3D / AGAL from scratch. Part V – Indexes and culling mode

eg.如果你E文不错的话  还是看E文比较带劲。本人E文非常烂,若有偏差请指出。

索引用于什么地方?

在前面的文章中,介绍了索引 和索引缓冲,我把索引缓冲比喻成连线游戏中的数字,在屏幕上渲染图形的时候,显卡需要知道如何画三角形

例如有8个顶点,想象成构建一个8个顶点的立方体,如果仅仅是给出8个顶点数据,而没有进一步的指令编码,那显卡根本不知道你想画啥

可能你想渲染出一个封闭的四方盒子,但也许你是想画一个开盖的四方盒子,有也许你想打开四方盒子中的两面。。。

索引就是你想 根据顶点画图形的步骤  或者说是顺序,绘画方案 总之一个意思。索引告诉显卡怎么在顶点上画画 顶点告诉显卡在那里画画。就是这样~

在渲染三角形的过程中 可能会用到同一个顶点多次,无论在显卡中渲染什么图形,索引缓冲的长度(并非顶点)的都必须是3的倍数,因为我们能渲染的最简单的物品是三角形嘛。。然后其他全部都由一个一个三角形组成。
继续阅读

原文:Stage3D / AGAL from scratch. Part IV – Adding some depth

eg.如果你E文不错的话  还是看E文比较带劲。本人E文非常烂,若有偏差请指出。

关于Z轴的解释(角度理解)

Stage3D,我认为这是3D的技术,但是为什么我们在上一节并没有用到Z轴坐标呢?如果你在上一节我分析代码的时候也跟着下载源码来编译,并且尝试修改其中的坐标看效果的话,你就会发现  没用(X,Y,Z,r,g,b)顶点中的Z数值,Z轴有何作用呢,下面我将解释。

——3D场景在2D中渲染,渲染出的区域叫做Clipspace(这个应该翻译为锥体裁剪之后的空间,还是投影变换后的空间?),CLIPSPACE(剪切空间)是屏幕的基础,屏幕上的每一个点 都会被映射到CLIPSPACE(剪切空间),然后才能被显示出来。(这个CLIPSPACE(剪切空间)就是这么一个东西   不理解没关系 如果要深入理解麻烦去找本计算机图形学)。

——之前说的屏幕坐标(X,Y,Z)每一个数值都是在闭区间[-1,1]其实表述并不完全正确,更准确的解释是,X,Y,Z 只有在闭区间[-1,1]的时候  才能映射在CLIPSPACE(剪切空间)上(也就是说 你所能看到的程序窗口大小 即为CLIPSPACE有效大小,所以我在之前也加了解释,坐标的有效数值是[-1,1],坐标可以取任何值)。
继续阅读

原文:Stage3D / AGAL from scratch. Part III – Hello Triangle

eg.如果你E文不错的话  还是看E文比较带劲。本人E文非常烂,若有偏差请指出。

国内的大牛FlashChe也有一篇类似的基础文章,传送门在上一篇开头。

让我们开始吧

在开始编码之前请确认你已经读过第一篇与第二篇,并且都已经理解其中的原理。

你可以先下载[源码]自行编译一遍,以确认你的硬件与编译环境可行。

这篇文章将会带您一起在GPU中渲染出第一个三角形图形,其中会涉及到一点点的关于AGAL的代码,仅仅几句而已非常容易理解,如果你汇编学得不错的话 那你一眼就能看明白,即使你的汇编非常的糟糕那也没关系  我将会一句一句的解释它。(后面这句我加的)稍微再解释一下顶点在GPU上渲染三角形的作用,所谓的顶点“Vertex”其实可以理解为内存中的指针,三个顶点确定一个三角形的形状和位置,正是依靠这三个”指针” ,GPU才能在指定位置画图,继续阅读

原文:Stage3D / AGAL from scratch. Part II – Anatomy of a Stage3D Program

eg.如果你E文不错的话  还是看E文比较带劲。本人E文非常烂,若有偏差请指出。

国内的大牛FlashChe也有一篇类似的基础文章:传送门

也有7yue写的一篇PPT“深入Stage3D

Stage3D程序基础分析:

在我们编写第一个三角形程序之前,先粗略的了解下Stage3D程序的基本结构,这种结构也适用于其他底层3D编程和webGL编程。(WebGL是一种3D绘图标准,这种绘图技术标准允许把JavaScript和OpenGL ES 2.0结合在一起)

在使用底层3D API的时候,你必须知道一些硬件知识(作者指的是上一篇末尾的内容),例如V-RAM是你的显卡内存,而缓存区则是显卡内存中的一部分。

在渲染三角形的时候,你必须提供几个顶点(Vertices)(所谓的顶点其实就是指向缓存区的“指针”)给程序,然后程序通过顶点把三角形在屏幕上渲染出来。

其中还没有说的是索引(Indexes),索引的作用其实就是 连接顶点绘制出三角形。(顶点与索引的关系 按照我的理解应该是 顶点指明位置 索引负责在指定位置画画)。

继续阅读

原文:Stage3D / AGAL from scratch. Part I – The Basics

eg.如果你E文不错的话  还是看E文比较带劲。

关于AGAL(adobe 图形汇编语言

我第一次使用AGAL是在几周前与一个同事一起,AGAL让我们终于认识到了Stage3D的强大.

可能你想看到的是关于Away3D的教程,但是在我学Away3D的第一课的时候我感到非常失望, 因为我并没有成功编译出那个例子的立方体,其中的原因就在于我欠缺3D建模能力.

直到后来出现了Starling和ND2D这两个框架,通过这两个框架所表现出来的GPU渲染能力,我们才认识到原来Stage3D在硬件加速上堪称完美。

虽然Stage3D非常难,但是如果你真的想理解他们是怎么工作的  那你还是必须要面对它,你可以通过下面两种方式去学会使用它,第一是系统的从底层开始去学习Stage3D,第二是学会使用衍生的开源框架 (例如Starling ND2D),无论哪一种方式 如果你想深入(而不是只懂皮毛)的话 都必须先去学会使用adobe提供给我们的底层Stage3D API。
继续阅读