美文网首页
ThreeJS中outlinePass的色差问题

ThreeJS中outlinePass的色差问题

作者: EasonYi | 来源:发表于2021-01-05 17:29 被阅读0次
  • 在threejs官方实例中outlinePass的应用里renderer使用的是默认的颜色空间,其渲染我们发现是未造成色差。然而,通常我们会采取gamma矫正来渲染光线敏感型场景,从而使用一些其他的颜色空间,这样直接使用outlinePass勾勒轮廓会使整体场景颜色变暗(产生色差),而且这个问题在大部分Pass中均会出现,侵入性较低的改法为将outlinePass的源码提出,在其中的render方法下修改代码块如下图所示:
        if ( this.renderToScreen ) {

            this.fsQuad.material = this.materialCopy;
            //修改开始 同步renderer的颜色空间 添加代码
            readBuffer.texture.encoding = renderer.outputEncoding;
            //修改完毕
            this.copyUniforms[ 'tDiffuse' ].value = readBuffer.texture;
            renderer.setRenderTarget( null );
            this.fsQuad.render( renderer );

        }
  • 小提示:想一劳永逸可在EffectComposer中统一修改所有Pass,不过可能会产生其他不可预见性问题

相关文章

网友评论

      本文标题:ThreeJS中outlinePass的色差问题

      本文链接:https://www.haomeiwen.com/subject/piewoktx.html