Vulkan Schnee 0.0.1
High-performance rendering engine
Loading...
Searching...
No Matches
Engine::Assets::Loaders::GltfLoader::GltfMaterialData Struct Reference

Stores the material data which is relevant for our current set of shaders. More...

#include <GltfLoader.h>

Collaboration diagram for Engine::Assets::Loaders::GltfLoader::GltfMaterialData:

Public Member Functions

 GltfMaterialData ()=default
 GltfMaterialData (const tinygltf::Model &model, const tinygltf::Material &material, const StaticMeshExtensions &meshSettings)
bool hasTexture () const
uint32_t getTextureIndex () const
bool hasVulkanSchneeExtension () const
const VulkanSchneeMaterialExtensiongetVulkanSchneeExtension () const
std::string getShaderName () const
const Materials::MaterialDatagetMaterialData () const
Materials::MaterialDatagetMaterialDataRef ()
uint32_t getNormalTextureIndex () const
uint32_t getRoughnessMetallicTextureIndex () const
uint32_t getEmissiveTextureIndex () const
float getRoughnessFactor () const
float getMetallicFactor () const
float getNormalScale () const
glm::vec3 getEmissiveFactor () const
bool hasNormalTexture () const
bool hasMetallicRoughnessTexture () const
bool hasEmissiveTexture () const
int32_t getGltfNormalTextureIndex () const
int32_t getGltfMetallicRoughnessTextureIndex () const
int32_t getGltfEmissiveTextureIndex () const
bool hasLightmapTexture () const
const std::filesystem::path & getLightmapPath () const

Private Member Functions

void setupMaterialData ()
void parsePbrData (const tinygltf::Model &model, const tinygltf::Material &material)

Private Attributes

Materials::MaterialData materialData
std::optional< MaterialExtensionsmaterialExtensions
glm::vec4 baseColorFactor = glm::vec4(0.0f, 0.0f, 0.0f, 0.0f)
uint32_t textureIndex = std::numeric_limits<uint32_t>::max()
uint32_t normalTextureIndex = 0xFFFFFFFF
uint32_t roughnessMetallicTextureIndex = 0xFFFFFFFF
uint32_t emissiveTextureIndex = 0xFFFFFFFF
float roughnessFactor = 1.0f
float metallicFactor = 0.0f
float normalScale = 1.0f
glm::vec3 emissiveFactor = glm::vec3(0.0f)
int32_t gltfNormalTextureIndex = -1
int32_t gltfMetallicRoughnessTextureIndex = -1
int32_t gltfEmissiveTextureIndex = -1
std::filesystem::path lightmapPath

Detailed Description

Stores the material data which is relevant for our current set of shaders.

Extended with PBR texture indices and material factors for physically-based rendering.

Date
2025-05-31 (original), 2026-01-21 (PBR extension)
Author
Konstantin Passig

Definition at line 319 of file GltfLoader.h.

Constructor & Destructor Documentation

◆ GltfMaterialData() [1/2]

Engine::Assets::Loaders::GltfLoader::GltfMaterialData::GltfMaterialData ( )
default

◆ GltfMaterialData() [2/2]

Engine::Assets::Loaders::GltfLoader::GltfMaterialData::GltfMaterialData ( const tinygltf::Model & model,
const tinygltf::Material & material,
const StaticMeshExtensions & meshSettings )

Member Function Documentation

◆ getEmissiveFactor()

glm::vec3 Engine::Assets::Loaders::GltfLoader::GltfMaterialData::getEmissiveFactor ( ) const
inlinenodiscard

Definition at line 347 of file GltfLoader.h.

References emissiveFactor.

◆ getEmissiveTextureIndex()

uint32_t Engine::Assets::Loaders::GltfLoader::GltfMaterialData::getEmissiveTextureIndex ( ) const
inlinenodiscard

Definition at line 341 of file GltfLoader.h.

References emissiveTextureIndex.

◆ getGltfEmissiveTextureIndex()

int32_t Engine::Assets::Loaders::GltfLoader::GltfMaterialData::getGltfEmissiveTextureIndex ( ) const
inlinenodiscard

Definition at line 355 of file GltfLoader.h.

References gltfEmissiveTextureIndex.

◆ getGltfMetallicRoughnessTextureIndex()

int32_t Engine::Assets::Loaders::GltfLoader::GltfMaterialData::getGltfMetallicRoughnessTextureIndex ( ) const
inlinenodiscard

