Mapping textures

in rhino a material can have multiple textures associated with it in various channels – they’re not separate concepts

thanks for your responses Andrew. And thx for your work on Human.
I am assuming from your answers that currently, in GH, there is no way to assign a texture to a material. Is that because no one has written it, or because the interface does not permit this?

From, my perspective, I dont want to deal with managing two files, two applications, the interaction of two apps, even if they are very closely associate with each other. While Rhino may provide the underlying functionality, the GH interface renders the Rhino interface virtually obsolete. IMO, the product should be Grasshopper, and the display interface Rhino since the Rhino engine INSISTS on a level of precision in its points, curves and surfaces that is difficult to achieve with Rhino GUI. My problems with surfacing disappeared once I used the GH interface because the errors of mouse clicks and remembering what steps you took to get the surface you no need to edit, are practically impossible to remember.

This is why I would like to sidestep Rhinos material/texture GUI.

the GH interface renders the Rhino interface virtually obsolete

Respectfully, I disagree. Rhino + Grasshopper are designed to play well together, and you should lean on each interface where it is strong. Most practical workflows I know of lean heavily on both. Some kinds of modeling will always be easier to do manually than procedurally. Some kinds of settings are easier to manipulate with a GUI than programmatically. Direct interaction and parametric/programmatic interaction are complementary.

With all that said, I don’t think there is currently any plugin that exposes the manipulation of complex materials. There was a change at some point in the Rhino SDK – from “old style” to “new style” materials (maybe around rhino 5 => 6? it all blurs together). Human only ever manipulated the “old style” materials – which themselves can handle a diffuse channel and an alpha channel. I am not aware of any plugins which offer full control over the new style materials, although that doesn’t mean they don’t exist – perhaps @gankeyu’s tools do? There’s also a v-ray plugin for grasshopper that might offer better control over materials – I don’t remember what it covers exactly.

New material’s APIs aren’t exposed, iirc

I have been playing with V-Ray. Rhino rendering is more convenient and quite acceptable.
The V-Ray GH modules are basic and offer no more control over materials.
As a general rule, each layer of complexity GH + Rhino vs just GH, causes an order of magnitude more complexity downstream, deep into a project. I dont disagree with your case for both, but the larger the project, the more interactions there are that will break.

It would help you to read up on computer graphics and rendering in general. Learn the language so that you can better communicate your needs to the community. Specifically, read the Rhino help docs on the subject.
Custom Material
Textures

One bit of clarity that may help you is in the definition of the word ‘Texture’ as it applies to rendering in computer graphics. A Texture Map can be any image (or procedural texture) that is used in nearly any property of a Material. A Texture Map can be used in the Diffuse/Albedo, Reflection, Refraction, Bump, Normal, Displacement, Specular, Roughness, Glossiness, Opacity, Anisotropy, etc, etc.

In the way you are using the word ‘Texture,’ you are referring to the material property most commonly referred to as Bump. A bump map is a rendering trick to give the appearance of raised/lowered surface quality. It does not actually deform the geometry. It merely affects the raytracing algorithms for that particular pixel when it is rendered.

In VRay, you can add a black and white scratches texture (image) to the Bump map property of a material.

Thank you for that response. You are not wrong, but those days are gone. What I mean by that, is that we live in a plug and play world. Look at the plethora of options for rendering for architects. These are simple, intuitive, friendly controls, great settings out of the bag. There is enough to contend with without being required to do a deep dive into the flavors of texture and methods of texture mapping. I simply want scratched metal with sliders to adjust everything.

Vray is not friendly. The Rhino controls are not friendly. adding a background image is how many layers deep? out of the box settings are a whiteout. Come on.

GH needs a module with three inputs as far as I can see: Material, Texture, Color. any one or all three may or may not be connected. The logic and problems associated with that are for the developer to manage. Pretend I am a 5yo. I just dont care about the finer points of rendering to start with. When get into high school or college, then yes, I can make it my special interest and do a deeper dive.

Just my feedback FWIW

Thanks @gankeyu this sounds great! Unfortunately after dragging the PancakeTexture component in I get this error. Any thoughts?

Since I programmed the plugin with a newer version of Rhino than yours, you need to upgrade.

1 Like

Thanks for the reply. I have updated the version of my Rhino and now it doesn’t have any problem to load the definition. But unlike your example in my case it doesn’t update the mapping, the components doesn’t give me any error.

Is the coordinate applied? Is it applied for once but doesn’t change dynamically?

yes it’s a bit weird, as soon as i reference the brep the mapping is applied but then it doesn’t change dynamically. If i clear the component and reference the same brep again, nothing happens

Excuse me, how can I bake objects with textures into rhino?The Custom Preview Materials can’t bake.

bake the mesh from the mapping component. You will have to assign it a material with the appropriate texture

Thank you very much!

@andheum , does Human support writing an image to the alpha channel of the material (in Rhino)?
I am working with PBRs and don’t seem to find that input in your components.

you can point to a different bitmap to use as the alpha channel (called the “Transparency Bitmap” here) for your material, in either “create material” or “custom preview materials”: