vault backup: 2024-06-24 15:18:12
This commit is contained in:
parent
668c37e3ef
commit
07ab354a25
@ -1,13 +1,14 @@
|
||||
# 相关资产路径
|
||||
Content/ResArt/CommandMaterial
|
||||
- Functions
|
||||
- MatCap
|
||||
- MaterialInstance
|
||||
- Materials
|
||||
- Textures
|
||||
- [ ] [[#Functions]]
|
||||
- [x] [[#MatCap]]
|
||||
- [ ] [[#MaterialInstance]]
|
||||
- [ ] [[#Materials]]
|
||||
- [ ] [[#Outline]]
|
||||
- [x] [[#Textures]]
|
||||
|
||||
# Functions
|
||||
- [ ] ShadingModels
|
||||
- [x] [[#ShadingModels]]
|
||||
- MF_ToonPBRShadingModel
|
||||
- MF_ToonBaseShadingModel
|
||||
- MF_ToonSkinShadingModel
|
||||
@ -23,4 +24,193 @@ Content/ResArt/CommandMaterial
|
||||
- MF_Hash13
|
||||
- MF_Hash22
|
||||
- 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