Jump to content

1.15.2 Rendering particle fullbright


xX_deadbush_Xx

Recommended Posts

Hey there, I just added a custom particle to the game but I don't want to be affected by lightlevel. How do I make it fullbright all the time? I experimented a bit with a custom particle renderer but I couldn't figure it out.

Here is what I have tried:

	      public void beginRender(BufferBuilder buf, TextureManager texmanager) {
	         RenderSystem.depthMask(true);
	         RenderSystem.disableLighting();
	         RenderSystem.enableBlend();
	         
	         RenderSystem.blendFunc(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA);
	         RenderSystem.alphaFunc(GL11.GL_GREATER, 0.003921569F);
	         texmanager.bindTexture(AtlasTexture.LOCATION_PARTICLES_TEXTURE);
	         buf.begin(7, DefaultVertexFormats.PARTICLE_POSITION_TEX_COLOR_LMAP);
	      }

	      public void finishRender(Tessellator tessellator) {
	         tessellator.draw();
	      }

The particle also has translucent pixels by the way.

Link to comment
Share on other sites

Howdy

 

Easiest way is just to return full brightness from your particle's method.  Particle rendering has changed quite a bit from earlier versions of vanilla and you no longer need to do custom rendering for most particles.

eg

  // can be used to change the skylight+blocklight brightness of the rendered Particle.
  @Override
  protected int getBrightnessForRender(float partialTick)
  {
    final int BLOCK_LIGHT = 15;  // maximum brightness
    final int SKY_LIGHT = 15;    // maximum brightness
    final int FULL_BRIGHTNESS_VALUE = LightTexture.packLight(BLOCK_LIGHT, SKY_LIGHT);
    return FULL_BRIGHTNESS_VALUE;

    // if you want the brightness to be the local illumination (from block light and sky light) you can just use
    //  the Particle.getBrightnessForRender() base method, which contains:
    //    BlockPos blockPos = new BlockPos(this.posX, this.posY, this.posZ);
    //    return this.world.isBlockLoaded(blockPos) ? WorldRenderer.getCombinedLight(this.world, blockPos) : 0;
  }

 

For a working example, see here

https://github.com/TheGreyGhost/MinecraftByExample/tree/master/src/main/java/minecraftbyexample/mbe50_particle

 

-TGG

  • Thanks 1
Link to comment
Share on other sites

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.