make VIEW vector available in fragment

This commit is contained in:
clayjohn 2018-11-03 11:35:46 -07:00
parent f84893f709
commit 2042d6214e
3 changed files with 5 additions and 2 deletions

View File

@ -1392,6 +1392,7 @@ void main() {
discard; discard;
#endif #endif
highp vec3 vertex = vertex_interp; highp vec3 vertex = vertex_interp;
vec3 view = -normalize(vertex_interp);
vec3 albedo = vec3(1.0); vec3 albedo = vec3(1.0);
vec3 transmission = vec3(0.0); vec3 transmission = vec3(0.0);
float metallic = 0.0; float metallic = 0.0;
@ -1465,7 +1466,7 @@ FRAGMENT_SHADER_CODE
vec3 diffuse_light = vec3(0.0, 0.0, 0.0); vec3 diffuse_light = vec3(0.0, 0.0, 0.0);
vec3 ambient_light = vec3(0.0, 0.0, 0.0); vec3 ambient_light = vec3(0.0, 0.0, 0.0);
vec3 eye_position = -normalize(vertex_interp); vec3 eye_position = view;
#if defined(ALPHA_SCISSOR_USED) #if defined(ALPHA_SCISSOR_USED)
if (alpha < alpha_scissor) { if (alpha < alpha_scissor) {

View File

@ -1571,6 +1571,7 @@ void main() {
//lay out everything, whathever is unused is optimized away anyway //lay out everything, whathever is unused is optimized away anyway
highp vec3 vertex = vertex_interp; highp vec3 vertex = vertex_interp;
vec3 view = -normalize(vertex_interp);
vec3 albedo = vec3(1.0); vec3 albedo = vec3(1.0);
vec3 transmission = vec3(0.0); vec3 transmission = vec3(0.0);
float metallic = 0.0; float metallic = 0.0;
@ -1705,7 +1706,7 @@ FRAGMENT_SHADER_CODE
vec3 ambient_light; vec3 ambient_light;
vec3 env_reflection_light = vec3(0.0, 0.0, 0.0); vec3 env_reflection_light = vec3(0.0, 0.0, 0.0);
vec3 eye_vec = -normalize(vertex_interp); vec3 eye_vec = view;
#ifdef USE_RADIANCE_MAP #ifdef USE_RADIANCE_MAP

View File

@ -86,6 +86,7 @@ ShaderTypes::ShaderTypes() {
shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["NORMAL"] = ShaderLanguage::TYPE_VEC3; shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["NORMAL"] = ShaderLanguage::TYPE_VEC3;
shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["TANGENT"] = ShaderLanguage::TYPE_VEC3; shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["TANGENT"] = ShaderLanguage::TYPE_VEC3;
shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["BINORMAL"] = ShaderLanguage::TYPE_VEC3; shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["BINORMAL"] = ShaderLanguage::TYPE_VEC3;
shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["VIEW"] = constt(ShaderLanguage::TYPE_VEC3);
shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["NORMALMAP"] = ShaderLanguage::TYPE_VEC3; shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["NORMALMAP"] = ShaderLanguage::TYPE_VEC3;
shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["NORMALMAP_DEPTH"] = ShaderLanguage::TYPE_FLOAT; shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["NORMALMAP_DEPTH"] = ShaderLanguage::TYPE_FLOAT;
shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["UV"] = constt(ShaderLanguage::TYPE_VEC2); shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["UV"] = constt(ShaderLanguage::TYPE_VEC2);