Formalize gaussian splat prepare-order pass

This commit is contained in:
2026-04-11 03:02:30 +08:00
parent 5191bb1149
commit fac6e588a8
16 changed files with 1529 additions and 68 deletions

View File

@@ -26,6 +26,7 @@ Shader "Builtin Gaussian Splat"
float4 scaleReserved;
};
StructuredBuffer<uint> GaussianSplatOrderBuffer;
StructuredBuffer<float3> GaussianSplatPositions;
StructuredBuffer<GaussianSplatOtherData> GaussianSplatOther;
StructuredBuffer<float4> GaussianSplatColor;
@@ -54,9 +55,10 @@ Shader "Builtin Gaussian Splat"
{
VSOutput output;
const float2 corner = ResolveQuadCorner(vertexId);
const float3 localCenter = GaussianSplatPositions[instanceId];
const GaussianSplatOtherData otherData = GaussianSplatOther[instanceId];
const float4 colorOpacity = GaussianSplatColor[instanceId];
const uint splatIndex = GaussianSplatOrderBuffer[instanceId];
const float3 localCenter = GaussianSplatPositions[splatIndex];
const GaussianSplatOtherData otherData = GaussianSplatOther[splatIndex];
const float4 colorOpacity = GaussianSplatColor[splatIndex];
const float3 worldCenter = mul(gModelMatrix, float4(localCenter, 1.0)).xyz;
const float maxAxisScale =