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

Method GetDefaultTexture

Hydrogent/src/HnMaterial.cpp:366–408  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

364}
365
366HnTextureRegistry::TextureHandleSharedPtr HnMaterial::GetDefaultTexture(HnTextureRegistry& TexRegistry, const pxr::TfToken& Name)
367{
368 pxr::TfToken DefaultTexName;
369 if (Name == HnTokens->diffuseColor ||
370 Name == HnTokens->emissiveColor)
371 {
372 DefaultTexName = HnMaterialPrivateTokens->whiteRgba8;
373 }
374 else if (Name == HnTokens->normal)
375 {
376 DefaultTexName = HnTokens->normal;
377 }
378 else if (Name == HnTokens->metallic ||
379 Name == HnTokens->roughness ||
380 Name == HnTokens->occlusion)
381 {
382 DefaultTexName = HnMaterialPrivateTokens->whiteR8;
383 }
384 else
385 {
386 UNEXPECTED("Unknown texture name '", Name, "'");
387 DefaultTexName = HnMaterialPrivateTokens->blackRgba8;
388 }
389
390 const pxr::TfToken DefaultTexPath = GetDefaultTexturePath(DefaultTexName);
391
392 pxr::HdSamplerParameters SamplerParams;
393 SamplerParams.wrapS = pxr::HdWrapRepeat;
394 SamplerParams.wrapT = pxr::HdWrapRepeat;
395 SamplerParams.wrapR = pxr::HdWrapRepeat;
396 SamplerParams.minFilter = pxr::HdMinFilterLinearMipmapLinear;
397 SamplerParams.magFilter = pxr::HdMagFilterLinear;
398 return TexRegistry.Allocate(DefaultTexPath, TextureComponentMapping::Identity(), SamplerParams,
399 [&]() {
400 RefCntAutoPtr<Image> pImage = CreateDefaultImage(DefaultTexName);
401
402 TextureLoadInfo LoadInfo{Name.GetText()};
403 RefCntAutoPtr<ITextureLoader> pLoader;
404 CreateTextureLoaderFromImage(pImage, LoadInfo, &pLoader);
405 VERIFY_EXPR(pLoader);
406 return pLoader;
407 });
408}
409
410static TEXTURE_FORMAT GetMaterialTextureFormat(const pxr::TfToken& Name)
411{

Callers

nothing calls this directly

Calls 3

GetDefaultTexturePathFunction · 0.85
CreateDefaultImageFunction · 0.85
AllocateMethod · 0.45

Tested by

no test coverage detected