哈哈,今天群友又问了一个很有意思的问题,问gl.drawElements()如何使用,如何制定绘制的范围,哈哈,很基础的问题,但也难住了很多人,你也可以思考一下如何去实现,Three.js源码拆分几何体地时候就会用到这些api技巧,但是我之前并没有深入去学习,OK,带着问题我们开始吧。
先来看一下 gl.drawArrays()的ts声明:
drawArrays(mode: number, first: number, count: number): void;
这个理解起来就比较简单了,就是常说的顶底绘制,这个常用比较简单。
需要注意的是:
下面重点来了哈,先看一下gl.drawElements()的ts声明:
drawElements(mode: number, count: number, type: number, offset: number): void;
这个一看,也没什么难的吗,肯定是根据count和offset去设置范围,当然是这样,也肯定是这样,那我提一个问题,count和offset之间又有什么关系呢。好,接下来,让我结合代码去分析这个问题。首先来看一下构建顶点数据的代码:
this.vertexData= [
3.0,3.0,3.0,
3.0,-3.0,3.0,
-3.0,3.0,3.0,
-3.0,