summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJannik Vogel <email@jannikvogel.de>2016-12-25 20:55:24 +0100
committerJannik Vogel <email@jannikvogel.de>2016-12-25 21:37:26 +0100
commit88f409aec9a490138012cde35789d1f21f20818f (patch)
treec78b28cdb8a1fa00ef094b63c26f8574c00c71c2
parentMerge pull request #2366 from MerryMage/MemoryReadCode (diff)
downloadyuzu-88f409aec9a490138012cde35789d1f21f20818f.tar
yuzu-88f409aec9a490138012cde35789d1f21f20818f.tar.gz
yuzu-88f409aec9a490138012cde35789d1f21f20818f.tar.bz2
yuzu-88f409aec9a490138012cde35789d1f21f20818f.tar.lz
yuzu-88f409aec9a490138012cde35789d1f21f20818f.tar.xz
yuzu-88f409aec9a490138012cde35789d1f21f20818f.tar.zst
yuzu-88f409aec9a490138012cde35789d1f21f20818f.zip
-rw-r--r--src/video_core/renderer_opengl/gl_shader_gen.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/video_core/renderer_opengl/gl_shader_gen.cpp b/src/video_core/renderer_opengl/gl_shader_gen.cpp
index 8f278722d..d485ddacf 100644
--- a/src/video_core/renderer_opengl/gl_shader_gen.cpp
+++ b/src/video_core/renderer_opengl/gl_shader_gen.cpp
@@ -423,15 +423,12 @@ static void WriteLighting(std::string& out, const PicaShaderConfig& config) {
// LUT index is in the range of (0.0, 1.0)
index = lighting.light[light_num].two_sided_diffuse ? "abs(" + index + ")"
: "max(" + index + ", 0.f)";
- return "(FLOAT_255 * clamp(" + index + ", 0.0, 1.0))";
} else {
// LUT index is in the range of (-1.0, 1.0)
- index = "clamp(" + index + ", -1.0, 1.0)";
- return "(FLOAT_255 * ((" + index + " < 0) ? " + index + " + 2.0 : " + index +
- ") / 2.0)";
+ index = "((" + index + " < 0) ? " + index + " + 2.0 : " + index + ") / 2.0";
}
- return std::string();
+ return "(OFFSET_256 + SCALE_256 * clamp(" + index + ", 0.0, 1.0))";
};
// Gets the lighting lookup table value given the specified sampler and index
@@ -462,7 +459,7 @@ static void WriteLighting(std::string& out, const PicaShaderConfig& config) {
if (light_config.dist_atten_enable) {
std::string index = "(" + light_src + ".dist_atten_scale * length(-view - " +
light_src + ".position) + " + light_src + ".dist_atten_bias)";
- index = "((clamp(" + index + ", 0.0, FLOAT_255)))";
+ index = "(OFFSET_256 + SCALE_256 * clamp(" + index + ", 0.0, 1.0))";
const unsigned lut_num =
((unsigned)Regs::LightingSampler::DistanceAttenuation + light_config.num);
dist_atten = GetLutValue((Regs::LightingSampler)lut_num, index);
@@ -581,7 +578,10 @@ std::string GenerateFragmentShader(const PicaShaderConfig& config) {
#define NUM_TEV_STAGES 6
#define NUM_LIGHTS 8
#define LIGHTING_LUT_SIZE 256
-#define FLOAT_255 (255.0 / 256.0)
+
+// Texture coordinate offsets and scales
+#define OFFSET_256 (0.5 / 256.0)
+#define SCALE_256 (255.0 / 256.0)
in vec4 primary_color;
in vec2 texcoord[3];