Posted January 30, 201312 yr The pixels of my custom particle (and probably every other particle in the game) are either opaque or completely transparent. Setting the value of particleAlpha on my custom EffectFX particle only seems to set a threshold, and pixels in the texture file with alpha below that threshold are not drawn, while all other pixels in the file are drawn with 100% alpha. How can I have semi-transparent pixels on a particle? I made Moses Mod, Dota 2 Items Mod, Rings of Power and Antique Atlas.
January 30, 201312 yr use GL11.glColor4f(1.0F, 1.0F, 1.0F, alphaHere) just before rendering the particle, where 'alphaHere' is a float value between 0 and 1. (0 is fully transparent, 1 is opaque)
January 30, 201312 yr Author Thanks for the reply, Groxkiller! However, I tried that and it didn't work: that alpha value seems to work as a threshold as I have described in the initial post. Also, even if that did work, that would make all the pixels in the particle semi-transparent. I want to use the pixel alpha values directly from the texture PNG file, like it works with blocks. This seems to be a particle-only issue. I made Moses Mod, Dota 2 Items Mod, Rings of Power and Antique Atlas.
January 30, 201312 yr Ok, I haven't checked with this, but one thing you can try is see how Slimes render the outer block of thier model (ie how it's transparent) and try to transplant it over to your particles. It's probably a series of openGL calls to turn transparency on.
January 30, 201312 yr Author Solved it! The GL_BLEND was simply turned off during the call to EntityFX.renderParticle(...); and before I was immediately disabling it after only having added vertices to the tessellator, before draw() was called on it. But now there must be some reason for the color blending to be disabled... I probably shouldn't be using the tessellator for this particle, since it enables blending for all particles that follow, which was disabled by default. But when I render it by direct calls to LWJGL, it works fine only on the first particle spawn, but on every next spawn the actual color (not the alpha) on my particle gets darker until it appears completely black, but with proper alpha. I wonder how to fix that. I made Moses Mod, Dota 2 Items Mod, Rings of Power and Antique Atlas.
January 30, 201312 yr Author Ok, I now understand that it's safe to enable blending. The Tessellator is reset for every Effect in the EffectRender.effectList, and I added my effect just there. This means that I interfere with no other object's rendering... probably... I made Moses Mod, Dota 2 Items Mod, Rings of Power and Antique Atlas.
January 30, 201312 yr If your worried about it simply reverse what you did to get transparency working after you've called draw() ie if it's like GL11.glEnable(GL11.GL_BLEND); then after draw() just call the opposite: GL11.glDisable(GL11.GL_BLEND);
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.