如何解决如何使用 SceneBuilder 和 BufferGeometry 在伪造查看器中创建点?
在开发者指南 here 中,forge 提到我们可以使用 SceneBuilder 扩展和 BufferGeometry 创建点。我们需要将 BufferGeometry 的 isPoint 设置为 true 来执行此操作。我在场景中只创建一个点的方法如下
async function addASinglePoint() {
await viewer.loadExtension('Autodesk.Viewing.SceneBuilder');
const ext = viewer.getExtension('Autodesk.Viewing.SceneBuilder');
modelBuilder = await ext.addNewModel({
conserveMemory: false,modelNameOverride: 'A Single Marker'
});
const red = new THREE.MeshphongMaterial({
color: new THREE.Color(1,0)
});
const geometry = new THREE.BufferGeometry();
geometry.addAttribute('position',new THREE.BufferAttribute([0,0],3));
geometry.isPoints = true;
let mesh = new THREE.Mesh(geometry,red);
mesh.matrix = new THREE.Matrix4().compose(
new THREE.Vector3(0,0),new THREE.Quaternion(0,1),new THREE.Vector3(1,1,1)
);
mesh.dbId = 234543;
modelBuilder.addMesh(mesh);
}
但是我在查看器中看不到任何点。在 Model 浏览器中,我可以看到该项目已添加,如果我单击该项目,查看器似乎导航到该项目。但是除了枢轴点我什么都看不到。可能是我没有设置点大小。我找不到任何方法来设置点的大小。如何设置点的大小并在查看器中显示?如果我需要添加更多积分(100-200),那么正确的方法是什么? TIA
解决方法
如果您有兴趣向查看器添加点云,有以下几种选择:
-
使用标准
THREE.PointCloud
类,如下所示:https://forge.autodesk.com/blog/basic-point-clouds-forge-viewer(您的方法与它类似,因此它可能也有效,但您可能需要使用 {{1 }}) -
使用 Potree,如以下代码示例所示:https://github.com/petrbroz/forge-potree-demo
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。