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

Method ProcessMaterialNetwork

Hydrogent/src/HnMaterial.cpp:204–240  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

202}
203
204void HnMaterial::ProcessMaterialNetwork()
205{
206 ReadFallbackValue(m_Network, HnTokens->diffuseColor, m_MaterialData.Attribs.BaseColorFactor);
207 ReadFallbackValue(m_Network, HnTokens->metallic, m_MaterialData.Attribs.MetallicFactor);
208 ReadFallbackValue(m_Network, HnTokens->roughness, m_MaterialData.Attribs.RoughnessFactor);
209 ReadFallbackValue(m_Network, HnTokens->occlusion, m_MaterialData.Attribs.OcclusionFactor);
210 if (!ReadFallbackValue(m_Network, HnTokens->emissiveColor, m_MaterialData.Attribs.EmissiveFactor))
211 {
212 m_MaterialData.Attribs.EmissiveFactor = m_Textures.find(HnTokens->emissiveColor) != m_Textures.end() ? float4{1} : float4{0};
213 }
214
215 ApplyTextureInputScale(m_Network, HnTokens->diffuseColor, m_MaterialData.Attribs.BaseColorFactor);
216 ApplyTextureInputScale(m_Network, HnTokens->metallic, m_MaterialData.Attribs.MetallicFactor);
217 ApplyTextureInputScale(m_Network, HnTokens->roughness, m_MaterialData.Attribs.RoughnessFactor);
218 ApplyTextureInputScale(m_Network, HnTokens->occlusion, m_MaterialData.Attribs.OcclusionFactor);
219 ApplyTextureInputScale(m_Network, HnTokens->emissiveColor, m_MaterialData.Attribs.EmissiveFactor);
220
221 if (const HnMaterialParameter* Param = m_Network.GetParameter(HnMaterialParameter::ParamType::Fallback, HnTokens->clearcoat))
222 {
223 m_MaterialData.Attribs.ClearcoatFactor = Param->FallbackValue.Get<float>();
224 if (m_MaterialData.Attribs.ClearcoatFactor > 0)
225 {
226 m_MaterialData.HasClearcoat = true;
227
228 if (const HnMaterialParameter* RoughnessParam = m_Network.GetParameter(HnMaterialParameter::ParamType::Fallback, HnTokens->clearcoatRoughness))
229 {
230 m_MaterialData.Attribs.ClearcoatRoughnessFactor = RoughnessParam->FallbackValue.Get<float>();
231 }
232 }
233 }
234
235
236 m_MaterialData.Attribs.AlphaMode = MaterialTagToPbrAlphaMode(m_Network.GetTag());
237
238 m_MaterialData.Attribs.AlphaCutoff = m_Network.GetOpacityThreshold();
239 m_MaterialData.Attribs.BaseColorFactor.a = m_Network.GetOpacity();
240}
241
242void HnMaterial::InitTextureAttribs(HnTextureRegistry& TexRegistry, const USD_Renderer& UsdRenderer, const TexNameToCoordSetMapType& TexNameToCoordSetMap)
243{

Callers

nothing calls this directly

Calls 6

ReadFallbackValueFunction · 0.85
ApplyTextureInputScaleFunction · 0.85
GetOpacityThresholdMethod · 0.80
GetOpacityMethod · 0.80
GetParameterMethod · 0.45

Tested by

no test coverage detected