vault backup: 2024-06-24 15:18:12
This commit is contained in:
parent
668c37e3ef
commit
07ab354a25
@ -1,13 +1,14 @@
|
|||||||
# 相关资产路径
|
# 相关资产路径
|
||||||
Content/ResArt/CommandMaterial
|
Content/ResArt/CommandMaterial
|
||||||
- Functions
|
- [ ] [[#Functions]]
|
||||||
- MatCap
|
- [x] [[#MatCap]]
|
||||||
- MaterialInstance
|
- [ ] [[#MaterialInstance]]
|
||||||
- Materials
|
- [ ] [[#Materials]]
|
||||||
- Textures
|
- [ ] [[#Outline]]
|
||||||
|
- [x] [[#Textures]]
|
||||||
|
|
||||||
# Functions
|
# Functions
|
||||||
- [ ] ShadingModels
|
- [x] [[#ShadingModels]]
|
||||||
- MF_ToonPBRShadingModel
|
- MF_ToonPBRShadingModel
|
||||||
- MF_ToonBaseShadingModel
|
- MF_ToonBaseShadingModel
|
||||||
- MF_ToonSkinShadingModel
|
- MF_ToonSkinShadingModel
|
||||||
@ -23,4 +24,193 @@ Content/ResArt/CommandMaterial
|
|||||||
- MF_Hash13
|
- MF_Hash13
|
||||||
- MF_Hash22
|
- MF_Hash22
|
||||||
- MF_Hash23
|
- MF_Hash23
|
||||||
-
|
- [ ]
|
||||||
|
|
||||||
|
## ShadingModels
|
||||||
|
采用CustomNode构造FMaterialAttributesde的之后传递到MaterialAttribute模式的材质中,其他骚操作还有:
|
||||||
|
1. 使用宏开启MRT5:`#define PIXELSHADEROUTPUT_MRT5 1`
|
||||||
|
2. 设置ShadingModelID:`Result.ShadingModel = 14;`
|
||||||
|
3. 使用FToonShadingPerMaterialCustomData ToonShadingPerMaterialCustomData(位于Common.ush)来传递卡通渲染用数据,之后在BasePassPixelShader.ush中将数据塞入GBuffer中。
|
||||||
|
### MF_ToonPBRShadingModel
|
||||||
|
```c++
|
||||||
|
FMaterialAttributes Result;
|
||||||
|
Result.BaseColor = float3(1.0, 1.0, 1.0);
|
||||||
|
Result.Metallic = 0.0;
|
||||||
|
Result.Specular = 0.0;
|
||||||
|
Result.Roughness = 0.0;
|
||||||
|
Result.Anisotropy = 0.0;
|
||||||
|
Result.EmissiveColor = float3(0.0, 0.0, 0.0);
|
||||||
|
Result.Opacity = 1.0;
|
||||||
|
Result.OpacityMask = 1.0;
|
||||||
|
Result.Normal = float3(0.0, 0.0, 1.0);
|
||||||
|
Result.Tangent = float3(1.0, 0.0, 0.0);
|
||||||
|
Result.WorldPositionOffset = float3(0.0, 0.0, 0.0);
|
||||||
|
Result.SubsurfaceColor = float3(1.0, 1.0, 1.0);
|
||||||
|
Result.ClearCoat = 1.0;
|
||||||
|
Result.ClearCoatRoughness = 0.1;
|
||||||
|
Result.AmbientOcclusion = 1.0;
|
||||||
|
Result.Refraction = float3(0.0, 0.0, 0.0);
|
||||||
|
Result.PixelDepthOffset = 0.0;
|
||||||
|
Result.ShadingModel = 1;
|
||||||
|
Result.CustomizedUV0 = float2(0.0, 0.0);
|
||||||
|
Result.CustomizedUV1 = float2(0.0, 0.0);
|
||||||
|
Result.CustomizedUV2 = float2(0.0, 0.0);
|
||||||
|
Result.CustomizedUV3 = float2(0.0, 0.0);
|
||||||
|
Result.CustomizedUV4 = float2(0.0, 0.0);
|
||||||
|
Result.CustomizedUV5 = float2(0.0, 0.0);
|
||||||
|
Result.CustomizedUV6 = float2(0.0, 0.0);
|
||||||
|
Result.CustomizedUV7 = float2(0.0, 0.0);
|
||||||
|
Result.BentNormal = float3(0.0, 0.0, 1.0);
|
||||||
|
Result.ClearCoatBottomNormal = float3(0.0, 0.0, 1.0);
|
||||||
|
Result.CustomEyeTangent = float3(0.0, 0.0, 0.0);
|
||||||
|
|
||||||
|
#define PIXELSHADEROUTPUT_MRT5 1
|
||||||
|
|
||||||
|
Result.ShadingModel = 14;
|
||||||
|
ToonShadingPerMaterialCustomData.ToonSpecularColor = saturate(SpecularColor.rgb);
|
||||||
|
ToonShadingPerMaterialCustomData.ToonShadowColor = saturate(ShadowColor.rgb);
|
||||||
|
ToonShadingPerMaterialCustomData.ToonShadowLocation = saturate(CutPosition);
|
||||||
|
ToonShadingPerMaterialCustomData.ToonShadowSmoothness = saturate(CutSmoothness);
|
||||||
|
|
||||||
|
return Result;
|
||||||
|
```
|
||||||
|
|
||||||
|
### MF_ToonBaseShadingModel
|
||||||
|
```c++
|
||||||
|
FMaterialAttributes Result;
|
||||||
|
Result.BaseColor = float3(1.0, 1.0, 1.0);
|
||||||
|
Result.Metallic = 0.0;
|
||||||
|
Result.Specular = 0.0;
|
||||||
|
Result.Roughness = 0.0;
|
||||||
|
Result.Anisotropy = 0.0;
|
||||||
|
Result.EmissiveColor = float3(0.0, 0.0, 0.0);
|
||||||
|
Result.Opacity = 1.0;
|
||||||
|
Result.OpacityMask = 1.0;
|
||||||
|
Result.Normal = float3(0.0, 0.0, 1.0);
|
||||||
|
Result.Tangent = float3(1.0, 0.0, 0.0);
|
||||||
|
Result.WorldPositionOffset = float3(0.0, 0.0, 0.0);
|
||||||
|
Result.SubsurfaceColor = float3(1.0, 1.0, 1.0);
|
||||||
|
Result.ClearCoat = 1.0;
|
||||||
|
Result.ClearCoatRoughness = 0.1;
|
||||||
|
Result.AmbientOcclusion = 1.0;
|
||||||
|
Result.Refraction = float3(0.0, 0.0, 0.0);
|
||||||
|
Result.PixelDepthOffset = 0.0;
|
||||||
|
Result.ShadingModel = 1;
|
||||||
|
Result.CustomizedUV0 = float2(0.0, 0.0);
|
||||||
|
Result.CustomizedUV1 = float2(0.0, 0.0);
|
||||||
|
Result.CustomizedUV2 = float2(0.0, 0.0);
|
||||||
|
Result.CustomizedUV3 = float2(0.0, 0.0);
|
||||||
|
Result.CustomizedUV4 = float2(0.0, 0.0);
|
||||||
|
Result.CustomizedUV5 = float2(0.0, 0.0);
|
||||||
|
Result.CustomizedUV6 = float2(0.0, 0.0);
|
||||||
|
Result.CustomizedUV7 = float2(0.0, 0.0);
|
||||||
|
Result.BentNormal = float3(0.0, 0.0, 1.0);
|
||||||
|
Result.ClearCoatBottomNormal = float3(0.0, 0.0, 1.0);
|
||||||
|
Result.CustomEyeTangent = float3(0.0, 0.0, 0.0);
|
||||||
|
|
||||||
|
#define PIXELSHADEROUTPUT_MRT5 1
|
||||||
|
|
||||||
|
Result.ShadingModel = 13;
|
||||||
|
ToonShadingPerMaterialCustomData.ToonShadowColor = saturate(ShadowColor.rgb);
|
||||||
|
ToonShadingPerMaterialCustomData.ToonShadowLocation = clamp(ShadowLocation, 0, SpecularLocation);
|
||||||
|
ToonShadingPerMaterialCustomData.ToonShadowSmoothness = saturate(ShadowSmoothness);
|
||||||
|
ToonShadingPerMaterialCustomData.ToonForceShadow = saturate(ForceShadow);
|
||||||
|
ToonShadingPerMaterialCustomData.ToonSecondaryShadowColor = saturate(SecondaryShadowColor.rgb);
|
||||||
|
ToonShadingPerMaterialCustomData.ToonSecondaryShadowLocation = clamp(SecondaryShadowLocation, 0, SpecularLocation);
|
||||||
|
ToonShadingPerMaterialCustomData.ToonSecondaryShadowSmoothness = saturate(SecondaryShadowSmoothness);
|
||||||
|
|
||||||
|
return Result;
|
||||||
|
```
|
||||||
|
|
||||||
|
### MF_ToonSkinShadingModel
|
||||||
|
```c++
|
||||||
|
FMaterialAttributes Result;
|
||||||
|
Result.BaseColor = float3(1.0, 1.0, 1.0);
|
||||||
|
Result.Metallic = 0.0;
|
||||||
|
Result.Specular = 0.0;
|
||||||
|
Result.Roughness = 0.0;
|
||||||
|
Result.Anisotropy = 0.0;
|
||||||
|
Result.EmissiveColor = float3(0.0, 0.0, 0.0);
|
||||||
|
Result.Opacity = 1.0;
|
||||||
|
Result.OpacityMask = 1.0;
|
||||||
|
Result.Normal = float3(0.0, 0.0, 1.0);
|
||||||
|
Result.Tangent = float3(1.0, 0.0, 0.0);
|
||||||
|
Result.WorldPositionOffset = float3(0.0, 0.0, 0.0);
|
||||||
|
Result.SubsurfaceColor = float3(1.0, 1.0, 1.0);
|
||||||
|
Result.ClearCoat = 1.0;
|
||||||
|
Result.ClearCoatRoughness = 0.1;
|
||||||
|
Result.AmbientOcclusion = 1.0;
|
||||||
|
Result.Refraction = float3(0.0, 0.0, 0.0);
|
||||||
|
Result.PixelDepthOffset = 0.0;
|
||||||
|
Result.ShadingModel = 1;
|
||||||
|
Result.CustomizedUV0 = float2(0.0, 0.0);
|
||||||
|
Result.CustomizedUV1 = float2(0.0, 0.0);
|
||||||
|
Result.CustomizedUV2 = float2(0.0, 0.0);
|
||||||
|
Result.CustomizedUV3 = float2(0.0, 0.0);
|
||||||
|
Result.CustomizedUV4 = float2(0.0, 0.0);
|
||||||
|
Result.CustomizedUV5 = float2(0.0, 0.0);
|
||||||
|
Result.CustomizedUV6 = float2(0.0, 0.0);
|
||||||
|
Result.CustomizedUV7 = float2(0.0, 0.0);
|
||||||
|
Result.BentNormal = float3(0.0, 0.0, 1.0);
|
||||||
|
Result.ClearCoatBottomNormal = float3(0.0, 0.0, 1.0);
|
||||||
|
Result.CustomEyeTangent = float3(0.0, 0.0, 0.0);
|
||||||
|
|
||||||
|
#define PIXELSHADEROUTPUT_MRT5 1
|
||||||
|
|
||||||
|
Result.ShadingModel = 15;
|
||||||
|
ToonShadingPerMaterialCustomData.ToonShadowColor = saturate(ShadowColor.rgb);
|
||||||
|
ToonShadingPerMaterialCustomData.ToonShadowLocation = saturate(CutPosition);
|
||||||
|
ToonShadingPerMaterialCustomData.ToonShadowSmoothness = saturate(CutSmoothness);
|
||||||
|
|
||||||
|
return Result;
|
||||||
|
```
|
||||||
|
|
||||||
|
### MF_ToonHairShadingModel
|
||||||
|
```c++
|
||||||
|
FMaterialAttributes Result;
|
||||||
|
Result.BaseColor = float3(1.0, 1.0, 1.0);
|
||||||
|
Result.Metallic = 0.0;
|
||||||
|
Result.Specular = 0.0;
|
||||||
|
Result.Roughness = 0.0;
|
||||||
|
Result.Anisotropy = 0.0;
|
||||||
|
Result.EmissiveColor = float3(0.0, 0.0, 0.0);
|
||||||
|
Result.Opacity = 1.0;
|
||||||
|
Result.OpacityMask = 1.0;
|
||||||
|
Result.Normal = float3(0.0, 0.0, 1.0);
|
||||||
|
Result.Tangent = float3(1.0, 0.0, 0.0);
|
||||||
|
Result.WorldPositionOffset = float3(0.0, 0.0, 0.0);
|
||||||
|
Result.SubsurfaceColor = float3(1.0, 1.0, 1.0);
|
||||||
|
Result.ClearCoat = 1.0;
|
||||||
|
Result.ClearCoatRoughness = 0.1;
|
||||||
|
Result.AmbientOcclusion = 1.0;
|
||||||
|
Result.Refraction = float3(0.0, 0.0, 0.0);
|
||||||
|
Result.PixelDepthOffset = 0.0;
|
||||||
|
Result.ShadingModel = 1;
|
||||||
|
Result.CustomizedUV0 = float2(0.0, 0.0);
|
||||||
|
Result.CustomizedUV1 = float2(0.0, 0.0);
|
||||||
|
Result.CustomizedUV2 = float2(0.0, 0.0);
|
||||||
|
Result.CustomizedUV3 = float2(0.0, 0.0);
|
||||||
|
Result.CustomizedUV4 = float2(0.0, 0.0);
|
||||||
|
Result.CustomizedUV5 = float2(0.0, 0.0);
|
||||||
|
Result.CustomizedUV6 = float2(0.0, 0.0);
|
||||||
|
Result.CustomizedUV7 = float2(0.0, 0.0);
|
||||||
|
Result.BentNormal = float3(0.0, 0.0, 1.0);
|
||||||
|
Result.ClearCoatBottomNormal = float3(0.0, 0.0, 1.0);
|
||||||
|
Result.CustomEyeTangent = float3(0.0, 0.0, 0.0);
|
||||||
|
|
||||||
|
Result.ShadingModel = 14;
|
||||||
|
Result.Anisotropy = 1.0;
|
||||||
|
ToonShadingPerMaterialCustomData.CustomData0 = saturate(float4(ShadowColor.rgb, ShadowSmoothness));
|
||||||
|
ToonShadingPerMaterialCustomData.CustomData1 = saturate(float4(SpecularAbsorbance, SpecularRangeParam.xyz));
|
||||||
|
|
||||||
|
return Result;
|
||||||
|
```
|
||||||
|
|
||||||
|
## Effects
|
||||||
|
|
||||||
|
# Matcap
|
||||||
|
存放大量Matcap用的**球形环境贴图**。
|
||||||
|
|
||||||
|
# Outline
|
||||||
|
# Textures
|
||||||
|
存储一些默认贴图与一些测试用(无用)贴图。
|
Loading…
x
Reference in New Issue
Block a user