Block instance texture mapping?

I don’t know whether this is even possible, but it would be useful to keep the file size down,
to have a different texture mappings for the same block instance.
Thanks!

Hi violine,

I would suggest separating your model into the different sections you need to be different texture map styles and then creating the block as shown here. The trapezoid form is split into two parts each getting a different planar map. Then one material with a texture is applied to both. When this gets blocked the texture maps should also be included in the block definition. Here’s the block to test if I’m making stuff up or not. I’m also curious if the procedural checker texture comes over without saving textures. Please let me know.


TexturedBlock.3dm(157.6 KB)

Hi Brian,

I was probably not expressed myself correctly, I wonder whether is it possible to keep the geometry of the block and modify mapping on each copy of the same block instance? Something like this so you avoid repeating pattern on each block copy:

Hmm- looks like we need ‘By parent’ texture mapping!

-Pascal

2 Likes

Hi Pascal,
Do you think that’s feasible?
In this way, we could keep the quality of the model and have the file size reduced.:wink:
Thanks!

1 Like

Hi Violine- I don’t know if it is feasible, or even what I suggest makes any sense to the programmers, it just feels about like a ‘By parent’ setting to me.

maybe @andy will have a real idea.

-Pascal

1 Like

It’s actually really, really tough to do. However, for this particular example I would suggest using WCS mapping.

Thanks Andy, all models that have repetitive parts would maintain in this case a defined geometry and
have realistic non repetitive textures, all within a smaller file size. It would be just perfect.

Has this one been resolved? I’m using a block for wood stair treads, but having a repetitive pattern can be spotted from a mile away.
Thanks!

Hello - not ‘resolved’ beyond the WCS mapping idea, as far as I know.

-Pascal

Thank you, can you expand just a bit on the WCS mapping idea? Would I map the surface as a box using WCS, therefore, depending on where the tread sits in the WCS you’ll see a different pattern?

Hi David - that’s right - but it will help a lot to have a bit map that is tileable, and large enough as a texture that multiple treads can be handled - ultimately you’re just pushing the repeat out to multiple treads rather than each one. The rendered display seems to get this wrong, here at least, for blocks but the rendering is correct.

-Pascal

Thanks again! I will have to work a my texture a bit, but that looks like it will do the trick!

Hi pascal. I was wondering if there are new updates or planned future updates in Rhino to allow By Parent Texture mapping for Block Instances? Coz it really is important for realisitc visualizations and renderings.

You are right that it is very important for achieving realism.

@andy @nathanletwory I was wondering if OP had in mind By Parent mapping or it was suggested by Pascal while more common is actually randomized shift per element. I guess this could have something in common with the randomized color which we tried as a proof of concept with Nathan some time ago.

Hi, przemyslaw. I admire so much the work you are doing with RhinoNature. I was wondering whether Rhinonature has a feature to do this just like Itoo Railclone’s UVW edit controls? Or does it need to happen internally at Mcneel programming to achieve this?

@attheeast18 thank you :slight_smile:

Umm… I wasn’t considering things like this (btw. GH has rather more in common with RC than RN and I’m sure that it is achievable through GH without hassle - Human GH plug will help but those won’t be blocks) as usually this is handled on renderer side.

At the current point in time, WCS is your best bet to deal with it quickly.

For Blocks, no way without McNeel upgrades as Blocks are always looking at InstanceDefinition and here Mapping would have to be decoupled from the underlying geometry which ain’t that easy as Andy said - designing such structure is already a headache. Though it is a good question if it is doable someway around I would need to check if there is any workaround route - most naive I can think of now would be creating some finite number of blocks with auto shifted mappings each then juggling them.

@pascal wasn’t there a nifty little script which was juggling uvs on selected objects? Maybe it was a lucid dream that you wrote it already ? :sweat_smile:

@andy, maybe with the OCS addition it would be possible to do some form of ‘by parent’ texture mapping. The OCS frame could be used to also offset the UV space. What do you think?

Hi Nathan,

Can OCS mapping support vray and other third party renderers? If not, will there be plans to support it? Thank you.

VRay and other engines are free to support this. We can assist if necessary, but the need to add the support on their own side.