Soo*_*onk 0 javascript data-visualization three.js
我一直在研究一个 Three.js 代码。
在阅读代码和文档时,我无法理解一件事。
在这段代码中。 http://jsfiddle.net/w67tzfhx/
有一个代码如下。
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();
}
Run Code Online (Sandbox Code Playgroud)
什么是setDrawRange?drawCount 在那里做什么?
官方文件说
.setDrawRange ( start : Integer, count : Integer ) : null 设置 .drawRange 属性。对于非索引 BufferGeometry,count 是要渲染的顶点数。对于索引 BufferGeometry,count 是要渲染的索引数。
我根本不明白。
谁能帮我解释一下它是什么?先感谢您。
您的几何图形有许多顶点。例如,一个立方体至少有 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 条线
| 归档时间: |
|
| 查看次数: |
1526 次 |
| 最近记录: |