DECALmachine

Ah, didn’t realise that about github saying everyone in it was epic games… :frowning:

v1.9.2 is out | Gumroad | Blender Market

Changelog

  • fix cropping of L images for decal creation
  • fix 2.82 exception when calling pie menu or quick insert
5 Likes

Holy smokes, I’ve just opened this thread to report that.
Thanks!

1 Like

On Blender Market I see one download, but shows as 1.9.1
Update: and when you download it’s 1.9.2 , so it’s ok.
Thanks

unfortunately I could not find information about which software was used for this anime, but I was quite convinced that a machin3 addon or very similar were used here … what is your opinion guys?

@MACHIN3
Hello there. I was wondering if you could add a new feature similar to Info Batch creation but to create relief decals from grey scale images.
I have a lot of JRO brush i’d like to use as decals. Some of them come with ID map too.

Happy xmas and new year :slight_smile:

These kinds of ‘alphas’ don’t contain enough information to create decals from. It’s just height information. Decals are normal, height, ao, curvature, mask and often subset mask. You could do without ao, curvature and height, but getting normals from height is flawed and creating the subset mask automatically is impossible.

I’d recommend you adapt and model your favorite designs of these and create decals from that. Not that hard, great exercise and you could release a decal pack of your own.

2 Likes

What a coincidence, was just about to ask the same question.
A bit different though, since I convert the height to Normal in Designer.
Would be cool to support this as I’ve been wondering about the (missing) thickness of info decals.
Personally I currently need to add text relieves as seen in electronic gadgets, but I think it would increase addon value by a great margin.

2 Likes

Why? It is doable and is being made by multiple software.

Then just simple decals and use included masks if available.

It is possible i bet You could do that, but imho i don’t know if effort to develop that specific feature is worth Your time.
Since creating decal from heighmap/alpha could be fairly easy made as workaround by creating grid with displace and baking from it :stuck_out_tongue: . (but maybe automatizing creating that plane and baking from it could be scripted?)

Anyway, good job. I’m glad that afaik You are working on trimsheets workflow improvement (am i right?), and bringing back atlas creation. I’m looking forward for next update.

4 Likes

Yup, it’s nearly flawless with a bit of box blur.


On a down side you have to really subdivide the plane to avoid jagged edges.

What you do requires quite a bit of tweaking and a huge amount of subdivisions. I can’t batch that or make it into a single button solution like the other methods.
Creating normal maps form height maps in designer or similar produces awful results, compared to proper normals, and also requires a lot of tweaking.

You can definitely go through the subd-displacement process and a few people have done it before, but you don’t need a tool from me for it and you still won’t have a good way to get a subset mask form this.

1 Like

I think using displace port on material shader could avoid the subd jaggy issue ,and bake that in to a normal map。but you still got do the material masking by hands ^ ^

Alright, decided to pull in that Unreal PR to my fork and see what I could get working.

Result was actually better than I expected:

These are mesh decals in Unreal using multi-opacity, parallax, and faked AO.

(I realised you can actually use the base-color opacity channel to fake AO, whereas previously I thought it would need to go through the normal’s opacity channel)

The actual decals here are just the raw DM assets imported and slapped on some quads, no atlas or anything.

So, currently very possible to get reasonable mesh decals in Unreal - so long as you’re willing to fork the engine to get that multi-opacity support… let’s hope they merge it eventually.

Ready for that 2.0 atlassing now! :slightly_smiling_face:

8 Likes

Very nice, thanks for sharing! Can you confirm the parallax works as is, so from the mid grey height map?

I’ve rencently tested in Unity HDRP and it turns out, the build in parallax node in the shader graph, expects the height maps to be white (and so only parallaxes “in”).

2 Likes

It did work with the as-is height map; the parallax node in Unreal has a parameter called reference plane which allows you to control the zero-height, so there aren’t really any built-in requirements around what height map you use.

I did however modify them to use more of the bit-depth since they were quite shallow and I didn’t want the parallax doing more work than necessary. I assume it’s most efficient to have the height map use as much of the 0-1 depth as possible, but I think that could also be done in the material just by scaling the values. It’ll be more shader instructions but I’ll give it a try when I have some more time.

Maybe at atlas-creation time DM could scale the final height map to fill the texture depth.

Not sure about the Unity one since I’ve never used it, but if you haven’t tried already perhaps you can parallax “out” by scaling the values greater than white in the shader?

1 Like

Thanks or confirming, glad this hasn’t changed.

The problem is, different decals have different amounts of depth. If I were to always max out the levels, each decal would need a unique multiplier for the parallax amount.
The height maps(at least the ones created by DM’s decal creation) are basically in 0-1 space, where a decal of 1x1 units, can be 0.5 deep and/or 0.5 eight, meaning the height map can also cover 1 unit in total. This can be adjusted, but it’s the default setting and it allows me to use a default amount of 0.1 for the parallax node tree I use.

And so since different decals have different amounts of depth in the height map, maxing them all out when atlasing, would mess everything up and result in some decals being parallaxed too much and some to little.

Ah yep, I think I understand what you mean but maybe wasn’t too clear myself. What I mean is just transforming the entire atlas heightmap ( all decals equally ) rather than maxing each individual decal. Just like applying a curves in Photoshop - so all the decals in the atlas keep their relative depth to eachother.

So if you have a decal using a 0 - 0.5 brightness range, and another on 0.5 - 1, nothing can be done because the map is already filling available depth, but if you have one decal at 0.25 - 0.5 and another at 0.5 - 0.75, you’re only using 0.25 - 0.75 and could just stretch the values so that the parallax operation isn’t spending resources on those empty ranges (0 - 0.25 and 0.75 - 1) outside of what the decals are actually using.

I just had a look to see if I could do that in the material, but the parallax node takes a raw texture object so there isn’t really a chance to touch the values, it needs to be done on the heightmap itself.

Yeah, I can do that.

Can you clarify why you think that’s the case?

2 Likes

Is there any discount for such recurring customer as I am? =)

I guess You liked his addons, so maybe another way:
Is there any additional tip for creator of that cool addons? :wink:

2 Likes