仿dota2渲染--shader常见贴图含义(直观展示)

cs 复制代码
    Properties {
        [Header(Texture)]
        _MainTex        ("RGB:颜色 A:透贴", 2D)           = "white"{}
        _NormTex        ("RGB:法线贴图", 2D)              = "bump" {}
        _MaskTex        ("R:高光强度 G:边缘光强度 B:高光染色 A:高光次幂",2D)  ="black"{}
        _MetalnessTex   ("金属度遮罩",2D)                 ="black"{}
        _EmissionMask   ("自发光遮罩",2D)                 ="black"{}
        _DiffWarpTex    ("颜色Warp图",2D)                 ="gray"{}
        _FresWarpTex    ("菲涅尔Warp图",2D)               ="gray"{}
        _CubeMap        ("环境图",Cube)                   ="_Skybox"{}

    }

1 基础颜色

cs 复制代码
half3 baseCol = var_MainTex.rgb;

2 透明贴图(黑透白不透)

cs 复制代码
half  opacity = var_MainTex.a;

3 高光强度

cs 复制代码
half  specInt = var_MaskTex.r;

4 轮廓光强度

很像AO,但又处理的比较剧烈,叠加了一些纹理信息

cs 复制代码
half  rimInt = var_MaskTex.g;

5 高光染色

越黑,染的色越多;越白,染的色越少。

金属部分希望染的很多。

cs 复制代码
half  specTint = var_MaskTex.b;

6 高光次幂 / 光滑度

金属稍微粗糙,想让他的高光扩大。

布料粗糙

皮革牙齿光滑

cs 复制代码
half  specPow = var_MaskTex.a;

7 金属度

越白,金属度越高,越黑,金属度越低

cs 复制代码
half  metallic = var_MetalnessTex.r;

8 自发光

cs 复制代码
half  emitInt = var_EmissionMask.r;

9 菲涅尔项

cs 复制代码
half3 var_FresWarpTex   = tex2D(_FresWarpTex, ndotv);
half3 fresWarp = var_FresWarpTex;

10 菲涅尔项-颜色

理论上。这个图会先乘以一个颜色,详情见官方

cs 复制代码
return fresWarp.r;

11 菲涅尔项-边缘光

边缘光很实,过度比较硬

cs 复制代码
return fresWarp.g;

12 菲涅尔-高光

除了cubemap的高光,还想加上fresnel样子的高光

cs 复制代码
return fresWarp.b;

13 环境球

这个光照成分对于金属很重要

cs 复制代码
half3 var_CubeMap = texCUBElod(_CubeMap, float4(vrDirWS, lerp(8.0, 0.0, var_MaskTex.a))).rgb ;
half3 cubemap = var_CubeMap;
return fixed4(cubemap,1);

14 投影

cs 复制代码
half shadow = LIGHT_ATTENUATION(i);

15 漫反射RampTex

cs 复制代码
uniform sampler2D _DiffWarpTex;   uniform float4 _DiffWarpTex_ST;
half3 var_DiffWarpTex   = tex2D(_DiffWarpTex,TRANSFORM_TEX(half2(ndotl,0.5), _DiffWarpTex));
half3 diffWarp = var_DiffWarpTex;
return fixed4(diffWarp,1);

Lambert

半Lambert

相关推荐
Tiger Z5 天前
R 语言科研绘图 --- 散点图-汇总
人工智能·程序人生·r语言·贴图
Tiger Z7 天前
R 语言科研绘图第 20 期 --- 箱线图-配对
开发语言·程序人生·r语言·贴图
咔咔库奇8 天前
【three.js】纹理贴图
开发语言·javascript·three.js·贴图·three
℡52Hz★8 天前
Three.js贴图加载与环境遮蔽贴图强度设置(五)
前端·javascript·vue.js·贴图
Yang-Never12 天前
Shader -> BitmapShader贴图着色器详解
android·开发语言·kotlin·android studio·贴图·着色器
电子云与长程纠缠12 天前
在UE5中使用视差贴图
学习·缓存·ue5·编辑器·贴图
Vec[95]20 天前
如何将光源视角的深度贴图应用于摄像机视角的渲染
c++·算法·3d·贴图
Vec[95]20 天前
将光源视角的深度贴图应用于摄像机视角的渲染
前端·人工智能·贴图
Tiger Z21 天前
R 语言科研绘图第 14 期 --- 柱状图-分组堆叠
开发语言·程序人生·r语言·贴图
Tiger Z22 天前
R 语言科研绘图第 13 期 --- 柱状图-堆叠
开发语言·程序人生·r语言·贴图