查看: 281|回复: 0

[引擎的各个功能] 坐标表达式

[复制链接]

1

主题

342

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

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

坐标表达式



       
     
     
     Unreal Engine 4.9

       
     
         



   
    本页面的内容:
   

   
                                                            
        ActorPositionWS(Actor 全局空间位置)
                                                        
        CameraPositionWS(摄像机全局空间位置)
                                                        
        LightmapUVs(光照贴图 UV)
                                                        
        ObjectOrientation(对象方向)
                                                        
        ObjectPositionWS(对象全局空间位置)
                                                        
        ObjectRadius(对象半径)
                                                        
        Panner(平移)
                                                        
        ParticlePositionWS(粒子全局空间位置)
                                                        
        PixelNormalWS(像素全局空间法线)
                                                        
        Rotator(旋转)
                                                        
        SceneTexelSize(场景纹素大小)
                                                        
        ScreenPosition(屏幕位置)
                                                        
        TextureCoordinate(纹理坐标)
                                                        
        VertexNormalWS(顶点全局空间法线)
                                                        
        ViewSize(视图大小)
                                                        
        WorldPosition(全局位置)
                                            

ActorPositionWS(Actor 全局空间位置)


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


坐标表达式
坐标表达式



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

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


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


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


坐标表达式
坐标表达式


LightmapUVs(光照贴图 UV)


LightmapUVs(光照贴图 UV)表达式以双通道矢量值形式输出光照贴图 UV 纹理坐标。如果无法获得光照贴图 UV,那么将输出双通道矢量值 (0,0)。

ObjectOrientation(对象方向)


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


坐标表达式


ObjectPositionWS(对象全局空间位置)


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


坐标表达式
坐标表达式


ObjectRadius(对象半径)


ObjectRadius(对象半径)输出给定对象以 Unreal 单位计的半径值。系统会对比例缩放加以考虑,并且对于每个对象,结果可能是唯一的。


       
坐标表达式




在此示例中,两个网格都接收此材质,而在此材质中,ObjectRadius(对象半径)将输送到“漫射”(Diffuse)中。ObjectRadius(对象半径)输出将除以 512,以提供更有意义的视觉效果。

Panner(平移)


Panner(平移)表达式输出可用于创建平移(或移动)纹理的 UV 纹理坐标。


       


       
               
       
属性


               
       

       
                速度 X(SpeedX)
               
               
                指定在 U 方向上平移坐标的速度。
               
       

       
                速度 Y(SpeedY)
               
               
                指定在 V 方向上平移坐标的速度。
               
       

       
               
       
输入


               
       

       
                坐标(Coordinate)
               
               
                接收可以通过表达式来修改的基本 UV 纹理坐标。
               
       

       
                时间(Time)
               
               
                接收用来确定当前平移位置的值。这通常是用来提供常量平移效果的 Time(时间)
表达式,但是,也可以使用 Constant(常量)
或 ScalarParameter(标量参数)
来设置特定偏移,或者通过 Matinee 或蓝图来控制平移。
               
       



Panner(平移)会生成根据“时间”(Time)输入而变化的 UV。“坐标”(Coordinate)输入可用于处理 Panner(平移)节点所生成的 UV(例如,使其偏移)。


       
坐标表达式



ParticlePositionWS(粒子全局空间位置)


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


坐标表达式



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

PixelNormalWS(像素全局空间法线)


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


坐标表达式



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

Rotator(旋转)


Rotator(旋转)表达式以双通道矢量值形式输出 UV 纹理坐标,该矢量值可用来创建旋转纹理。


       


       
               
       
属性


               
       

       
                中心 X(CenterX)
               
               
                指定旋转中心的 U 坐标。
               
       

       
                中心 Y(CenterY)
               
               
                指定旋转中心的 V 坐标。
               
       

       
                速度(Speed)
               
               
                指定以顺时针方向旋转坐标的速度。
               
       

       
               
       
输入


               
       

       
                坐标(Coordinate)
               
               
                接收可以通过表达式来修改的基本 UV 纹理坐标。
               
       

       
                时间(Time)
               
               
                接收用来确定当前旋转位置的值。这通常是用来提供常量旋转效果的 Time(时间)
表达式,但是,也可以使用 Constant(常量)
或 ScalarParameter(标量参数)
来设置特定偏移,或者通过 Matinee 或蓝图来控制旋转。
               
       



       
坐标表达式



SceneTexelSize(场景纹素大小)


SceneTexelSize(场景纹素大小)表达式允许按纹素大小进行偏移,正如您使用 SceneColor(场景颜色)和 SceneDepth(场景深度)表达式时执行的偏移操作。这对于在多分辨率系统中检测边缘十分有用,因为不进行此计算时,您就必须使用较小的静态值,从而导致分辨率较低时结果不一致。

ScreenPosition(屏幕位置)


ScreenPosition(屏幕位置)表达式输出当前所渲染像素的屏幕空间位置。


       
坐标表达式



TextureCoordinate(纹理坐标)


TextureCoordinate(纹理坐标)表达式以双通道矢量值形式输出 UV 纹理坐标,从而允许材质使用不同的 UV 通道、指定平铺以及以其他方式对网格的 UV 执行操作。


       


       
               
       
属性


               
       

       
                坐标索引(Coordinate Index)
               
               
                指定要使用的 UV 通道。
               
       

       
                U 平铺(UTiling)
               
               
                指定 U 方向上的平铺量。
               
       

       
                V 平铺(VTiling)
               
               
                指定 V 方向上的平铺量。
               
       

       
                撤销镜像 U(Un Mirror U)
               
               
                如果为 true,那么撤销 U 方向上的所有镜像。
               
       

       
                撤销镜像 V(Un Mirror V)
               
               
                如果为 true,那么撤销 V 方向上的所有镜像。
               
       



用法示例:要访问网格的第二个 UV 通道,请创建一个 TextureCoordinate(纹理坐标)节点,将其“坐标索引”(CoordinateIndex)设置为 1(0 表示第一个通道,1 表示第二个通道,等等),并将其连接到 TextureSample(纹理取样)节点的 UV 输入。


       
坐标表达式



VertexNormalWS(顶点全局空间法线)


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


       
坐标表达式




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

ViewSize(视图大小)


ViewSize(视图大小)表达式输出一个 2D 矢量,以给出当前视图的大小(以像素为单位)。这对于使材质根据当前屏幕分辨率产生各种变化来说非常有用。


坐标表达式



       
       


       
                预览窗口大小:740x700
               
               
                预览窗口大小:740x280
               
       




在此示例中,ViewSize(视图大小)输送到“底色”(Base Color)。结果将除以 2,400,以提供更有意义的结果。

WorldPosition(全局位置)


WorldPosition(全局位置)表达式输出当前像素在全局空间中的位置。要实现可视化,只需将输出连接到“自发光”(Emissive):


       
坐标表达式




常见用法是确定从摄像机到像素的径向距离,而不是像 PixelDepth(像素深度)那样确定正交距离。WorldPosition(全局位置)也可用作纹理坐标,并让不相关的网格在它们彼此邻近时进行纹理坐标匹配。以下是使用 WorldPosition.xy 对纹理进行二维贴图的基本示例:


       
坐标表达式








                                       
                                       
完整内容索引
                                       
                               
                       
                       
            

            
            

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


    使用条款 | 隐私政策

            
        
               
       
   
回复

使用道具 举报

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

本版积分规则

 
 



邮件留言:


 
返回顶部