Skip to content

Commit

Permalink
Merge pull request #101730 from clayjohn/GLES3-emission-half
Browse files Browse the repository at this point in the history
Bake UV2 emission using half float in the compatibility backend
  • Loading branch information
Repiteo committed Jan 20, 2025
2 parents 0d4696b + 441fc1c commit 604e3ab
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions drivers/gles3/rasterizer_scene_gles3.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3991,7 +3991,7 @@ TypedArray<Image> RasterizerSceneGLES3::bake_render_uv2(RID p_base, const TypedA
// Consider rendering to RGBA8 encoded as RGBE, then manually convert to RGBAH on CPU.
glBindTexture(GL_TEXTURE_2D, emission_tex);
if (config->float_texture_supported) {
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA32F, p_image_size.width, p_image_size.height, 0, GL_RGBA, GL_FLOAT, nullptr);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA16F, p_image_size.width, p_image_size.height, 0, GL_RGBA, GL_FLOAT, nullptr);
GLES3::Utilities::get_singleton()->texture_allocated_data(emission_tex, p_image_size.width * p_image_size.height * 16, "Lightmap emission texture");
} else {
// Fallback to RGBA8 on devices that don't support rendering to floating point textures. This will look bad, but we have no choice.
Expand Down Expand Up @@ -4094,9 +4094,9 @@ TypedArray<Image> RasterizerSceneGLES3::bake_render_uv2(RID p_base, const TypedA
{
tex->tex_id = emission_tex;
if (config->float_texture_supported) {
tex->format = Image::FORMAT_RGBAF;
tex->format = Image::FORMAT_RGBAH;
tex->real_format = Image::FORMAT_RGBAH;
tex->gl_type_cache = GL_FLOAT;
tex->gl_type_cache = GL_HALF_FLOAT;
}
Ref<Image> img = GLES3::TextureStorage::get_singleton()->texture_2d_get(tex_rid);
GLES3::Utilities::get_singleton()->texture_free_data(emission_tex);
Expand Down

0 comments on commit 604e3ab

Please sign in to comment.