MCPcopy Create free account
hub / github.com/TheRealMJP/DeferredTexturing / Initialize

Method Initialize

BindlessDeferred/BindlessDeferred.cpp:94–573  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

92}
93
94void BindlessDeferred::Initialize()
95{
96 // Check if the device supports conservative rasterization
97 D3D12_FEATURE_DATA_D3D12_OPTIONS features = { };
98 DX12::Device->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS, &features, sizeof(features));
99 if(features.ConservativeRasterizationTier == D3D12_CONSERVATIVE_RASTERIZATION_TIER_NOT_SUPPORTED)
100 {
101 AppSettings::ClusterRasterizationMode.SetValue(ClusterRasterizationModes::MSAA8x);
102 AppSettings::ClusterRasterizationMode.ClampNumValues(uint32(ClusterRasterizationModes::NumValues) - 1);
103 }
104
105 // Load the scenes
106 for(uint64 i = 0; i < uint64(Scenes::NumValues); ++i)
107 {
108 ModelLoadSettings settings;
109 settings.FilePath = ScenePaths[i];
110 settings.ForceSRGB = true;
111 settings.SceneScale = SceneScales[i];
112 settings.MergeMeshes = false;
113 sceneModels[i].CreateWithAssimp(settings);
114 }
115
116 float aspect = float(swapChain.Width()) / swapChain.Height();
117 camera.Initialize(aspect, Pi_4, 0.1f, 35.0f);
118
119 InitializeScene();
120
121 skybox.Initialize();
122
123 postProcessor.Initialize();
124
125 // Load the decal textures
126 for(uint64 i = 0; i < AppSettings::NumDecalTypes; ++i)
127 {
128 LoadTexture(decalTextures[i * 2 + 0], MakeString(L"..\\Content\\Textures\\Decals\\Decal_%02u_Albedo.tga", uint32(i)).c_str(), true);
129 LoadTexture(decalTextures[i * 2 + 1], MakeString(L"..\\Content\\Textures\\Decals\\Decal_%02u_Normal.png", uint32(i)).c_str(), false);
130 }
131
132 decals.Init(AppSettings::MaxDecals);
133
134 {
135 // Decal buffer
136 StructuredBufferInit sbInit;
137 sbInit.Stride = sizeof(Decal);
138 sbInit.NumElements = AppSettings::MaxDecals;
139 sbInit.Dynamic = false;
140 sbInit.Lifetime = BufferLifetime::Persistent;
141 sbInit.InitialState = D3D12_RESOURCE_STATE_COPY_DEST;
142 decalBuffer.Initialize(sbInit);
143 }
144
145 {
146 // Decal bounds and instance buffers
147 StructuredBufferInit sbInit;
148 sbInit.Stride = sizeof(ClusterBounds);
149 sbInit.NumElements = AppSettings::MaxDecals;
150 sbInit.Dynamic = true;
151 sbInit.Lifetime = BufferLifetime::Temporary;

Callers 2

CreateRenderTargetsMethod · 0.45
InitializeSceneMethod · 0.45

Calls 15

LoadTextureFunction · 0.85
MakeStringFunction · 0.85
CompileFromFileFunction · 0.85
MakeBoxGeometryFunction · 0.85
MakeConeGeometryFunction · 0.85
NumMSAASamplesFunction · 0.85
SampleFrameworkDirFunction · 0.85
CreateRootSignatureFunction · 0.85
GetStaticSamplerStateFunction · 0.85
DXCallFunction · 0.85
ClampNumValuesMethod · 0.80
CreateWithAssimpMethod · 0.80

Tested by

no test coverage detected