Javascript setDrawRange做什么?在3.js中
我一直在研究three.js代码 在阅读代码和文档时, 有一件事我搞不懂 在这个代码中。 下面是一个代码Javascript setDrawRange做什么?在3.js中,javascript,three.js,data-visualization,Javascript,Three.js,Data Visualization,我一直在研究three.js代码 在阅读代码和文档时, 有一件事我搞不懂 在这个代码中。 下面是一个代码 function init(){ var geometry = new THREE.BufferGeometry(); var positions = new Float32Array(MAX_POINTS*3); geometry.addAttribute('position',new THREE.BufferAttribute(positions,3)
function init(){
var geometry = new THREE.BufferGeometry();
var positions = new Float32Array(MAX_POINTS*3);
geometry.addAttribute('position',new THREE.BufferAttribute(positions,3))
drawCount =2;
geometry.setDrawRange(0,drawCount );
mat = new THREE.LineBasicMaterial( { color: 0xff0000, linewidth: 2 } );
line= new THREE.Line(geometry, mat)
scene.add(line)
updatePositions();
}
什么是setDrawRange?
抽签计数在那里做什么
官方文件说
.setDrawRange(开始:整数,计数:整数):null设置
.drawRange属性。对于非索引缓冲区几何体,计数是
要渲染的顶点数。对于索引缓冲区几何体,计数是
要渲染的索引数
我一点也不明白
有人能帮我解释一下是什么吗?
提前感谢。您的几何体有许多顶点。例如,立方体至少有36个(6条边中每边6个,因为每边需要2个三角形才能形成矩形,而每个三角形需要3个顶点)。默认情况下,三个将绘制所有36个。要仅绘制前6个,请调用
setDrawRange(0,6)
。要绘制最后6个,请调用setDrawRange(30,6)
。要绘制全部36个图形,请调用setDrawRange(0,36)
顶点可以被索引或非索引。如果它们被编入索引,这只意味着数据中存在一定程度的间接性。而不是setDrawRange(0,6)
指的是前6个顶点,而是指的是前6个索引,而这6个索引又指的是6个顶点(如果索引重复,有些可能会重复)
使用setDrawRange
是不常见的,但是有一个用例,比如你想画一堆线。不需要制作许多单独的线对象,只需制作一个几何体,其中包含一组线的空间(比如1000条线,即2000个顶点)。然后,您可以根据需要向几何体添加线,并通过调用setDrawRange(0,numLines*2)
(每行2个顶点)告诉三个用户仅绘制前N条线
您可以了解有关几何图形和几何图形的更多信息