Unreal4 shader 杂1

VS
--------------------------------------------------------------------------------------------------------------


FVertexFactoryInput
vs常用输入
1) 位置
2) 切线
3) 例子和光贴图的uv
4) 实例id和矩阵


GetVertexFactoryIntermediates
常用函数处理FVertexFactoryInput
输出
1) 切线空间到本地,世界坐标矩阵
2) 颜色
3) 实例数据


VertexFactoryGetWorldPosition
输出世界坐标(带实例也可正常计算)


VertexFactoryGetTangentToLocal
返回切线到本地空间的矩阵


GetMaterialVertexParameters
输出FMaterialVertexParameters
1) 世界坐标
2) 颜色
3) 切线空间到世界空间矩阵
4) 实例到本地,世界空间矩阵,实例参数
5) UV坐标


GetMaterialWorldPositionOffset
输出世界偏移--这个根据材质编辑器得出的


VertexFactoryGetRasterizedWorldPosition
返回输入的坐标,但对例子会扰动防止zfighting


VertexFactoryGetInterpolantsVSToPS
输出FVertexFactoryInterpolantsVSToPS
1) uv坐标
option1
拼接
TexCoords[0].xy;
TexCoords[0].zw;
TexCoords[1].xy;
TexCoords[1].zw;
.
.
.


option2
PackedUVs[0].xy;
PackedUVs[1].xy;
.
.
.
2) 光照贴图和阴影贴图的uv
option1
InLightMapCoordinate -> LightMapCoordinate.xy;
InShadowMapCoordinate -> LightMapCoordinate.zw;


option2
(注意光照贴图是上下拼接的)

{
LightmapUV0 = PackedInterpolator3.xy;
LightmapUV1 = PackedInterpolator4.xy;
}
InLightMapCoordinate * float2(1, 0.5) -> PackedInterpolator3.xy
Interpolants.PackedInterpolator3.xy + float2(0, 0.5) -> PackedInterpolator4.xy
InShadowMapCoordinate -> PackedInterpolator5.xy


3) 切线到世界空间的矩阵
option1
float4(InTangentToWorld0,0) -> TangentToWorld0;
float4(InTangentToWorld2,InTangentToWorldSign) -> TangentToWorld2;


option2
InTangentToWorld0.xy -> PackedInterpolator4.zw
InTangentToWorld0.zz -> PackedInterpolator5.zw
InTangentToWorld2.xy -> PackedUVs[0].zw
float2(InTangentToWorld2.z,InTangentToWorldSign) -> PackedInterpolator3.zw


4) 颜色
option1
Color = InValue;


option2
InValue.xy -> PackedUVs[1].zw;
InValue.zw -> PackedUVs[2].zw;


5) 实例数据
Interpolants.PerInstanceParams = Intermediates.PerInstanceParams;


PS
--------------------------------------------------------------------------------------------------------------
GetMaterialPixelParameters
返回FMaterialPixelParameters
1) uv坐标
2) 粒子uv坐标
3) 镜像值
4) 颜色
5) 粒子颜色
6) 实例数据
7) 切线到世界空间的矩阵
8) 光贴图uv
9) 双面


CalcMaterialParameters
返回FPixelMaterialInputs(子函数 CalcPixelMaterialInputs)
1) 本地空间normal
2) 切线空间normal
3) 世界空间normal
4) 反射方向
返回FMaterialPixelParameters
1) 相对camrea的世界坐标 和 没偏移的
2) 绝对的世界坐标 和 没偏移的
3) 屏幕空间位置
4) 投影空间位置
5) camrea方向
6) 双面


GetMaterialCoverageAndClipping
1) 形成Lod间的切换渐渐消失效果
2) 材质编辑的Opacity Mask加材质编辑器输入的mask常量(float 0 到 1)来clip


GetLightMapCoordinates
计算lightmap的uv坐标,可能2层lightmap











评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值