10#include <DirectXMath.h>
13#include <unordered_map>
28static_assert(offsetof(DX12Material, HasBaseColorTexture) == 32,
29 "Material texture flag must match cbMaterial packing.");
30static_assert(
sizeof(DX12Material) == 48,
31 "Material constants must match cbMaterial size.");
43 std::unordered_map<ResourceRef<BaseMaterial>,
uint64_t,
Definition DX12Common.h:35
Definition DX12DefaultBuffer.h:9
Definition DX12MaterialManager.h:33
DX12MaterialManager(DX12Render *R)
Definition DX12MaterialManager.cpp:23
uint64_t GetGPUAddress(ResourceRef< BaseMaterial > material) const
Definition DX12MaterialManager.cpp:47
void Init()
Definition DX12MaterialManager.cpp:25
std::unordered_map< ResourceRef< BaseMaterial >, uint64_t, ResourceRefHash< BaseMaterial > > Offsets
Definition DX12MaterialManager.h:44
DX12DefaultBuffer Buffer
Definition DX12MaterialManager.h:35
Definition DX12Render.h:33
资源的强类型引用,同时覆盖持久化 ID 与运行时索引两种边界。
Definition ResourceRef.h:36
世界矩阵 描述坐标系,左手坐标系 使用 DirectX12 坐标系的描述
Definition Application.h:15
材质 基于 Cook‑Torrance BRDF
Definition BaseMaterial.h:20
Definition DX12MaterialManager.h:19
DirectX::XMFLOAT3 FresnelR0
Definition DX12MaterialManager.h:21
float Rough
Definition DX12MaterialManager.h:22
DX12Material(const BaseMaterial *material)
Definition DX12MaterialManager.cpp:17
uint32_t HasBaseColorTexture
Definition DX12MaterialManager.h:23
DirectX::XMFLOAT3 Padding
Definition DX12MaterialManager.h:24
DirectX::XMFLOAT4 Albedo
Definition DX12MaterialManager.h:20