Calculate pixel snap in canvas space instead of world space

This ensures that you are actually snapping to pixels in the viewport and not an arbitrary amount

(cherry picked from commit godotengine/godot@e75900e1ad)
This commit is contained in:
clayjohn
2024-09-20 17:43:33 -07:00
committed by Spartan322
parent fe04f5ff9b
commit f922687d3a
2 changed files with 4 additions and 4 deletions

View File

@@ -262,6 +262,8 @@ void main() {
color_interp = color;
vertex = (canvas_transform * vec4(vertex, 0.0, 1.0)).xy;
if (use_pixel_snap) {
vertex = floor(vertex + 0.5);
// precision issue on some hardware creates artifacts within texture
@@ -269,8 +271,6 @@ void main() {
uv += 1e-5;
}
vertex = (canvas_transform * vec4(vertex, 0.0, 1.0)).xy;
vertex_interp = vertex;
uv_interp = uv;

View File

@@ -214,6 +214,8 @@ void main() {
color_interp = color;
vertex = (canvas_data.canvas_transform * vec4(vertex, 0.0, 1.0)).xy;
if (canvas_data.use_pixel_snap) {
vertex = floor(vertex + 0.5);
// precision issue on some hardware creates artifacts within texture
@@ -221,8 +223,6 @@ void main() {
uv += 1e-5;
}
vertex = (canvas_data.canvas_transform * vec4(vertex, 0.0, 1.0)).xy;
vertex_interp = vertex;
uv_interp = uv;