diff --git a/03-UnrealEngine/卡通渲染相关资料/渲染功能/ShaderModel/GBuffer&Material&BasePass.md b/03-UnrealEngine/卡通渲染相关资料/渲染功能/ShaderModel/GBuffer&Material&BasePass.md index c28f74c..3d80b87 100644 --- a/03-UnrealEngine/卡通渲染相关资料/渲染功能/ShaderModel/GBuffer&Material&BasePass.md +++ b/03-UnrealEngine/卡通渲染相关资料/渲染功能/ShaderModel/GBuffer&Material&BasePass.md @@ -233,10 +233,9 @@ static TAutoConsoleVariable CVarMaterialEnableNewHLSLGenerator( TEXT("2 - Force all materials to use new generator\n"), ECVF_RenderThreadSafe | ECVF_ReadOnly); ``` +这个和新版材质HLSL生成器有关,相关生成代码为**MaterialEmitHLSL()**=>调用**GenerateMaterialTemplateHLSL()** bCompileForComputeShader = Material->IsLightFunction(); - - GetPerInstanceCustomDataX分为Vertex与Pixel版本。 #### FMaterialAttributes @@ -340,51 +339,6 @@ bool FMaterialInstanceResource::GetParameterValue(EMaterialParameterType Type, c } ``` - -MaterialEmitHLSL()=> -```c++ -bool MaterialEmitHLSL(const FMaterialCompileTargetParameters& InCompilerTarget, - const FStaticParameterSet& InStaticParameters, - FMaterial& InOutMaterial, - FMaterialCompilationOutput& OutCompilationOutput, - TRefCountPtr& OutMaterialEnvironment) -{ -... - if (DerivativeIndex == 0) - { - const EMaterialDomain MaterialDomain = EmitContext.Material->GetMaterialDomain(); - if (MaterialDomain == MD_Volume || (MaterialDomain == MD_Surface && IsSubsurfaceShadingModel(EmitMaterialData.ShadingModelsFromCompilation))) - { const FMaterialParameterInfo SubsurfaceProfileParameterInfo(GetSubsurfaceProfileParameterName()); - const FMaterialParameterMetadata SubsurfaceProfileParameterMetadata(1.f); - const Material::FExpressionParameter SubsurfaceProfileExpression(SubsurfaceProfileParameterInfo, SubsurfaceProfileParameterMetadata); - - const FPreparedType SubsurfaceProfilePreparedType = EmitContext.PrepareExpression(&SubsurfaceProfileExpression, *EmitResultScope, EValueType::Float1); - const FEmitShaderExpression* SubsurfaceProfileEmitExpression = SubsurfaceProfileExpression.GetValueShader( - EmitContext, - *EmitResultScope, - EValueType::Float1, - SubsurfaceProfilePreparedType, - EValueType::Float1); - check(SubsurfaceProfileEmitExpression && SubsurfaceProfileEmitExpression->Reference); - SubsurfaceProfileShaderCode = SubsurfaceProfileEmitExpression->Reference; - } - } - ... - - MaterialTemplateSource = GenerateMaterialTemplateHLSL(InCompilerTarget.ShaderPlatform, - InOutMaterial, - EmitContext, - Declarations.ToString(), - SharedCode.ToString(), - VertexCode.ToString(), - InputPixelCodePhase0, - InputPixelCodePhase1, - SubsurfaceProfileShaderCode, - OutCompilationOutput); -} -``` -调用GenerateMaterialTemplateHLSL() - ### 是否需要Toon 在材质中: ```c++ @@ -459,8 +413,39 @@ bool FDeferredShadingSceneRenderer::ShouldRenderToonDataPass() const 从3开始,0、1、2已被占用。 - ? -## ToonData +## ToonBufferData +- ToonObjectID +```c++ +struct FSceneDataIntermediates +{ + uint PrimitiveId; + uint InstanceId; + uint ViewIndex; + uint CullingFlags; + // Index from which we load the instance info, needed for the + uint InstanceIdLoadIndex; + FInstanceSceneData InstanceData; + FPrimitiveSceneData Primitive; +}; + +struct FVertexFactoryIntermediatesCommon +{ + /** Cached primitive and instance data */ + FSceneDataIntermediates SceneData; +#if USE_INSTANCING || USE_INSTANCE_CULLING + FVertexFactoryInstanceInput InstanceInput; +#endif +#if USE_SPLINEDEFORM + FSplineMeshShaderParams SplineMeshParams; +#endif +}; + +FPrimitiveSceneData GetPrimitiveData(FVertexFactoryIntermediatesCommon Intermediates) +{ + return Intermediates.SceneData.Primitive; +} +``` ## 高光 - PBR高光(使用Roughness控制是否可行?是否需要传入GBuffer一个Mask贴图) diff --git a/07-Other/生活/装修相关.md b/07-Other/生活/装修相关.md index 1ac4e3c..97af7c3 100644 --- a/07-Other/生活/装修相关.md +++ b/07-Other/生活/装修相关.md @@ -1,7 +1,8 @@ # 已看视频 - 住范儿 - [x] [装修小白扫盲指南](https://space.bilibili.com/454560170/channel/collectiondetail?sid=38426 "装修小白扫盲指南") - - [ ] [合集·真实人家·装修全记录](https://space.bilibili.com/454560170/channel/collectiondetail?sid=145028) + - [x] ~~合集·真实人家·装修全记录~~没有意义 + - [x] [BUY家攻略](https://space.bilibili.com/454560170/channel/collectiondetail?sid=705850 "BUY家攻略") - 阳仔的装修思路 - [小东聊家装](https://space.bilibili.com/1881219345):https://www.bilibili.com/video/BV1vJ4m1a7Tg/?spm_id_from=333.1007.top_right_bar_window_default_collection.content.click&vd_source=d47c0bb42f9c72fd7d74562185cee290 - 感觉还行的装修案例 @@ -62,9 +63,11 @@ # 电器 - 洗碗机 + - https://www.bilibili.com/video/BV1DP4y1Z7Lt/?spm_id_from=333.999.0.0&vd_source=d47c0bb42f9c72fd7d74562185cee290 - 品牌考虑:美的、西门子。4000~6000 - 选完洗碗机再考虑橱柜。这样可以与橱柜保持面板统一。**门板厚度**与**颜色** - 人多12套,人少6套。 + - 软水片 + 洗碗耗材 - 中央空调 - https://www.bilibili.com/video/BV1Ue411J7Sv/?spm_id_from=333.1007.tianma.1-1-1.click&vd_source=d47c0bb42f9c72fd7d74562185cee290 - 分为氟机与水机两种类型。 @@ -122,6 +125,12 @@ # 费用 - 电器 - 中央空调:大金2.8w - - + - 洗烘套装:1w~1.2w + - 冰箱:2000~7000 + - 热水器+小厨宝: 2000左右 + - 电视机:75寸 3000~8000 + - 洗碗机:西门子sj436B00QC 6299、美的RX600s4599~GX1000S 8999 - 新风系统:1w5~2W,有耗材费一年(24小时开)2000块。半年~一年、噪音。南方没必要 - - 新风没有除甲醛功能。 \ No newline at end of file + - 新风没有除甲醛功能。 + - 全屋净水:没有必要。 + - 垃圾处理器:几千,不值得购买。 \ No newline at end of file