From caacd3e5cfcbaac7c707bb8d15e8a435b1a8d322 Mon Sep 17 00:00:00 2001 From: samcake Date: Wed, 7 Feb 2018 18:46:47 -0800 Subject: [PATCH] Trying to fix the forwaard rendering --- .../render-utils/src/ForwardBufferWrite.slh | 38 ------------------- .../render-utils/src/ForwardGlobalLight.slh | 9 +++-- .../render-utils/src/MaterialTextures.slh | 1 + libraries/render-utils/src/forward_model.slf | 5 +-- .../src/forward_model_normal_map.slf | 6 +-- .../src/forward_model_specular_map.slf | 38 +++++++------------ .../render-utils/src/forward_model_unlit.slf | 8 ++-- 7 files changed, 28 insertions(+), 77 deletions(-) diff --git a/libraries/render-utils/src/ForwardBufferWrite.slh b/libraries/render-utils/src/ForwardBufferWrite.slh index 873514d51f..5bb838c971 100644 --- a/libraries/render-utils/src/ForwardBufferWrite.slh +++ b/libraries/render-utils/src/ForwardBufferWrite.slh @@ -11,17 +11,8 @@ <@if not FORWARD_BUFFER_WRITE_SLH@> <@def FORWARD_BUFFER_WRITE_SLH@> -<@include ForwardBuffer.slh@> - - layout(location = 0) out vec4 _fragColor0; -// the alpha threshold -const float alphaThreshold = 0.5; -float evalOpaqueFinalAlpha(float alpha, float mapAlpha) { - return mix(alpha, 1.0 - alpha, step(mapAlpha, alphaThreshold)); -} - const float DEFAULT_ROUGHNESS = 0.9; const float DEFAULT_SHININESS = 10.0; const float DEFAULT_METALLIC = 0.0; @@ -31,33 +22,4 @@ const float DEFAULT_OCCLUSION = 1.0; const float DEFAULT_SCATTERING = 0.0; const vec3 DEFAULT_FRESNEL = DEFAULT_EMISSIVE; -void packForwardFragment(vec3 normal, float alpha, vec3 albedo, float roughness, float metallic, vec3 emissive, float occlusion, float scattering) { - if (alpha != 1.0) { - discard; - } - _fragColor0 = vec4(albedo, ((scattering > 0.0) ? packScatteringMetallic(metallic) : packShadedMetallic(metallic))); -} - -void packForwardFragmentLightmap(vec3 normal, float alpha, vec3 albedo, float roughness, float metallic, vec3 fresnel, vec3 lightmap) { - if (alpha != 1.0) { - discard; - } - - _fragColor0 = vec4(albedo, packLightmappedMetallic(metallic)); -} - -void packForwardFragmentUnlit(vec3 normal, float alpha, vec3 color) { - if (alpha != 1.0) { - discard; - } - _fragColor0 = vec4(color, packUnlit()); -} - -void packForwardFragmentTranslucent(vec3 normal, float alpha, vec3 albedo, vec3 fresnel, float roughness) { - if (alpha <= 0.0) { - discard; - } - _fragColor0 = vec4(albedo.rgb, alpha); -} - <@endif@> diff --git a/libraries/render-utils/src/ForwardGlobalLight.slh b/libraries/render-utils/src/ForwardGlobalLight.slh index ea30fa471a..3361eaf565 100644 --- a/libraries/render-utils/src/ForwardGlobalLight.slh +++ b/libraries/render-utils/src/ForwardGlobalLight.slh @@ -135,11 +135,12 @@ vec3 evalSkyboxGlobalColor(mat4 invViewMat, float shadowAttenuation, float obscu color += directionalSpecular; // Attenuate the light if haze effect selected - if ((hazeParams.hazeMode & HAZE_MODE_IS_KEYLIGHT_ATTENUATED) == HAZE_MODE_IS_KEYLIGHT_ATTENUATED) { - color = computeHazeColorKeyLightAttenuation(color, lightDirection, position); - } + // if ((hazeParams.hazeMode & HAZE_MODE_IS_KEYLIGHT_ATTENUATED) == HAZE_MODE_IS_KEYLIGHT_ATTENUATED) { + // color = computeHazeColorKeyLightAttenuation(color, lightDirection, position); + // } - return color; + return normal; + // return color; } <@endfunc@> diff --git a/libraries/render-utils/src/MaterialTextures.slh b/libraries/render-utils/src/MaterialTextures.slh index 40709b3668..79ff47ff6c 100644 --- a/libraries/render-utils/src/MaterialTextures.slh +++ b/libraries/render-utils/src/MaterialTextures.slh @@ -155,6 +155,7 @@ vec3 fetchLightmapMap(vec2 uv) { vec3 normalizedBitangent = normalize(cross(normalizedNormal, normalizedTangent)); vec3 localNormal = <$fetchedNormal$>; <$normal$> = vec3(normalizedTangent * localNormal.x + normalizedBitangent * localNormal.y + normalizedNormal * localNormal.z); +<$normal$> = normalizedNormal; } <@endfunc@> diff --git a/libraries/render-utils/src/forward_model.slf b/libraries/render-utils/src/forward_model.slf index 24ae4394fe..9bcc72b61d 100644 --- a/libraries/render-utils/src/forward_model.slf +++ b/libraries/render-utils/src/forward_model.slf @@ -66,9 +66,8 @@ void main(void) { TransformCamera cam = getTransformCamera(); vec3 fragNormal; - <$transformEyeToWorldDir(cam, _normal, fragNormal)$> - fragNormal = normalize(fragNormal); - + fragNormal = normalize(_normal); + vec4 color = vec4(evalSkyboxGlobalColor( cam._viewInverse, 1.0, diff --git a/libraries/render-utils/src/forward_model_normal_map.slf b/libraries/render-utils/src/forward_model_normal_map.slf index 8d5086f930..d939e60c13 100644 --- a/libraries/render-utils/src/forward_model_normal_map.slf +++ b/libraries/render-utils/src/forward_model_normal_map.slf @@ -63,8 +63,8 @@ void main(void) { vec3 emissive = getMaterialEmissive(mat); <$evalMaterialEmissive(emissiveTex, emissive, matKey, emissive)$>; - vec3 viewNormal; - <$tangentToViewSpace(normalTex, _normal, _tangent, viewNormal)$> + vec3 fragNormal; + <$tangentToViewSpace(normalTex, _normal, _tangent, fragNormal)$> float scattering = getMaterialScattering(mat); <$evalMaterialScattering(scatteringTex, scattering, matKey, scattering)$>; @@ -78,7 +78,7 @@ void main(void) { 1.0, 1.0, fragPosition, - viewNormal, + fragNormal, albedo, fresnel, metallic, diff --git a/libraries/render-utils/src/forward_model_specular_map.slf b/libraries/render-utils/src/forward_model_specular_map.slf index 7240d7882e..673b1e5c66 100644 --- a/libraries/render-utils/src/forward_model_specular_map.slf +++ b/libraries/render-utils/src/forward_model_specular_map.slf @@ -63,36 +63,24 @@ void main(void) { else { fresnel = albedo; metallic = 1.0; - }/* - float scattering = getMaterialScattering(mat); - - packForwardFragment( - normalize(_normal), - opacity, - albedo, - roughness, - metallic, - emissive, - occlusionTex, - scattering); - */ + } vec3 fragPosition = _position.xyz; TransformCamera cam = getTransformCamera(); vec3 fragNormal; - <$transformEyeToWorldDir(cam, _normal, fragNormal)$> + fragNormal = normalize(_normal); - vec4 color = vec4(evalSkyboxGlobalColor( - cam._viewInverse, - 1.0, - 1.0, - fragPosition, - fragNormal, - albedo, - fresnel, - metallic, - roughness), - opacity); + vec4 color = vec4(evalSkyboxGlobalColor( + cam._viewInverse, + 1.0, + 1.0, + fragPosition, + fragNormal, + albedo, + fresnel, + metallic, + roughness), + opacity); color.rgb += emissive * isEmissiveEnabled(); // _fragColor = vec4(albedo, opacity); diff --git a/libraries/render-utils/src/forward_model_unlit.slf b/libraries/render-utils/src/forward_model_unlit.slf index a5087b4686..42f311bb65 100644 --- a/libraries/render-utils/src/forward_model_unlit.slf +++ b/libraries/render-utils/src/forward_model_unlit.slf @@ -38,8 +38,8 @@ void main(void) { <$evalMaterialAlbedo(albedoTex, albedo, matKey, albedo)$>; albedo *= _color; - packForwardFragmentUnlit( - normalize(_normal), - opacity, - albedo * isUnlitEnabled()); + if (opacity != 1.0) { + discard; + } + _fragColor0 = vec4(albedo * isUnlitEnabled(), 1.0); }