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
网友评论