MCPcopy Create free account
hub / github.com/DiligentGraphics/DiligentFX / GetMaterialPSOFlags

Method GetMaterialPSOFlags

Hydrogent/src/HnRenderPass.cpp:830–863  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

828}
829
830PBR_Renderer::PSO_FLAGS HnRenderPass::GetMaterialPSOFlags(const HnMaterial& Material)
831{
832 const GLTF::Material& MaterialData = Material.GetMaterialData();
833
834 PBR_Renderer::PSO_FLAGS PSOFlags =
835 PBR_Renderer::PSO_FLAG_USE_COLOR_MAP |
836 PBR_Renderer::PSO_FLAG_USE_NORMAL_MAP |
837 PBR_Renderer::PSO_FLAG_USE_METALLIC_MAP |
838 PBR_Renderer::PSO_FLAG_USE_ROUGHNESS_MAP |
839 PBR_Renderer::PSO_FLAG_USE_AO_MAP |
840 PBR_Renderer::PSO_FLAG_USE_EMISSIVE_MAP;
841
842 PSOFlags |= PBR_Renderer::PSO_FLAG_COMPUTE_MOTION_VECTORS;
843
844 MaterialData.ProcessActiveTextureAttibs(
845 [&PSOFlags](Uint32, const GLTF::Material::TextureShaderAttribs& TexAttrib, int) //
846 {
847 if (TexAttrib.UVScaleAndRotation != float2x2::Identity() ||
848 TexAttrib.UBias != 0 ||
849 TexAttrib.VBias != 0)
850 {
851 PSOFlags |= PBR_Renderer::PSO_FLAG_ENABLE_TEXCOORD_TRANSFORM;
852 return false;
853 }
854 return true;
855 });
856
857 if (MaterialData.HasClearcoat)
858 {
859 PSOFlags |= PBR_Renderer::PSO_FLAG_ENABLE_CLEAR_COAT;
860 }
861
862 return PSOFlags;
863}
864
865void HnRenderPass::UpdateDrawListItemGPUResources(DrawListItem& ListItem, RenderState& State, DRAW_LIST_ITEM_DIRTY_FLAGS DirtyFlags)
866{

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected