咨询电话:400-810-1418服务与监督电话:400-810-1418转接2
  • 相关推荐
  • Unreal实现水墨材质效果制作教程
  • UE4材质融合过渡应用案例教程
  • Unreal虚拟贴图SVT的应用
  • Blender到UE4的无缝衔接插件
  • UE4版GPU植被生成工具经验分享
  • UE4制作废旧医院场景案例教程
  • Unreal虚拟贴图RVT的应用

    发布时间:2021-01-18 10:43:54

    Hello,大家好!今天和大家一起讨论一下Unreal虚拟贴图RVT的应用,我是木偶心没。

    虚拟贴图virtual texture在unreal4.23开始使用,4.24的版本进行了改进和优化,4.25对手机进行了支持。它和虚拟内存差不多,主要是解决场景中大量贴图产生的巨大内存。在unreal项目中使用虚拟贴图,可在运行时以更低内存占用率和更高的一致性创建和使用大尺寸贴图。而虚拟贴图又分为了运行时虚拟贴图RVT(runtime virtual texture)和流送虚拟贴图SVT(streaming virtual texture)

    这里我们先来说说RVT,runtime virtual texture。

    RVT主要是用于渲染复杂的地形材质,能够改善地形样条,网格体和材质贴花,以及一般地形与对象混合的渲染性能和工作流程。而VRT运行时由GPU生成纹理数据,因为主要是获取材质信息。如果用在地形上面的话,就可以直接把编译好的效果直接输出到RVT中,然后将生成的RVT直接加载到其他地形或者原地形上面,这样地形就会直接加载RVT而不用再进行复杂的材质计算。

    下面我们在引擎里面用实例说明一下用法。

    首先要使用虚拟贴图,需要在项目设置里面把virtual texture启用。Edit>Project Settings>Engine>Rendering>Virtual Texture,勾选Enable virtual texture support和Enable virtual texture lightmaps虚拟光照贴图(支持虚拟纹理光照贴图可提高光照贴图烘焙的流送性能和质量)

    1.png

    重启生效后,需要有一个RVT材质。而创建RVT材质有两种办法。

    第一种是直接把材质material domain改成Virtual Texture

    2.png

    另外一种是使用节点,来将已有的地形材质写入到RVT中并从中进行采样。

    Runtime Virtual Texture Output:将已有材质的属性输出到RVT中

    3.png

    Runtime Virtual Texture Sample:获取分配的RVT以进行采样并输出

    4.png

    Runtime Virtual Texture Sample Param:将要采样的RVT暴露出去,方便在instance中进行调节。

    5.png

    现在我们就用这三个节点将RVT输出去并且同时加载进来。

    首先用Runtime Virtual Texture Output把做好的材质属性输出出去。

    6.png

    然后再用Runtime Virtual Texture Sample给加载进来,并添加一个VirtualTextureFeatureSwitch开关来控制该材质是否要使用RVT。

    7.png

    现在连上去会报错,因为Runtime Virtual Texture Sample需要加载一个RVT图片进去,而RVT又需要一个“容器”来确认将RVT作用到哪个物体上。

    8.png

    往地形场景里面拉一个Runtime Virtual Texture Volume,然后在属性Source Actor里面用吸管在场景中选择一个需要使用RVT的actor,这边直接选择地形。

    9.png

    完成以后点copy bounds复制地形的bounds并旋转(将bounds把需要RVT的物件包含在里面,因为RVT只会影响Bounds范围内的物体,超出的部分不会有RVT的效果)

    10-1.png10-2.png

    接下来开始创建虚拟贴图RVT,右键Material&Textures>Runtime Virtual Texture

    11.png

    把创建好的RVT拉到Runtime Virtual Texture Volume的Virtual Texture属性中,并同时加载到材质的Runtime Virtual Texture Sample中

    12-1.png12-2.png

    到这里便设置好了RVT到地形上,如果设置错误,材质将渲染为黑色。

    对于RVT的应用,还可以制作树木的假阴影,将阴影做成RVT然后实时加载

    也可以解决草的悬浮等问题,将地面高度输出到RVT,然后在草的材质中去采样RVT然后抵消那个高度

    13.png

    另外RVT还可以和SVT一起使用来确定多远处使用SRT优化场景材质。

    来源:Thepoly公众号