DavidM Posted April 6, 2019 Posted April 6, 2019 (edited) I am using TESR to render liquid inside a tank as well as animated arrows (blue/orange) that indicate the input/output configuration of the tank. Normally, the tank should look like this: However, when I move to a certain angle, the liquid inside the tank losses transparency and becomes opaque, while the arrows turn to a lighter color: This is not desired. How would I make it so that the arrows and the liquid in the tank stay the way they are as shown in the first picture regardless of the angle I am viewing them? TESR: https://github.com/davidmaamoaix/CommunityMod/blob/master/src/main/java/com/mcmoddev/communitymod/davidm/extrarandomness/client/render/RenderCapacitor.java AnimationHelper: https://github.com/davidmaamoaix/CommunityMod/blob/master/src/main/java/com/mcmoddev/communitymod/davidm/extrarandomness/core/helper/AnimationHelper.java Edited April 6, 2019 by DavidM Quote Some tips: Spoiler Modder Support: Spoiler 1. Do not follow tutorials on YouTube, especially TechnoVision (previously called Loremaster) and HarryTalks, due to their promotion of bad practice and usage of outdated code. 2. Always post your code. 3. Never copy and paste code. You won't learn anything from doing that. 4. Quote Programming via Eclipse's hotfixes will get you nowhere 5. Learn to use your IDE, especially the debugger. 6. Quote The "picture that's worth 1000 words" only works if there's an obvious problem or a freehand red circle around it. Support & Bug Reports: Spoiler 1. Read the EAQ before asking for help. Remember to provide the appropriate log(s). 2. Versions below 1.11 are no longer supported due to their age. Update to a modern version of Minecraft to receive support.
deerangle Posted April 6, 2019 Posted April 6, 2019 (edited) I believe this has to do with default lighting. Try putting GlStateManager.disableLighting(); before rendering and GlStateManager.enableLighting(); after rendering. Might also have to do with blending (See GlStateManager) Edited April 6, 2019 by deerangle Quote
Cadiboo Posted April 6, 2019 Posted April 6, 2019 (edited) You probably want blending not alpha testing. (Haven’t looked at your code, going off the title) Also, DONT use GL directly (GL11.glColor) use GLStateManager Edited April 6, 2019 by Cadiboo 1 1 Quote About Me Spoiler My Discord - Cadiboo#8887 My Website - Cadiboo.github.io My Mods - Cadiboo.github.io/projects My Tutorials - Cadiboo.github.io/tutorials Versions below 1.14.4 are no longer supported on this forum. Use the latest version to receive support. When asking support remember to include all relevant log files (logs are found in .minecraft/logs/), code if applicable and screenshots if possible. Only download mods from trusted sites like CurseForge (minecraft.curseforge.com). A list of bad sites can be found here, with more information available at stopmodreposts.org Edit your own signature at www.minecraftforge.net/forum/settings/signature/ (Make sure to check its compatibility with the Dark Theme)
DavidM Posted April 6, 2019 Author Posted April 6, 2019 1 hour ago, deerangle said: I believe this has to do with default lighting. Try putting GlStateManager.disableLighting(); before rendering and GlStateManager.enableLighting(); after rendering. Might also have to do with blending (See GlStateManager) 24 minutes ago, Cadiboo said: You probably want blending not alpha testing. (Haven’t looked at your code, going off the title) Thanks. I did indeed disable lighting while enabled blending, and the result is shown in pic 2 (just realized that my wording of “alpha” in the title was inaccurate; I was referring to transparency in general). I am suspecting that I missed setting an attribute at some point. I just updated the repo and replaced GL11 with GlStateManager (I have no idea why I left it GL11). Quote Some tips: Spoiler Modder Support: Spoiler 1. Do not follow tutorials on YouTube, especially TechnoVision (previously called Loremaster) and HarryTalks, due to their promotion of bad practice and usage of outdated code. 2. Always post your code. 3. Never copy and paste code. You won't learn anything from doing that. 4. Quote Programming via Eclipse's hotfixes will get you nowhere 5. Learn to use your IDE, especially the debugger. 6. Quote The "picture that's worth 1000 words" only works if there's an obvious problem or a freehand red circle around it. Support & Bug Reports: Spoiler 1. Read the EAQ before asking for help. Remember to provide the appropriate log(s). 2. Versions below 1.11 are no longer supported due to their age. Update to a modern version of Minecraft to receive support.
V0idWa1k3r Posted April 6, 2019 Posted April 6, 2019 When enabling blend you need to specify the blending function otherwise it will default to the last one used which may not be desireable(which is what is happening in you case). Additionally it is better to set the GL states once before rendering everything and not everytime you need to render every quad. GlStateManager.pushMatrix(); GlStateManager.translate(0, 0, 0); Why? Why are you translating by 0,0,0? It does absolutely nothing. You do not need matrix interactions here at all. 2 Quote
DavidM Posted April 6, 2019 Author Posted April 6, 2019 (edited) The problem seems to no longer occurs after I changed GL11 to GlStateManager. However, I am not sure whether that indeed was the fix to the problem; since the "turning white" only happens randomly, I cannot reproduce it intentionally and test it. The problem might just temporarily not appear for a period of time. As far as I know, GlStateManager handles GLXX operations more smoothly and provides some *insert some advanced and cool nouns here that accurately describe what GlStateManager provides* that optimizes GL operations. I am not aware if GlStateManager can fix problems such as transparency problems though. Currently fixing the blend function as V0idWa1k3r pointed out. Fixed. 21 minutes ago, V0idWa1k3r said: Why are you translating by 0,0,0? Oops. The translation was meant for something else earlier; it seems like I set the values to 0 instead of removing it. Thanks for pointing it out. Edited April 6, 2019 by DavidM Quote Some tips: Spoiler Modder Support: Spoiler 1. Do not follow tutorials on YouTube, especially TechnoVision (previously called Loremaster) and HarryTalks, due to their promotion of bad practice and usage of outdated code. 2. Always post your code. 3. Never copy and paste code. You won't learn anything from doing that. 4. Quote Programming via Eclipse's hotfixes will get you nowhere 5. Learn to use your IDE, especially the debugger. 6. Quote The "picture that's worth 1000 words" only works if there's an obvious problem or a freehand red circle around it. Support & Bug Reports: Spoiler 1. Read the EAQ before asking for help. Remember to provide the appropriate log(s). 2. Versions below 1.11 are no longer supported due to their age. Update to a modern version of Minecraft to receive support.
V0idWa1k3r Posted April 6, 2019 Posted April 6, 2019 5 minutes ago, DavidM said: As far as I know, GlStateManager handles GLXX operations more smoothly and provides some *insert some advanced and cool nouns here that accurately describe what GlStateManager provides* that optimizes GL operations. I am not aware if GlStateManager can fix problems such as transparency problems though. The problem here is that the rest of the game uses GLStateManager to change GL states and GLStateManager has it's own copy of each state value. Thus if you change a value through OpenGL's direct API the state manager and thus the rest of the game won't know about it and still think the old one is used. 1 Quote
DavidM Posted April 6, 2019 Author Posted April 6, 2019 (edited) The issue is fixed (as far as I tested) after setting a blend function. I just updated the repo. Thanks for all your help. Edited April 6, 2019 by DavidM Quote Some tips: Spoiler Modder Support: Spoiler 1. Do not follow tutorials on YouTube, especially TechnoVision (previously called Loremaster) and HarryTalks, due to their promotion of bad practice and usage of outdated code. 2. Always post your code. 3. Never copy and paste code. You won't learn anything from doing that. 4. Quote Programming via Eclipse's hotfixes will get you nowhere 5. Learn to use your IDE, especially the debugger. 6. Quote The "picture that's worth 1000 words" only works if there's an obvious problem or a freehand red circle around it. Support & Bug Reports: Spoiler 1. Read the EAQ before asking for help. Remember to provide the appropriate log(s). 2. Versions below 1.11 are no longer supported due to their age. Update to a modern version of Minecraft to receive support.
Recommended Posts
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.