Unity可编程渲染管线系列(十二)图像质量(MSAA和HDR)

目录

1 渲染比例

1.1 向下缩放

1.2 渲染到缩放后的纹理

1.3 向上缩放

2 MSAA

2.1 配置

2.2 多采样渲染纹理

2.3 解析纹理贴图

2.4 无深度解析

2.5 Depth-Only 通道

3 HDR

3.1 配置

3.2 纹理格式

3.3 色调映射

3.4 莱因哈德(Reinhard)

3.5 修改Reinhard

本文重点:

1、调整渲染比例

2、支持MSAA

3、启用HDR,带有可选的色调映射

这是涵盖Unity的可脚本化渲染管道的教程系列的第12部分。它涉及通过调整渲染比例,应用MSAA以及与色调映射结合使用HDR缓冲区进行渲染来提高图像质量。

本教程是CatLikeCoding系列的一部分,原文地址见文章底部。“原创”标识意为原创翻译而非原创教程。

本教程使用Unity 2018.4.6f1制作。

(HDR,MSAA和渲染比例一起使用)

1 渲染比例

要渲染的图像的宽度和高度由相机确定,这不受管道的控制。但是我们可以在渲染到摄像机目标之前做任何我们想做的事情。如果渲染为中间的纹理,可以提供我们想要的任何大小。例如,我们可以将所有内容渲染为较小的纹理,然后对相机目标进行最后的blit处理以将其缩放到所需大小。这会降低图像质量,但由于要处理的片段较少,因此加快了渲染速度。Lightweight/Universal管道具有“Render Scale”选项来支持此功能,因此我们也将其添加到我们自己的管道中。

1.1 向下缩放

将渲染比例的滑块添加到MyPipelineAsset,初始范围为?~1。将分辨率降低到四分之一会使质量下降很多(像素数除以16),并且除非原始分辨率很高,否则很可能无法接受。

(Render scale 滑块设置为最小值)

将渲染比例传递给管道实例。

并让MyPipeline跟踪它。

在“渲染”(Render)中渲染摄影机时,请确定在创建渲染纹理之前是否使用缩放渲染,以防出现活动堆栈。缩小渲染比例后,我们将使用缩放渲染,但是仅对游戏窗口摄影机使用,因此场景,预览和其他摄影机不会受到影响。使用布尔变量跟踪此决策,让我们可以参照。

还要跟踪变量中的渲染宽度和高度。它们默认情况下由相机确定,但是在使用缩放渲染时必须进行调整。

1.2 渲染到缩放后的纹理

现在,当使用缩放渲染或后处理时,我们必须渲染为中间纹理。还要使用布尔值对此进行跟踪,并在获取纹理时使用调整后的宽度和高度。

从现在开始,当调用RenderAfterOpaque时,必须将调整后的宽度和高度传递到活动堆栈。

RenderAfterTransparent也是如此。现在,我们必须始终在渲染纹理时释放纹理,而仅在使用堆栈时才调用RenderAfterTransparent。如果不是,我们可以使用常规blit将缩放后的纹理复制到相机的目标。

(渲染比例1、0.75、0.5和0.25;放大且无后处理)

调整渲染比例会影响管道渲染的所有内容,但阴影除外,因为阴影具有自己的大小。有时候偶然地,稍微减小渲染比例似乎会带来一些抗锯齿效果。但是进一步减少可以清楚地看出,这只是细节损失导致的,当blit到最终渲染目标时,会由于双线性插值而模糊不清。

渲染比例如何与双线性插值交互的?

0.5的渲染比例是最简单的:最终,每块2×2目标像素只有一个像素。每个最终像素使用相同的四个权重进行插值,但是有四个可能的方向。

(Render scale 0.5 filtering)

其他渲染比例尺会生成具有不同权重配置的像素,因为从源像素到目标像素的距离会根据比例尺以规则模式变化。

(Render scale 0.75 filtering)

1.3 向上缩放

<
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值