Skip to content

Commit 8aaaf62

Browse files
yoyofrkblaschke
authored andcommitted
Remove warp texel offset, introduced drift in warp shader.
Signed-off-by: Kai Blaschke <kai.blaschke@kb-dev.net>
1 parent 084d32f commit 8aaaf62

File tree

2 files changed

+13
-25
lines changed

2 files changed

+13
-25
lines changed

src/libprojectM/MilkdropPreset/PerPixelMesh.cpp

Lines changed: 11 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -307,10 +307,6 @@ void PerPixelMesh::WarpedBlit(const PresetState& presetState,
307307
11.49f + 4.0f * cosf(warpTime * 0.933f + 5),
308308
};
309309

310-
// Texel alignment
311-
glm::vec2 const texelOffsets{presetState.renderContext.texelOffsetX / static_cast<float>(presetState.renderContext.viewportSizeX),
312-
presetState.renderContext.texelOffsetY / static_cast<float>(presetState.renderContext.viewportSizeY)};
313-
314310
// Decay
315311
float decay = std::min(static_cast<float>(*perFrameContext.decay), 1.0f);
316312

@@ -319,19 +315,17 @@ void PerPixelMesh::WarpedBlit(const PresetState& presetState,
319315

320316
if (!m_warpShader)
321317
{
322-
auto perPixelMeshShader = GetDefaultWarpShader(presetState);
323-
perPixelMeshShader->Bind();
324-
perPixelMeshShader->SetUniformMat4x4("vertex_transformation", PresetState::orthogonalProjection);
325-
perPixelMeshShader->SetUniformInt("texture_sampler", 0);
326-
perPixelMeshShader->SetUniformFloat4("aspect", {presetState.renderContext.aspectX,
327-
presetState.renderContext.aspectY,
328-
presetState.renderContext.invAspectX,
329-
presetState.renderContext.invAspectY});
330-
perPixelMeshShader->SetUniformFloat("warpTime", warpTime);
331-
perPixelMeshShader->SetUniformFloat("warpScaleInverse", warpScaleInverse);
332-
perPixelMeshShader->SetUniformFloat4("warpFactors", warpFactors);
333-
perPixelMeshShader->SetUniformFloat2("texelOffset", texelOffsets);
334-
perPixelMeshShader->SetUniformFloat("decay", decay);
318+
m_perPixelMeshShader.Bind();
319+
m_perPixelMeshShader.SetUniformMat4x4("vertex_transformation", PresetState::orthogonalProjection);
320+
m_perPixelMeshShader.SetUniformInt("texture_sampler", 0);
321+
m_perPixelMeshShader.SetUniformFloat4("aspect", {presetState.renderContext.aspectX,
322+
presetState.renderContext.aspectY,
323+
presetState.renderContext.invAspectX,
324+
presetState.renderContext.invAspectY});
325+
m_perPixelMeshShader.SetUniformFloat("warpTime", warpTime);
326+
m_perPixelMeshShader.SetUniformFloat("warpScaleInverse", warpScaleInverse);
327+
m_perPixelMeshShader.SetUniformFloat4("warpFactors", warpFactors);
328+
m_perPixelMeshShader.SetUniformFloat("decay", decay);
335329
}
336330
else
337331
{
@@ -344,7 +338,6 @@ void PerPixelMesh::WarpedBlit(const PresetState& presetState,
344338
shader.SetUniformFloat("warpTime", warpTime);
345339
shader.SetUniformFloat("warpScaleInverse", warpScaleInverse);
346340
shader.SetUniformFloat4("warpFactors", warpFactors);
347-
shader.SetUniformFloat2("texelOffset", texelOffsets);
348341
shader.SetUniformFloat("decay", decay);
349342
}
350343

src/libprojectM/MilkdropPreset/Shaders/PresetWarpVertexShaderGlsl330.vert

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ uniform vec4 aspect;
2525
uniform float warpTime;
2626
uniform float warpScaleInverse;
2727
uniform vec4 warpFactors;
28-
uniform vec2 texelOffset;
2928
uniform float decay;
3029

3130
out vec4 frag_COLOR;
@@ -43,8 +42,8 @@ void main() {
4342
float v = pos.y * aspectY * 0.5 * zoom2Inverse + 0.5;
4443

4544
// original UV coordinates
46-
vec2 uv_original = vec2(pos.x * 0.5 + 0.5 + texelOffset.x,
47-
pos.y * 0.5 + 0.5 + texelOffset.y);
45+
vec2 uv_original = vec2(pos.x * 0.5 + 0.5,
46+
pos.y * 0.5 + 0.5);
4847

4948
// Stretch on X, Y
5049
u = (u - warp_center.x) / stretch.x + warp_center.x;
@@ -73,10 +72,6 @@ void main() {
7372
u = (u - 0.5) * invAspectX + 0.5;
7473
v = (v - 0.5) * invAspectY + 0.5;
7574

76-
// Final half-texel translation
77-
u += texelOffset.x;
78-
v += texelOffset.y;
79-
8075
frag_COLOR = vec4(decay, decay, decay, 1.0);
8176
frag_TEXCOORD0.xy = vec2(u, v);
8277
frag_TEXCOORD0.zw = uv_original;

0 commit comments

Comments
 (0)