Definition at line 354 of file GltfLoader.h.

References gltfMetallicRoughnessTextureIndex.

◆ getGltfNormalTextureIndex()

int32_t Engine::Assets::Loaders::GltfLoader::GltfMaterialData::getGltfNormalTextureIndex ( ) const
inlinenodiscard

Definition at line 353 of file GltfLoader.h.

References gltfNormalTextureIndex.

◆ getLightmapPath()

const std::filesystem::path & Engine::Assets::Loaders::GltfLoader::GltfMaterialData::getLightmapPath ( ) const
inlinenodiscard

Definition at line 359 of file GltfLoader.h.

References lightmapPath.

◆ getMaterialData()

const Materials::MaterialData & Engine::Assets::Loaders::GltfLoader::GltfMaterialData::getMaterialData ( ) const
inlinenodiscard

Definition at line 335 of file GltfLoader.h.

References materialData.

◆ getMaterialDataRef()

Materials::MaterialData & Engine::Assets::Loaders::GltfLoader::GltfMaterialData::getMaterialDataRef ( )
inlinenodiscard

Definition at line 336 of file GltfLoader.h.

References materialData.

◆ getMetallicFactor()

float Engine::Assets::Loaders::GltfLoader::GltfMaterialData::getMetallicFactor ( ) const
inlinenodiscard

Definition at line 345 of file GltfLoader.h.

References metallicFactor.

◆ getNormalScale()

float Engine::Assets::Loaders::GltfLoader::GltfMaterialData::getNormalScale ( ) const
inlinenodiscard

Definition at line 346 of file GltfLoader.h.

References normalScale.

◆ getNormalTextureIndex()

uint32_t Engine::Assets::Loaders::GltfLoader::GltfMaterialData::getNormalTextureIndex ( ) const
inlinenodiscard

Definition at line 339 of file GltfLoader.h.

References normalTextureIndex.

◆ getRoughnessFactor()

float Engine::Assets::Loaders::GltfLoader::GltfMaterialData::getRoughnessFactor ( ) const
inlinenodiscard

Definition at line 344 of file GltfLoader.h.

References roughnessFactor.

◆ getRoughnessMetallicTextureIndex()

uint32_t Engine::Assets::Loaders::GltfLoader::GltfMaterialData::getRoughnessMetallicTextureIndex ( ) const
inlinenodiscard

Definition at line 340 of file GltfLoader.h.

References roughnessMetallicTextureIndex.

◆ getShaderName()

std::string Engine::Assets::Loaders::GltfLoader::GltfMaterialData::getShaderName ( ) const
nodiscard

◆ getTextureIndex()

uint32_t Engine::Assets::Loaders::GltfLoader::GltfMaterialData::getTextureIndex ( ) const
nodiscard

◆ getVulkanSchneeExtension()

const VulkanSchneeMaterialExtension & Engine::Assets::Loaders::GltfLoader::GltfMaterialData::getVulkanSchneeExtension ( ) const
nodiscard

◆ hasEmissiveTexture()

bool Engine::Assets::Loaders::GltfLoader::GltfMaterialData::hasEmissiveTexture ( ) const
inlinenodiscard

Definition at line 352 of file GltfLoader.h.

References gltfEmissiveTextureIndex.

◆ hasLightmapTexture()

bool Engine::Assets::Loaders::GltfLoader::GltfMaterialData::hasLightmapTexture ( ) const
inlinenodiscard

Definition at line 358 of file GltfLoader.h.

References lightmapPath.

◆ hasMetallicRoughnessTexture()

bool Engine::Assets::Loaders::GltfLoader::GltfMaterialData::hasMetallicRoughnessTexture ( ) const
inlinenodiscard

Definition at line 351 of file GltfLoader.h.

References gltfMetallicRoughnessTextureIndex.

◆ hasNormalTexture()

bool Engine::Assets::Loaders::GltfLoader::GltfMaterialData::hasNormalTexture ( ) const
inlinenodiscard

Definition at line 350 of file GltfLoader.h.

References gltfNormalTextureIndex.

◆ hasTexture()

bool Engine::Assets::Loaders::GltfLoader::GltfMaterialData::hasTexture ( ) const
nodiscard

◆ hasVulkanSchneeExtension()

bool Engine::Assets::Loaders::GltfLoader::GltfMaterialData::hasVulkanSchneeExtension ( ) const
nodiscard

