Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
仅在MacBook Pro(视网膜)上使用Three.js中SSAO的人工制品_Three.js_Ssao - Fatal编程技术网

仅在MacBook Pro(视网膜)上使用Three.js中SSAO的人工制品

仅在MacBook Pro(视网膜)上使用Three.js中SSAO的人工制品,three.js,ssao,Three.js,Ssao,我目前正在使用。除了我的MacBookPro视网膜外,它在我的大多数机器上都能正常工作。直到几周前(可能是在MBP上的固件升级之后),MBP才完美地呈现SSAO 目前,MBP渲染SSAO场景时,屏幕上有大量闪烁的人工制品,如下所示: 同样的代码在其他机器上呈现得非常完美。我在其他MBP上看到过这个问题,所以我相信这不是一个单一的问题 除了固件更新,我没有在这个MBP上改变任何东西,在它工作和人工制品出现之间(代码是相同的) 如果我移除SSAO效果,那么场景将完美渲染 有什么想法吗?我想你

我目前正在使用。除了我的MacBookPro视网膜外,它在我的大多数机器上都能正常工作。直到几周前(可能是在MBP上的固件升级之后),MBP才完美地呈现SSAO

目前,MBP渲染SSAO场景时,屏幕上有大量闪烁的人工制品,如下所示:

同样的代码在其他机器上呈现得非常完美。我在其他MBP上看到过这个问题,所以我相信这不是一个单一的问题

除了固件更新,我没有在这个MBP上改变任何东西,在它工作和人工制品出现之间(代码是相同的)

如果我移除SSAO效果,那么场景将完美渲染


有什么想法吗?

我想你需要考虑设备的比例。看看这个例子
http://uihacker.blogspot.gr/2013/03/javascript-antialias-post-processing.html

在Retina Macbook上的所有浏览器上都会出现这种情况,但在其他设备上也会出现这种情况(在Chromebook像素上看起来不错),这表明这可能是OSX上的驱动程序错误。WebGL中可能有一种方法来解决它,但我建议至少提交一个文件。

< P>我在非视网膜MacBook Pro上有完全相同的问题,所以它似乎是英伟达图形驱动程序中的一个缺陷。似乎影响行为的一个因素是材料混合。将“深度材质混合”设置为3.0时,我可以获得更好的结果:

// depth
var depthShader = THREE.ShaderLib[ "depthRGBA" ];
var depthUniforms = THREE.UniformsUtils.clone( depthShader.uniforms );

depthMaterial = new THREE.ShaderMaterial( { fragmentShader: depthShader.fragmentShader, vertexShader: depthShader.vertexShader, uniforms: depthUniforms } );
depthMaterial.blending = THREE.NoBlending; //add this

此外,摄影机的“近平面”设置似乎对渲染有影响。

我通过将摄影机对象的“近”属性更改为大于1的值,解决了该问题。仍然不确定为什么这会修复它,但SSAO现在在Retina MacBook上可以完美工作。

谢谢你的建议。我不相信这与视网膜的像素比率有关,因为几周前这些SSAO演示在同一台机器上运行良好。在这几周里,Three.js或Retina发生了一些变化,导致了这种情况的发生。考虑到与MBP Retina最近的操作系统和固件升级很接近,这可能是我担心的。我将提交这个bug并继续,希望能得到一个临时修复。有趣的是,旧的SSAO演示效果很好。我希望这是您的解释:非常有趣!直到几个月前,当相机的“接近”值设置为1时,这项功能还可以正常工作,这仍然令人好奇。要么是Three.js中发生了一些变化,要么是Retina MacBook的更新把事情搞砸了。不过,很高兴能修好它!