tools

Mix 04 by Xuan Prada

Hello patrons,

First video of 2022 will be a mix of topics.

The first part of the video will be dedicated to talk about face building and face tracking in Nuke. Using these tools and techniques will allow us to generate 3D heads and faces using only a few photos with the help of AI. Once we have the 3D model, we should be able to track and matchmove a shot to do a full head replacement or to extend/enhance some facial features.

In the second part of the video I will show you a technique that I used while working on Happt Feet to generate foot prints and foot trails. A pretty neat technique that relies on transferring information between surfaces instead of going full on with complex simulations.

This is a 3.30 hours video, so grab yourself a cup of coffee and enjoy!
All the information on my Patreon channel.

As always, thanks for your support!

Xuan.

Lookdev rig for Houdini by Xuan Prada

Hello patrons,

In this video I show you how to create a production ready lookdev rig for Houdini, or what I like to call, a single click render solution for your lookdevs.

It is in a way similar to the one we did for Katana a while ago, but using all the power and flexibility of Houdini's HDA system.

Talking about HDA's, I will be introducing the new features for HDA's that come with Houdini 18.5.633 that I think are really nice, specially for smaller studios that don't have enough resources to build a pipeline around HDA's.

By the end of this video you should be able to build your own lookdev tool and adapt it to the needs of your projects.

We'll be working with the latest versions of Houdini, Arnold and ACES.

As usually, the video starts with some slides where I try to explain why building a lookdev rig is a must before you do any work on your project, don't skip it, I know it is boring but very much needed. Downloadable material will be attached in the next post.

Thank you very much for your support!

Head over to my Patreon feed.

Xuan.

Houdini scatterers 2/2 by Xuan Prada

Hello patrons,

This is the second (and last) part of Houdini scatterers. We are going to take the tools that we made in the first video and see how we can use them to create complex and efficient scattering systems for your VFX shots, specially useful when dealing with huge environments.

I will show you some of my favourite worflows and share some techniques that I've used in the past in combination with the HDAs that we created in this series.

For those of you in tiers with downloadable material, you will have access to another post with some links to get the files.

As usual feel free to contact me with questions, suggestions, ideas, etc.
And if you like my content, please help me out and recommend it to you work mates.

All the info on my Patreon feed.

Thanks a lot for your suppor!
Xuan.

Houdini topo transfer - aka wrap3 by Xuan Prada

For a little while I have been using Houdini topo transfer tools instead of Wrap 3. Not saying that I can fully replace Wrap3 but for some common and easy tasks, like wrapping generic humans to scans for both modelling and texturing, I can definitely use Houdini now instead of Wrap 3.

Wrapping generic humans to scans

  • This technique will allow you to easily wrap a generic human to any actor’s scan to create digital doubles. This workflow can be used during modeling the digital double and also while texturing it. Commonly, a texture artist gets a digital double production model in t-pose or a similar pose that doesn’t necessary match the scan pose. It is a great idea to match both poses to easily transfer color details and surface details between the scan and the production model.

  • For both situations, modeling or texturing, this is a workflow that usually involves Wrap3 or other proprietary tools for Maya. Now it can also easily be done in Houdini.

  • First of all, open the ztool provided by the scanning vendor in Zbrush. These photogrammetry scans are usually something around 13 – 18 million of polygons. Too dense for the wrapping process. You can just decimate the model and export it as .obj

  • In Maya align roughly your generic human and the scan. If the pose is very different, use your generic rig to match (roughly) the pose of the scan. Also make sure both models have the same scale. Scaling issues can be fixed in Wrap3 or Houdini in this case, but I think it is better to fix it beforehand, in a vfx pipeline you will be publishing assets from Maya anyway. Then export both models as .obj

  • It is important to remove teeth, the interior of the mouth and other problematic parts from your generic human model. This is something you can do in Houdini as well, even after the wrapping, but again, better to do it beforehand.

  • Import the scan in Houdni.

  • Create a topo transfer node.

  • Connect the scan to the target input of the topo transfer.

  • Bring the base mesh and connect it to the source input of the topo transfer.

  • I had issues in the past using Maya units (decimeters) so better to scale by 0.1 just in case.

  • Enable the topo transfer, press enter to activate it. Now you can place landmarks on the base mesh.

  • Add a couple of landmarks, then ctrl+g to switch to the scan mesh, and align the same landmarks.

  • Repeat the process all around the body and click on solve.

  • Your generic human will be wrapped pretty much perfectly to the actor’s scan. Now you can continue with your traditional modeling pipeline, or in case you are using this technique for texturing, move into Zbrush, Mari and or Houdini for transferring textures and displacement maps. There are tutorials about these topics on this site.

