ue4---1,pbr概述,数据运算,uv运算

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ue4---1,pbr概述,数据运算,uv运算相关的知识,希望对你有一定的参考价值。

参考技术A 1,一维数据,适合用于调整金属度,粗糙组,高光。

这几个数据都是使用一维浮点数作为输入。

在这里,将一维数据到连接主节点的三维数据口,可以发现主节点自动补齐了剩下的两个通道数据。还是以复制的形式补齐。

2,二维数据适合用于调整uv,但是如果把二维数据给与三维接口。

主节点也是将缺失的第三通道补齐,不过,补的是零。

3,三维数据适用于基础颜色,自发光,法线。

当二维或者三维数据输入主节点的一维端口

这里使用的是一个二维数据(0,1)。

显而易见,所显示的是粗糙度为0的情况。

所以,这种情况,主节点只会使用第一个通道的值。

4,主节点可以这样对输入数据进行补齐和挑选,但其他节点之间就不太一样

一维数据可以和其它维度运算,二维不能与三维或四维运算。

除了一维数据和主节点,其它节点间的运算都需要数据类型相同。

1,texcoord节点的含义

因为ben在课程中讲解的并不是很清楚,这段关于uv的部分都是我自己思考猜出来的。

上图uv两个通道合起来的样子,下面把两个通道单独显示,将texcoord的两个通道拆出来

texcoord节点在r和g通道提供两张这样的梯度图。当我们对texcoord节点进行加减乘除时。

是对texcoord的这两张图进行一系列运算,改变r和g通道上的灰度分布,再将其传递给texture sample节点的uvs端口。

texture sample节点会检查每个点,读取这个点传递进来时对应rg通道的灰度信息,再调用原uv的r和g灰度值所对应位置的贴图信息。

举个例子,texture sample节点中,传递进来一个点,它的rg通道灰度值分别为(0.3,0.21),但它在传进来时,在那张图绝对位置是(0.8,0.9),此时它会调用原uv(0.3,0.21)处的贴图数据,虽然它在传递给texture sample时的绝对位置是(0.8,0.9)。

再举个例子,如果将两个数字输入给texture sample的uvs端口,会咋样?

如果输入0.5和0.5,就是把r和g两张灰度为0.5的图对texture sample输入,然后texture sample会将所有的点都调用原uv中(0.5,0.5)处所对应的贴图数据。

结果:

2,uv的加法

对于uv的运算,输入给texture sample,超过1的数值整数部分会被忽略,只读取其小数部分。

此处以u(x)方向为例

表现在贴图上就是贴图左移了10%。

实例:

其实我们的计算主要是对u和v的黑白贴图进行变化,然后调用原uv数据和省去整数这部分都是texture sample这个节点在进行。所以我们可以像编辑贴图那样对输入texture sample的图像进行编辑。

3,uv的乘法

清楚了加法,乘法的道理也是一样

从左到右就是从0到3

因为会忽略整数,所以就是将0-1重复三次,贴图在u方向平铺三次。

4,世界绝对位置下的uv变化

ben在案例中大量使用了世界坐标,是因为世界坐标可以随着物体改变而发生改变。

作用到材质上,结果就是,只需要制作很少的贴图,把他们摆在不同的位置,就有不同的材质表现。

当使用绝对世界位置时,这些贴图会平铺很多次,究其原因,也是因为传递给texture sample的图中,数值从0到很大,去除整数,实现了多次0到1。

现在,将世界坐标乘以较小的一个数,得到下面这张图

以上是关于ue4---1,pbr概述,数据运算,uv运算的主要内容,如果未能解决你的问题,请参考以下文章

TypeScript的初认识

TypeScript的初认识

TypeScript的初认识

JavaScript入门基础之概述变量数据类型运算符

程序设计概述二

java数据类型及其运算符概述