ios - 景深效果 – BokehPass 在 iOS (iPhone 7) 上无法正常工作
问题描述
我已经使用 BokehPass 实现了景深效果(基于https://threejs.org/examples/?q=dof#webgl_postprocessing_dof)
它在台式机(PC 或 Mac)上运行良好,但在我的 iPhone 上它坏了。它只会模糊整个场景(基于设置——所以它实际上是在做某事),但它缺少焦点(锐利)区域。因此,如果“focus”值设置为 0,则整个屏幕都很清晰,当我提高它时,整个屏幕会变得模糊。在桌面上它按预期工作 - 提高焦点值“移动”焦点区域,因此前景模糊,背景模糊,但焦点区域清晰。
我的代码没有什么花哨的:
this._composer = new EffectComposer(this._renderer);
const renderPass = new RenderPass(this._scene, camera);
this._bokehPass = new BokehPass(this._scene, camera, {
focus: 1.0,
aperture: 0.025,
maxblur: 0.01,
width: window.innerWidth,
height: window.innerHeight,
});
const gammaCorrectionPass = new ShaderPass(GammaCorrectionShader);
this._composer.addPass(renderPass);
this._composer.addPass(gammaCorrectionPass);
this._composer.addPass(this._bokehPass);
非常感谢
解决方案
根据@Mugen87 提示,iOS 上的问题是由 renderer.logarithmicDepthBuffer 设置为 true 引起的。如果设置为 false,iOS 设备上的焦点区域将按预期工作。
推荐阅读
- asp.net-core - 模块之间的通信 - MediatR 或 Interface/Fasade?
- android - 如何在嵌套对象中获取 Firestore GeoPoint 值?
- python - 在 Azure Container Regisrty 上使用自定义 Docker 映像部署 Azure 机器学习模型
- python-3.x - 在 __getattr__ 中引发 AttributeError(attr) AttributeError: to_text
- drone - 微调无人机管道步骤的条件
- django - 使用 chart.js 显示空图表
- javascript - 在 v_bind:class 中调用方法不起作用(vue js)
- c - 为什么在 C 中使用静态函数?
- python-3.x - 如何删除嵌套的 for 循环并使用 numpy 数组 insead
- swift - 检查返回值是否为整数,如果是,则在 Swift 中返回字符串