Jump to content

Texturing Workflow Help


Justin K

Recommended Posts

Hello All, 

This is a bit of a general advice question so bear with me here.  I have a 'creature' I have designed on a point and sop level (see attached--pics as well).  It is similar to a sea worm, its entire outer portions are undulating over time.  I did the entire animation set up on the point level.  To create a single mesh I converted the entire thing into a vdb at the end of the network, smoothed it, and then converted it back to polygons again.  Ive attached a base model without the head or tail assets for your perusal.

 

Now I have to set up a  shading and texturing workflow, and I was hoping you could point me in the right direction.    The art director is going to want to eventually have pretty precise control over the look of the creature so I am not sure procedural shaders are going to be enough.   The creature has skin that is changing over time--not drastically, but it is still changing, and the deformation along the edges is enough to make we worry a bit about the uvs.  Plus, if I want to make multiple iterations of the creature, animating differently across other curves, Ive essentially negated all the efforts I made in the first place to make this procedural if I do go the UV route for one hero asset!  --each vdb to polygon conversion will generate a new mesh every single time I make a change somewhere up above in my network..........  

My question is this then, what would you do to texture this creature?   I understand this is a bit vague--and there are a lot of variables and questions I havent answered, but just drop of a hat, with a look at the model, would you go with procedural shaders, or does it make more sense to just lay out the UVs on a rest frame, and texture it traditionally?    

 

To make this more specific Ill create an arbitrary scenario.  Client looks at the creature and requests less undulation, and larger flaps.  Easy enough to adjust on the Houdini end if you look at the way I built it.  However, this means creature shape changes, and the mesh changes.  If the object was textured elsewhere with uvs, we have to redo the textures in Mari.  If we could somehow keep the textures in Houdini, this back and forth might be alleviated.

Okay, next step, creature gets approved, now they want six of the creatures, each with slightly different coloring and undulation speed, moving along a series of loosely related curves.  Easy enough to change the animations and make some subtle changes in shape because Houdini is awesome!  But then the texturing and shaders are the elephant in the room again.  

 

 

I hope this is not too vague, but Im just looking for general suggestions not complete solutions as I am a bit new to the shading and texturing in Houdini.    Its a bit interesting to me-- I like using Houdini VDbs, but usually because they are used for simulations procedural shaders are the best solution---that MIGHT not be the case here.   And if you think I might have to rethink my work flow too that is something I am by no means opposed to either.  

Looking for a bit of help!    

Thanks!

 

 

 

 

wavy_littleguy_v002.hipnc

Screen Shot 2018-02-26 at 10.32.52 AM.png

Screen Shot 2018-02-26 at 10.34.20 AM.png

Link to comment
Share on other sites

Hi,

you can do a lot with procedural texturing in houdini, but if you want very real looking thing that will hold up a closeup shot, you will likely have to do some amount of work by hand (sculpting, mainly but depends what is your visual goal). If the goal is quantity and variability rather than fine details I think you should be able to do the entire shading procedurally. You may want to do one hero version and keep rest of the variations procedural. Also, sometimes works well if you sculpt some general details and then project those on specific areas of your model in Houdini. It really depends what exactly are you looking for.

I'm not sure if I understood where animation takes place in your workflow but you definitely want to keep that separate from modeling so you can change the animation at any time without destroying any of your other work. VDB is fine as far as you make the vdb mesh before animation (you definitely don't want to have your mesh changing over time).

Fully procedural texture will definitely take more time than painting, but having multiple model variations or mesh changes is mostly for free and you are uv independent. I tend to start procedurally on every asset, get it as far as I can and then paint the rest. 

Link to comment
Share on other sites

4 hours ago, davpe said:

VDB is fine as far as you make the vdb mesh before animation (you definitely don't want to have your mesh changing over time).

I have related question, if you don't mind, Justin!

In a case when VDB conversion is almost the last step of you modeling process (you will do UVs after VDB conversion) and you would like to animate your model...
Let's say we have default L-System animated tree and you convert it to VDB and you wish to paint it. It's obvious that animation quite easy to produce somewhere before VDB conversion, but this will cause mesh changing over time. What the solution for such situations? 

What is coming to my mind: reference copy L-System node and use it for rigging VDB mesh with UVs and animate parameters of the copy somehow "on top" of the original (not affecting it). But what if the model is done with much more complex network then one node, how to animate parameters "on top" and more issues raised with this solution...

I attached the example file with L-system.

VDB_animate_01.hipnc

Edited by kiryha
Link to comment
Share on other sites

6 hours ago, davpe said:

I'm not sure if I understood where animation takes place in your workflow but you definitely want to keep that separate from modeling so you can change the animation at any time without destroying any of your other work. VDB is fine as far as you make the vdb mesh before animation (you definitely don't want to have your mesh changing over time).

 

Thanks for the help Dave.   As of now I am trying to work through what you said and come to a solution.   Now based on my understanding of what you are saying, I may or may not have a fundamental problem, because at this point my model is built off of the animation itself.   I will say that the number of polygons and points on my model even now is NOT changing over time, which seems to be at least half the battle. 