Transferring texture data

  • Import the scan and the wrapped model into Houdini.

  • Assign a classic shader with the photogrammetry texture connected to its emission color to the scan. Disable the diffuse component.

  • Create a bakeTexture rop with the following settings.

    • Resolution = 4096 x 4096.

    • UV object = wrapped model.

    • High res object = scan.

    • Output picture = path_to_file.%(UDIM)d.exr

    • Format = EXR.

    • Surface emission color = On.

    • Baking tab = Tick off Disable lighting/emission and Add baking exports to shader layers.

    • If you get artifacts in the transferred textures, in the unwrapping tab change the unwrap method to trace closest surface. This is common with lidar, photogrammetry and other dirty geometry.

    • You can run the baking locally or on the farm.

  • Take a look at the generated textures.

Houdini as scene assembler, part 01 (of many) by Xuan Prada

It’s been a while since I used Houdini at work, the very first time I used Houdini on a show it was while working on Happy Feet 2, it was our main scene assembler for the show. Look-dev, lighting and rendering was all done in Houdini and 3Delight.

From there I never used Houdini again until I was working on Geostorm at Dneg. Most of the shots were managed with Houdini and PrMan. That is all my experience with Houdini in a professional environment. No need to say that I have only used Houdini for assembly tasks, look-dev, lighting and rendering, nothing like fx or other fancy stuff.

The common thing between the two shows where I used Houdini as assembler is that we had pretty neat tools to take care of most of the steps through the pipeline. Becasue of that I can’t barely use Houdini out of the box, so I’m going to try to learn how to use it and share it here for future reference.

During my time working at facilities like MPC, Dneg or Framestore, I have used different scene assemblers like Katana, Clarisse or other propietary tools. My goal is to extrapolate my knowledge and experience using those software to Houdini. I’m pretty sure that I’d be using tools and techniques in the wrong way just because Houdini has a different philosophy than other tools or just because my lack of knowledge in general about Houdini and proceduralism. But anyway, I’ll try to make it work, if you see anything that I’m doing terribly wrong, please let me know, I’ll be listening.

I’ll be posting about stuff that I’m dealing with in no particular order but always assembly oriented, do not expect to see here anything related with fx or more “traditional” use of Houdini. Most of the stuff is going to be very basic, specially at the beginning but please bare with me, it will get more interesting in the future.

If you are assembling a scene one of the first steps it would be to bring all your assets from other applications. You can of course generate content in Houdini but usually most of you assets will be created in other packages, being Maya the most common one. So I guess the very first thing you’d have to deal with is how to import alembic caches. If you are working in a vfx facility chances of having automated tools to setup your shots for you are pretty high. Launching Houdini from a context in a terminal will take care of everything. If you are at home or starting to use Houdini in a vfx boutique you will have to setup your shots manually. There are clever and easy ways to create Houdini templates for your show/shot but we will leave this topic for future posts.

To bring your assets as alembic caches just create a file node, step inside and replace the existing file for another file node pointing to your alembic cache, or just use the existing file node and change the path to read you alembic cache.

If you are look-deving a character lets say, it is completely fine to look at the full geometry in the viewport. If you are assembling a big scene like a city or a space ship you’d probably want to change your viewport settings to something like bounding boxes. There are better ways of dealing with bounding box without loading the geo, more to come soon.

