Rhino BETA Feature: New GH1 Components for Textures

The Rhino BETA now contains texture components. This makes it possible to create, edit, query and utilize procedural or bitmap textures within Grasshopper.


Procedural_Texture_GH_v9.gh (22.6 KB)

These new components are now feature complete in the Rhino BETA, though they’re still getting polish — please report anything that looks off. The Rhino BETA is available to anyone that owns Rhino 8.

Why Textures in Grasshopper?

One definition, endless variations. Build a texture once, then vary a single setting — roughness, gloss, a color swatch — and get as many textures as you need for different objects while everything else stays put. Because one set of parameters can drive several channels at once, it’s also easy to keep the scale of a bump, glossiness and metallic texture locked together while changing only the color.

Texture Components

The Rhino tab > Materials section, contains the texture types available. These textures can be pushed to the active Rhino document’s Textures panel or used within Grasshopper to create materials and edit geometry.

Most of these components are procedural textures controlled by various input parameters like those shown in the above example. Nearly all of Rhino’s 2D texture types now have a matching component, including Perlin Marble, Exposure and Perturbing. Cube Map is not available as a component yet, and there is no Texture Adjusting component since the Color Adjustment component already covers that.

To view the resulting texture you can use the Content Viewer component located in the Params tab > Utility section. Its preview matches the aspect ratio of the incoming texture, so non-square images aren’t squished — handy if you’re using these components as a post-effect compositor.

To adjust the repeat of a texture you can use the Texture Mapping Adjustment component in the Rhino tab > Materials section.

The Texture Slot component in this same location is useful in blending a texture with a color value or enabling/disabling the use of a texture in a specific channel of a material. Deconstructing a channel that holds both a texture and a color value is straightforward too — the color comes back ready to preview.

In the following example, the Query Directory component is used to reference a bitmap texture by name in the same directory as the Grasshopper file. The Content Cache component is also used to Push or Bake objects, materials or textures to the Rhino document. This can be set as an automatic action or manually triggered. Baked textures land in the Textures panel under the name you give them, and baking again with a name that’s already in use overwrites that texture — so use a new name whenever you want to keep both.


Query_Bitmap_GH_v9.zip (1.4 MB)

You can also work in the other direction and query textures that already exist in the open Rhino file, then deconstruct them on the canvas to sample or rebuild something you’ve already loaded or made by hand.

Also of note is the Texture Evaluator component which allows you to not only sample values from textures for physical transformations but can also be used to assign vertex colors to the resulting mesh.


Evaluate_Texture_GH_v9.gh (23.2 KB)

For simplicity, these new components can additionally be set to hide or show unused parameters via the right click menu over the center of each component.

One thing to watch: the Resample Texture component’s Texture and Source inputs each carry their own repeat. Feed the same texture into both and the repeat is inherited by parent and child, so the result tiles more than you’d expect. Set the repeat of the source back to 1 and the two will match.

There’s a good deal of useful overlap between the new components for textures, materials and texture mapping so be sure to check out the other forum posts on those topics too.

21 Likes