Might be a bit of overkill but I've attached a series of pictures that show the progression of how the 'character' is being generated so you can critique the workflow if you have the time?   It seems to me that  I that could follow your suggestion to separate the animation from model in two ways.  

1) I could continue as I have been but with a few modifications-

     I need a rest frame of some kind--similar to a tpose, but perhaps I dont need to build a model first separately to do this?  Lets say I have a frame where the character is not animating, the wings are not bent and the curve the body is moving along is flat.  This could stand as my rest pose.   This could be the point where I lay out my uvs if need (as you say might want to restrict the uv workflow to a nonchanging hero version), but must importantly generate the vertex attributes that should stay the same through the animation regardless of deformation.   I just need to make sure this is no recalculation of vertices or uvs over time.  Correct?  

 

The alternative.  A more traditional rig.  The model is build in sops, but then the rig itself is built in chops and bound to the character afterwards. Only issue in that case is I would have to learn how to rig traditionally in houdini, which at this point is daunting , but I am not opposed to if need be.  

 

Looking forward to hearing back.  Thanks!  

 

 

Screen Shot 2018-02-27 at 11.12.07 AM.png

Screen Shot 2018-02-27 at 11.12.34 AM.png

Screen Shot 2018-02-27 at 11.13.56 AM.png

Screen Shot 2018-02-27 at 11.14.59 AM.png

Screen Shot 2018-02-27 at 11.16.59 AM.png

Link to comment
Share on other sites

2 hours ago, kiryha said:

I have related question, if you don't mind, Justin!

In a case when VDB conversion is almost the last step of you modeling process (you will do UVs after VDB conversion) and you would like to animate your model...
Let's say we have default L-System animated tree and you convert it to VDB and you wish to paint it. It's obvious that animation quite easy to produce somewhere before VDB conversion, but this will cause mesh changing over time. What the solution for such situations? 

What is coming to my mind: reference copy L-System node and use it for rigging VDB mesh with UVs and animate parameters of the copy somehow "on top" of the original (not affecting it). But what if the model is done with much more complex network then one node, how to animate parameters "on top" and more issues raised with this solution...

Kiryha, as to your question,  

Being completely honest, I personally would approach this with procedural shading rather than a uv approach.  Uvs would be too static to look convincing as the tree grows--unless you are trying to animate textures themselves, in which case you might as well be driving this within the shader, and then using masks to 'art direct' the look of the bark along the surface.   I am not an expert by any means though so take what I say with a grain of salt.     

 

check out this thread. 

 

 

There is a lot of useful info in there on how to approach growth within houdini general.  Simon Fielder has great videos on volume trails that can also be used to generate tree like structures procedrually. 

 

 

Try something like that, than start getting crazy with noises and you might get a satisfying result without uvs.  Youll notice that the uv based options even within that thread are a bit limited but might work.  Hope this helps!  here are a few picks of things ive rendering using Simon Fielders approaches

Hope this helps!

 

 

volumetrails_1920X1080_SRGB.tiff

particles_01_1920X1080_SRGB.tiff

mesh__1920X1080_SRGB.tiff

Link to comment
Share on other sites

The L-System was just a simple example of the issue - how to layout UVs for painting after VDB conversion of animated model. 
Looks like the only solution is to animate a model after VDB manipulations, and I wish to understand if its correct statement and how it could be achieved.

I was thinking we both speaking about the same issue, that's why I asked in this thread. But after I learn that your point count does not change over the time even if you model is animated I guess its a bit different. 
I have no idea how its possible for your setup, but anyway, never mind, and sorry for my intervention :) 

 

Link to comment
Share on other sites

18 minutes ago, kiryha said:

The L-System was just a simple example of the issue - how to layout UVs for painting after VDB conversion of animated model. 
Looks like the only solution is to animate a model after VDB manipulations, and I wish to understand if its correct statement and how it could be achieved.

I was thinking we both speaking about the same issue, that's why I asked in this thread. But after I learn that your point count does not change over the time even if you model is animated I guess its a bit different. 
I have no idea how its possible for your setup, but anyway, never mind, and sorry for my intervention :) 

 

Ah I see.  Best of luck to you!  Just to stress again, do check out that first thread for some help!

  • Like 1
Link to comment
Share on other sites

Quote

I may or may not have a fundamental problem, because at this point my model is built off of the animation itself. 

Yes that is a fundamental problem :)

Quote

I will say that the number of polygons and points on my model even now is NOT changing over time, which seems to be at least half the battle. 

As far as the mesh topology is not evaluated for every frame you may be fine with regards to texturing, still you've got something that may give you a lot of headache later (i mean with the animation baked into the model).

Concerning animation,  as I mentioned you should keep that separate. There are several options for transfering the animation onto the model that's ready to render. The most straightforward one is to use attribute copy SOP to match point positions of two identical meshes. Animation can be done in any 3d package and then brought back to Houdini as long as the mesh stays intact.

  • Thanks 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...