Posted May 16, 20241 yr private static final ResourceLocation image = new ResourceLocation(Main.MODID, "textures/gui/image.png"); @SubscribeEvent public static void onRenderGuiOverlayPre(RenderGuiOverlayEvent event) { event.getGuiGraphics().blit(image, 0, 0, 0, 0, 64, 64, 64, 64); } I tried to draw an image on the HUD screen with this code. Actually I am drawing the image, but the image is drawn opaque even though it is transparent. How can I solve this problem? Edited May 16, 20241 yr by yasnpy
May 16, 20241 yr Author I found the solution. I'm sharing it in case it helps someone. private static final ResourceLocation image = new ResourceLocation(Main.MODID, "textures/gui/image.png"); @SubscribeEvent public static void onRenderGui(RenderGuiOverlayEvent event) { RenderSystem.disableDepthTest(); RenderSystem.depthMask(false); RenderSystem.enableBlend(); RenderSystem.setShader(GameRenderer::getPositionTexShader); RenderSystem.blendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO); RenderSystem.setShaderColor(1, 1, 1, 1); event.getGuiGraphics().blit(image, 0, 0, 0, 0, 64, 64, 64, 64); RenderSystem.depthMask(true); RenderSystem.defaultBlendFunc(); RenderSystem.enableDepthTest(); RenderSystem.disableBlend(); RenderSystem.setShaderColor(1, 1, 1, 1); }
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.