Canvas 在Three.js中呈现问题

Canvas 在Three.js中呈现问题,canvas,three.js,Canvas,Three.js,在特定缩放中渲染三维模型时,将正确渲染模型,但当模型远离摄影机时,将渲染模型后面的部分 将渲染器属性设置为, Renderer.context.disable(Renderer.context.DEPTH_TEST); Renderer.autoClearDepth=true; Renderer.autoClearStencil=true; Renderer.sortObjects=true; Renderer.shadowMapCullFace=3.CullFaceBack; Rendere

在特定缩放中渲染三维模型时,将正确渲染模型,但当模型远离摄影机时,将渲染模型后面的部分

将渲染器属性设置为,

Renderer.context.disable(Renderer.context.DEPTH_TEST);
Renderer.autoClearDepth=true;
Renderer.autoClearStencil=true;
Renderer.sortObjects=true;
Renderer.shadowMapCullFace=3.CullFaceBack;
Renderer.shadowMap.enabled=true;
Renderer.shadowMap.type=THREE.PCFSoftShadowMap;
Renderer.gammaInput=true;
Renderer.gammaOutput=true

增加摄影机的z值时,将正确渲染为,

但是在降低相机的z值时,蓝色纹理的3d模型要比白色模型好


根据我从您的问题中了解到的情况,在更改摄影机z维度时渲染对象时出现错误

您可以尝试修复以下问题:

  • 确保相机对象的“近”和“远”值设置为“包含” 对象的z位置,类似于:

    camera.near=0.01;//最小z

    camera.far=10000;//最大z

  • 使用对象材质属性:
    depthTest
    depthWrite

您可能会发现这很有帮助。短版本如mfx所说,将camera.near和camera.far设置为合理的值。“近”应尽可能远离相机,不要剪辑任何显示内容,“远”应尽可能靠近相机,不要剪辑最远的对象。