XaiJu
umsoea
umsoea

patreon


Shiny pistons, Sticky piston, downscale algorithm improvements & switching new software.

Hey,

Social Media Update:

Last time I mentioned that I got almost no attention on YT, Tiktok, Insta - Now I’ve been testing a lot of different new ideas for short-form content – and hey it worked! It’s very inconsistent but some videos reached more than 100k views. Sure, short-form content views are worth way less than traditional YouTube views, but it’s still nice to see that people are still interested in Minecraft graphics modding etc. What I learned: People loved the glowing powered rails at night → So yeah, I’ll try to make more glowing stuff.

Pistons:

So far I’ve used my "PBR fall-back“ concept mostly only for organic materials (gameplay friendly textures) and so this time I wanted to try how it would work for more industrial materials like brushed metal, glass/plastic etc.. Personally I really don’t like the idea of having stone and wood as materials on pistons and in general I feel like sticking with vanilla Minecraft’s colors and materials can be a bit boring. There already exist so many texture packs with that style.

Overall I think the fall-back part worked really well. Making the metal parts look like metal in the base color texture was quite difficult (without too noticeable reflections or directional shading etc). The metal parts with PBR do not look super realistic, that’s mostly because I can’t use a high f0/metallicness value due to the bright base color texture.

The pistons are obviously a custom model. The cylinder parts are using the old 22.5 rotation increments so this model also works on much older Minecraft versions. The rotated planes for the cylinders are smoothed with a normal map that has the right radius/curvature to make it appear as a perfectly round cylinder – as long as the shader supports correct normal maps! Some shaders like PTGI limit the surface angle which causes the individual flat planes to be visible.

Sadly the cylinder part is not handled well on some shaders. PTGI has famously buggy lighting on rotated faces… I don’t think there is a good workaround. PTGI is the image on the left below.

Shaders:

I used mostly Kappa v5.3 and iterationT 3.2. They both support correct normal maps and thus the cylinders appear perfectly round. Kappa has great texture emission features but it sadly does not handle piston rotations correctly, which causes the POM (3d depth effect) to go in the wrong direction which looks super ugly. I think this has something to do with newer Minecraft versions and happens on a lot of shaders. I fixed such issues in Seus Renewed 1.0 in the past but with Kappa I could not get it to work reliably.

Emissive textures:

Because the glowing powered rails got a lot of attention, I really wanted to add some glowing elements to the pistons. It would have been possible to have some kind of ON/OFF indicator on the outside of the piston by using an extra custom model and some blockstate changes – but that’s probably not a good idea because the pistons feel a lot like a "special“ block (almost like an entity e.g. chests): It is animated (while extending) and I think in the past some model parts were hardcoded. So I’m a bit careful because I don’t want to add features that will break when the game get’s a new update with optimization changes for the pistons (I had such dissappointments a lot in the past). At first I didn’t even want to use any custom models but @Foxtrot from the community recommended the cylinder idea.

Here are some older work in progress images/tests.

Downscaling Algorithm:

For gameplay-friendly textures, using a lower resolution like 128x128 makes a lot of sense due to performance gains. But downscaling can be done in many different ways. Most good techniques average multiple pixels which results in pixel colors that are not found in the original image. That works fine for images but not well for PBR textures where the pixels don’t just store color but also 3D data etc… The simple solution is to use good old nearest neighbour subsampling (e.g. packs like Patrix). It looks really noisy but it’s fast, simple and super robust.

In the image above you can see how big the difference between two different 128x128 downscaling algorithms is. My new technique is on the right side and I think it comes much closer to the original, while still being 100% true subsampling without any averaging, sharpening etc. Here is how it works, it’s really simple, don’t expect anything groundbreaking lol: Instead of always subsampling at the same location (as with nearest neighbour sampling), I try to find the subpixel that best represents the color of the corresponding area in the original image. The base color values are used to determine which subpixel is chosen and from that I basically get a remapping function for the entire texture set. And the other textures (normal and specular) then simply also get remapped with the exact same pattern. This gets a bit complicated when the textures have transparent areas (especially fine detail that I don’t want to completely loose). So far it’s quite promising and it would help a lot to make the lower resolution versions more useable. However, there are a few issues that are dealbreakers right now: Noisy areas in textures like sand or redstone dust will end up looking blurry – these materials rely on the noisy pattern that is created by nearest neighbour sampling (fixed offset). Quite disappointing and not sure if I can fix that...

Why playing at high resolution might not be a good idea:

One thing I’ve seen a lot of people are confused about: Playing at high resolution e.g. 4K might give you worse/unexpected results with some shaders. That’s because a lot of visual effects do not scale with the resolution. For example effects like screenspace shadows or bloom are often defined as fixed pixel values and not relative to window width/height. This often causes 4K screenshots to look very flat/boring. Above is a test image of the rails at night with Kappa v5.3 shader. Notice how the length of shadow that the rail casts at the bottom is very different between these images. Personally I’d not go above 1440p because most shaders are still made with the typical 1080p/1440p in mind.

Switching to new Software:

I've started all this in 2019 by using good old gimp (free) and nothing else. Later I kinda felt pressured to switch to Adobe products (Photoshop & Substance Designer). But now I switched to Material Maker, which has almost all the important basic tools from substance designer (procedural texture creation). Super useful and I'd love to see more people using it so defenitely check it out.

DOWNLOADS:

As always, the downloads can be found on the download post: https://www.patreon.com/posts/127595168 The newer stuff like the pistons and rails are also in the R15-16 packs in full resolution. (up to 2048x)

Shiny pistons, Sticky piston, downscale algorithm improvements & switching new software. Shiny pistons, Sticky piston, downscale algorithm improvements & switching new software. Shiny pistons, Sticky piston, downscale algorithm improvements & switching new software. Shiny pistons, Sticky piston, downscale algorithm improvements & switching new software. Shiny pistons, Sticky piston, downscale algorithm improvements & switching new software. Shiny pistons, Sticky piston, downscale algorithm improvements & switching new software.

Comments

cool

Birb

this looks insane! amazing work

Victor Medina


More Creators