| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- #include "CustomDX12API.h"
- #include <d3d12.h>
- #include <DX12Buffer.h>
- #include <DX12Shader.h>
- #include "CustomClosestHitShader.h"
- #include "CustomMissShader.h"
- #include "CustomRayGenShader.h"
- using namespace Framework;
- CustomDX12API::CustomDX12API()
- : DirectX12()
- {}
- void CustomDX12API::initializePipeline()
- {
- /*
- DX12Shader* rayGenShader
- = new DX12Shader(CustomRayGenShader, sizeof(CustomRayGenShader));
- // RayGen from RayGen.hlsl
- DX12ShaderSignature* rayGenSignature = new DX12ShaderSignature();
- rayGenSignature->addRegisterUsageLinkedToDescriptorHeap(
- 0, DX12_SHADER_REGISTER_U_UNORDERED_ACCESS, 0);
- rayGenSignature->addRegisterUsageLinkedToDescriptorHeap(
- 1, DX12_SHADER_REGISTER_U_UNORDERED_ACCESS, 1);
- rayGenSignature->addRegisterUsageLinkedToDescriptorHeap(
- 2, DX12_SHADER_REGISTER_B_CONST_BUFFER, 0);
- rayGenSignature->addRegisterUsageLinkedToDescriptorHeap(
- 3, DX12_SHADER_REGISTER_T_SHADER_RESOURCE, 0);
- defaultRayGenerationShaderFunction = new DX12ShaderFunction(
- "RayGen", rayGenSignature, DX12_SHADER_FUNCTION_TYPE_RAY_GEN);
- rayGenShader->addFunction(defaultRayGenerationShaderFunction);
- pipeline->addShader(rayGenShader);
- DX12Shader* missShader
- = new DX12Shader(CustomMissShader, sizeof(CustomMissShader));
- // Miss from Miss.hlsl
- missShader->addFunction(new DX12ShaderFunction(
- "Miss", new DX12ShaderSignature(), DX12_SHADER_FUNCTION_TYPE_MISS));
- pipeline->addShader(missShader);
- DX12Shader* hitShader = new DX12Shader(
- CustomClosestHitShader, sizeof(CustomClosestHitShader));
- // ClosestHit from Hit.hlsl
- DX12ShaderFunction* closestHitFunction
- = new DX12ShaderFunction("ClosestHit",
- new DX12ShaderSignature(),
- DX12_SHADER_FUNCTION_TYPE_CLOSEST_HIT);
- hitShader->addFunction(closestHitFunction);
- pipeline->addShader(hitShader);
- defaultHitGroup = new DX12ShaderHitGroup("HitGroup");
- defaultHitGroup->setAttributeSize(8);
- defaultHitGroup->setPayloadSize(16);
- defaultHitGroup->setClosestHitShaderFunction(closestHitFunction);
- pipeline->addHitGroup(defaultHitGroup);
- pipeline->setMaxRecursionDepth(10);
- pipeline->createPipelineState(device, pfnD3D12SerializeRootSignature);*/
- DirectX12::initializePipeline();
- }
- void CustomDX12API::initializeGlobalDescriptorHeap()
- {
- DirectX12::initializeGlobalDescriptorHeap();
- }
- void CustomDX12API::fillShaderBindingTable(
- Framework::DX12ShaderBindingTable* zShaderBindingTable,
- Framework::Model3D* zModel,
- int objectIndex,
- const Framework::DX12BLAS* zBLAS,
- int& lastHitGroupIndex)
- {
- DirectX12::fillShaderBindingTable(
- zShaderBindingTable, zModel, objectIndex, zBLAS, lastHitGroupIndex);
- }
|