mirror of
https://github.com/godotengine/godot.git
synced 2025-01-22 10:32:54 -05:00
Merge pull request #101730 from clayjohn/GLES3-emission-half
Bake UV2 emission using half float in the compatibility backend
This commit is contained in:
commit
604e3ab91f
1 changed files with 3 additions and 3 deletions
|
@ -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.
|
||||
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue