mirror of https://github.com/bjornbytes/lovr.git
Fix standard shader precision issues;
- Reduce epsilon - Also use epsilon in D_GGX - Reduce shader string length to the minimum required supported length
This commit is contained in:
parent
bb302c3336
commit
e346c3f807
|
@ -184,10 +184,10 @@ const char* lovrStandardVertexShader = ""
|
|||
|
||||
const char* lovrStandardFragmentShader = ""
|
||||
"#define PI 3.14159265358979 \n"
|
||||
"#ifdef GL_ES \n"
|
||||
"#define EPS 1e-2 \n"
|
||||
"#if defined(GL_ES) && !defined(FLAG_highp) \n"
|
||||
"#define EPS 1e-4 \n"
|
||||
"#else \n"
|
||||
"#define EPS 1e-5 \n"
|
||||
"#define EPS 1e-8 \n"
|
||||
"#endif \n"
|
||||
|
||||
"in vec3 vVertexPositionWorld; \n"
|
||||
|
@ -271,7 +271,7 @@ const char* lovrStandardFragmentShader = ""
|
|||
" float alpha = roughness * roughness; \n"
|
||||
" float alpha2 = alpha * alpha; \n"
|
||||
" float denom = (NoH * NoH) * (alpha2 - 1.) + 1.; \n"
|
||||
" return alpha2 / (PI * denom * denom); \n"
|
||||
" return alpha2 / max(PI * denom * denom, EPS); \n"
|
||||
"} \n"
|
||||
|
||||
"float G_SmithGGXCorrelated(float NoV, float NoL, float roughness) { \n"
|
||||
|
@ -287,7 +287,7 @@ const char* lovrStandardFragmentShader = ""
|
|||
"} \n"
|
||||
|
||||
"vec3 E_SphericalHarmonics(vec3 sh[9], vec3 n) { \n"
|
||||
" n = -n; // WHY \n"
|
||||
" n = -n; \n"
|
||||
" return max("
|
||||
"sh[0] + "
|
||||
"sh[1] * n.y + "
|
||||
|
@ -310,13 +310,13 @@ const char* lovrStandardFragmentShader = ""
|
|||
" return vec2(-1.04, 1.04) * a004 + r.zw; \n"
|
||||
"} \n"
|
||||
|
||||
"vec3 tonemap_ACES(vec3 color) { \n"
|
||||
"vec3 tonemap_ACES(vec3 x) { \n"
|
||||
" float a = 2.51; \n"
|
||||
" float b = 0.03; \n"
|
||||
" float c = 2.43; \n"
|
||||
" float d = 0.59; \n"
|
||||
" float e = 0.14; \n"
|
||||
" return (color * (a * color + b)) / (color * (c * color + d) + e); \n"
|
||||
" return (x * (a * x + b)) / (x * (c * x + d) + e); \n"
|
||||
"}";
|
||||
|
||||
const char* lovrCubeVertexShader = ""
|
||||
|
|
Loading…
Reference in New Issue