Jump to content

[1.18.2] Better way to do my block-darkening fog of war feature?


Recommended Posts

I'm trying to do an RTS-style fog of war effect by darkening all blocks not within range of a particular mob.

My current method of doing this is to simply iterate over all blocks in the view cone (that are exposed to air) and draw a dark block around them using a vertexConsumer with this result:

my code: https://pastebin.com/SfmCGHKj


The problem with this is 3 fold:

  • looks very glitchy with lots of tearing during camera movement
  • doesn't account for non-solid blocks like tall grass - these show a visible black cube around them
  • performance is terrible, my FPS drops by half whenever I run it

I can solve the weird grid-like effect on the water and the performance somewhat by drawing only block faces next to air but the other problems remain.

I can only think of two solutions to this either of which I have no idea how to implement:

  1. GLSL shaders
  2. Changing block light render values (clientside only)

Which way would be better, and/or is there another option I haven't thought of?

How difficult would either of these options be?

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.

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.

  • Create New...

Important Information

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