Assets are usually complex and we try to keep everything tidy and organised by naming everything properly and structuring groups and hierarchies in a particular way that makes sense for our purposes. The unpack node will allow you to access to all the different parts and componentes of the alembic caches and to perform different operations later on. The groups can be selected based on the hierarchies created in Maya or based on wildcards. It is extremely important to use a clever naming and structuring groups following certain logic to make the assembly process easier and faster.

The blast node will help you also to access to the information contained in the alembic cache and remove whatever you don’t need to use for a particular operation. You can also invert the selection to keep the items that you wrote in the group field and get rid of the rest.

The group node is another very useful node to point to different groups in your alembic caches. Again based on Maya grouping and wildcards.

That is it for now in that sense, there are many ways to manipulate alembic caches but we don’t need to talk about that just yet. In these first posts I will be talking mostly about bringing assets, working with textures and look-dev. That is the first step for assembling a shot, we need assets ready to travel trough the pipeline.

Uv mapping is key for us, a lot of tasks performed in Houdini use procedural UVs or no UVs at all. This is not the case for us. Asset always have proper UV mapping. Generally speaking you will do all the UV related tasks in Maya, UV Layout or similar tools. In order to see the UVs in Houdini we need to unpack the alembic cache first, then we will be able to press “5” and look at the UVs.

Use a quick uv shade node to display a checkered texture in the viewport. You can easily change the size of the checker or use a different texture. There is also a group field that you can use for filtering.

Not ideal but if you are working on extremely simple assets like walls, grounds, maybe terrains, it is totally fine to create the UVs in Houdini. Houdini UV tools are not the best but you will find yourself using them at some point. The uv texture node crates basic projections like cylindrical, orthographic, etc.

The uv unwrap node create automatic UVs based on projection planes.

The uv layout node is a tools for packing your UVs. Using a fixed scale you can distribute the UVs in different UDIMs.

The auto uv node is actually pretty good. It is part of the game development tools shipped with Houdini. You need to activate this package first, just go the shelf, click on the plus button and look for game development tools. Then click on the icon update toolset to get the latest version.

The auto uv tools has different methods for UVing and for packing, it is worth trying them, it works really well specially with messy objects.

The uv transform node deals with anything related to moving, translating and rotating UVs. You don’t really want to do this here in Houdini, but if you have to, this is the tool. I use it a lot if I need to re-distribute UDIM tiles.

Attribute create node (with the following parameters) allos you to create a parameter to move UVs to a specific UDIM. Then add a uv layout node and set the packing method to UDIM attribute.

Breaking a character's FACE IN MODO by Xuan Prada

A few years ago I worked on Tim Burton's Dark Shadows at MPC. We created a full CG face for Eva Green's character Angelique.
Angelique had a fight with Johnny Depp's character Barnabas Collins, and her face and upper body gets destroyed during the action.

In that case, all the broken parts where painted by hand as texture masks, and then the FX team generated 3D geometry and simulations based on those maps, using them as guides.

Recently I had to do a similar effect, but in this particular case, the work didn't require hand painting textures for the broken pieces, just random cracks here and there.
I did some research about how to create this quickly and easily, and found out that Modo's shatter command was probably the best way to go.

This is how I achieve the effect in no time.

