瀏覽代碼

Fix vulkan proximity fade

Vulkan uses different normalized device coordinates than OpenGL.
Brian Semrau 3 年之前
父節點
當前提交
791773fa9d
共有 1 個文件被更改,包括 1 次插入1 次删除
  1. 1 1
      scene/resources/material.cpp

+ 1 - 1
scene/resources/material.cpp

@@ -1100,7 +1100,7 @@ void BaseMaterial3D::_update_shader() {
 
 	if (proximity_fade_enabled) {
 		code += "	float depth_tex = textureLod(DEPTH_TEXTURE,SCREEN_UV,0.0).r;\n";
-		code += "	vec4 world_pos = INV_PROJECTION_MATRIX * vec4(SCREEN_UV*2.0-1.0,depth_tex*2.0-1.0,1.0);\n";
+		code += "	vec4 world_pos = INV_PROJECTION_MATRIX * vec4(SCREEN_UV*2.0-1.0,depth_tex,1.0);\n";
 		code += "	world_pos.xyz/=world_pos.w;\n";
 		code += "	ALPHA*=clamp(1.0-smoothstep(world_pos.z+proximity_fade_distance,world_pos.z,VERTEX.z),0.0,1.0);\n";
 	}