[AGAL个人笔记]第三篇: Hello Stage3D`s World(部分为翻译)

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

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

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

让我们开始吧

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

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

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

[AGAL个人笔记]第二篇: Stage3D程序原理解剖(译)

原文: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),索引的作用其实就是 连接顶点绘制出三角形。(顶点与索引的关系 按照我的理解应该是 顶点指明位置 索引负责在指定位置画画)。

继续阅读“[AGAL个人笔记]第二篇: Stage3D程序原理解剖(译)”

[AGAL个人笔记]第一篇:AGAL基础(译)

原文: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。
继续阅读“[AGAL个人笔记]第一篇:AGAL基础(译)”

[AGAL]来自Nicolas的教程学习笔记系列

动机:

我从今年5月份在旧公司由于工作原因开始接触AS3,后来发现AS3原来能搞那么多的东西,到现在为止接触的从C++接口框架ALCHEMY1到ALCHEMY2(FlasCC) 到Stage3D框架的涌现再到GPU加速的2D框架Starling 而衍生features,StarlingPunk等等,都非常强大,无意中我发现AGAL(ADOBE GRAPHIC ASSEMBLY  LANGUAGE ,adobe图形汇编语言),这真是非常有意思的东西.于是我在一个法国ASer的Blog上发现一组教程,本人英语非常烂(大学过程因为考级问题痛苦了好久),但是还有想把它翻译过来放到自己BLOG保存的冲动。因为天天遇到不懂的地方就去翻E文实在很累。翻译过来的目的纯属是算一种学习笔记,在翻译的过程中 会加入我个人的理解,如果有理解错误或者翻译偏差 请留言指出.

关于原作者:

My name is Nicolas Chesné, and I am a french flash developer, currently working at Marcel Paris as a senior Flash developer.

作者Chesne自己的定位是 高级FALSH程序员,粗略看了一下作者的作品  这不仅仅是高级啊.

我觉得AGAL是一个非常有意思的东西。如果你能看完全部教程 相信你也会这样觉得。让我们开始吧!

[AGAL个人笔记]第一篇:AGAL基础(译2012/11/6

[AGAL个人笔记]第二篇:  Stage3D程序原理解剖(译)2012/11/7

[AGAL个人笔记]第三篇: Hello Stage3D`s World(译)2012/11/8

[AGAL个人笔记]第四篇:加入深度坐标(译) 2012/11/12

[AGAL个人笔记]第五篇:片段(索引 Indexes )和剔除(淘汰)模式(译)2012/11/21

[AGAL个人笔记]第六篇:重新组织矩阵 2013/3/7

处理AIR For Android真机调试BUG:stage.fullScreenWidth,stage.fullScreenWidth参数值调转

环境:FLASH BUILDER4.6+AIR3.5+ANDROMD2.3真机

条件:XML配置程序横屏

在程序主代码中获取stage.fullScreenWidth,stage.fullScreenWidth参数值与stage.stageWidth stage.stageHeight参数值相反。

fullSceen全屏参数还是竖屏时候的参数 而stageWidth参数则已经是横屏参数。

例如下面这句代码:

显示的是:
继续阅读“处理AIR For Android真机调试BUG:stage.fullScreenWidth,stage.fullScreenWidth参数值调转”

Alchemy2:正式更名FlasCC,并且在性能 配置IDA上更新简单

官网:http://gaming.adobe.com/technologies/flascc/

Alchemy在之前的博文就有详细的介绍可入门教程对比;

ADOBE其实一直也在做这个东西  之前几年大牛们都觉得ALCHEMY不够成熟

所以在很少的地方能看到ALCHEMY的使用。

但是现在ALCHEMY2出来了。。并且叫了一个名字:FlasCC  虽然我更喜欢有点艺术气质的名字ALCHEMY。

马上入手研究研究。。新项目也进入了另外一个阶段了。走起!

AIR ANE打包之时间戳错误:could not generate timestamp handshake alert

AIR  ANE,既是AIR为移动开发所支持的本地拓展。

比较经典的HELLOWORLD教程在:这里

小博安装教程一步一步走下去,到了打包ANE的时候出现时间戳的错误。

could not generate timestamp handshake alert

继续阅读“AIR ANE打包之时间戳错误:could not generate timestamp handshake alert”

AIR移植ANDROID之STARLING开源项目:Whack

Starling简介以及中文站:http://www.starlinglib.com

在ADOBE AIR出到3.0之后,AIR跨平台的优势被越来越多的人发掘。

特别是拥有完美封装STAGE3D API的开源框架STARLING的出现。

让更多的人使用AIR进行跨平台开发特别是游戏开发成为可能。

这在三年前可是想都不敢想的事情。

试想一下  未来 使用AIR开发的游戏肯定鲜花洒满地。
继续阅读“AIR移植ANDROID之STARLING开源项目:Whack”

推荐一款FLASH开发优化利器:TheMiner

最近一直在学习关于FLASH开发中的内存优化问题,特别是在AIR FOR ANDROID上。

而发现FB自带的profiler无论是在修改了FlashBuilder.ini文件。

还是修改了用户路径 还是修改了DEBUG FLASH PALYER版本都不可连接。

偶然间发现一款叫做flash preload profiler的SWF程序分析程序。。

而在网上很多朋友都不知道如果使用或者说因为墙的关系无法登录作者的BLOG。

福音是现在作者已经考虑到了这一点,不仅如此。

还提供了中文版的flash preload profiler~NICE!
继续阅读“推荐一款FLASH开发优化利器:TheMiner”

使用Starling 对AIR 快速移植到ANDROID

最近在学习Starling与Air For Android开发。发现其实ADOBE的AIR为我们做了大部分的工作。包括一堆参数的设定等等。

接下来我们尝试对一个AS3写的PC端俄罗斯方块进行移植。

考虑到Starling的优势,我们先选择在纯FLASH 天然的情况下加入GPU渲染。

当中出现的问题的是:

1>尽量避免使用原生FLASH连接库

2>Texture纹理上传资源的限制,所以针对Texture.fromBitmap或者fromBitmapData的使用次数和上传的纹理大小要特别注意。

3>资源回收,这是个大问题,在单帧时间过长内存消耗过大的情况下,基本上是卡着不动的,GPU会耗死,总结了几点:
继续阅读“使用Starling 对AIR 快速移植到ANDROID”