Fixed issues with transparent chara draw

This commit is contained in:
korenkonder
2024-01-06 14:57:20 +03:00
parent 23f088847b
commit 8e11dc5efc
5 changed files with 63 additions and 74 deletions
+16 -14
View File
@@ -923,8 +923,10 @@ namespace rndr {
dof = new renderer::DOF3(render_post_width[0], render_post_height[0]);
transparency_tex[0] = texture_load_tex_2d(texture_id(0x25, texture_counter++),
GL_RGBA16F, render_post_width[0], render_post_height[0], 0, 0, 0);
for (int32_t i = 0; i < 1; i++)
transparency_tex[i] = texture_load_tex_2d(texture_id(0x25, texture_counter++),
GL_RGBA16F, render_post_width[0], render_post_height[0], 0, 0, 0);
transparency = new renderer::Transparency(transparency_tex[0]->tex,
rend_texture[0].GetDepthTex(), render_post_width[0], render_post_height[0]);
}
@@ -1105,15 +1107,17 @@ namespace rndr {
glTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_RGBA, swizzle);
for (int32_t i = 0; i < 3; i++) {
texture_id id = taa_tex[i]->id;
texture_free(taa_tex[i]);
taa_tex[i] = texture_load_tex_2d(texture_id(0x25, texture_counter++),
GL_RGBA8, render_post_width[0], render_post_height[0], 0, 0, 0);
taa_tex[i] = texture_load_tex_2d(id, GL_RGBA8,
render_post_width[0], render_post_height[0], 0, 0, 0);
taa_buffer[i].SetColorDepthTextures(taa_tex[i]->tex, 0, rend_texture[0].GetDepthTex());
}
texture_id aet_back_tex_id = aet_back_tex->id;
texture_free(aet_back_tex);
aet_back_tex = texture_load_tex_2d(texture_id(0x25, texture_counter++),
GL_RGBA8, render_post_width[0], render_post_height[0], 0, 0, 0);
aet_back_tex = texture_load_tex_2d(aet_back_tex_id, GL_RGBA8,
render_post_width[0], render_post_height[0], 0, 0, 0);
aet_back_texture.SetColorDepthTextures(aet_back_tex->tex, 0, rend_texture[0].GetDepthTex());
mlaa_buffer.Init(render_post_width[0], render_post_height[0], 0, GL_RGBA8, GL_DEPTH_COMPONENT24);
@@ -1132,15 +1136,13 @@ namespace rndr {
dof->resize(render_post_width[0], render_post_height[0]);
for (int32_t i = 0; i < 1; i++)
if (transparency_tex[i]) {
texture_free(transparency_tex[i]);
transparency_tex[i] = 0;
texture_counter--;
}
for (int32_t i = 0; i < 1; i++) {
texture_id id = transparency_tex[i]->id;
texture_free(transparency_tex[i]);
transparency_tex[i] = texture_load_tex_2d(id, GL_RGBA16F,
render_post_width[0], render_post_height[0], 0, 0, 0);
}
transparency_tex[0] = texture_load_tex_2d(texture_id(0x25, texture_counter++),
GL_RGBA16F, render_post_width[0], render_post_height[0], 0, 0, 0);
transparency->resize(transparency_tex[0]->tex, rend_texture[0].GetDepthTex(),
render_post_width[0], render_post_height[0]);
}