Jump to content

Recommended Posts

Posted

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?

Posted

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.

Posted

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.

Posted

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.

Posted

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.