|
Vulkan Schnee 0.0.1
High-performance rendering engine
|
Unified material data structure containing all possible material properties. More...
#include <MaterialData.h>
Public Attributes | |
| Rendering::PipelineNames | pipeline = Rendering::PipelineNames::NORMALS_SHADER |
| uint32_t | baseColorTextureIndex = 0xFFFFFFFF |
| uint32_t | normalTextureIndex = 0xFFFFFFFF |
| uint32_t | roughnessMetallicTextureIndex = 0xFFFFFFFF |
| uint32_t | emissiveTextureIndex = 0xFFFFFFFF |
| uint32_t | lightmapTextureIndex = 0xFFFFFFFF |
| glm::vec4 | baseColorFactor = glm::vec4(1.0f) |
| glm::vec3 | emissiveFactor = glm::vec3(0.0f) |
| float | roughnessFactor = 1.0f |
| float | metallicFactor = 0.0f |
| float | normalScale = 1.0f |
| float | shScale = 1.0f |
| float | ambientTerm = 0.0f |
| uint32_t | debugMode = 0 |
| uint32_t | toneMapping = 1 |
| bool | normalMapBC5 = false |
| float | alphaCutoff = 1.0f |
Unified material data structure containing all possible material properties.
Replaces the previous variant-based approach with individual material classes. All fields have sensible defaults, and feature presence is determined by texture indices (0xFFFFFFFF = not present) or feature flags.
This simplifies material handling throughout the codebase - no more variant visitation, no more template specializations, just a single struct.
Definition at line 23 of file MaterialData.h.
|
default |
Referenced by withAlphaCutoff(), withAmbientTerm(), withBaseColorFactor(), withBaseColorTexture(), withDebugMode(), withEmissiveFactor(), withEmissiveTexture(), withLightmapTexture(), withMetallic(), withMetallicRoughnessTexture(), withNormalMapBC5(), withNormalScale(), withNormalTexture(), withRoughness(), withShScale(), and withToneMapping().
|
inlineexplicit |
Definition at line 55 of file MaterialData.h.
References pipeline.
|
inline |
Definition at line 57 of file MaterialData.h.
References baseColorFactor, baseColorTextureIndex, and pipeline.
|
inlinenodiscard |
Definition at line 63 of file MaterialData.h.
References baseColorTextureIndex.
|
inlinenodiscard |
Definition at line 66 of file MaterialData.h.
References emissiveTextureIndex.
|
inlinenodiscard |
Definition at line 67 of file MaterialData.h.
References lightmapTextureIndex.
|
inlinenodiscard |
Definition at line 65 of file MaterialData.h.
References roughnessMetallicTextureIndex.
|
inlinenodiscard |
Definition at line 64 of file MaterialData.h.
References normalTextureIndex.
|
inlinenodiscard |
Definition at line 68 of file MaterialData.h.
References alphaCutoff.
|
inline |
Definition at line 85 of file MaterialData.h.
References alphaCutoff, and MaterialData().
|
inline |
Definition at line 82 of file MaterialData.h.
References ambientTerm, and MaterialData().
|
inline |
Definition at line 76 of file MaterialData.h.
References baseColorFactor, and MaterialData().
|
inline |
Definition at line 71 of file MaterialData.h.
References baseColorTextureIndex, and MaterialData().
|
inline |
Definition at line 83 of file MaterialData.h.
References debugMode, and MaterialData().
|
inline |
Definition at line 77 of file MaterialData.h.
References emissiveFactor, and MaterialData().
|
inline |
Definition at line 74 of file MaterialData.h.
References emissiveTextureIndex, and MaterialData().
|
inline |
Definition at line 75 of file MaterialData.h.
References lightmapTextureIndex, and MaterialData().
|
inline |
Definition at line 79 of file MaterialData.h.
References MaterialData(), and metallicFactor.
|
inline |
Definition at line 73 of file MaterialData.h.
References MaterialData(), and roughnessMetallicTextureIndex.
|
inline |
Definition at line 86 of file MaterialData.h.
References MaterialData(), and normalMapBC5.
|
inline |
Definition at line 80 of file MaterialData.h.
References MaterialData(), and normalScale.
|
inline |
Definition at line 72 of file MaterialData.h.
References MaterialData(), and normalTextureIndex.
|
inline |
Definition at line 78 of file MaterialData.h.
References MaterialData(), and roughnessFactor.
|
inline |
Definition at line 81 of file MaterialData.h.
References MaterialData(), and shScale.
|
inline |
Definition at line 84 of file MaterialData.h.
References MaterialData(), and toneMapping.
| float Engine::Core::MaterialData::alphaCutoff = 1.0f |
Definition at line 49 of file MaterialData.h.
Referenced by isAlphaMasked(), and withAlphaCutoff().
| float Engine::Core::MaterialData::ambientTerm = 0.0f |
Definition at line 43 of file MaterialData.h.
Referenced by withAmbientTerm().
| glm::vec4 Engine::Core::MaterialData::baseColorFactor = glm::vec4(1.0f) |
Definition at line 35 of file MaterialData.h.
Referenced by MaterialData(), and withBaseColorFactor().
| uint32_t Engine::Core::MaterialData::baseColorTextureIndex = 0xFFFFFFFF |
Definition at line 28 of file MaterialData.h.
Referenced by hasBaseColorTexture(), MaterialData(), and withBaseColorTexture().
| uint32_t Engine::Core::MaterialData::debugMode = 0 |
Definition at line 44 of file MaterialData.h.
Referenced by withDebugMode().
| glm::vec3 Engine::Core::MaterialData::emissiveFactor = glm::vec3(0.0f) |
Definition at line 36 of file MaterialData.h.
Referenced by withEmissiveFactor().
| uint32_t Engine::Core::MaterialData::emissiveTextureIndex = 0xFFFFFFFF |
Definition at line 31 of file MaterialData.h.
Referenced by hasEmissiveTexture(), and withEmissiveTexture().
| uint32_t Engine::Core::MaterialData::lightmapTextureIndex = 0xFFFFFFFF |
Definition at line 32 of file MaterialData.h.
Referenced by hasLightmapTexture(), and withLightmapTexture().
| float Engine::Core::MaterialData::metallicFactor = 0.0f |
Definition at line 38 of file MaterialData.h.
Referenced by withMetallic().
| bool Engine::Core::MaterialData::normalMapBC5 = false |
Definition at line 48 of file MaterialData.h.
Referenced by withNormalMapBC5().
| float Engine::Core::MaterialData::normalScale = 1.0f |
Definition at line 39 of file MaterialData.h.
Referenced by withNormalScale().
| uint32_t Engine::Core::MaterialData::normalTextureIndex = 0xFFFFFFFF |
Definition at line 29 of file MaterialData.h.
Referenced by hasNormalTexture(), and withNormalTexture().
| Rendering::PipelineNames Engine::Core::MaterialData::pipeline = Rendering::PipelineNames::NORMALS_SHADER |
Definition at line 25 of file MaterialData.h.
Referenced by MaterialData(), and MaterialData().
| float Engine::Core::MaterialData::roughnessFactor = 1.0f |
Definition at line 37 of file MaterialData.h.
Referenced by withRoughness().
| uint32_t Engine::Core::MaterialData::roughnessMetallicTextureIndex = 0xFFFFFFFF |
Definition at line 30 of file MaterialData.h.
Referenced by hasMetallicRoughnessTexture(), and withMetallicRoughnessTexture().
| float Engine::Core::MaterialData::shScale = 1.0f |
Definition at line 42 of file MaterialData.h.
Referenced by withShScale().
| uint32_t Engine::Core::MaterialData::toneMapping = 1 |
Definition at line 45 of file MaterialData.h.
Referenced by withToneMapping().