idTech 8 style path tracing.

This commit is contained in:
Justin Marshall
2026-05-27 14:08:35 -07:00
parent 41cbd5669b
commit 5d2cb8640d
11 changed files with 1652 additions and 355 deletions
+7 -2
View File
@@ -1714,7 +1714,8 @@ typedef struct glRaytracingLight_s
uint32_t iesTextureId; // optional GL texture containing a lat-long IES profile
float iesStrength; // 0 disables, 1 uses texture as authored
float iesPad[2];
int32_t areaNum; // proc/render portal area, -1 if unknown
float iesPad;
} glRaytracingLight_t;
typedef struct glRaytracingLightingPassDesc_s
@@ -1731,6 +1732,9 @@ typedef struct glRaytracingLightingPassDesc_s
ID3D12Resource* positionTexture;
DXGI_FORMAT positionFormat;
ID3D12Resource* velocityTexture;
DXGI_FORMAT velocityFormat;
ID3D12Resource* outputTexture;
DXGI_FORMAT outputFormat;
@@ -1841,6 +1845,7 @@ void glRaytracingLightingSetAmbient(float r, float g, floa
void glRaytracingLightingSetCameraPosition(float x, float y, float z);
void glRaytracingLightingSetInvViewProjMatrix(const float* m16);
void glRaytracingLightingSetInvViewMatrix(const float* m16);
void glRaytracingLightingSetHistoryReset(int reset);
void glRaytracingLightingSetNormalReconstructSign(float signValue);
void glRaytracingLightingEnableSpecular(int enable);
void glRaytracingLightingEnableHalfLambert(int enable);
@@ -2345,7 +2350,7 @@ extern "C" {
void glRaytracingSetMeshMaterialFlags(glRaytracingMeshHandle_t meshHandle, uint32_t materialFlags);
void glRaytracingSetMeshGlass(glRaytracingMeshHandle_t meshHandle, int isGlass);
void glRaytracingSetMeshAverageColor(glRaytracingMeshHandle_t meshHandle, float r, float g, float b, float a);
void glRaytracingSetMeshProcMetadata(glRaytracingMeshHandle_t meshHandle, uint32_t procFlags, float emissiveR, float emissiveG, float emissiveB, float emissivePower);
void glRaytracingSetMeshProcMetadata(glRaytracingMeshHandle_t meshHandle, uint32_t procFlags, int areaNum, float emissiveR, float emissiveG, float emissiveB, float emissivePower);
// For callers that create raytracing instances directly instead of using the
// shim's glUpdateTopLevelAceelStructure() helper. Glass meshes must also use