Molehill之简单动作

现在大伙都热议的一个话题,关于3D优化,但是现在这个技术还只是lab阶段并不是很成熟,好些都是汇编语言基础。


在研究中,发现几个细节

1.在FD中要向导出exportswc,装了插件还不够,还要相关的flex-config.xml修改

2. 升级到FD3.34版本,线程状态观察,三角形>20000,好像有点卡,虽然解决cpu的问题,但耗内存,2G的不够用,估计待升级

3.在FD中写代码时可以偷点懒,有快捷键,如for,直接table就出现for的规范书写。

4.Fd在构建路径库方面比较麻烦,虽然classpath已经包含,但没能显示包,这点不同于fB,fx

5. 建立项目时,项目属性中options->additional options待写-swf-version=13

6.建立molehill环境,基础代码环境,

3d初始化环境=stage.stage3Ds[0];

3d处理环境=stage.stage3Ds[0].context3D.configureBackBuffer(900,900,0);

建立顶点缓冲区createVertexBuffer

context3d.setVertexBufferAt(0, vertexBuffer, 0, Context3DVertexBufferFormat.FLOAT_3);
context3d.setVertexBufferAt(1, vertexBuffer, 3, Context3DVertexBufferFormat.FLOAT_3);
0是位置矩阵,1是颜色矩阵,后面0是起始位置,3也是起始位置, FLOAT_3可以理解为取3个数

7.索引缓冲区,可以容易找到顶点位置 =indexBuffer.createIndexBuffer,

0 1 2 3

4 5 6 7

(0,1,5)  (0,4,5)

8.在此环境比较吸引的地方也是最头疼的地方就是这里了,呵呵

var vertexagal:AGALMiniAssembler=new AGALMiniAssembler();

var fragagal:AGALMiniAssembler =new AGALMiniAssembler();

9.建立显卡应用程序接口program=context3d.createProgram();

program.upload(vetexagal.agalcode,fragagal.agalcode)

context3d.setProgram(program);

10.建立matrix3D矩阵,作用于位移,旋转,放大等

一种是perspectiveProjection,另一种perspectiveMatrix3D

11.把数据传到显卡应用程序接口

context3d.setProgramConstansFromMatrix(Context3DProgramType.VERTEX,0,matrix,true);

12. 建立enterFrame或者Timer,进行渲染

context3d.clear();

context3d.drawTriangles(indexBuffer)

context3d.present();

很多东西都需要时间来整明白,真是劳命伤元气

测试地址