Bladeren bron

Modified the mobile renderer to apply the sky_transform operations in the same order as the forward_plus renderer.

Update rasterizer_scene_gles3.cpp

Apply sky_transform order fix to the gles3 renderer.
Malcolm Nixon 2 jaren geleden
bovenliggende
commit
0f8a968cd4
2 gewijzigde bestanden met toevoegingen van 3 en 3 verwijderingen
  1. 1 1
      drivers/gles3/rasterizer_scene_gles3.cpp
  2. 2 2
      servers/rendering/renderer_rd/environment/sky.cpp

+ 1 - 1
drivers/gles3/rasterizer_scene_gles3.cpp

@@ -788,7 +788,7 @@ void RasterizerSceneGLES3::_draw_sky(RID p_env, const Projection &p_projection,
 	}
 	Basis sky_transform = environment_get_sky_orientation(p_env);
 	sky_transform.invert();
-	sky_transform = p_transform.basis * sky_transform;
+	sky_transform = sky_transform * p_transform.basis;
 
 	bool success = material_storage->shaders.sky_shader.version_bind_shader(shader_data->version, SkyShaderGLES3::MODE_BACKGROUND);
 	if (!success) {

+ 2 - 2
servers/rendering/renderer_rd/environment/sky.cpp

@@ -1661,7 +1661,7 @@ void SkyRD::update_res_buffers(RID p_env, uint32_t p_view_count, const Projectio
 		projections = &camera;
 	}
 
-	sky_transform = p_transform.basis * sky_transform;
+	sky_transform = sky_transform * p_transform.basis;
 
 	if (shader_data->uses_quarter_res) {
 		PipelineCacheRD *pipeline = &shader_data->pipelines[view_count > 1 ? SKY_VERSION_QUARTER_RES_MULTIVIEW : SKY_VERSION_QUARTER_RES];
@@ -1754,7 +1754,7 @@ void SkyRD::draw(RD::DrawListID p_draw_list, RID p_env, RID p_fb, uint32_t p_vie
 		projections = &camera;
 	}
 
-	sky_transform = p_transform.basis * sky_transform;
+	sky_transform = sky_transform * p_transform.basis;
 
 	PipelineCacheRD *pipeline = &shader_data->pipelines[view_count > 1 ? SKY_VERSION_BACKGROUND_MULTIVIEW : SKY_VERSION_BACKGROUND];