vault backup: 2024-02-18 17:15:21
This commit is contained in:
parent
58db662a59
commit
63a0802572
@ -162,8 +162,8 @@
|
|||||||
"ShaderModel添加": {
|
"ShaderModel添加": {
|
||||||
"ShaderModel添加": {
|
"ShaderModel添加": {
|
||||||
"internalLink": {
|
"internalLink": {
|
||||||
"count": 1,
|
"count": 2,
|
||||||
"lastUpdated": 1707399161946
|
"lastUpdated": 1708241946481
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,10 +3,32 @@
|
|||||||
- UE5.2 https://zhuanlan.zhihu.com/p/658700282
|
- UE5.2 https://zhuanlan.zhihu.com/p/658700282
|
||||||
- UE5.1 https://zhuanlan.zhihu.com/p/565837897
|
- UE5.1 https://zhuanlan.zhihu.com/p/565837897
|
||||||
|
|
||||||
|
# 备注
|
||||||
|
添加的定义:
|
||||||
|
- MATERIAL_SHADINGMODEL_TOONSTANDARD
|
||||||
|
- SHADINGMODELID_TOONSTANDARD
|
||||||
|
- PIXEL_INSPECTOR_SHADINGMODELID_TOONSTANDARD
|
||||||
|
|
||||||
|
添加的功能:
|
||||||
|
- Material
|
||||||
|
- 材质编辑器引脚
|
||||||
|
- 相关引脚控制
|
||||||
|
- ShaderModel
|
||||||
|
- ViewMode - BufferVisualization
|
||||||
|
- ShaderModel可视化
|
||||||
|
- ToonBuffer可视化
|
||||||
|
- PixelInspector
|
||||||
# c++部分
|
# c++部分
|
||||||
## 添加ShaderModel
|
## 添加ShaderModel
|
||||||
- EngineTypes.h 在EMaterialShadingModel中添加ShaderModel枚举
|
- EngineTypes.h 在EMaterialShadingModel中添加ShaderModel枚举
|
||||||
|
|
||||||
|
## 材质宏添加数值
|
||||||
|
ShaderMaterial.h给材质宏`MATERIAL_SHADINGMODEL_TOONSTANDARD`添加数值。
|
||||||
|
```c++
|
||||||
|
uint8 MATERIAL_SHADINGMODEL_TOONSTANDARD : 1;
|
||||||
|
```
|
||||||
|
之后再ShaderGenerationUtil.cpp的ApplyFetchEnvironment()与DetermineUsedMaterialSlots()添加对应代码。
|
||||||
|
|
||||||
## 添加材质编辑器引脚
|
## 添加材质编辑器引脚
|
||||||
- SceneTypes.h 在EMaterialProperty中添加2个引脚属性名称枚举。
|
- SceneTypes.h 在EMaterialProperty中添加2个引脚属性名称枚举。
|
||||||
- Material.h 在UMaterial类中添加FScalarMaterialInput类型变量CustomData2与CustomData3。
|
- Material.h 在UMaterial类中添加FScalarMaterialInput类型变量CustomData2与CustomData3。
|
||||||
@ -74,6 +96,53 @@ ENGINE_API void SetConnectedProperty(EMaterialProperty Property, bool bIsConnect
|
|||||||
PropertyConnectedBitmask = bIsConnected ? PropertyConnectedBitmask | (1i64 << (uint64)Property) : PropertyConnectedBitmask & ~(1i64 << (uint64)Property);
|
PropertyConnectedBitmask = bIsConnected ? PropertyConnectedBitmask | (1i64 << (uint64)Property) : PropertyConnectedBitmask & ~(1i64 << (uint64)Property);
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## 控制引脚
|
||||||
|
### Material.cpp(控制引脚开启)
|
||||||
|
在IsPropertyActive_Internal()中修改:
|
||||||
|
```c++
|
||||||
|
case MP_CustomData0:
|
||||||
|
Active = ShadingModels.HasAnyShadingModel({ MSM_ClearCoat, MSM_Hair, MSM_Cloth, MSM_Eye, MSM_SubsurfaceProfile, MSM_ToonStandard, MSM_PreintegratedSkin });
|
||||||
|
break;
|
||||||
|
case MP_CustomData1:
|
||||||
|
Active = ShadingModels.HasAnyShadingModel({ MSM_ClearCoat, MSM_Eye, MSM_ToonStandard, MSM_PreintegratedSkin });
|
||||||
|
break;
|
||||||
|
```
|
||||||
|
|
||||||
|
### MaterialShared.cpp(修改引脚显示名称)
|
||||||
|
在MaterialShared.cpp的GetAttributeOverrideForMaterial()中修改:
|
||||||
|
```c++
|
||||||
|
case MP_CustomData0:
|
||||||
|
CustomPinNames.Add({ MSM_ClearCoat, "Clear Coat" });
|
||||||
|
CustomPinNames.Add({ MSM_Hair, "Backlit" });
|
||||||
|
CustomPinNames.Add({ MSM_Cloth, "Cloth" });
|
||||||
|
CustomPinNames.Add({ MSM_Eye, "Iris Mask" });
|
||||||
|
CustomPinNames.Add({ MSM_SubsurfaceProfile, "Curvature" });
|
||||||
|
CustomPinNames.Add({ MSM_ToonStandard, "ToonDataA" });
|
||||||
|
CustomPinNames.Add({ MSM_PreintegratedSkin, "ToonDataA" });
|
||||||
|
return FText::FromString(GetPinNameFromShadingModelField(Material->GetShadingModels(), CustomPinNames, "Custom Data 0"));
|
||||||
|
case MP_CustomData1:
|
||||||
|
CustomPinNames.Add({ MSM_ClearCoat, "Clear Coat Roughness" });
|
||||||
|
CustomPinNames.Add({ MSM_Eye, "Iris Distance" });
|
||||||
|
CustomPinNames.Add({ MSM_ToonStandard, "ToonDataB" });
|
||||||
|
CustomPinNames.Add({ MSM_PreintegratedSkin, "ToonDataB" });
|
||||||
|
return FText::FromString(GetPinNameFromShadingModelField(Material->GetShadingModels(), CustomPinNames, "Custom Data 1"));
|
||||||
|
```
|
||||||
|
|
||||||
|
### ShaderMaterialDerivedHelpers.cpp(CustomData数据传递)
|
||||||
|
在CalculateDerivedMaterialParameters()中修改代码,让CustomData渲染到GBuffer上:
|
||||||
|
```c++
|
||||||
|
// Only some shader models actually need custom data.
|
||||||
|
Dst.WRITES_CUSTOMDATA_TO_GBUFFER = (Dst.USES_GBUFFER && (Mat.MATERIAL_SHADINGMODEL_SUBSURFACE || Mat.MATERIAL_SHADINGMODEL_PREINTEGRATED_SKIN || Mat.MATERIAL_SHADINGMODEL_SUBSURFACE_PROFILE || Mat.MATERIAL_SHADINGMODEL_CLEAR_COAT || Mat.MATERIAL_SHADINGMODEL_TWOSIDED_FOLIAGE || Mat.MATERIAL_SHADINGMODEL_HAIR || Mat.MATERIAL_SHADINGMODEL_CLOTH || Mat.MATERIAL_SHADINGMODEL_EYE));
|
||||||
|
```
|
||||||
|
|
||||||
|
## PixelInspectorResult
|
||||||
|
在PixelInspectorResult.h中添加`PIXEL_INSPECTOR_SHADINGMODELID_TOONSTANDARD`宏定义。
|
||||||
|
之后在PixelInspectorResult.cpp的DecodeShadingModel()函数中添加定义。
|
||||||
|
|
||||||
|
### PixelInspectorDetailsCustomization(修改菜单显示屏蔽属性用)
|
||||||
|
|
||||||
|
|
||||||
# Shader部分
|
# Shader部分
|
||||||
## MaterialTemplate.ush
|
## MaterialTemplate.ush
|
||||||
给新增加的引脚增加对应的格式化代码:
|
给新增加的引脚增加对应的格式化代码:
|
||||||
@ -93,8 +162,11 @@ half GetMaterialCustomData3(FMaterialPixelParameters Parameters)
|
|||||||
- 新增加的ShaderModel添加ID宏,`#define SHADINGMODELID_NPRSHADING 12`
|
- 新增加的ShaderModel添加ID宏,`#define SHADINGMODELID_NPRSHADING 12`
|
||||||
- 修改float3 GetShadingModelColor(uint ShadingModelID),给添加的ShaderModel设置一个显示颜色。
|
- 修改float3 GetShadingModelColor(uint ShadingModelID),给添加的ShaderModel设置一个显示颜色。
|
||||||
|
|
||||||
|
## Definitions.ush(定义材质宏)
|
||||||
|
位于`Engine\Shaders\Private\Definitions.ush`。
|
||||||
|
|
||||||
## BasePassCommon.ush
|
## BasePassCommon.ush
|
||||||
- 修改#define WRITES_CUSTOMDATA_TO_GBUFFER宏,在最后的条件判断中添加新增加的ShaderModel。
|
- ~~修改#define WRITES_CUSTOMDATA_TO_GBUFFER宏,在最后的条件判断中添加新增加的ShaderModel~~。**UE5.1将该逻辑转移到C++中**
|
||||||
|
|
||||||
## DeferredShadingCommon.ush
|
## DeferredShadingCommon.ush
|
||||||
- 修改bool HasCustomGBufferData(int ShadingModelID),在条件判断中添加新增加的ShaderModel。
|
- 修改bool HasCustomGBufferData(int ShadingModelID),在条件判断中添加新增加的ShaderModel。
|
||||||
|
@ -21,14 +21,23 @@ rating: ⭐
|
|||||||
>PS. 先实现一波Cel,之后再实现Thickly - Coated。
|
>PS. 先实现一波Cel,之后再实现Thickly - Coated。
|
||||||
|
|
||||||
# 最近开发计划
|
# 最近开发计划
|
||||||
1. 添加ShaderModel
|
1. [x] 添加ShaderModel
|
||||||
1. https://zhuanlan.zhihu.com/p/658700282
|
1. https://zhuanlan.zhihu.com/p/658700282
|
||||||
2. https://zhuanlan.zhihu.com/p/597568404
|
2. https://zhuanlan.zhihu.com/p/597568404
|
||||||
2. 添加Debug View https://zhuanlan.zhihu.com/p/668782106
|
2. 给材质添加一些属性
|
||||||
3. [_UE5_ Shader Print系统](https://zhuanlan.zhihu.com/p/637929634)
|
1. Toon Debug模式,可以让美术在材质进行进行简单的光照计算。
|
||||||
4. GBufferView实现。
|
2. 移植ToonDataAsset。
|
||||||
5. 实现一波Anti-Lut。
|
3. 添加BackFace Outline基础代码。
|
||||||
6. Toon曝光偏移、模仿李兄的暗处的ShadowColor适配。
|
3. 添加材质自定义Output节点。
|
||||||
|
4. 给GBuffer结构体添加子ToonBuffer结构体。
|
||||||
|
5. 添加Debug View https://zhuanlan.zhihu.com/p/668782106
|
||||||
|
6. [_UE5_ Shader Print系统](https://zhuanlan.zhihu.com/p/637929634)
|
||||||
|
7. GBufferView实现。
|
||||||
|
8. 完成ShaderModel的
|
||||||
|
9. 实现一波Anti-Lut。
|
||||||
|
10. Toon曝光偏移、模仿李兄的暗处的ShadowColor适配。
|
||||||
|
|
||||||
|
>修改标记方便后续删除备注//BlueRose Modify //BlueRose Modify End
|
||||||
|
|
||||||
# 渲染功能兼容的游戏
|
# 渲染功能兼容的游戏
|
||||||
- [ ] 罪恶装备
|
- [ ] 罪恶装备
|
||||||
|
Loading…
x
Reference in New Issue
Block a user