浏览代码

Merge pull request #97260 from clayjohn/pixel_snap

Calculate pixel snap in canvas space instead of world space
Rémi Verschelde 1 年之前
父节点
当前提交
5f5c690481
共有 2 个文件被更改,包括 4 次插入4 次删除
  1. 2 2
      drivers/gles3/shaders/canvas.glsl
  2. 2 2
      servers/rendering/renderer_rd/shaders/canvas.glsl

+ 2 - 2
drivers/gles3/shaders/canvas.glsl

@@ -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;
 

+ 2 - 2
servers/rendering/renderer_rd/shaders/canvas.glsl

@@ -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;