查看: 280|回复: 0

[引擎的各个功能] 矢量表达式

[复制链接]

1

主题

342

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
75866
发表于 2017-4-8 04:59:26 | 显示全部楼层 |阅读模式

矢量表达式



       
     
     
     Unreal Engine 4.9

       
     
         



   
    本页面的内容:
   

   
                                                            
        ActorPositionWS(Actor 全局空间位置)
                                                        
        CameraPositionWS(摄像机全局空间位置)
                                                        
        CameraVectorWS(摄像机全局空间矢量)
                                                        
        Constant2Vector(常量 2 矢量)
                                                        
        Constant3Vector(常量 3 矢量)
                                                        
        Constant4Vector(常量 4 矢量)
                                                        
        LightVector(光线矢量)
                                                        
        ObjectBounds(对象界限)
                                                        
        ObjectOrientation(对象方向)
                                                        
        ObjectPositionWS(对象全局空间位置)
                                                        
        ParticlePositionWS(粒子全局空间位置)
                                                        
        PixelNormalWS(像素全局空间法线)
                                                        
        ReflectionVectorWS(反射全局空间矢量)
                                                        
        VertexNormalWS(顶点全局空间法线)
                                            

ActorPositionWS(Actor 全局空间位置)


ActorPositionWS(Actor 全局空间位置)输出 Vector3 (RGB) 数据,该数据代表使用此材质的对象在全局空间中的位置。


矢量表达式
矢量表达式



在此示例中,您可以看到 ActorPositionWS(Actor 全局空间位置)直接输送到材质的“底色”(Base Color)。因此,此材质所应用于的每个球体在 3D 空间中移动到不同位置时将显示不同的颜色。请注意,ActorPositionWS(Actor 全局空间位置)节点的结果将除以 1600 以创建美观的混合颜色,而不是让颜色突变。

CameraPositionWS(摄像机全局空间位置)


CameraWorldPosition(摄像机全局空间位置)表达式输出三通道矢量值,该值代表摄像机在全局空间中的位置。


当摄像机旋转时,预览球体的颜色将发生变化。


矢量表达式
矢量表达式


CameraVectorWS(摄像机全局空间矢量)


CameraVector(摄像机矢量)表达式输出一个三通道矢量值,该值代表摄像机相对于表面的方向,即从像素到摄像机的方向。


用法示例:CameraVector(摄像机矢量)经常用来模拟环境贴图,方法如下:将 CameraVector(摄像机矢量)连接到 ComponentMask(分量蒙版),并使用 CameraVector(摄像机矢量)的 X 和 Y 通道作为纹理坐标。


       
矢量表达式



Constant2Vector(常量 2 矢量)


Constant2Vector(常量 2 矢量)表达式输出双通道矢量值,即输出两个常量数值。


       


       
               
       
属性


               
       

       
                R
               
               
                指定表达式所输出的矢量的红色(第一个)通道的浮点值。
               
       

       
                G
               
               
                指定表达式所输出的矢量的绿色(第二个)通道的浮点值。
               
       



示例:(0.4, 0.6) 和 (1.05, -0.3)


用法示例:Constant2Vector(常量 2 矢量)对于修改纹理坐标非常有用,因为这些坐标也是双通道值。


       
矢量表达式




       
通过在材质编辑器的图形区域中按住 2 键并 单击鼠标左键,可快速创建 Constant2Vector(常量 2 矢量)节点。


Constant3Vector(常量 3 矢量)


Constant3Vector(常量 3 矢量)表达式输出三通道矢量值,即输出三个常量数值。您可以将 RGB 颜色看作 Constant3Vector(常量 3 矢量),其中每个通道都被赋予一种颜色(红色、绿色、蓝色)。


       


       
               
       
属性


               
       

       
                R
               
               
                指定表达式所输出的矢量的红色(第一个)通道的浮点值。
               
       

       
                G
               
               
                指定表达式所输出的矢量的绿色(第二个)通道的浮点值。
               
       

       
                B
               
               
                指定表达式所输出的矢量的蓝色(第三个)通道的浮点值。
               
       



