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
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+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