Resolve problems in code review
This commit is contained in:
@@ -67,8 +67,8 @@ void PS_Forward(
|
|||||||
gBuffer.Color = material.Color;
|
gBuffer.Color = material.Color;
|
||||||
gBuffer.Specular = material.Specular;
|
gBuffer.Specular = material.Specular;
|
||||||
gBuffer.AO = material.AO;
|
gBuffer.AO = material.AO;
|
||||||
// gBuffer.ViewPos is the view position in WORLD SPACE
|
// gBuffer.ViewPos is the view space position of the pixel
|
||||||
gBuffer.ViewPos = ViewPos;
|
gBuffer.ViewPos = mul(float4(materialInput.WorldPosition, 1), ViewMatrix).xyz;
|
||||||
#if MATERIAL_SHADING_MODEL == SHADING_MODEL_SUBSURFACE
|
#if MATERIAL_SHADING_MODEL == SHADING_MODEL_SUBSURFACE
|
||||||
gBuffer.CustomData = float4(material.SubsurfaceColor, material.Opacity);
|
gBuffer.CustomData = float4(material.SubsurfaceColor, material.Opacity);
|
||||||
#elif MATERIAL_SHADING_MODEL == SHADING_MODEL_FOLIAGE
|
#elif MATERIAL_SHADING_MODEL == SHADING_MODEL_FOLIAGE
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ Texture2D GlobalSurfaceAtlasTex : register(t__SRV__);
|
|||||||
bool TraceSDFSoftwareReflections(GBufferSample gBuffer, float3 reflectWS, out float4 surfaceAtlas)
|
bool TraceSDFSoftwareReflections(GBufferSample gBuffer, float3 reflectWS, out float4 surfaceAtlas)
|
||||||
{
|
{
|
||||||
GlobalSDFTrace sdfTrace;
|
GlobalSDFTrace sdfTrace;
|
||||||
float maxDistance = 100000;
|
float maxDistance = GLOBAL_SDF_WORLD_SIZE;
|
||||||
float selfOcclusionBias = GlobalSDF.CascadeVoxelSize[0];
|
float selfOcclusionBias = GlobalSDF.CascadeVoxelSize[0];
|
||||||
sdfTrace.Init(gBuffer.WorldPos + gBuffer.Normal * selfOcclusionBias, reflectWS, 0.0f, maxDistance);
|
sdfTrace.Init(gBuffer.WorldPos + gBuffer.Normal * selfOcclusionBias, reflectWS, 0.0f, maxDistance);
|
||||||
GlobalSDFHit sdfHit = RayTraceGlobalSDF(GlobalSDF, GlobalSDFTex, GlobalSDFMip, sdfTrace);
|
GlobalSDFHit sdfHit = RayTraceGlobalSDF(GlobalSDF, GlobalSDFTex, GlobalSDFMip, sdfTrace);
|
||||||
|
|||||||
@@ -51,10 +51,11 @@ void ForwardMaterialShader::Bind(BindParameters& params)
|
|||||||
int32 srv = 2;
|
int32 srv = 2;
|
||||||
|
|
||||||
// Setup features
|
// Setup features
|
||||||
if ((_info.FeaturesFlags & MaterialFeaturesFlags::GlobalIllumination) != MaterialFeaturesFlags::None)
|
if ((_info.FeaturesFlags & MaterialFeaturesFlags::GlobalIllumination) != MaterialFeaturesFlags::None) {
|
||||||
GlobalIlluminationFeature::Bind(params, cb, srv);
|
GlobalIlluminationFeature::Bind(params, cb, srv);
|
||||||
if ((_info.FeaturesFlags & MaterialFeaturesFlags::ScreenSpaceReflections) != MaterialFeaturesFlags::None)
|
if ((_info.FeaturesFlags & MaterialFeaturesFlags::ScreenSpaceReflections) != MaterialFeaturesFlags::None)
|
||||||
SDFReflectionsFeature::Bind(params, cb, srv);
|
SDFReflectionsFeature::Bind(params, cb, srv);
|
||||||
|
}
|
||||||
ForwardShadingFeature::Bind(params, cb, srv);
|
ForwardShadingFeature::Bind(params, cb, srv);
|
||||||
|
|
||||||
// Setup parameters
|
// Setup parameters
|
||||||
|
|||||||
@@ -197,10 +197,13 @@ bool MaterialGenerator::Generate(WriteStream& source, MaterialInfo& materialInfo
|
|||||||
ADD_FEATURE(DeferredShadingFeature);
|
ADD_FEATURE(DeferredShadingFeature);
|
||||||
if (materialInfo.BlendMode != MaterialBlendMode::Opaque && (materialInfo.FeaturesFlags & MaterialFeaturesFlags::DisableDistortion) == MaterialFeaturesFlags::None)
|
if (materialInfo.BlendMode != MaterialBlendMode::Opaque && (materialInfo.FeaturesFlags & MaterialFeaturesFlags::DisableDistortion) == MaterialFeaturesFlags::None)
|
||||||
ADD_FEATURE(DistortionFeature);
|
ADD_FEATURE(DistortionFeature);
|
||||||
if (materialInfo.BlendMode != MaterialBlendMode::Opaque && EnumHasAnyFlags(materialInfo.FeaturesFlags, MaterialFeaturesFlags::GlobalIllumination))
|
if (materialInfo.BlendMode != MaterialBlendMode::Opaque && EnumHasAnyFlags(materialInfo.FeaturesFlags, MaterialFeaturesFlags::GlobalIllumination)) {
|
||||||
ADD_FEATURE(GlobalIlluminationFeature);
|
ADD_FEATURE(GlobalIlluminationFeature);
|
||||||
if (materialInfo.BlendMode != MaterialBlendMode::Opaque && EnumHasAnyFlags(materialInfo.FeaturesFlags, MaterialFeaturesFlags::ScreenSpaceReflections))
|
|
||||||
ADD_FEATURE(SDFReflectionsFeature);
|
// SDF Reflections is only valid when both GI and SSR is enabled
|
||||||
|
if (materialInfo.BlendMode != MaterialBlendMode::Opaque && EnumHasAnyFlags(materialInfo.FeaturesFlags, MaterialFeaturesFlags::ScreenSpaceReflections))
|
||||||
|
ADD_FEATURE(SDFReflectionsFeature);
|
||||||
|
}
|
||||||
if (materialInfo.BlendMode != MaterialBlendMode::Opaque)
|
if (materialInfo.BlendMode != MaterialBlendMode::Opaque)
|
||||||
ADD_FEATURE(ForwardShadingFeature);
|
ADD_FEATURE(ForwardShadingFeature);
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ struct GBufferSample
|
|||||||
float Metalness;
|
float Metalness;
|
||||||
float3 Color;
|
float3 Color;
|
||||||
float Specular;
|
float Specular;
|
||||||
|
// View space position of pixel, DIFFERENT FROM GBufferData.ViewPos
|
||||||
float3 ViewPos;
|
float3 ViewPos;
|
||||||
float AO;
|
float AO;
|
||||||
int ShadingModel;
|
int ShadingModel;
|
||||||
|
|||||||
@@ -140,7 +140,7 @@ float4 PS_RayTracePass(Quad_VS2PS input) : SV_Target0
|
|||||||
float3 reflectWS = ScreenSpaceReflectionDirection(input.TexCoord, gBuffer, gBufferData.ViewPos, TemporalEffect, TemporalTime, BRDFBias);
|
float3 reflectWS = ScreenSpaceReflectionDirection(input.TexCoord, gBuffer, gBufferData.ViewPos, TemporalEffect, TemporalTime, BRDFBias);
|
||||||
|
|
||||||
GlobalSDFTrace sdfTrace;
|
GlobalSDFTrace sdfTrace;
|
||||||
float maxDistance = 100000;
|
float maxDistance = GLOBAL_SDF_WORLD_SIZE;
|
||||||
float selfOcclusionBias = GlobalSDF.CascadeVoxelSize[0];
|
float selfOcclusionBias = GlobalSDF.CascadeVoxelSize[0];
|
||||||
sdfTrace.Init(gBuffer.WorldPos + gBuffer.Normal * selfOcclusionBias, reflectWS, 0.0f, maxDistance);
|
sdfTrace.Init(gBuffer.WorldPos + gBuffer.Normal * selfOcclusionBias, reflectWS, 0.0f, maxDistance);
|
||||||
GlobalSDFHit sdfHit = RayTraceGlobalSDF(GlobalSDF, GlobalSDFTex, GlobalSDFMip, sdfTrace);
|
GlobalSDFHit sdfHit = RayTraceGlobalSDF(GlobalSDF, GlobalSDFTex, GlobalSDFMip, sdfTrace);
|
||||||
|
|||||||
Reference in New Issue
Block a user