Three.js中文网 Three.js中文网
首页
免费视频
系统课 (opens new window)
  • Three.js基础课程
  • Vue3+Threejs 3D可视化
  • Threejs进阶课程
  • 展厅3D预览漫游
  • Threejs Shader
  • Blender建模基础
  • Three.js基础课程(旧版本) (opens new window)
  • 文章
WebGPU教程
  • WebGL教程
  • WebGL教程(旧版本) (opens new window)
3D案例
  • 本站部署(打开快) (opens new window)
  • 原英文官网文档 (opens new window)
首页
免费视频
系统课 (opens new window)
  • Three.js基础课程
  • Vue3+Threejs 3D可视化
  • Threejs进阶课程
  • 展厅3D预览漫游
  • Threejs Shader
  • Blender建模基础
  • Three.js基础课程(旧版本) (opens new window)
  • 文章
WebGPU教程
  • WebGL教程
  • WebGL教程(旧版本) (opens new window)
3D案例
  • 本站部署(打开快) (opens new window)
  • 原英文官网文档 (opens new window)
Web3D系统课程视频
  • 0.学前说明

  • 1.Vue+Three.js基础

  • 2.场景搭建Three+Blender

  • 3.渲染效果提升(材质光照)

    • 1. 光照、环境贴图
    • 2. 环境贴图hdr格式
    • 3. 天空盒全景图作为背景
    • 4. threejs深度冲突
      • 5. 标准网格材质(金属)
      • 6. 物理网格材质(玻璃)
      • 7. dat.gui辅助调试物理材质
      • 8. dat.gui辅助调试光照参数
      • 9. dat.gui调节平行光照射角度
    • 4.渲染性能、模型压缩

    • 5.封装、进度条、切视角

    • js 3D可视化
    • 3.渲染效果提升(材质光照)
    郭隆邦
    2024-03-12
    目录

    4. threejs深度冲突

    # threejs深度冲突

    所谓threejs深度冲突,就是两个面重合,或者说两个面距离特别近,threejs无法区分前后,旋转、缩放或平移3D场景的时候,可以看到闪烁的现象。

    # 测试:深度冲突

    可以测试上节课收费站案例,缩放3D场景,观察到地面箭头,有的视角看不到闪烁,有的可以。

    这种一般都是在透视投影相机渲染时候,两个面距离很近,相机无法区分前后。

    # 解决:对数深度缓冲区logarithmicDepthBuffer

    尤其相机距离远的时候,出现深度冲突,可以通过开启webgl渲染器的对数深度缓冲区logarithmicDepthBuffer:true解决。

    const renderer = new THREE.WebGLRenderer({
        antialias: true,
        logarithmicDepthBuffer:true
    });
    

    # 两个面完全重合

    两个面完全重合,或者说距离无限进阶,设置logarithmicDepthBuffer:true,其实作用不大,还是需要美术在建模软件中调整,完全重合的面,拉开一定一定距离。

    你可以在Blender中创建一个矩形平面,然后让两个面完全重合,进行测试。

    3. 天空盒全景图作为背景
    5. 标准网格材质(金属)

    ← 3. 天空盒全景图作为背景 5. 标准网格材质(金属)→

    Theme by Vdoing | Copyright © 2016-2025 豫ICP备16004767号-2
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式