#pragma once #include #include #include class CustomDX12API : public Framework::DirectX12 { private: int* sbtChunkTextureIdBufferOffset; int* sbtChunkIndexBufferOffset; int* sbtChunkDataBufferOffset; int* sbtChunkLightBufferOffset; int* sbtSimpleBlocksTextureIdBufferOffset; int* sbtSimpleBlocksIndexBufferOffset; int* sbtSimpleBlocksVertexDataBufferOffset; int* sbtSimpleBlocksIndexOffsetBufferOffset; Framework::DX12ShaderHitGroup* chunkHitGroup; Framework::DX12ShaderHitGroup* simpleBlocksHitGroup; public: CustomDX12API(); ~CustomDX12API(); void initializePipeline() override; void initializeGlobalDescriptorHeap() override; void fillShaderBindingTable( Framework::DX12ShaderBindingTable* zShaderBindingTable, Framework::Model3D* zModel, int objectIndex, const Framework::DX12BLAS* zBLAS, int& lastHitGroupIndex) override; void renderWorld(Framework::World3D* zWorld, Framework::DX12TLAS* zTLAS, Framework::DX12ShaderBindingTable* zSBT, int& objectIndex) override; };