【发布时间】:2019-04-03 05:25:02
【问题描述】:
我正在使用 Three.js 开发巨大的点云查看器(超过 1000 万)。 但是,我得到了一个奇怪的结果——mac 和 windows 之间的渲染不一样。
下图是在 Mac 上 On Mac,下一个数字On windows 在 Windows(7) 上。
两者都使用英特尔高清显卡 4000。 Chrome 浏览器会发生什么?
附加信息:同样的情况是 iPhoneSE、iPhoneX、iPad4、MacBook、MacBookAir 和 MacBookPro。那些机器显示非常稀疏的点云(通常是英特尔高清显卡系列)
但是,只有 iMac(2017) 成功地显示了巨大的点云。它使用 Radeon pro 555,而不是英特尔 GPU。
我想要任何关于信息或/和错误的消息,但“chrome_debug.log”中没有错误
=== === 在我的代码下方
if(data.point.position.length>0){
var geometry = new THREE.BufferGeometry();
geometry.addAttribute('position', new THREE.BufferAttribute(data.point.position, 3));
geometry.addAttribute('color', new THREE.BufferAttribute(data.point.color, 3));
var material = new THREE.PointsMaterial({
vertexColors: THREE.VertexColors,
size:0.8,
sizeAttenuation : true,
});
}
=== P.P.S. === 所有人
尝试和错误,在我找到解决它之前。 当 pointMaterial.sizeAttenuation = false 时,Mac 上的 FAR 透视图与 Windows 上的一样。但是,NEAR 透视图变成了稀疏的点云。 但是如果 NEAR 视角,使用 pointMaterial.sizeAttenuation = true 创建,我得到的结果比以前更好。
非常感谢您的建议。
【问题讨论】:
-
从外观上看,在有问题的情况下,它可能只是渲染的前 64k 点。你能确认一下吗?
-
@H.Gatz 您需要显示您的代码,否则我们在猜测...如果您还没有这样做,请尝试添加
renderer.setPixelRatio( window.devicePixelRatio );。渲染器将为您正确调整像素大小。 -
感谢 WestLangley 先生的建议。我不知道 Retina Display。很快,更新了我的代码和测试,但对于 FAR 透视图,结果似乎相同。但是,NEAR 透视图完全改变了。
标签: three.js point-clouds