Surfacing and texturing help?

   21589   27   2
User Avatar
Member
112 posts
Joined: June 2008
Offline
I'm currently a Lightwave and Fusion user and have dceided to explore Houdini as I've really got into nodes and recognise the awesome power within!

However, I'm struggling a bit with surfacing. I can see that I can drag a shader into my object, but what if I want to create something new?

Lightwave's surfacing nodes are very intuitive and quite artist friendly, but Houdini's seem a bit tricky to understand. Maybe I've missed something?

Is there any indepth tutorials out there that deal with the creation of surfaces?

Thanks for any help on this - I'm loving Houdini so far!
User Avatar
Member
606 posts
Joined: May 2007
Offline
stevecullum
..what if I want to create something new?
Lightwave's surfacing nodes are very intuitive and quite artist friendly, but Houdini's seem a bit tricky to understand. Maybe I've missed something?

Sorry to say, but with Houdini you need to roll you own, “from atoms”.

I too am often really missing Lightwave's node texture editor for the userfriendliness and speed of use. The high level (abstractionwise) nodes and workflow fit the overall fastpaced way of working I love about Lw.

Houdini on the other hand opts for total explicit control and configurability, which does fit the Houdini Way The power is quite obvious, pretty much anything you could code by hand, you can build with VOPs - unlike LW nodes.

I think one needs quite a chunk of r&d -time with Houdini to build a base material that fits one's work and which can be “easily” modified to suit the need at hand. (a.k.a. the dreaded/loved ubershader

