首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >三个JS:近距离平面中奇怪的渲染问题

三个JS:近距离平面中奇怪的渲染问题
EN

Stack Overflow用户
提问于 2020-09-03 18:10:12
回答 1查看 42关注 0票数 0

我正在使用Three.js渲染一些带有纹理的平面,一个或另一个的顶部。两个平面之间的距离是10个单位(我不确定它们到底是什么)。

所有的平面都是MeshBasicMaterial,配置如下:

代码语言:javascript
复制
let frontMaterial = new THREE.MeshBasicMaterial( {
    map: getFrontCover(),
    side: THREE.FrontSide
});

当平面以10的常规距离放置时,我可以看到渲染的奇怪条纹,如图所示:

假设距离是强制的,我如何解决这个问题?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2020-09-03 21:39:10

有几件事你可以做。

  1. 使透视相机的近距离和远距离设置尽可能适合您的内容。

例如,假设相机距离书本2个单位,书本深度为1个单位。在这种情况下,将near和far设置为0.5和3.5可能会解决此问题。换句话说

……新的THREE.PerspectiveCamera(fieldOfView,aspect,0.5 /* near /,3.5 / far */

如果这些数字差了几个数量级,你会得到这个问题

  1. 使用对数深度缓冲区

请参阅此示例:https://threejs.org/examples/?q=log#webgl_camera_logarithmicdepthbuffer

  1. 设置材质的多边形偏移

您想要在应该位于后面的网格的材质上设置此参数

material.polygonOffset = true;material.polygonOffsetFactor = 1;material.polygonOffsetUnits = 1;

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63721425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档