slot 0.0.1
A real time UI render framework
载入中...
搜索中...
未找到
DX12MaterialManager.h
浏览该文件的文档.
1//
2// Created by zhou_zhengming on 2026/5/22.
3//
4
5#pragma once
6#include "DX12Common.h"
7#include "DX12DefaultBuffer.h"
10#include <DirectXMath.h>
11#include <cstddef>
12#include <cstdint>
13#include <unordered_map>
14
15
16namespace z8 {
17class BaseMaterial;
18
20 DirectX::XMFLOAT4 Albedo;
21 DirectX::XMFLOAT3 FresnelR0;
22 float Rough = 0.25f;
24 DirectX::XMFLOAT3 Padding = {};
25
26 explicit DX12Material(const BaseMaterial* material);
27};
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.");
32
34public:
36
38 void Init();
41
42private:
43 std::unordered_map<ResourceRef<BaseMaterial>, uint64_t,
45};
46}
47
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