Texturing, maps, shading, patterns, and proceduralism

   1781   6   1
User Avatar
Member
313 posts
Joined: Oct. 2016
Offline
Hi,

at the moment I'm looking into the materials (shading) topic. On this forum there are professionals and dedicated technical artists from various fields, such as game, interactive real time, TV series, ads, feature film and more. Probably everyone know something about how to do it (suitable for their context). I feel it is difficult to start this topic, partly because putting words on the complexity that is in my mind is a challenge, and additionally this can become too advanced so that no one want to express anything.

Additionally, I wish not to go into specific rendering engines, because I hope to keep this topic on a generic level. However, the use of Houdini for data management is of very high priority. With my limited brief experience, I already see that this is key to solve many challenges.

Brief background:
  • traditional UV mapping and maps such as diffuse, specular and more (1-4 channels)
  • material ID-maps from ZBrush processed with Python to generate various maps for Houdini
  • traditional 2D editing of maps/textures in a 2D app (PS/Krita or whatever)
  • Maya (Software, Mental Ray, 3delight with a little shader coding)
  • Houdini (RenderMan basics, Mantra basics)

For the modeling, capture (weights) and partly rigging it has been possible to simplify things toward a procedural, i.e. flexible, workflow. The key here I would say is that the important data, especially attributes, are kept in Houdini. Then some data can visit another app, for example Blender, Photoshop (or Krita), ZBrush or any other app. Finally the outcome of that app will be integrated back into Houdini so that all original important attributes and groups are retained. For example, when I had issues with ZBrush because my character has too many groups, one solution was just to generate new (temporary) objs for ZBrush.

Since probably everyone here know basically how UV-mapping works, I'm not interested to talk about it very much. It is useful for many cases, but not always.

If any method was possible I would like to paint enough detailed attributes directly on a model in Houdini, and simply use that to build procedural maps, patterns and shaders. There is a risk of loosing the artistic side of things when going technical, but it does not have to be so. I've worked with PS matte painting (junior level) and when doing so the maps, or masks, are very fundamental. Since I don't know how to do this directly in Houdini I'm considering to use ZBrush polypainting to hold the source data for maps (for example by copying subtools). Either this would use UV:s but I've also noticed that the actual polypaint can be transfered to Houdini.

I guess it is time to stop writing. So the key question is: Do you use Houdini for procedural material and shading generation? Maybe you use other apps as "helper" apps, but then use Houdini for patterns and shading. Would you be happy to share any fundamental insights into your process, just as pointing the way to go?

Anything is interesting (I'm such a newbie in this area).

Attachments:
texturing_shading_material_options1.png (748.3 KB)

Interested in character concepts, modeling, rigging, and animation. Related tool dev with Py and VEX.
User Avatar
Member
36 posts
Joined: Feb. 2016
Offline
https://vimeo.com/247302953 [vimeo.com]
This should be a good starting point.
https://behance.net/derya [behance.net]
User Avatar
Member
313 posts
Joined: Oct. 2016
Offline
Edit: I'm sorry, this thread became too generic. It does not work well with this forum that seem to mostly deal with small limited problems. Dealing with things in a generic way is something I learnt from my teaching job. I will make another thread that keep things very limited and simple so issues can quickly be solved.

Thanks Yader. The tutorial show a lot of things but while scrubbing I did not find what is needed at this moment. Probably I will eventually need to get time to watch a lot of (currently) irrelevant techniques just to find some answers.

Anyway, there will be a bunch of methods to know:

  • UDIM (many image files like Mari)
  • Point attributes (ZBrush polypaint)
  • UV (old school, but still relevant)
  • GLSL (vertex/pixel shading)
  • Houdini groups (for assigning materials, and it works easily)
  • more

Currently I’m digging into point attributes for materials. As mentioned previously you can get the polypaint from ZBrush. The attribute paint tool is a bit slower in Houdini.

What I like is that Zbrush support subtool layers. It works great for polypainting. For simplicity let’s only imagine you need Cd (color) and transparency.

Using attribute rename and attribute transfer you get points Cd (r,g,b) and Oi (r,g,b) for transparency.

The problem is, I searched this forum and scrubbed the video all evening. There was no way to get the data into the principalshader. Only Cd worked.

Every suggestion seem to assume it is easy, but I am missing some piece on the puzzle. So frustrating.
Edited by SWest - Nov. 3, 2022 06:15:50
Interested in character concepts, modeling, rigging, and animation. Related tool dev with Py and VEX.
User Avatar
Member
542 posts
Joined: Aug. 2014
Offline
What I like is that Zbrush support subtool layers. It works great for polypainting. For simplicity let’s only imagine you need Cd (color) and transparency.
Using attribute rename and attribute transfer you get points Cd (r,g,b) and Oi (r,g,b) for transparency.
The problem is, I searched this forum and scrubbed the video all evening. There was no way to get the data into the principalshader. Only Cd worked.

If you want point opacity, you can name the attribute Alpha. It will be automatically converted to displayOpacityprimvar and picked up by Principled shader. Attributes like metallicand roughwill also be automatically used. If not, you can try pulling them with "USD Prim Var Reader".

With MaterialX, you first need to pull geometry properties from USD primvars using "MtlX Geometry Property Value".

UV (old school, but still relevant)
Old school or not, it's not going away anytime soon.

Attachments:
mtlx_principled_example.hiplc.tar.gz (736.6 KB)

User Avatar
Member
313 posts
Joined: Oct. 2016
Offline
Hi ajz3d,

I don't know how to thank you. At the moment the only result I see is with your mtlx setup. For now I'll keep studying this one. Previously only R. Magee's introduction example with Karma has been used (the Furdude guy), so for me this setup is great.

The other file (you shared) with the principalshader I have not had any success with. To see any change I've updated to the latest Houdini version as well. For now I do not know what to think.

These attribute layer things does not look pretty at the moment, but they are not supposed to be used 'as is'. Hopefully I'll have some progress over the following weeks and if so I'll publish some results.

Edit: The "other" file [www.sidefx.com] also work fine now, after a little fiddling. Especially Mantra had to be used and not OpenGL.

Edit2: To get an attribute was very easy with your network setup. USDprimvarreader and mtlxgeompropvalue both work fine. Here's an image for that.
Edited by SWest - Nov. 3, 2022 17:02:24

Attachments:
Solaris_get_attribute_1.png (673.8 KB)

Interested in character concepts, modeling, rigging, and animation. Related tool dev with Py and VEX.
User Avatar
Member
313 posts
Joined: Oct. 2016
Offline
This video is a thank you to ajz3d for the great help getting started with geometry attributes and Solaris (Karma) also.

Attachments:
swest_screen_capture_20221108_1558.mp4 (3.1 MB)

Interested in character concepts, modeling, rigging, and animation. Related tool dev with Py and VEX.
User Avatar
Member
542 posts
Joined: Aug. 2014
Offline
Ha ha! Thanks.
  • Quick Links