First of all, let's have a look to Angelique, played by Eva Green.

 

  • Once in Modo, import the geometry. The only requirement to use this tool is that the geometry has to be closed. You can close the geometry quick and dirty, this is just to create the broken pieces, later on you can remove all the unwanted faces.
  • I already painted texture maps for this character. I have a good UV layout as you can see here. This breaking tool is going to generate additional faces, adding new uv coordinates. But the existing UV's will remain as they are.
  • In the setup tab you will find the Shatter&Command tool.
  • Apply for example uniform type.
  • There are some cool options like number of broken pieces, etc.
  • Modo will create a material for all the interior pieces that are going to be generated. So cool.
  • Here you can see all the broken pieces generated in no time.
  • I'm going to scale down all the pieces in order to create a tiny gap between them. Now I can see them easily.
  • In this particular case (as we did with Angelique) I don't need the interior faces at all. I can easily select all of them using the material that Modo generated automatically.
  • Once selected all the faces just delete them.
  • If I check the UVs, they seem to be perfectly fine. I can see some weird stuff that is caused by the fact that I quickly closed the mesh. But I don't worry at all about, I would never see these faces.
  • I'm going to start again from scratch.
  • The uniform type is very quick to generate, but all the pieces are very similar in scale.
  • In this case I'm going to use the cluster type. It will generate more random pieces, creating nicer results.
  • As you can see, it looks a bit better now.
  • Now I'd like to generate local damage in one of the broken areas. Let's say that a bullet hits the piece and it falls apart.
  • Select the fragment and apply another shatter command. In this case I'm using cluster type.
  • Select all the small pieces and disable the gravity parameter under dynamics tab.
  • Also set the collision set to mesh.
  • I placed an sphere on top of the fragments. Then activated it's rigid body component. With the gravity force activated by default, the sphere will hit the fragments creating a nice effect.
  • Play with the collision options of the fragments to get different results.
  • You can see the simple but effective simulation here.

  • This is a quick clay render showing the broken pieces. You can easily increase the complexity of this effect with little extra cost.
  • This is the generated model, with the original UV mapping with high resolution textures applied in Mari.
  • Works like a charm.

MeshLab by Xuan Prada

Just pointing up to a great tool that I’ve been using lately.
It’s a fast, stable and free .obj viewer for Mac, I’m using it a lot while scanning on set, just works great! give it a try.
All the information here http://meshlab.sourceforge.net/

And a couple of screenshots.

byWord by Xuan Prada

At the beginning of the days I used my iPad just for fun but now I use it in a professional way for a lot of different tasks.

This time I’d like to talk to you about one of the applications that I most use on my iPad every single day.

I’m talking about byWord.
It’s a simple text editing software for Mac, iPad and iPhone. Nothing fancy here you might think, and you’re probably true, but the good thing about byWord is that you don’t need to think about anything but writing.
byWord is simple, clear, tidy and will keep you focus on writing, that’s it.

I use it for all writing related stuff, from blogging to outline courses. From planning shootings to write emails. You won’t be distracted by things like type fonts, colors or menu tools.

byWord has nice features like syncing with Dropbox or iCloud, so you can keep all your content in different devices or in the cloud.

Another nice feature is the dark theme which turns your screen to black and your text to white.
This is very useful for dailies sessions, you can write down feedback easily from your vfx supe under dark light conditions in the daily room.
I usually write a few words and then on my desk I just expand all this key words to complete a text with the whole feedback given and a small strategy to address it.

If you are involved in writing related tasks go to http://www.bywordapp.com and give it a try.

Mari 2 Maya script by Xuan Prada

I was lucky enough to find this simple but effective script to import your Mari textures in to Maya in a really quick way.
It is a Python script created by Kushal Goenka.

Follow these instructions to install the script.

# Mari2Maya – PyMEL Script
# Written by Kushal Goenka ( Animation Maniac )
# kushalgoenka@gmail.com
# http://AnimationManiac.deviantART.com

# Description:
# This Script Automates the Process of Setting up given MARI Texture Patches
# into one Single Layered Texture in Maya.

# Setup:
# Copy Script to ‘\maya\2012-x64\scripts’ folder. ’2012-x64′ might by different.
# Source the Script. ( Script Editor > File > Source Script… )
# Call the Python Command: ‘Mari2Maya()’ (or add to Shelf)

# Requirements:
# Export textures from MARI with ‘$UDIM.extension’ at the end.
# For Example: $ENTITY_$CHANNEL_$UDIM.tif >> Castle07_color_1003.tif

# Instructions:
# 1. Drag Texture Files into Hypershade.
# 2. Drag Select all Imported Texture File Nodes in the Hypershade Work Area.
# 3. Run the Script. via ‘Mari2Maya()’ Let the Magic happen.

Download.