From 07626a6a931b39864df1ac5228c1902b72a055ce Mon Sep 17 00:00:00 2001 From: Mark Henderson Date: Tue, 25 Jun 2024 09:57:52 -0700 Subject: [PATCH] [REMIX-2983] Cleanup unreachable shader code Several functions in polymorphic surface material interaction were remnants from the original design, and were never actually called anywhere. I went through all of the functions in the various surface_material_interaction classes and removed the ones that are never referenced in the dxvk-remix codebase. See merge request lightspeedrtx/dxvk-remix-nv!879 --- ...opaque_surface_material_interaction.slangh | 26 -- ...orphic_surface_material_interaction.slangh | 261 ------------------ ...portal_surface_material_interaction.slangh | 131 --------- ...lucent_surface_material_interaction.slangh | 99 ------- 4 files changed, 517 deletions(-) diff --git a/src/dxvk/shaders/rtx/concept/surface_material/opaque_surface_material_interaction.slangh b/src/dxvk/shaders/rtx/concept/surface_material/opaque_surface_material_interaction.slangh index 75aa2f957..399d7aa58 100644 --- a/src/dxvk/shaders/rtx/concept/surface_material/opaque_surface_material_interaction.slangh +++ b/src/dxvk/shaders/rtx/concept/surface_material/opaque_surface_material_interaction.slangh @@ -1334,23 +1334,6 @@ SurfaceMaterialInteractionSample thinOpaqueSurfaceMaterialInteractionCalcDiffuse return materialSample; } -SurfaceMaterialInteractionSample opaqueSurfaceMaterialInteractionCalcSpecularTransmissionSample( - OpaqueSurfaceMaterialInteraction opaqueSurfaceMaterialInteraction, - MinimalRayInteraction minimalRayInteraction, - inout bool insideMedium, inout bool penetrateSurface) -{ - SurfaceMaterialInteractionSample materialSample; - - materialSample.inputDirection = f16vec3(0.0, 0.0, 0.0); - materialSample.throughput = f16vec3(0.0, 0.0, 0.0); - materialSample.solidAnglePdf = 0.0f; - - // Note: Transmission rays penetrate the surface like translucent materials. - penetrateSurface = true; - - return materialSample; -} - // Note: Special case lobe for opacity. SurfaceMaterialInteractionSample opaqueSurfaceMaterialInteractionCalcOpacityTransmissionSample( OpaqueSurfaceMaterialInteraction opaqueSurfaceMaterialInteraction, @@ -1648,15 +1631,6 @@ float opaqueSurfaceMaterialInteractionCalcDiffuseTransmissionSolidAnglePdf( return solidAnglePdf; } -float opaqueSurfaceMaterialInteractionCalcSpecularTransmissionSolidAnglePdf( - OpaqueSurfaceMaterialInteraction opaqueSurfaceMaterialInteraction, - MinimalRayInteraction minimalRayInteraction, - f16vec3 inputDirection) -{ - // Note: Specular Transmission never possible for Opaque materials - return 0.0f; -} - float opaqueSurfaceMaterialInteractionCalcSolidAnglePdf( OpaqueSurfaceMaterialInteraction opaqueSurfaceMaterialInteraction, MinimalRayInteraction minimalRayInteraction, diff --git a/src/dxvk/shaders/rtx/concept/surface_material/polymorphic_surface_material_interaction.slangh b/src/dxvk/shaders/rtx/concept/surface_material/polymorphic_surface_material_interaction.slangh index ad899954f..d4687e59d 100644 --- a/src/dxvk/shaders/rtx/concept/surface_material/polymorphic_surface_material_interaction.slangh +++ b/src/dxvk/shaders/rtx/concept/surface_material/polymorphic_surface_material_interaction.slangh @@ -130,142 +130,6 @@ PolymorphicSurfaceMaterialInteraction polymorphicSurfaceMaterialInteractionCreat } } -SurfaceMaterialInteractionLobeInformation polymorphicSurfaceMaterialInteractionGetLobeInformation( - PolymorphicSurfaceMaterialInteraction polymorphicSurfaceMaterialInteraction) -{ - const uint8_t polymorphicType = polymorphicSurfaceMaterialInteractionGetTypeHelper(polymorphicSurfaceMaterialInteraction); - - switch (uint(polymorphicType)) - { - default: - case uint(surfaceMaterialTypeOpaque): - const OpaqueSurfaceMaterialInteraction opaqueSurfaceMaterialInteraction = opaqueSurfaceMaterialInteractionCreate(polymorphicSurfaceMaterialInteraction); - - return opaqueSurfaceMaterialInteractionGetLobeInformation(opaqueSurfaceMaterialInteraction); - case uint(surfaceMaterialTypeTranslucent): - const TranslucentSurfaceMaterialInteraction translucentSurfaceMaterialInteraction = translucentSurfaceMaterialInteractionCreate(polymorphicSurfaceMaterialInteraction); - - return translucentSurfaceMaterialInteractionGetLobeInformation(translucentSurfaceMaterialInteraction); - case uint(surfaceMaterialTypeRayPortal): - const RayPortalSurfaceMaterialInteraction rayPortalSurfaceMaterialInteraction = rayPortalSurfaceMaterialInteractionCreate(polymorphicSurfaceMaterialInteraction); - - return rayPortalSurfaceMaterialInteractionGetLobeInformation(rayPortalSurfaceMaterialInteraction); - } -} - -SurfaceMaterialInteractionSample polymorphicSurfaceMaterialInteractionCalcDiffuseReflectionSample( - PolymorphicSurfaceMaterialInteraction polymorphicSurfaceMaterialInteraction, - inout RNG randomState, - MinimalRayInteraction minimalRayInteraction) -{ - const f16vec4 tangentToWorldSpaceQuaternion = - quaternionCreateOrientation(materialTangentSpaceNormal, polymorphicSurfaceMaterialInteraction.shadingNormal); - - const uint8_t polymorphicType = polymorphicSurfaceMaterialInteractionGetTypeHelper(polymorphicSurfaceMaterialInteraction); - - switch (uint(polymorphicType)) - { - default: - case uint(surfaceMaterialTypeOpaque): - const OpaqueSurfaceMaterialInteraction opaqueSurfaceMaterialInteraction = opaqueSurfaceMaterialInteractionCreate(polymorphicSurfaceMaterialInteraction); - - return opaqueSurfaceMaterialInteractionCalcDiffuseReflectionSample(opaqueSurfaceMaterialInteraction, randomState, tangentToWorldSpaceQuaternion, minimalRayInteraction); - case uint(surfaceMaterialTypeTranslucent): - const TranslucentSurfaceMaterialInteraction translucentSurfaceMaterialInteraction = translucentSurfaceMaterialInteractionCreate(polymorphicSurfaceMaterialInteraction); - - return translucentSurfaceMaterialInteractionCalcDiffuseReflectionSample(translucentSurfaceMaterialInteraction, minimalRayInteraction); - case uint(surfaceMaterialTypeRayPortal): - const RayPortalSurfaceMaterialInteraction rayPortalSurfaceMaterialInteraction = rayPortalSurfaceMaterialInteractionCreate(polymorphicSurfaceMaterialInteraction); - - return rayPortalSurfaceMaterialInteractionCalcDiffuseReflectionSample(rayPortalSurfaceMaterialInteraction, minimalRayInteraction); - } -} - -SurfaceMaterialInteractionSample polymorphicSurfaceMaterialInteractionCalcSpecularReflectionSample( - PolymorphicSurfaceMaterialInteraction polymorphicSurfaceMaterialInteraction, - inout RNG randomState, - MinimalRayInteraction minimalRayInteraction, - bool insideMedium) -{ - const f16vec4 tangentToWorldSpaceQuaternion = - quaternionCreateOrientation(materialTangentSpaceNormal, polymorphicSurfaceMaterialInteraction.shadingNormal); - - const uint8_t polymorphicType = polymorphicSurfaceMaterialInteractionGetTypeHelper(polymorphicSurfaceMaterialInteraction); - - switch (uint(polymorphicType)) - { - default: - case uint(surfaceMaterialTypeOpaque): - const OpaqueSurfaceMaterialInteraction opaqueSurfaceMaterialInteraction = opaqueSurfaceMaterialInteractionCreate(polymorphicSurfaceMaterialInteraction); - - return opaqueSurfaceMaterialInteractionCalcSpecularReflectionSample(opaqueSurfaceMaterialInteraction, randomState, tangentToWorldSpaceQuaternion, minimalRayInteraction); - case uint(surfaceMaterialTypeTranslucent): - const TranslucentSurfaceMaterialInteraction translucentSurfaceMaterialInteraction = translucentSurfaceMaterialInteractionCreate(polymorphicSurfaceMaterialInteraction); - - return translucentSurfaceMaterialInteractionCalcSpecularReflectionSample(translucentSurfaceMaterialInteraction, tangentToWorldSpaceQuaternion, minimalRayInteraction, insideMedium); - case uint(surfaceMaterialTypeRayPortal): - const RayPortalSurfaceMaterialInteraction rayPortalSurfaceMaterialInteraction = rayPortalSurfaceMaterialInteractionCreate(polymorphicSurfaceMaterialInteraction); - - return rayPortalSurfaceMaterialInteractionCalcSpecularReflectionSample(rayPortalSurfaceMaterialInteraction, minimalRayInteraction); - } -} - -SurfaceMaterialInteractionSample polymorphicSurfaceMaterialInteractionCalcDiffuseTransmissionSample( - PolymorphicSurfaceMaterialInteraction polymorphicSurfaceMaterialInteraction, - inout RNG randomState, - MinimalRayInteraction minimalRayInteraction, - inout bool insideMedium, inout bool penetrateSurface) -{ - const uint8_t polymorphicType = polymorphicSurfaceMaterialInteractionGetTypeHelper(polymorphicSurfaceMaterialInteraction); - - switch (uint(polymorphicType)) - { - default: - case uint(surfaceMaterialTypeOpaque): - const f16vec4 tangentToWorldSpaceQuaternion = - quaternionCreateOrientation(materialTangentSpaceNormal, polymorphicSurfaceMaterialInteraction.shadingNormal); - - const OpaqueSurfaceMaterialInteraction opaqueSurfaceMaterialInteraction = opaqueSurfaceMaterialInteractionCreate(polymorphicSurfaceMaterialInteraction); - - return opaqueSurfaceMaterialInteractionCalcDiffuseTransmissionSample( - opaqueSurfaceMaterialInteraction, randomState, tangentToWorldSpaceQuaternion, minimalRayInteraction, insideMedium, penetrateSurface); - case uint(surfaceMaterialTypeTranslucent): - const TranslucentSurfaceMaterialInteraction translucentSurfaceMaterialInteraction = translucentSurfaceMaterialInteractionCreate(polymorphicSurfaceMaterialInteraction); - - return translucentSurfaceMaterialInteractionCalcDiffuseTransmissionSample(translucentSurfaceMaterialInteraction, minimalRayInteraction, insideMedium, penetrateSurface); - case uint(surfaceMaterialTypeRayPortal): - const RayPortalSurfaceMaterialInteraction rayPortalSurfaceMaterialInteraction = rayPortalSurfaceMaterialInteractionCreate(polymorphicSurfaceMaterialInteraction); - - return rayPortalSurfaceMaterialInteractionCalcDiffuseTransmissionSample(rayPortalSurfaceMaterialInteraction, minimalRayInteraction, insideMedium, penetrateSurface); - } -} - -SurfaceMaterialInteractionSample polymorphicSurfaceMaterialInteractionCalcSpecularTransmissionSample( - PolymorphicSurfaceMaterialInteraction polymorphicSurfaceMaterialInteraction, - inout RNG randomState, - MinimalRayInteraction minimalRayInteraction, - inout bool insideMedium, inout bool penetrateSurface) -{ - const uint8_t polymorphicType = polymorphicSurfaceMaterialInteractionGetTypeHelper(polymorphicSurfaceMaterialInteraction); - - switch (uint(polymorphicType)) - { - default: - case uint(surfaceMaterialTypeOpaque): - const OpaqueSurfaceMaterialInteraction opaqueSurfaceMaterialInteraction = opaqueSurfaceMaterialInteractionCreate(polymorphicSurfaceMaterialInteraction); - - return opaqueSurfaceMaterialInteractionCalcSpecularTransmissionSample(opaqueSurfaceMaterialInteraction, minimalRayInteraction, insideMedium, penetrateSurface); - case uint(surfaceMaterialTypeTranslucent): - const TranslucentSurfaceMaterialInteraction translucentSurfaceMaterialInteraction = translucentSurfaceMaterialInteractionCreate(polymorphicSurfaceMaterialInteraction); - - return translucentSurfaceMaterialInteractionCalcSpecularTransmissionSample(translucentSurfaceMaterialInteraction, minimalRayInteraction, insideMedium, penetrateSurface); - case uint(surfaceMaterialTypeRayPortal): - const RayPortalSurfaceMaterialInteraction rayPortalSurfaceMaterialInteraction = rayPortalSurfaceMaterialInteractionCreate(polymorphicSurfaceMaterialInteraction); - - return rayPortalSurfaceMaterialInteractionCalcSpecularTransmissionSample(rayPortalSurfaceMaterialInteraction, minimalRayInteraction, insideMedium, penetrateSurface); - } -} - void polymorphicSurfaceMaterialInteractionCalcSample( PolymorphicSurfaceMaterialInteraction polymorphicSurfaceMaterialInteraction, inout RNG randomState, @@ -374,131 +238,6 @@ void polymorphicSurfaceMaterialInteractionCalcPSRSample( } } -float polymorphicSurfaceMaterialInteractionCalcDiffuseReflectionSolidAnglePdf( - PolymorphicSurfaceMaterialInteraction polymorphicSurfaceMaterialInteraction, - MinimalRayInteraction minimalRayInteraction, - f16vec3 inputDirection) -{ - const uint8_t polymorphicType = polymorphicSurfaceMaterialInteractionGetTypeHelper(polymorphicSurfaceMaterialInteraction); - - switch (uint(polymorphicType)) - { - default: - case uint(surfaceMaterialTypeOpaque): - const OpaqueSurfaceMaterialInteraction opaqueSurfaceMaterialInteraction = opaqueSurfaceMaterialInteractionCreate(polymorphicSurfaceMaterialInteraction); - - return opaqueSurfaceMaterialInteractionCalcDiffuseReflectionSolidAnglePdf(opaqueSurfaceMaterialInteraction, minimalRayInteraction, inputDirection); - case uint(surfaceMaterialTypeTranslucent): - const TranslucentSurfaceMaterialInteraction translucentSurfaceMaterialInteraction = translucentSurfaceMaterialInteractionCreate(polymorphicSurfaceMaterialInteraction); - - return translucentSurfaceMaterialInteractionCalcDiffuseReflectionSolidAnglePdf(translucentSurfaceMaterialInteraction, minimalRayInteraction, inputDirection); - case uint(surfaceMaterialTypeRayPortal): - const RayPortalSurfaceMaterialInteraction rayPortalSurfaceMaterialInteraction = rayPortalSurfaceMaterialInteractionCreate(polymorphicSurfaceMaterialInteraction); - - return rayPortalSurfaceMaterialInteractionCalcDiffuseReflectionSolidAnglePdf(rayPortalSurfaceMaterialInteraction, minimalRayInteraction, inputDirection); - } -} - -float polymorphicSurfaceMaterialInteractionCalcSpecularReflectionSolidAnglePdf( - PolymorphicSurfaceMaterialInteraction polymorphicSurfaceMaterialInteraction, - MinimalRayInteraction minimalRayInteraction, - f16vec3 inputDirection) -{ - const uint8_t polymorphicType = polymorphicSurfaceMaterialInteractionGetTypeHelper(polymorphicSurfaceMaterialInteraction); - - switch (uint(polymorphicType)) - { - default: - case uint(surfaceMaterialTypeOpaque): - const OpaqueSurfaceMaterialInteraction opaqueSurfaceMaterialInteraction = opaqueSurfaceMaterialInteractionCreate(polymorphicSurfaceMaterialInteraction); - - return opaqueSurfaceMaterialInteractionCalcSpecularReflectionSolidAnglePdf(opaqueSurfaceMaterialInteraction, minimalRayInteraction, inputDirection); - case uint(surfaceMaterialTypeTranslucent): - const TranslucentSurfaceMaterialInteraction translucentSurfaceMaterialInteraction = translucentSurfaceMaterialInteractionCreate(polymorphicSurfaceMaterialInteraction); - - return translucentSurfaceMaterialInteractionCalcSpecularReflectionSolidAnglePdf(translucentSurfaceMaterialInteraction, minimalRayInteraction, inputDirection); - case uint(surfaceMaterialTypeRayPortal): - const RayPortalSurfaceMaterialInteraction rayPortalSurfaceMaterialInteraction = rayPortalSurfaceMaterialInteractionCreate(polymorphicSurfaceMaterialInteraction); - - return rayPortalSurfaceMaterialInteractionCalcSpecularReflectionSolidAnglePdf(rayPortalSurfaceMaterialInteraction, minimalRayInteraction, inputDirection); - } -} - -float polymorphicSurfaceMaterialInteractionCalcDiffuseTransmissionSolidAnglePdf( - PolymorphicSurfaceMaterialInteraction polymorphicSurfaceMaterialInteraction, - MinimalRayInteraction minimalRayInteraction, - f16vec3 inputDirection) -{ - const uint8_t polymorphicType = polymorphicSurfaceMaterialInteractionGetTypeHelper(polymorphicSurfaceMaterialInteraction); - - switch (uint(polymorphicType)) - { - default: - case uint(surfaceMaterialTypeOpaque): - const OpaqueSurfaceMaterialInteraction opaqueSurfaceMaterialInteraction = opaqueSurfaceMaterialInteractionCreate(polymorphicSurfaceMaterialInteraction); - - return opaqueSurfaceMaterialInteractionCalcDiffuseTransmissionSolidAnglePdf(opaqueSurfaceMaterialInteraction, minimalRayInteraction, inputDirection); - case uint(surfaceMaterialTypeTranslucent): - const TranslucentSurfaceMaterialInteraction translucentSurfaceMaterialInteraction = translucentSurfaceMaterialInteractionCreate(polymorphicSurfaceMaterialInteraction); - - return translucentSurfaceMaterialInteractionCalcDiffuseTransmissionSolidAnglePdf(translucentSurfaceMaterialInteraction, minimalRayInteraction, inputDirection); - case uint(surfaceMaterialTypeRayPortal): - const RayPortalSurfaceMaterialInteraction rayPortalSurfaceMaterialInteraction = rayPortalSurfaceMaterialInteractionCreate(polymorphicSurfaceMaterialInteraction); - - return rayPortalSurfaceMaterialInteractionCalcDiffuseTransmissionSolidAnglePdf(rayPortalSurfaceMaterialInteraction, minimalRayInteraction, inputDirection); - } -} - -float polymorphicSurfaceMaterialInteractionCalcSpecularTransmissionSolidAnglePdf( - PolymorphicSurfaceMaterialInteraction polymorphicSurfaceMaterialInteraction, - MinimalRayInteraction minimalRayInteraction, - f16vec3 inputDirection) -{ - const uint8_t polymorphicType = polymorphicSurfaceMaterialInteractionGetTypeHelper(polymorphicSurfaceMaterialInteraction); - - switch (uint(polymorphicType)) - { - default: - case uint(surfaceMaterialTypeOpaque): - const OpaqueSurfaceMaterialInteraction opaqueSurfaceMaterialInteraction = opaqueSurfaceMaterialInteractionCreate(polymorphicSurfaceMaterialInteraction); - - return opaqueSurfaceMaterialInteractionCalcSpecularTransmissionSolidAnglePdf(opaqueSurfaceMaterialInteraction, minimalRayInteraction, inputDirection); - case uint(surfaceMaterialTypeTranslucent): - const TranslucentSurfaceMaterialInteraction translucentSurfaceMaterialInteraction = translucentSurfaceMaterialInteractionCreate(polymorphicSurfaceMaterialInteraction); - - return translucentSurfaceMaterialInteractionCalcSpecularTransmissionSolidAnglePdf(translucentSurfaceMaterialInteraction, minimalRayInteraction, inputDirection); - case uint(surfaceMaterialTypeRayPortal): - const RayPortalSurfaceMaterialInteraction rayPortalSurfaceMaterialInteraction = rayPortalSurfaceMaterialInteractionCreate(polymorphicSurfaceMaterialInteraction); - - return rayPortalSurfaceMaterialInteractionCalcSpecularTransmissionSolidAnglePdf(rayPortalSurfaceMaterialInteraction, minimalRayInteraction, inputDirection); - } -} - -float polymorphicSurfaceMaterialInteractionCalcSolidAnglePdf( - PolymorphicSurfaceMaterialInteraction polymorphicSurfaceMaterialInteraction, - MinimalRayInteraction minimalRayInteraction, - f16vec3 inputDirection) -{ - const uint8_t polymorphicType = polymorphicSurfaceMaterialInteractionGetTypeHelper(polymorphicSurfaceMaterialInteraction); - - switch (uint(polymorphicType)) - { - default: - case uint(surfaceMaterialTypeOpaque): - const OpaqueSurfaceMaterialInteraction opaqueSurfaceMaterialInteraction = opaqueSurfaceMaterialInteractionCreate(polymorphicSurfaceMaterialInteraction); - - return opaqueSurfaceMaterialInteractionCalcSolidAnglePdf(opaqueSurfaceMaterialInteraction, minimalRayInteraction, inputDirection); - case uint(surfaceMaterialTypeTranslucent): - const TranslucentSurfaceMaterialInteraction translucentSurfaceMaterialInteraction = translucentSurfaceMaterialInteractionCreate(polymorphicSurfaceMaterialInteraction); - - return translucentSurfaceMaterialInteractionCalcSolidAnglePdf(translucentSurfaceMaterialInteraction, minimalRayInteraction, inputDirection); - case uint(surfaceMaterialTypeRayPortal): - const RayPortalSurfaceMaterialInteraction rayPortalSurfaceMaterialInteraction = rayPortalSurfaceMaterialInteractionCreate(polymorphicSurfaceMaterialInteraction); - - return rayPortalSurfaceMaterialInteractionCalcSolidAnglePdf(rayPortalSurfaceMaterialInteraction, minimalRayInteraction, inputDirection); - } -} - f16vec3 polymorphicSurfaceMaterialInteractionEvalEmissiveRadiance( PolymorphicSurfaceMaterialInteraction polymorphicSurfaceMaterialInteraction) { diff --git a/src/dxvk/shaders/rtx/concept/surface_material/ray_portal_surface_material_interaction.slangh b/src/dxvk/shaders/rtx/concept/surface_material/ray_portal_surface_material_interaction.slangh index 39cd69c1e..3156e9a1b 100644 --- a/src/dxvk/shaders/rtx/concept/surface_material/ray_portal_surface_material_interaction.slangh +++ b/src/dxvk/shaders/rtx/concept/surface_material/ray_portal_surface_material_interaction.slangh @@ -205,77 +205,6 @@ RayPortalSurfaceMaterialInteraction rayPortalSurfaceMaterialInteractionCreate( return rayPortalSurfaceMaterialInteraction; } - -SurfaceMaterialInteractionLobeInformation rayPortalSurfaceMaterialInteractionGetLobeInformation( - RayPortalSurfaceMaterialInteraction rayPortalSurfaceMaterialInteraction) -{ - SurfaceMaterialInteractionLobeInformation surfaceMaterialInteractionLobeInformation; - - surfaceMaterialInteractionLobeInformation.diffuseReflectionPresent = false; - surfaceMaterialInteractionLobeInformation.specularReflectionPresent = false; - surfaceMaterialInteractionLobeInformation.diffuseTransmissionPresent = false; - surfaceMaterialInteractionLobeInformation.specularTransmissionPresent = false; - - surfaceMaterialInteractionLobeInformation.specularReflectionDirac = false; - surfaceMaterialInteractionLobeInformation.specularTransmissionDirac = false; - - return surfaceMaterialInteractionLobeInformation; -} - -SurfaceMaterialInteractionSample rayPortalSurfaceMaterialInteractionCalcDiffuseReflectionSample( - RayPortalSurfaceMaterialInteraction rayPortalSurfaceMaterialInteraction, - MinimalRayInteraction minimalRayInteraction) -{ - SurfaceMaterialInteractionSample materialSample; - - materialSample.inputDirection = f16vec3(0.0, 0.0, 0.0); - materialSample.throughput = f16vec3(0.0, 0.0, 0.0); - materialSample.solidAnglePdf = 0.0f; - - return materialSample; -} - -SurfaceMaterialInteractionSample rayPortalSurfaceMaterialInteractionCalcSpecularReflectionSample( - RayPortalSurfaceMaterialInteraction rayPortalSurfaceMaterialInteraction, - MinimalRayInteraction minimalRayInteraction) -{ - SurfaceMaterialInteractionSample materialSample; - - materialSample.inputDirection = f16vec3(0.0, 0.0, 0.0); - materialSample.throughput = f16vec3(0.0, 0.0, 0.0); - materialSample.solidAnglePdf = 0.0f; - - return materialSample; -} - -SurfaceMaterialInteractionSample rayPortalSurfaceMaterialInteractionCalcDiffuseTransmissionSample( - RayPortalSurfaceMaterialInteraction rayPortalSurfaceMaterialInteraction, - MinimalRayInteraction minimalRayInteraction, - inout bool insideMedium, inout bool penetrateSurface) -{ - SurfaceMaterialInteractionSample materialSample; - - materialSample.inputDirection = f16vec3(0.0, 0.0, 0.0); - materialSample.throughput = f16vec3(0.0, 0.0, 0.0); - materialSample.solidAnglePdf = 0.0f; - - return materialSample; -} - -SurfaceMaterialInteractionSample rayPortalSurfaceMaterialInteractionCalcSpecularTransmissionSample( - RayPortalSurfaceMaterialInteraction rayPortalSurfaceMaterialInteraction, - MinimalRayInteraction minimalRayInteraction, - inout bool insideMedium, inout bool penetrateSurface) -{ - SurfaceMaterialInteractionSample materialSample; - - materialSample.inputDirection = f16vec3(0.0, 0.0, 0.0); - materialSample.throughput = f16vec3(0.0, 0.0, 0.0); - materialSample.solidAnglePdf = 0.0f; - - return materialSample; -} - void rayPortalSurfaceMaterialInteractionCalcSample( RayPortalSurfaceMaterialInteraction rayPortalSurfaceMaterialInteraction, MinimalRayInteraction minimalRayInteraction, @@ -340,63 +269,3 @@ void rayPortalSurfaceMaterialInteractionCalcPSRSample( reflectionSelectedIntegrationSurface = false; selectedIntegrationSurfacePdf = 1.0f; } - -float rayPortalSurfaceMaterialInteractionCalcDiffuseReflectionSolidAnglePdf( - RayPortalSurfaceMaterialInteraction rayPortalSurfaceMaterialInteraction, - MinimalRayInteraction minimalRayInteraction, - f16vec3 inputDirection) -{ - return 0.0f; -} - -float rayPortalSurfaceMaterialInteractionCalcSpecularReflectionSolidAnglePdf( - RayPortalSurfaceMaterialInteraction rayPortalSurfaceMaterialInteraction, - MinimalRayInteraction minimalRayInteraction, - f16vec3 inputDirection) -{ - return 0.0f; -} - -float rayPortalSurfaceMaterialInteractionCalcDiffuseTransmissionSolidAnglePdf( - RayPortalSurfaceMaterialInteraction rayPortalSurfaceMaterialInteraction, - MinimalRayInteraction minimalRayInteraction, - f16vec3 inputDirection) -{ - return 0.0f; -} - -float rayPortalSurfaceMaterialInteractionCalcSpecularTransmissionSolidAnglePdf( - RayPortalSurfaceMaterialInteraction rayPortalSurfaceMaterialInteraction, - MinimalRayInteraction minimalRayInteraction, - f16vec3 inputDirection) -{ - return 0.0f; -} - -float rayPortalSurfaceMaterialInteractionCalcSolidAnglePdf( - RayPortalSurfaceMaterialInteraction rayPortalSurfaceMaterialInteraction, - MinimalRayInteraction minimalRayInteraction, - f16vec3 inputDirection) -{ - return 0.0f; -} - -SurfaceMaterialInteractionSplitWeight rayPortalSurfaceMaterialInteractionCalcProjectedWeight( - RayPortalSurfaceMaterialInteraction rayPortalSurfaceMaterialInteraction, - MinimalRayInteraction minimalRayInteraction, - f16vec3 inputDirection) -{ - SurfaceMaterialInteractionSplitWeight splitWeight; - - splitWeight.diffuseReflectionWeight = f16vec3(0.0, 0.0, 0.0); - splitWeight.specularReflectionWeight = f16vec3(0.0, 0.0, 0.0); - splitWeight.diffuseTransmissionWeight = f16vec3(0.0, 0.0, 0.0); - - return splitWeight; -} - -f16vec3 rayPortalSurfaceMaterialInteractionEvalEmissiveRadiance( - RayPortalSurfaceMaterialInteraction rayPortalSurfaceMaterialInteraction) -{ - return f16vec3(0.0f, 0.0f, 0.0f); -} diff --git a/src/dxvk/shaders/rtx/concept/surface_material/translucent_surface_material_interaction.slangh b/src/dxvk/shaders/rtx/concept/surface_material/translucent_surface_material_interaction.slangh index 61354a845..d1254d693 100644 --- a/src/dxvk/shaders/rtx/concept/surface_material/translucent_surface_material_interaction.slangh +++ b/src/dxvk/shaders/rtx/concept/surface_material/translucent_surface_material_interaction.slangh @@ -380,19 +380,6 @@ void translucentSurfaceMaterialInteractionCalcRelativeRefractiveIndices( insideRelativeRefractiveIndex = transmittedRefractiveIndex / incidentRefractiveIndex; } -SurfaceMaterialInteractionSample translucentSurfaceMaterialInteractionCalcDiffuseReflectionSample( - TranslucentSurfaceMaterialInteraction translucentSurfaceMaterialInteraction, - MinimalRayInteraction minimalRayInteraction) -{ - SurfaceMaterialInteractionSample materialSample; - - materialSample.inputDirection = f16vec3(0.0, 0.0, 0.0); - materialSample.throughput = f16vec3(0.0, 0.0, 0.0); - materialSample.solidAnglePdf = 0.0f; - - return materialSample; -} - SurfaceMaterialInteractionSample translucentSurfaceMaterialInteractionCalcSpecularReflectionSample( TranslucentSurfaceMaterialInteraction translucentSurfaceMaterialInteraction, f16vec4 tangentToWorldSpaceQuaternion, @@ -504,20 +491,6 @@ SurfaceMaterialInteractionSample translucentSurfaceMaterialInteractionCalcSpecul return materialSample; } -SurfaceMaterialInteractionSample translucentSurfaceMaterialInteractionCalcDiffuseTransmissionSample( - TranslucentSurfaceMaterialInteraction translucentSurfaceMaterialInteraction, - MinimalRayInteraction minimalRayInteraction, - inout bool insideMedium, inout bool penetrateSurface) -{ - SurfaceMaterialInteractionSample materialSample; - - materialSample.inputDirection = f16vec3(0.0, 0.0, 0.0); - materialSample.throughput = f16vec3(0.0, 0.0, 0.0); - materialSample.solidAnglePdf = 0.0f; - - return materialSample; -} - SurfaceMaterialInteractionSample translucentSurfaceMaterialInteractionCalcSpecularTransmissionSample( TranslucentSurfaceMaterialInteraction translucentSurfaceMaterialInteraction, MinimalRayInteraction minimalRayInteraction, @@ -1142,75 +1115,3 @@ void translucentSurfaceMaterialInteractionCalcPSRSample( selectedIntegrationSurfacePdf = 1.0f; } } - -float translucentSurfaceMaterialInteractionCalcDiffuseReflectionSolidAnglePdf( - TranslucentSurfaceMaterialInteraction translucentSurfaceMaterialInteraction, - MinimalRayInteraction minimalRayInteraction, - f16vec3 inputDirection) -{ - // Todo - - return 0.0f; -} - -float translucentSurfaceMaterialInteractionCalcSpecularReflectionSolidAnglePdf( - TranslucentSurfaceMaterialInteraction translucentSurfaceMaterialInteraction, - MinimalRayInteraction minimalRayInteraction, - f16vec3 inputDirection) -{ - // Todo - - return 0.0f; -} - -float translucentSurfaceMaterialInteractionCalcDiffuseTransmissionSolidAnglePdf( - TranslucentSurfaceMaterialInteraction translucentSurfaceMaterialInteraction, - MinimalRayInteraction minimalRayInteraction, - f16vec3 inputDirection) -{ - // Note: Diffuse Transmission never possible for Translucent materials - return 0.0f; -} - -float translucentSurfaceMaterialInteractionCalcSpecularTransmissionSolidAnglePdf( - TranslucentSurfaceMaterialInteraction translucentSurfaceMaterialInteraction, - MinimalRayInteraction minimalRayInteraction, - f16vec3 inputDirection) -{ - // Note: Specular Transmission PDF never needed for Translucent materials (As NEE is only done on the reflecting side) - return 0.0f; -} - -float translucentSurfaceMaterialInteractionCalcSolidAnglePdf( - TranslucentSurfaceMaterialInteraction translucentSurfaceMaterialInteraction, - MinimalRayInteraction minimalRayInteraction, - f16vec3 inputDirection) -{ - // Return the average of all the lobe PDFs - // Note: Only lobes which are possible and specifically involved in reflections are included - - return ( - translucentSurfaceMaterialInteractionCalcSpecularReflectionSolidAnglePdf( - translucentSurfaceMaterialInteraction, minimalRayInteraction, inputDirection) - ) / 1.0f; -} - -SurfaceMaterialInteractionSplitWeight translucentSurfaceMaterialInteractionCalcProjectedWeight( - TranslucentSurfaceMaterialInteraction translucentSurfaceMaterialInteraction, - MinimalRayInteraction minimalRayInteraction, - f16vec3 inputDirection) -{ - SurfaceMaterialInteractionSplitWeight splitWeight; - - splitWeight.diffuseReflectionWeight = f16vec3(0.0, 0.0, 0.0); - splitWeight.specularReflectionWeight = f16vec3(0.0, 0.0, 0.0); - splitWeight.diffuseTransmissionWeight = f16vec3(0.0, 0.0, 0.0); - - return splitWeight; -} - -f16vec3 translucentSurfaceMaterialInteractionEvalEmissiveRadiance( - TranslucentSurfaceMaterialInteraction translucentSurfaceMaterialInteraction) -{ - return translucentSurfaceMaterialInteraction.emissiveRadiance; -}