Dev news : some final fixes for VA

Thanks to useful feedback I got from the ShadersLabs Discord server (hey Fayer!) I made some final (-ish?) changes and fixes to some blocks for Vanillaccurate v1.8.0

First of all, I made some stylistic changes to the smooth and polished basalt blocks. I wasn’t entirely satisfied with them as they were too coarse, having too much medium-frequency noise.

Continuum 2.1 alpha build 12

I also needed to do something about ancient debris, and made a decision. I used another material value as their f0, one I used for redstone before I gave redstone the gold specular highlight. That material is an imaginary one, being too high for dielectrics and too low for metals. Why did I use that one? Because it causes fewer issues when downscaling/filtering or using mipmaps.

If you use a low dielectic and an albedo metal with masks, when downscaling or using mipmaps with non-nearest filters you might run into issues, where pixels are interpolated and yield an invalid value. F0 is not supposed to be interpolated but should use strict binary masks.

Here’s a very simple visual explanation.

Trouble is, before Optifine fixed the mipmap generation filters it was impossible to have reliable material masks. At a distance, mipmaps were kicking in and it was impossible to set the mipmaps to use a nearest filter at creation (the sliders in the options weren’t referring to CREATION but to USAGE) which caused weird glitches with bright lines to appear at the interface between metals and non-metals (i.e. iron ore blocks).

Now Optifine has a fix for this, but I still need to be cautious with my materials because I need them to be downscalable without issues. The tools I use behave pretty well for most cases because I’m using simple masks with large features.

In the case of ancient artifacts, the metallic bits are based on random noise which doesn’t downscale without interpolating (I’m not using nearest downscaling at the moment. I’ll update my tools to add more options, much like Null’s PixelGraph does, but I currently can’t use anything else than a quadratic filter, which works pretty well for most cases anyways).

That’s why I decided to use a very high dielectrics value (which is fictitious anyways) and leave those values to be interpolated with downscaling (or older Optifine versions mipmaps), knowing that being dielectrics it will not cause those weird glitches/lines around the edges. It’s not realistic, having gradients on f0, but as we’re talking about fantasy materials here anyways I decided to tolerate it on a very small subset of blocks (almost ALL of my blocks don’t do this, it’s not something I want to see often).

Loop V2 – in the Nether
MollyVX – in the Nether
SEUS PTGI HRR 2.1 – in the Nether

Lastly I tackled the shroomlight block and wanted to improve the edges, large-scale features, and emissive.

I chose to give some depth around the “fungus”-kinds of growths, and have recesses around them, as if they were embedded in the structure.

I also raised the edges to avoid any wrapping issues where some glowing parts could be seen repeating on the lower edge. Wrapping issues are commonplace with POM but this one was very bothering. I chose to fix the edges and clip some of the shapes sothat the normals don’t wrap over either.

I think all those blocks now look much more consistent and cleaner. I’m pretty satisfied with those now and I hope you’ll be too! Version v1.8.0 is around the corner. In the meantime I made a small teaser video you might already have seen in the videos page, but I’ll link it here as well!


Leave a Reply