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.Three.js快速入门

  • 2.几何体BufferGeometry

  • 3.模型对象、材质

  • 4.层级模型

  • 5.顶点UV坐标、纹理贴图

  • 6.加载外部三维模型(gltf)

  • 7.PBR材质与纹理贴图

  • 8.渲染器和前端UI界面

  • 9.生成曲线、几何体

  • 10.相机基础

  • 11.光源和阴影

  • 12.精灵模型Sprite

  • 13.后处理EffectComposer

    • 1. 后处理(发光描边OutlinePass)
    • 2. OutlinePass描边样式
    • 3. Bloom发光通道
    • 4. 多通道组合(GlitchPass和描边)
    • 5. gltf工厂模型设置发光描边
    • 6. gltf后处理颜色异常(伽马校正)
      • 7. 抗锯齿后处理
    • 14.射线拾取模型

    • 15.场景标注标签信息

    • 16.关键帧动画

    • 17.动画库tween.js

    • Three.js教程
    • 13.后处理EffectComposer
    郭隆邦
    2023-03-03
    目录

    6. gltf后处理颜色异常(伽马校正)

    # gltf后处理颜色异常(伽马校正)

    你打开上节课代码,可以发现,加载gltf模型,如果使用EffectComposer添加后处理功能,模型颜色可能会出现异常,对于这种情况,首先要先分析产生颜色偏差原因。

    # 颜色偏差的原因

    首先你可以回顾6.3和6.9节内容,加载gltf模型如果出现颜色偏差,需要设置renderer.outputEncoding解决。

    如果你使用threejs后处理功能EffectComposer,renderer.outputEncoding会无效,自然会出现颜色偏差。

    renderer.outputEncoding = THREE.sRGBEncoding;
    

    # 引入GammaCorrectionShader.js

    GammaCorrectionShader.js扩展库的目录:examples/jsm/shaders/

    examples/jsm/shaders/目录下有很多不同功能的shader文件,GammaCorrectionShader.js的功能就是进行伽马校正,具体点说就是可以用来解决gltf模型后处理时候,颜色偏差的问题。

    // 伽马校正后处理Shader
    import {GammaCorrectionShader} from 'three/addons/shaders/GammaCorrectionShader.js';
    

    # 引入ShaderPass.js

    ShaderPass.js扩展库目录:examples/jsm/postprocessing/

    // ShaderPass功能:使用后处理Shader创建后处理通道
    import {ShaderPass} from 'three/addons/postprocessing/ShaderPass.js';
    

    # 创建伽马校正后处理通道

    threejs并没有直接提供伽马校正的后处理通道,提供了一个伽马校正的Shader对象GammaCorrectionShader,这时候可以把Shader对象作为ShaderPass的参数创建一个通道。

    // 创建伽马校正通道
    const gammaPass= new ShaderPass(GammaCorrectionShader);
    composer.addPass(gammaPass);
    
    5. gltf工厂模型设置发光描边
    7. 抗锯齿后处理

    ← 5. gltf工厂模型设置发光描边 7. 抗锯齿后处理→

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