示例:(0.4, 0.6, 0.0) 和 (1.05, -0.3, 0.3)


       
矢量表达式




       
通过在材质编辑器的图形区域中按住 3 键并 单击鼠标左键,可快速创建 Constant3Vector(常量 3 矢量)节点。


Constant4Vector(常量 4 矢量)


Constant4Vector(常量 4 矢量)表达式输出四通道矢量值,即输出四个常量数值。您可以将 RGBA 颜色看作 Constant4Vector(常量 4 矢量),其中每个通道都被赋予一种颜色(红色、绿色、蓝色、阿尔法)。


       


       
               
       
属性


               
       

       
                R
               
               
                指定表达式所输出的矢量的红色(第一个)通道的浮点值。
               
       

       
                G
               
               
                指定表达式所输出的矢量的绿色(第二个)通道的浮点值。
               
       

       
                B
               
               
                指定表达式所输出的矢量的蓝色(第三个)通道的浮点值。
               
       

       
                A
               
               
                指定表达式所输出的矢量的阿尔法(第四个)通道的浮点值。
               
       



示例:(0.4, 0.6, 0.0, 1.0) 和 (1.05, -0.3, 0.3, 0.5)


矢量表达式



       
通过在材质编辑器的图形区域中按住 4 键并 单击鼠标左键,可快速创建 Constant4Vector(常量 4 矢量)节点。


LightVector(光线矢量)


       
在虚幻引擎 4 中,建议您不要使用此表达式,因为照明计算现在延迟进行。


ObjectBounds(对象界限)


ObjectBounds(对象界限)表达式输出对象在每个轴上的大小。如果用作颜色,那么 X、Y 和 Z 轴分别对应于 R、G 和 B。


矢量表达式
矢量表达式



在以上示例中,您可以看到对象颜色对应于对象的最长轴。

ObjectOrientation(对象方向)


ObjectOrientation(对象方向)表达式输出对象的全局空间向上矢量。即,对象的局部正向 Z 轴指向此方向。


矢量表达式


ObjectPositionWS(对象全局空间位置)


ObjectPositionWS(对象全局空间位置)表达式输出对象界限的全局空间中心位置。例如,在为植物创建球面照明时,此表达式很有用。


矢量表达式
矢量表达式


ParticlePositionWS(粒子全局空间位置)


ParticlePositionWS(粒子全局空间位置)表达式输出 Vector3 (RGB) 数据,该数据代表每个粒子在全局空间中的位置。


矢量表达式



在此图中,将 ParticlePositionWS(粒子全局空间位置)输送到自发光颜色,以将数据可视化。粒子系统已按比例放大,以显示颜色根据位置而变化的情况。

PixelNormalWS(像素全局空间法线)


PixelNormalWS(像素全局空间法线)表达式输出矢量数据,该数据代表像素所面对的方向(基于当前法线)。


矢量表达式



在此示例中,PixelNormalWS(像素全局空间法线)输送到“底色”(Base Color)。请注意,使用了法线贴图按像素产生结果。

ReflectionVectorWS(反射全局空间矢量)


ReflectionVectorWS(反射全局空间矢量)表达式类似于 CameraVectorWS(摄像机全局空间矢量)
,但是它输出三通道矢量值,该值代表反射在表面法线上的摄像机方向。


用法示例:ReflectionVector(反射矢量)通常用于环境贴图,其中,反射矢量的 X/Y 分量用作立方体贴图纹理的 UV。


       
矢量表达式



VertexNormalWS(顶点全局空间法线)


VertexNormalWS(顶点全局空间法线)表达式输出全局空间顶点法线。它只能在顶点着色器(例如 WorldPositionOffset(全局位置偏移))中执行的材质输入中使用。此表达式对于使网格伸缩而言非常有用。请注意,使位置沿法线偏移将导致几何体沿 UV 缝合分裂。


       
矢量表达式




在以上示例中,预览球体随正弦运动而放大和缩小,这是因为每个顶点都在它们自已的法线方向上移动。






                                       
                                       
完整内容索引
                                       
                               
                       
                       
            

            
            

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


    使用条款 | 隐私政策

            
        
               
       
   
回复

使用道具 举报

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

本版积分规则

 
 



邮件留言:


 
返回顶部