Author Topic: material textures, real world size  (Read 3886 times)

I would like to apply materials procedurally to models which are scaled correctly based on their real world size, my system works in meters. I calculate the surface of the geometries so that I can extrapolate the real world size of the UV map (if multiple UV shells are present, they are scaled in a consistent way). In the end I have a UV map in 0 to 1 space which cover an area X*X meters, at this point I would like to generate textures "of the right size and scale" using batchtools and a given substance PBR material from the Substance Database.
I understand how to set the output in terms of resolution, but how can I know the real world representative size? In one case I want a 2048x2048 texture to cover an area 2x2 meters, in a different case the texture will need to cover 20x20 meters.

We don't want to eyeball the material and manually change the UV scale, our goal is to do it programmatically to have a physically correct scale, using Substance as an Engine to generate the needed texture types.

What's the best way to achieve this?
Do the substance PBR materials from the Substance database have any parameter which defines the real world size of the material?

Last Edit: August 01, 2016, 11:35:17 pm

It might be best to do this programatically in-engine, and have the results access a custom SBSAR with a size parameter. That doesn't sound easy, though, and how you'd go about it really depends on the engine.

A more straightforward, but more labor-intensive, and possibly less flexible idea might be to have bake-able meshes be exported with a copy of whatever the largest of these objects is added (or a cube that would represent that large object) with a negligable UV space, and bake a position map. That way small objects will end up with a very uniform, low-contrast position map, and you could use that to govern your materials. This could be made to work using a tri-planar node perhaps, or by being clever with pixel processors.

Hello People I have a question regarding real world size. I'm surprised it's not a big deal for substance since it's often one key to realism for example.
In my DCC app(houdini) I can get a factor scale for my uv. I can make my uv at scene scale and then make them fit the 0-1 uv space. And that's my factor.
Now what can I do with it in SD or SP ? Is there a way to pass that variable to these guys?
Also the materials in SD and SP should have a real size factor, how much real space cover the 0-1 uv area. For custom materials that can be made custom but I think this should be made default.
It's important for proceduralism architectural etc...

There are all kinds of techniques (from simple to sophisticated) that can be done to procedurally scale a substance.

It seems the crucial piece of missing information is how big the substances in substance share / substance source are SUPPOSED to be - there doesn't seem to be any information or meta-data.

Megascans are either 1x1 or 2x2m, and I think RDT materials are 2.5x2.5m, but for many substances it's difficult to tell what real world scale was intended.

Eyeballing seems the best we can do right now, but I agree this information would be extremely useful.  Just got bitten by this - asking an artist 'what size is your source material' and getting 'I don't know and can't check' as an answer.

Yes - knowing scale / tile size would help!

We have added a "physical size" attribute to the substance file format in SD6. Pre-existing substances that have been created with previous versions of Designer do not have that attribute.
NB : it is 3-dimentional as the scale also has to be specified for the height maps.