(I'm still learning, so take this with grain of sand)

Is there any indepth tutorials out there that deal with the creation of surfaces?

Not really, as far as I've seen :\
Your best bet is to dissect the library materials. And read a couple of Renderman books

eetu.
User Avatar
Member
320 posts
Joined: Aug. 2007
Offline
I think it's possible to get by on a basic amount of knowledge. You don't have to be a shader TD in other words, but you'll need to know quite a bit more then other applications ask of you.

The easiest place to start inside of Houdini is the SHOP pane. In the Tab menu you'll find the VOP VEX Surface SHOP. Go inside this node to create your shader network.

Be sure to explore the “Materials” section of the Tab menu while in VOPS for some pre-built shaders that you can take apart.
www.alan-warren.com
User Avatar
Member
112 posts
Joined: June 2008
Offline
I've started looking at the shader networks and this is a scary place!

So in the short term, I've read about people exporting obj sequences from Houdini, but I got no idea how you might go about this. This would seem the best bet for fluids and the like. Any ideas?
User Avatar
Member
606 posts
Joined: May 2007
Offline
stevecullum
..exporting obj sequences from Houdini, but I got no idea how you might go about this.

Drop a File SOP, put it in write mode and enter something like “myobject$F4.obj” as the name.

eetu.
User Avatar
Member
112 posts
Joined: June 2008
Offline
Thanks - got it!
User Avatar
Member
606 posts
Joined: May 2007
Offline
There's a related thread going at odforce, http://forums.odforce.net/index.php?showtopic=7208&pid=48387 [forums.odforce.net]

eetu.
User Avatar
Member
112 posts
Joined: June 2008
Offline
That CMIFX video looks the ticket. I best learn a bit more of Houdini's general workflow before I invest!
User Avatar
Member
112 posts
Joined: June 2008
Offline
The easiest place to start inside of Houdini is the SHOP pane. In the Tab menu you'll find the VOP VEX Surface SHOP. Go inside this node to create your shader network.

Ok I'm starting to find my way around Houdini and the various OPS

I'm wondering though rather than wiring up my own shader, is it possible to mix two existing shaders together? or maybe blend an image map with a shader?

I've tried in SHOPS but I can't find any mix nodes there…am I looking in the wrong place?

EDIT: Sorry read the above post correctly. So now I can see the mix nodes and getting someplace!
User Avatar
Member
28 posts
Joined: Jan. 2008
Offline
Unfortunatly I am running into the same problems by now.
I did a lot of modelling an animation work by now, but now it comes to shading in my project. Actually I have a box, that should act as a faked wood billboard in the background of a scene. I created a tiff with the wood image, that should contain the alpha information. I converted this into a rat. Additionally I have a tiff that is black/white and could act as the alpha mask. I converted them to rats with import and save actions (this should be easier in coming versions … think of selecting tiffs and jpgs, and having a checkbox ‘autoconvert to rat’.
According to the book ‘magic of houdini’ I created my own VOP/VEX that has the texture as the input for color, and the alpha.rat for the opacity AND alpha channel (vector to float .. output one). The shader ball shows a good result. In my scene the transparent areas of the image are white and not transparent. I really dont know how create my vop that will project an image uv-wise and has transparent parts for the billboard effect.
Beside that, this shader is much to bright when I do a mantra testrun. Ambient was set to 0 (in the lightning operator).
I don't really know how to create a good shader I need.
- Frankie
User Avatar
Member
320 posts
Joined: Aug. 2007
Offline
Generally what you'll do is use a Texture VOP set to RGBA. Then, immediately connect a “Vector4 to Float” and send only RGB into either Lambert or Lighting Model VOP's diffuse color.

Before plugging in anything to the Output you need to pre-multiply your diffuse by the opactiy.

To do this, I usually multiply Of (opacity) by my Alpha channel, and I plug this into “Of” on the output node.

This screenshot is how I usually set this up, but I'm sure there's other ways.

Good Luck

-Alan

Attachments:
rgba_clip.jpg (44.5 KB)

www.alan-warren.com
User Avatar
Member
28 posts
Joined: Jan. 2008
Offline
Hi Alan,
thanks for this good example. I had no multiply in my vop. because i didn't know what i should use as the second input.
I would like to test your setup. At the moment I dont know what your leftmost operator type is. And I dont know what your Kd and global_Of Operators are. Could you give me a hint ?
And can you explain the diffuse export operator on the upper right?
thanks and regards,
Frankie
User Avatar
Member
112 posts
Joined: June 2008
Offline
Yes this is a great example!

I too would appreciate a further explanation of KD and OF, although I assume the global bit is a variable of some kind. Is this part of the global outputs node? (Which I understand is a bunch of variables sent back by the rendering engine as a ray hits a pixel)
User Avatar
Member
320 posts
Joined: Aug. 2007
Offline
Hey guys, glad to explain.

blindcat
At the moment I dont know what your leftmost operator type is.

In VOP context, grab a Texture VOP node.

Hover your mouse over the top most “pink colored” icon labeled “map” and press the “Middle Mouse Button”. A small menu will appear, and you should choose “Create Parameter”.

This is how I created the left-most node that was cut-off in my screenshot. The reason for doing this is to expose the Texture Map selection at the SHOP level. After doing this, hit the U key, and select your SHOP node and you will see what I mean.

blindcat
And I dont know what your Kd and global_Of Operators are. Could you give me a hint ?

Kd stands for “diffuse coefficient”. This is a standard naming convention for this paramter first designed in Germany, which originally read: Koefficient Diffuse or simply Kd. Specular, Reflection, Refraction, and Displacement Magnitude are also commonly named. Ks, Kr, Kt, and Km for example.

I generated this node by middle-mouse clicking on the Kd parameter of the Lambert VOP node in the same manner as described above. You use this node to measure the strength of your diffuse contribution. ex. Kd = 0.5 will decrease your diffuse contribution by half.

blindcat
And can you explain the diffuse export operator on the upper right?

This is slightly more advanced, and I wouldn't worry about doing this just yet. I am basically exporting the illumination contribution of the Diffuse component for use in an extra Image plane when I render. This shows up as an all grey image that I can use in compositing to further adjust “Kd” after the render has taken place. It's common to export Specular, Diffuse, etc.

In order to do this, you drop a Parameter VOP and you tick the “Export Parameter” option, give it a meaningful but short name with no spaces, and wire in the illumination from the Diffuse VOP. (or whichever component you decide)

In your Mantra ROP, go to Properties > Output and hit the “Plus” button to create an image plane, and then fill in all of the info based on the characteristics of the parameter that you're exporting. For example, is it a color? a float?. Colors are Vector in Mantra's language.

stevecullum
I too would appreciate a further explanation of KD and OF

OF is the surface Opacity. It's a vector triplet, In other words, it has 3 channels like R G B, but it represents Opacity. You find this global variable on the Global Variables VOP node. Notice, you can choose to “Output a single variable” which is what I've done above.

Multiplying components of your shader by your alpha channel is almost like using your alpha as a mask. If you've ever spent any time with Photoshop or Gimp this should be a familiar concept.

Cheers,
Alan
www.alan-warren.com
User Avatar
Member
112 posts
Joined: June 2008
Offline
Thanks Alan - that helps alot!

I'll have to read up a bit more on this Kd thing though, because I'm unfamiliar with shader speak!

Thanks again!
User Avatar
Member
519 posts
Joined:
Offline
Try to pick up a copy of Essential Renderman or Renderman Fast by Stephenson, it's really a nice book to get started with when it comes to shading. It's focused on the Renderman Shading Language (rsl for short) but VEX/VOPs is very similar.
User Avatar
Member
112 posts
Joined: June 2008
Offline
Thanks, I'll have a look out for that one!
User Avatar
Member
28 posts
Joined: Jan. 2008
Offline
I want to thank you, too for the explanation. I will give this a try tomorrow in the morning!
- Frankie
User Avatar
Member
28 posts
Joined: Jan. 2008
Offline
Hi Alan,
now it is in the morning in germany and I tried to get this thing working -)
First of all, again thanks for the explanation. I forgot about creating input parameters (I saw that in the old school blog for vops, but forgot it). And I never knew, that it is possible to export a single value of the global varialbles … now i do.

Unfortunatly my VOP is is still rendering with a white area where it should be transparent. I have attached a screenshot of my wiring and parts of the shader view. When this vop is attached to my geometry in the scene, it is rendered the same as you see in the shader view. The white should be transparent. I have no input for the mapfile by now, because I want to let this work first for this unique setting. Instead I have the UV inputs to map the shader to UVs of the geometry. I hope this is not disturbing.

One error I could have made, could be the creation process of the Texture File. I can't remember that I made a photoshop file with a true alpha before. I always made gifs or similar where you just have to hide the background layer to have the transarency in the final file. So I gave that a new try in the morning. I took my photoshopfile, and added an explicit alpha channel where the tree area is finaly black, and the transparent area above is white. I saved this out as a tiff including alpha channels. Then I opened houdini and imported the file. When I select the different channels for viewing, everything seems okay. Viewing the alpha channel correctly displays the black and white mask. Then I selected save frame, and saved the image as random access file. C and A where not greyed out, and where pointing to C and A as I expected. Then I use this rat file as the input rgba in the texture node. Before yesterday I was not 100% sure if the texture file was okay, but now I am certenly sure for 99% ;-)

But unfortunatly, as you can see in the shader view, the alpha is still not blended out. If the alpha was swapped wrong, the trees would be transparent, but they are not. So if, I would simply invert. But I dont think that is the case. The OF Operator has nothing to play around with. KD is promoted outside, and set to 1 shows the complete image with no transparency, and set to zero makes the image complete invisible. Nothing to play around with, too.
The key for the transparency is in the multipliers. But they seem to be correctly wired as I can see it in the book magic of houdini, and especially in your example.
Any idea, what could have gone wrong?
- Frankie

Attachments:
z-rgbaexample.jpg (54.0 KB)

User Avatar
Member
112 posts
Joined: June 2008
Offline
So I gave that a new try in the morning. I took my photoshopfile, and added an explicit alpha channel where the tree area is finaly black, and the transparent area above is white.

I might be wrong here (blind leading the blind!?), but if the area above your trees is white, then you are multiplying white when you should be multiplying the blacks.
  • Quick Links