javascript - 如何将 InstancedBufferGeometry 与 threejs 一起使用
问题描述
当我使用 InstancedBufferGeometry 时不显示。(当下面的代码删除注释时,显示了多边形。)但是,当显示多边形时,我使用了 BufferGeometry。
为什么下面的代码不起作用。
请教我。
const createGeometry = () => {
// const geometry = new THREE.BufferGeometry();
const geometry = new THREE.InstancedBufferGeometry();
const positions = new THREE.BufferAttribute(new Float32Array(4 * 3), 3);
const uvs = new THREE.BufferAttribute(new Float32Array(4 * 2), 2);
positions.setXYZ(0, -0.5, 0.5, 1.0);
positions.setXYZ(1, 0.5, 0.5, 1.0);
positions.setXYZ(2, -0.5, -0.5, 1.0);
positions.setXYZ(3, 0.5, -0.5, 1.0);
uvs.setXYZ(0, 0.0, 0.0);
uvs.setXYZ(1, 1.0, 0.0);
uvs.setXYZ(2, 0.0, 1.0);
uvs.setXYZ(3, 1.0, 1.0);
geometry.setAttribute("position", positions);
geometry.setAttribute("uv", uvs);
geometry.setIndex(
new THREE.BufferAttribute(new Uint16Array([0, 2, 1, 2, 3, 1]), 1)
);
return geometry;
};
当使用 BufferGeometry 时。
解决方案
不支持使用InstancedBufferGeometry
没有至少一个的 a InstancedBufferAttribute
。
这种用法甚至没有意义,因为您希望拥有一个或多个属性来定义每个实例的变化。
推荐阅读
- python - 根据自定义逻辑操作列表
- bash - bash:从存储在变量中的日期中减去一天
- javascript - 从同一类的另一个方法中的事件侦听器中删除 JavaScript 类方法
- python - pyinstaller 无法识别捆绑的数据目录
- laravel - 我们的域参与了发送垃圾邮件,现在没有电子邮件进入收件箱
- deep-learning - 关键词提取和基于关键词的文本分类
- c++ - 检查数组元素中的所有数字是 0 还是 1 [c++]
- typescript - 检测已弃用的 API 使用情况
- java - 为 ruby 获取此“RSA/ECB/OAEPWithSHA-256AndMGF1Padding”组合
- javascript - 如何从反应中的动态选择下拉列表中清除所选值?