查看: 298|回复: 0

[引擎的各个功能] 材质编辑器 - 如何在材质中使用次表面散射

[复制链接]

1

主题

342

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
75866
发表于 2017-4-8 06:47:27 | 显示全部楼层 |阅读模式

材质编辑器 - 如何在材质中使用次表面散射



       
     
     Intermediate

     Unreal Engine 4.9

       
     
         



   
    本页面的内容:
   

   
                                                            
        启用次表面明暗处理模型
                                                        
        设置次表面材质
                                                        
        应用次表面材质
                                                        
        使用次表面材质
                       
       
        “不透明”(Opacity)控制
               
        次表面颜色值

                                                        
        使用纹理作为次表面影响蒙版
                                            


“次表面散射”术语用来描述光线穿过透明/半透明表面时发生散射的照明现象。
虚幻引擎 4 (UE4) 提供了称为 次表面
的特殊 明暗处理模型
,专门用于需要此类互动的材质,例如皮肤或蜡状物。
以下操作指南将阐述在材质中使用次表面散射所需了解的所有内容。

启用次表面明暗处理模型


使材质能够使用次表面明暗处理模型的步骤如下所示。


首先,通过在 内容浏览器 中 右键单击,然后从 创建基本资产(Create Basic Asset)列表中选择“材质”(Material),创建新材质。
创建之后,务必对该材质进行命名。在此示例中,材质将命名为 MAT_Subsurface_00。
完成后,您的 内容浏览器 应该如下所示。


材质编辑器 - 如何在材质中使用次表面散射



接着,使用 鼠标左键双击 该材质以将其打开。


材质编辑器 - 如何在材质中使用次表面散射



材质现已打开,我们需要将其 明暗处理模型(Shading Model)从 默认点亮(Default Lit)更改为 次表面(Subsurface)。


此材质现在已可用作次表面材质。

设置次表面材质


继续使用上文中启用了次表面散射的材质,让我们设置一个基本材质,以便查看关卡内作用中的次表面散射。


我们需要布置一些材质表达式节点,以便有一些可处理的内容。
在本示例中,我们将添加下列节点。


矢量参数(Vector Parameter)x 2


标量参数(Scalar Parameter)x 2


材质编辑器 - 如何在材质中使用次表面散射



       
我们使用参数材质节点而非一般材质节点的原因是,这样可以根据此材质来建立材质实例,从而方便在编辑器内进行微调。



在开始连接节点之前,我们首先需要对其命名,并为其设置默认值。这些节点的名称及默认值如下所示。


材质编辑器 - 如何在材质中使用次表面散射



       


       
                Base_Color
               
               
                R:1.0,G:1.0,B:1.0
               
       

       
                Roughness
               
               
                0.35
               
       

       
                Subsurface _Amount
               
               
                0.5
               
       

       
                Subsurface_Color
               
               
                R:1.0,B:0,G:0
               
       



命名材质节点并填写正确的数据之后,可以将各个材质节点连接到主材质节点。
要将节点连接到主材质节点,请使用 鼠标左键 单击节点右侧的白色圆圈。
按住 鼠标左键 向 右 拖动,这时会出现连接线。
按住 鼠标左键 继续向右拖动,直至到达主材质节点上要使用的输入为止。
当鼠标位于您要使用的输入上时,释放 鼠标左键 以建立连接。


所有节点都已连接完毕,请务必按 应用(Apply)按钮以编译材质。编译完成后,结果如下图所示。
材质编辑器 - 如何在材质中使用次表面散射



编译材质完成后,您现在可关闭材质窗口。接着,在 内容浏览器 内,选中该材质,右键单击,然后从菜单中选择 创建材质实例(Create Material Instance)选项。

应用次表面材质


材质实例现已创建完毕,我们可以开始测试新材质。
为此,我们首先需要创建新的空白关卡以便在其中工作,方法如下:打开主菜单,然后从 文件(File)选项中选择 新建关卡(New Level)。
当系统提示您选择关卡类型时,请选择 空关卡(Empty Level)。


新关卡已创建完毕,我们现在需要添加一些光源,以便测试次表面材质的外观。我们将要添加的第一个光源是 点光源。要向场景中添加点光源,我们首先需要找到点光源:它位于 模式(Modes)菜单的 光源(Lights)选项下。找到点光源之后,您可添加一个点光源到屏幕,方法如下:首先使用 鼠标左键 选中这个点光源,然后按住 鼠标左键 将其拖到场景中,最后释放 鼠标左键 即完成添加。添加到场景后,请使用 鼠标左键 单击该光源,将其选中。然后,输入下列值。


       


       
                位置(Location):
               
               
                X:230,Y:-67,Z:79
               
       

       
                强度(Intensity):
               
               
                128
               
       



