WebGl之结构数组
来源:互联网 发布:最好的优化软件 编辑:程序博客网 时间:2024/04/28 11:07
gl.bindBuffer(gl.ARRAY_BUFFER, obj.mesh['ext']); gl.vertexAttribPointer(evn['aVertexNormal'], 3, gl.FLOAT, false, (3+2)*4, part['offset']*4); gl.vertexAttribPointer(evn['aTextureCoord'], 2, gl.FLOAT, false, (3+2)*4, (part['offset']+3)* 4); gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, obj.mesh['indices']); gl.drawElements(gl.TRIANGLES, part['total'], gl.UNSIGNED_SHORT, part['offset']*2);
在webgl中,使用缓冲结构数组时,纠结了好长一段时间,具体为
void vertexAttribPointer(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLintptr offset);void drawElements(GLenum mode, GLsizei count, GLenum type, GLintptr offset);
第一个的stide 为步幅的意思,例如存储数据格式为 x y z u v, 那么应该是 (3+2)个数据* 每个数据占用的字节数(webgl中存储顶点一般用Float32Array = 32bit = 4byte):4
那么步幅应该为:(3+2)*4 = 20, 偏移同样也要按字节算,比较简单 offset *4 即可;
那为啥drawElements的offset要乘以2? 一般在建立缓冲的时候使用的是Uint16Array = 16bit = 2byte, OK,这里做个记录
0 0
- WebGl之结构数组
- WebGL 加载模型时,javascript 解析结果的调试转成 JSON 查看确认数组结构
- 线性结构之数组
- WebGL之深度缓存
- WebGL之旋转三角形
- Webgl之three.js
- WebKit之WebGL初识
- WebKit之WebGL实现
- GLES 顶点数组之 结构数组 与 数组结构
- 结构体之柔性数组
- 数据结构之线性结构--数组
- UE4结构体数组之多维数组
- webgl learning 之体会总结
- WebGL技术学习之路
- WebGL
- WebGL
- WebGL
- webGL
- Speex
- 精简代码,为网站减负的十大建议
- hdu 2845 Beans
- 网络数据获取三种方法对比:HUB、SPAN和TAP
- 常见算法在实际项目中的应用
- WebGl之结构数组
- 使用Chrome登录EBS报错FRM-92120
- ORACLE空间管理实验4:块管理之ASSM三级位图结构
- QQ通讯组件官网
- 64-bit win7系统使用devcon.exe批量删除多余的网络适配器的注意要点
- 浅谈Eclipse调用Tomcat服务的原理
- lua和c/c++互相调用实例分析
- 【Win7下Android native code的编译和调试】
- vs2010ActiveX使用DataGrid