2022-07-04 07:18:38 +00:00
|
|
|
#version 460
|
|
|
|
#extension GL_EXT_multiview : require
|
|
|
|
#extension GL_GOOGLE_include_directive : require
|
|
|
|
|
|
|
|
#include "lovr.glsl"
|
|
|
|
|
2022-07-31 18:18:15 +00:00
|
|
|
vec4 lovrmain() {
|
2022-08-13 05:46:59 +00:00
|
|
|
vec3 dir = normalize(Normal);
|
2023-05-09 23:46:55 +00:00
|
|
|
|
|
|
|
float theta1 = -atan(dir.x, dir.z) / (2. * PI);
|
|
|
|
float theta2 = fract(theta1);
|
|
|
|
|
|
|
|
float dx1 = dFdx(theta1);
|
|
|
|
float dy1 = dFdy(theta1);
|
|
|
|
float dx2 = dFdx(theta2);
|
|
|
|
float dy2 = dFdy(theta2);
|
|
|
|
|
|
|
|
float phi = acos(dir.y) / PI;
|
|
|
|
|
|
|
|
vec2 dx = vec2(abs(dx1) - 1e-5 < abs(dx2) ? dx1 : dx2, dFdx(phi));
|
|
|
|
vec2 dy = vec2(abs(dy1) - 1e-5 < abs(dy2) ? dy1 : dy2, dFdy(phi));
|
|
|
|
|
|
|
|
return Color * textureGrad(sampler2D(ColorTexture, Sampler), vec2(theta1, phi), dx, dy);
|
2022-07-04 07:18:38 +00:00
|
|
|
}
|