Adobe最近推出了新的语言AGAL(Adobe图形汇编语言)。它是Molehill的一部分,其目的是为了创建所谓的 “着色器(shaders)”:很小的程序,它会作用于3D模型在场景中的渲染。jtN平坦软件园
这些着色器很酷。能达到惊人的渲染效果,编写代码也比ActionScript更难。jtN平坦软件园
这是AGAL的样子:jtN平坦软件园
//vertex shaderm44 op, va0, vc0 // pos to clipspacemov v0, va1 // copy uv//pixel shadertex ft1, v0, fs0 <2d,linear,nomip>mov oc, ft1是不是特别像看天书?什么是访问它的关键?jtN平坦软件园
问题是现阶段AGAL相关文档还很少,那么我尝试着来阐明这神秘的着色语言吧。jtN平坦软件园
操作码
着色器的每一行是由 3 个字符的字符串指定的命令行,称为“操作码”。jtN平坦软件园
一个AGAL行代码的语法如下:jtN平坦软件园
<opcode> <destination> <source 1> <source 2 or sampler>这是关键。记住此语法,AGAL会突然停止看起来像一个不可读的斑点。jtN平坦软件园
操作码(opcode)之后,可以是取决于该命令的目标,和一个或两个源(source)。jtN平坦软件园
目标和源是“寄存器”:GPU中的小小内存区域,供着色器使用(下面有更多的寄存器)。jtN平坦软件园
AGAL约30种不同功能的操作码。在Molehill的文档中可发现可用操作码(opcodes)的完整列表,下面是一些最常见的操作码。jtN平坦软件园
mov 移动数据从source1到目的地,按分量(点积)
add destination = source1 + source2,按分量(点积)
sub destination = source1 – source2,按分量(点积)
mul destination = source1 * source2,按分量(点积)
div destination = source1 / source2,按分量(点积)
dp3 dot product (3 components) between source1 and source2
dp4 dot product (4 components) between source1 and source2
m44 multiplication between 4 components vector in source1 and 4×4 matrix in source2
tex texture sample. Load from texture at source2 at coordinates source1.
AGAL寄存器
寄存器是在GPU的AGAL程序(着色器)执行期间使用的小内存区域。jtN平坦软件园
寄存器同时用于AGAL命令的源与目标。jtN平坦软件园
你也可以传递参数给你的着色器通过这些寄存器。jtN平坦软件园
每个寄存器为128位,这意味着它包含4个浮点值。这些值被称为寄存器的“组件”。jtN平坦软件园
寄存器组件可以通过坐标(xyzw)访问jtN平坦软件园
<register name>.xjtN平坦软件园
也可以通过颜色(rgba)访问jtN平坦软件园
<register name>.rjtN平坦软件园
上述的一些操作码,如“新增”,按点积执行自己的操作。这意味着,加法运算是由组件的组件执行。jtN平坦软件园
这里有六个可用的寄存器类型。jtN平坦软件园
1。属性寄存器
这些寄存器参考顶点着色器的VertexBuffer输入。因此,他们只能在顶点着色器中可用。jtN平坦软件园
要通过正确的索引分配一个VertexBuffer到一个特定的属性寄存器,使用方法jtN平坦软件园
Context3D:setVertexBufferAt()jtN平坦软件园
在着色器中,访问属性寄存器的语法:va<n>,其中<n>是属性寄存器的索引号。jtN平坦软件园
有一共有8个属性寄存器用于顶点着色器。jtN平坦软件园
2。常量寄存器
这些寄存器是用来从ActionScript传递参数[]
/r/n/n本文来自CSDN博客,转载请标明出处:http://www.flatws.cn/article/program/assembly/2011-03-20/17545.html
分享到:
相关推荐
Adobe AGAL(Adobe Graphics Assembly Language)是一种专为Adobe Flash Player 和 Adobe AIR 中的GPU加速3D渲染而设计的低级图形装配语言。它允许开发者直接控制GPU进行高效、精确的3D图形处理,特别适用于那些需要...
AGAL 基本语法大全 AGAL(Adobe Graphics Assembly Language)是Adobe开发的图形汇编语言,汇编语言是仅高于计算机二进制机器码的低级语言,可以精确地操控机器硬件比如可编程显卡
AGAL(ActionScript Graphics ALgorithm)是Adobe开发的一种低级着色语言,主要用于Stage3D图形编程,特别是在Flash平台上的高性能图形渲染。了解AGAL着色器编程语法是Flash显卡编程的基础,对于创建复杂的3D图形和...
AGAL,全称为ActionScript Graphics Assembler Language,是Adobe为Flash平台开发的一种低级图形着色语言。在移动设备上,特别是使用Adobe AIR框架开发的Android和iOS应用中,AGAL被广泛用于GPU加速的图形处理,从而...
AGAL(Adobe Graphics Assembly Language)是Adobe开发的图形汇编语言,汇编语言是仅高于计算机二进制机器码的低级语言,可以精确地操控机器硬件比如可编程显卡,PC的Dirext9、MAC的OpenGL以及移动设备中的OpenGL ES 2...
书中的内容是基于AS3(ActionScript 3.0)编程语言和AGAL(Adobe Graphics Assembly Language)汇编语言,指导读者通过一步一步的过程来创建令人惊叹的3D游戏。 知识点一:Adobe Flash Player的Stage3D技术 Adobe ...
- **主要内容**:包括了使用ActionScript 3 (AS3) 和 AGAL(Adobe GPU Assembly Language)等技术来创建令人惊叹的3D游戏。 #### 知识点详解 1. **Adobe Flash 11**: - **简介**:Adobe Flash 11 是一款用于创建...
AGAL是一种图形汇编语言,专门用于编写Shader程序,这些程序运行在GPU上,负责渲染图形效果。 - **着色器编程**:AGAL允许开发者编写顶点着色器和片段着色器,以实现复杂的光照效果、纹理映射等功能。 - **高效渲染...
AGAL(Adobe Graphics ALchemy)是Adobe Stage3D使用的低级着色语言,用于编写GPU执行的顶点和片段着色器。在《几何战争克隆》中,AGAL被用来实现各种动态效果和图形渲染,如粒子系统、光照效果等,提高了游戏的视觉...
AGAL,全称Adobe Graphics Assembly Language,是Stage3D中用于编程图形硬件的汇编语言。AGAL让开发者能够直接控制GPU,执行复杂的图形操作,如顶点和像素着色。虽然AGAL的学习曲线较陡,但它提供了对3D渲染流程的...
在3D渲染中,着色器负责计算每个像素的颜色和位置,而`AGALMiniAssembler`可以帮助开发者将高级语言编写的着色器代码转换为AGAL指令,以便GPU执行。 使用`AGALMiniAssembler`时,开发者可以编写顶点和片段着色器,...
AGAL是Adobe Flash平台上的低级图形指令集,用于实现高性能的图形处理。由于AGAL是汇编语言,对开发者的技术要求较高,学习曲线较陡峭,因此EasyAGAL应运而生,以降低这方面的门槛。 EasyAGAL库通过提供高级别的API...
actionScript 3.0开发人员指南中文版,总共67章,955页。学习actionScript不错的书籍。 目录: 目录 第章:使用日期和时间 管理日历日期和时间 控制时间间隔 ...第章:Adobe图形汇编语言(AGAL) AGAL字节码格式
ActionScript是Adobe Flash Platform的主要编程语言,常用于创建交互式内容、网页动画以及富互联网应用程序。 在AS3中,绘图主要依赖于`flash.display.Graphics`类,它提供了各种方法,如`beginFill()`, `lineTo()`...