◆ parsePbrData()

void Engine::Assets::Loaders::GltfLoader::GltfMaterialData::parsePbrData ( const tinygltf::Model & model,
const tinygltf::Material & material )
private

◆ setupMaterialData()

void Engine::Assets::Loaders::GltfLoader::GltfMaterialData::setupMaterialData ( )
private

Member Data Documentation

◆ baseColorFactor

glm::vec4 Engine::Assets::Loaders::GltfLoader::GltfMaterialData::baseColorFactor = glm::vec4(0.0f, 0.0f, 0.0f, 0.0f)
private

Definition at line 368 of file GltfLoader.h.

◆ emissiveFactor

glm::vec3 Engine::Assets::Loaders::GltfLoader::GltfMaterialData::emissiveFactor = glm::vec3(0.0f)
private

Definition at line 380 of file GltfLoader.h.

Referenced by getEmissiveFactor().

◆ emissiveTextureIndex

uint32_t Engine::Assets::Loaders::GltfLoader::GltfMaterialData::emissiveTextureIndex = 0xFFFFFFFF
private

Definition at line 374 of file GltfLoader.h.

Referenced by getEmissiveTextureIndex().

◆ gltfEmissiveTextureIndex

int32_t Engine::Assets::Loaders::GltfLoader::GltfMaterialData::gltfEmissiveTextureIndex = -1
private

Definition at line 385 of file GltfLoader.h.

Referenced by getGltfEmissiveTextureIndex(), and hasEmissiveTexture().

◆ gltfMetallicRoughnessTextureIndex

int32_t Engine::Assets::Loaders::GltfLoader::GltfMaterialData::gltfMetallicRoughnessTextureIndex = -1
private

◆ gltfNormalTextureIndex

int32_t Engine::Assets::Loaders::GltfLoader::GltfMaterialData::gltfNormalTextureIndex = -1
private

Definition at line 383 of file GltfLoader.h.

Referenced by getGltfNormalTextureIndex(), and hasNormalTexture().

◆ lightmapPath

std::filesystem::path Engine::Assets::Loaders::GltfLoader::GltfMaterialData::lightmapPath
private

Definition at line 388 of file GltfLoader.h.

Referenced by getLightmapPath(), and hasLightmapTexture().

◆ materialData

Materials::MaterialData Engine::Assets::Loaders::GltfLoader::GltfMaterialData::materialData
private

Definition at line 365 of file GltfLoader.h.

Referenced by getMaterialData(), and getMaterialDataRef().

◆ materialExtensions

std::optional<MaterialExtensions> Engine::Assets::Loaders::GltfLoader::GltfMaterialData::materialExtensions
private

Definition at line 367 of file GltfLoader.h.

◆ metallicFactor

float Engine::Assets::Loaders::GltfLoader::GltfMaterialData::metallicFactor = 0.0f
private

Definition at line 378 of file GltfLoader.h.

Referenced by getMetallicFactor().

◆ normalScale

float Engine::Assets::Loaders::GltfLoader::GltfMaterialData::normalScale = 1.0f
private

Definition at line 379 of file GltfLoader.h.

Referenced by getNormalScale().

◆ normalTextureIndex

uint32_t Engine::Assets::Loaders::GltfLoader::GltfMaterialData::normalTextureIndex = 0xFFFFFFFF
private

Definition at line 372 of file GltfLoader.h.

Referenced by getNormalTextureIndex().

◆ roughnessFactor

float Engine::Assets::Loaders::GltfLoader::GltfMaterialData::roughnessFactor = 1.0f
private

Definition at line 377 of file GltfLoader.h.

Referenced by getRoughnessFactor().

◆ roughnessMetallicTextureIndex

uint32_t Engine::Assets::Loaders::GltfLoader::GltfMaterialData::roughnessMetallicTextureIndex = 0xFFFFFFFF
private

Definition at line 373 of file GltfLoader.h.

Referenced by getRoughnessMetallicTextureIndex().

◆ textureIndex

uint32_t Engine::Assets::Loaders::GltfLoader::GltfMaterialData::textureIndex = std::numeric_limits<uint32_t>::max()
private

Definition at line 369 of file GltfLoader.h.


The documentation for this struct was generated from the following file:
  • /home/magerbeton/Documents/gl3-vulkan/Engine/include/Engine/Mesh/GltfLoader.h