`

adobe的AGAL语言

阅读更多

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 Reference Card

    Adobe AGAL(Adobe Graphics Assembly Language)是一种专为Adobe Flash Player 和 Adobe AIR 中的GPU加速3D渲染而设计的低级图形装配语言。它允许开发者直接控制GPU进行高效、精确的3D图形处理,特别适用于那些需要...

    AGAL 基本语法大全

    AGAL 基本语法大全 AGAL(Adobe Graphics Assembly Language)是Adobe开发的图形汇编语言,汇编语言是仅高于计算机二进制机器码的低级语言,可以精确地操控机器硬件比如可编程显卡

    AGAL着色器编程语法

    AGAL(ActionScript Graphics ALgorithm)是Adobe开发的一种低级着色语言,主要用于Stage3D图形编程,特别是在Flash平台上的高性能图形渲染。了解AGAL着色器编程语法是Flash显卡编程的基础,对于创建复杂的3D图形和...

    AGAL图像处理PPT和源码

    AGAL,全称为ActionScript Graphics Assembler Language,是Adobe为Flash平台开发的一种低级图形着色语言。在移动设备上,特别是使用Adobe AIR框架开发的Android和iOS应用中,AGAL被广泛用于GPU加速的图形处理,从而...

    Adobe Molehill Stage3d 编译器AGALMiniAssembler

    AGAL(Adobe Graphics Assembly Language)是Adobe开发的图形汇编语言,汇编语言是仅高于计算机二进制机器码的低级语言,可以精确地操控机器硬件比如可编程显卡,PC的Dirext9、MAC的OpenGL以及移动设备中的OpenGL ES 2...

    Adobe Flash 11 Stage3D (Molehill) Game Programming Beginner's Guide

    书中的内容是基于AS3(ActionScript 3.0)编程语言和AGAL(Adobe Graphics Assembly Language)汇编语言,指导读者通过一步一步的过程来创建令人惊叹的3D游戏。 知识点一:Adobe Flash Player的Stage3D技术 Adobe ...

    Adobe Flash 11 Stage3D (Molehill) Game Programming Beginner's Guide.pdf

    - **主要内容**:包括了使用ActionScript 3 (AS3) 和 AGAL(Adobe GPU Assembly Language)等技术来创建令人惊叹的3D游戏。 #### 知识点详解 1. **Adobe Flash 11**: - **简介**:Adobe Flash 11 是一款用于创建...

    Adobe Flash 11 Stage3D Molehill Game Programming Beginners Guide

    AGAL是一种图形汇编语言,专门用于编写Shader程序,这些程序运行在GPU上,负责渲染图形效果。 - **着色器编程**:AGAL允许开发者编写顶点着色器和片段着色器,以实现复杂的光照效果、纹理映射等功能。 - **高效渲染...

    Geometry-Wars-Clone-Flash:用 actionscript 3 air (starling + AGAL) 编写的几何战争克隆

    AGAL(Adobe Graphics ALchemy)是Adobe Stage3D使用的低级着色语言,用于编写GPU执行的顶点和片段着色器。在《几何战争克隆》中,AGAL被用来实现各种动态效果和图形渲染,如粒子系统、光照效果等,提高了游戏的视觉...

    Stage3D新手入门教程

    AGAL,全称Adobe Graphics Assembly Language,是Stage3D中用于编程图形硬件的汇编语言。AGAL让开发者能够直接控制GPU,执行复杂的图形操作,如顶点和像素着色。虽然AGAL的学习曲线较陡,但它提供了对3D渲染流程的...

    PerspectiveMatrix3D

    在3D渲染中,着色器负责计算每个像素的颜色和位置,而`AGALMiniAssembler`可以帮助开发者将高级语言编写的着色器代码转换为AGAL指令,以便GPU执行。 使用`AGALMiniAssembler`时,开发者可以编写顶点和片段着色器,...

    EasyAGAL:EasyAGAL是一个开放源代码的ActionScript库,它简化了汇编语言着色器的编码。 优势包括-e language source code

    AGAL是Adobe Flash平台上的低级图形指令集,用于实现高性能的图形处理。由于AGAL是汇编语言,对开发者的技术要求较高,学习曲线较陡峭,因此EasyAGAL应运而生,以降低这方面的门槛。 EasyAGAL库通过提供高级别的API...

    ActionScript开发人员指南中文版

    actionScript 3.0开发人员指南中文版,总共67章,955页。学习actionScript不错的书籍。 目录: 目录 第章:使用日期和时间 管理日历日期和时间 控制时间间隔 ...第章:Adobe图形汇编语言(AGAL) AGAL字节码格式

    绘图示例:图案和高级3D效果

    ActionScript是Adobe Flash Platform的主要编程语言,常用于创建交互式内容、网页动画以及富互联网应用程序。 在AS3中,绘图主要依赖于`flash.display.Graphics`类,它提供了各种方法,如`beginFill()`, `lineTo()`...

Global site tag (gtag.js) - Google Analytics