使用Stage3D时的那些限制
了解一下Stage3D的那些限制,在日常开发中会很有帮助。目前总结了下面那些限制,可能还有其它,欢迎您来查漏补缺。日后如果我发现更多限制,我会第一时间补上,所以本文会持续更新。
- AGAL 限制:每个程序 200 个 opcode [引自]
- 绘制调用限制:每个 Context3D.present() 调用 32768 个 drawTriangles() 调用[引自]
- Context3D.createIndexBuffer() 单个缓冲区中的最大索引数为 524287 [引自]
- Context3D.createVertexBuffer() 单个缓冲区中的最大顶点数为 65535 [引自]
- Context3D.createTexture()和Context3D.createCubeTexture()的参数streamingLevels的最大值是 log2(min(width,height)) [引自]
- Context3D.configureBackBuffer() 缓冲区的最小大小为 50×50 像素 [引自]
- IndexBuffer3D 索引为 16 位无符号整数,即所允许的最大索引值为 65535 (0xffff) [引自]
- Program3D.upload() 两个参数都必须为Endian.LITTLE_ENDIAN [引自] (注:程序会在每次调用 Context3D.drawTriangles() 方法时运行顶点着色程序和片段着色程序。顶点程序会为要绘制的三角形列表中的每个顶点执行一次。片段程序会为三角形表面的每个像素执行一次)
- Context3D.setVertexBufferAt() 顶点着色器所使用数据的最小单位为 32 位数据。距顶点流的偏移量以 32 位的倍数指定(注:GPU的寄存器被设计为128位,也就是32+32+32+32,即一个寄存器最多能放4个Number。)[备注1] [引自]
- VertexBuffer3D 最多可以为每个点提供 64 个 32 位值(256 字节)数据(但在这种情况下,单个顶点着色器无法使用所有数据。Y.Boy注:因为顶点寄存器最大数量才8个,每个是32位,总共才32字节)。即:uploadFromVector() 方法的参数numVertices最大值可以为64。[引自]
- 资源限制 [备注2] [引自]
- 寄存器数量限制 [备注3] [引自]
————————————————————
备注1:
使用Context3D.setVertexBufferAt()时,可以用以下数据定义每个顶点(x,y,z,r,g,b,a):
position: x float32 y float32 z float32 color: r unsigned byte g unsigned byte b unsigned byte a unsigned byte
假设 buffer 为 VertexBuffer3D 对象,使用以下代码将其分配给顶点着色器:
setVertexBufferAt(0, buffer, 0, Context3DVertexBufferFormat.FLOAT_3); // 第一个寄存器(va0)包含位置信息 setVertexBufferAt(1, buffer, 3, Context3DVertexBufferFormat.BYTES_4); // 第二个寄存器(va1)包含颜色信息。注意:这里是 BYTES_4 ,四个单字节。
备注2:
备注3:
转:http://riaoo.com/?p=2556
标签: Flash
天气
分类
标签
存档
- 2024年3月(1)
- 2024年2月(1)
- 2023年8月(1)
- 2023年7月(1)
- 2023年5月(1)
- 2022年9月(1)
- 2022年8月(1)
- 2022年1月(2)
- 2021年10月(1)
- 2021年7月(1)
- 2020年9月(1)
- 2020年8月(1)
- 2020年7月(1)
- 2020年6月(2)
- 2020年5月(1)
- 2019年10月(1)
- 2019年9月(2)
- 2019年7月(1)
- 2019年1月(4)
- 2018年12月(1)
- 2018年11月(1)
- 2018年10月(5)
- 2018年8月(2)
- 2018年7月(5)
- 2018年6月(2)
- 2018年4月(1)
- 2018年2月(1)
- 2017年12月(2)
- 2017年11月(1)
- 2017年10月(4)
- 2017年9月(3)
- 2017年8月(2)
- 2017年5月(2)
- 2017年4月(7)
- 2017年2月(1)
- 2016年12月(1)
- 2016年11月(2)
- 2016年10月(3)
- 2016年6月(2)
- 2016年3月(1)
- 2016年1月(2)
- 2015年12月(3)
- 2015年11月(3)
- 2015年10月(1)
- 2015年9月(1)
- 2015年8月(2)
- 2015年7月(2)
- 2015年5月(1)
- 2015年4月(1)
- 2015年2月(1)
- 2015年1月(1)
- 2014年12月(4)
- 2014年11月(1)
- 2014年10月(1)
- 2014年8月(4)
- 2014年7月(2)
- 2014年6月(1)
- 2014年2月(2)
- 2014年1月(2)
- 2013年12月(26)
- 2013年10月(2)