Rhino 6 materials: texture mapping chanels linked by hand?

Hi…,

when I want to position a material on a 3D-object I have to do following steps.

  1. Take an existing material and make a copy for my own 3D-object.
  2. In properties/material apply the copied material
  3. In properties (of my 3D-object) create a new texture mapping chanel with a chanel-number e.g. 1
  4. Edit all (four) material textures: Change the Mapping-Chanel to 1
    (Rhino materials can have four textures (color, transpanrency, bump, and envirenment). Each texture has its own mapping with an mapping-chanel option)

Is this correct or have I missed something?
Is there a video tutorial for positioning materials?

Thanks

Michael
www.flexiCAD.com

+1

I’ve noticed the same/similar issue. Was it ever this way before? I had pretty much always used a render plugin with custom materials in v5. The new library looks like it would work great for me and I would like to start using it. Any chance there is a way to batch convert the included material library to use mapping channel 1 instead of ‘WCS (box style)’? Or any other way to easily allow/enable custom mapping? It seems that ‘WCS (box style)’ effectively disables texture mapping and, as mentioned above, it’s a ton of clicks to change every texture every time one gets used.

Thanks!

1 Like

The textures are designed to be used at world scale.

If you import a bunch of textures into the texture palette, you should be able to select them all and change them to mapping channel 1.

Hi @BrianJ (and Andy),

sorry I don’t understand it.

Do you have a video tutorial for placing material texture in Rhino 6?

Thanks

Michael

I think you understand how it works based on your initial post. All the textures in all the materials in the v6 library are set to use WCS by default for mapping. You will need to change each one to Mapping channel 1 to use the old default of by surface UV.

@andy will have to say if there is a way to batch convert all textures within all materials in the scene to mapping channel 1. I do not know of one.

1 Like

No - sorry, there’s no way to do it without writing a script

Here a short script that sets all diffuse textures in all materials to use mapping channel 1.

import rhinoscriptsyntax as rs
import scriptcontext as sc
import Rhino.Render as rr

for rm in sc.doc.RenderMaterials:
    rt = rm.GetTextureFromUsage(rr.RenderMaterial.StandardChildSlots.Diffuse)

    rt.BeginChange(rr.RenderContent.ChangeContexts.Program)
    rt.SetProjectionMode(rr.TextureProjectionMode.MappingChannel, rr.RenderContent.ChangeContexts.Program)
    rt.SetMappingChannel(1, rr.RenderContent.ChangeContexts.Program)
    rt.EndChange()

Adapt to your own needs.

1 Like