接下来,我们将添加一个 聚光灯。聚光灯位于“模式”(Modes)面板的 光源(Lights)部分中点光源的正下方。您可以像添加点光源一样,将聚光灯添加到屏幕。添加聚光灯之后,请输入下列值。


       


       
                位置(Location):
               
               
                X:-320,Y:100,Z:-270
               
       

       
                旋转(Rotation):
               
               
                X:0,Y:50,Z:0
               
       

       
                强度(Intensity):
               
               
                39764
               
       



完成后,您应该看到类似下图的内容。


       
材质编辑器 - 如何在材质中使用次表面散射
材质编辑器 - 如何在材质中使用次表面散射





所有光源现已添加完毕,我们现在可以添加用来执行测试的静态网格。在本示例中,我们将使用下列网格。


StaticMesh'/Game/StarterContent/Props/SM_Chair.SM_Chair'


       
如果您找不到 SM_Chair 网格,那么可能是因为您未将起步内容包括在您的项目中。
要了解更多关于起步内容的信息,请参阅 起步内容
文档页面。



找到该网格后,请将其从 内容浏览器 拖放到关卡中。
放入关卡后,请将其位置设置为环境中的 0,0,0。
完成后,您的关卡视口应该如下所示。
材质编辑器 - 如何在材质中使用次表面散射



静态网格现已放入关卡,我们现在可以对其应用次表面材质。
为此,请先在 内容浏览器 中找到次表面材质。
找到该材质后,请将其从 内容浏览器 拖放到网格上,以应用该材质。

使用次表面材质


次表面材质现已应用完毕,您可以开始调整材质实例的设置。
在下列各节中,我们将回顾如何控制次表面材质的外观,以及如何调整材质实例中的各种选项以获得我们所需的结果。

“不透明”(Opacity)控制


在次表面材质的当前设置中,“不透明”(Opacity)输入控制着我们要让对象散射的光线量。
设置 0 将允许所有光线散射,而设置 1 不允许任何光线散射。
以下示例显示椅子网格的背部,其中,左图的“不透明”(Opacity)值设置为 0,中图设置为 0.5,而右图设置为 1.0。
请注意,随着数值从 0 增大到 1,我们可以看到穿过对象的光线量变得越来越少。
材质编辑器 - 如何在材质中使用次表面散射



       
虽然“不透明”(Opacity)确实有助于消除大量散射光,但是您可能会注意到,仍存在一些次表面散射。要完全消除该效果,您还必须调整“次表面颜色”(Subsurface Color)的 值(Value)(下面的“次表面颜色值”一节提供了这方面的更多信息。)


次表面颜色值


虽然您可通过“不透明”(Opacity)输入来调整次表面散射量,但也可以使用 取色器 中的 值(Value)滑块进行此调整。
例如,将“不透明”(Opacity)设置为值 1.0 并将“次表面颜色值”(Subsurface Colors Value)从白色调整为黑色将有效地关闭次表面散射,如以下示例所示。
  材质编辑器 - 如何在材质中使用次表面散射



如果您执行相反的操作,将 取色器 中的 值(Value)滑块调整为白色,那么将重新启用次表面散射,如以下示例所示。
材质编辑器 - 如何在材质中使用次表面散射



以下是以实时方式调整值的示例。请注意,随着颜色值从红色调整为黑色,次表面散射影响量也会受影响。

使用纹理作为次表面影响蒙版


您可使用纹理作为蒙版,以进一步控制接收或不接收次表面散射的区域。
为此,您只需将所要使用的纹理作为蒙版连接到材质的 不透明(Opacity)通道。
在以下示例中,我们不仅使用蒙版纹理,还使用标量值来控制蒙版强度,以便进一步控制所发生的次表面散射量。


材质编辑器 - 如何在材质中使用次表面散射



       
蒙版纹理根据从黑色到白色的值来工作。接近黑色的值将允许次表面效果穿透,而接近白色的值不允许次表面效果穿透。



下图为使用蒙版纹理时以上材质在关卡中的显示效果。
请注意椅子上的黑色斑点。
这些黑色斑点是在蒙版纹理中使用纯白色值的结果。


材质编辑器 - 如何在材质中使用次表面散射



   
        
            

   

材质编辑器 - 如何在材质中使用次表面散射

   




    相关页面


            
            

   
  
     

         次表面轮廓明暗处理模型
     


  
     

         次表面明暗处理模型
     


  
     

         1.13 - 次表面颜色
     


  
     

         1.7 - 不透明度和次表面材质
     


     

            
        
   




                                       
                                       
完整内容索引
                                       
                               
                       
                       
            

            
            

     2004-2017, Epic Games, Inc. 版权所有。Unreal 及相关的商标是 Epic 在美国和其他国家的注册商标。


    使用条款 | 隐私政策

            
        
               
       
   
回复

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | enginedx注册

本版积分规则

 
 



邮件留言:


 
返回顶部