现在大伙都热议的一个话题,关于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();
很多东西都需要时间来整明白,真是劳命伤元气

我想说