top of page

FEATURED SCHOOL

CG Spectrum Film and Game School: Online with HQ in Melbourne, Australia

​CG Spectrum Film and Game School gives students the opportunity to receive a quality education online through personalized training by the best artists in the industry.  What follows is a history of the school and a free sample Houdini tutorial: Creating Render-Time Interior Detail for Fractured Geometry by Framestore's Ben Fox.

History of CG Spectrum Film and Game School

It’s 2011 and Bardel Entertainment’s Lead Animator, Jeff Pepper, is struggling through a pile of applications and demo reels. “I’d look at an endless number of applications of students just out of a 3 or 4-year animation course,” said Jeff. “And we couldn’t find a suitable candidate to hire.”
 
Filling entry-level roles was becoming a chore. But Jeff and his good friend Nick Fredin, an Animator at Weta Digital at the time, had an idea: make an online school taught by the industry to better serve the industry.

“We started CG Spectrum after we were both in-charge of hiring at studios.” Jeff said. “Whenever we would hire recent graduates I would find myself teaching them the basics and to focus on specific skills, because they were so

under standard.  Those techniques became the cornerstone of our curriculum.”

That same focus remains at CG Spectrum 5-years later. Teach people to fill the needs and meet the standards of major studios. Industry professionals have built every one of the online Diplomas and Advanced Diplomas. Artists working in the most successful studios worldwide - think Disney, Ubisoft, Dreamworks - teach them. CG Spectrum courses cover the skills and software needed to create the most spectacular films and video games in the world.

Rather than generalists who spend four years learning a little of everything, as most degree courses teach, the industry is crying out for artists who truly excel in one particular area. Specialists who can be relied on to achieve a high standard of work on a daily basis. That’s the type of graduates CG Spectrum creates.
 
“Our aim here at CG Spectrum is to give our students the skills needed to work in the industry. We want to have the highest placement rate of graduates working in their dream jobs. 90% of our first batch of students got studio jobs.” 

And it’s the many options available to CG Spectrum that gives them the best chance at achieving that goal. Check out a full list of the courses they offer here.

On top of 1 or 2 year diplomas, CG Spectrum is also one of the only schools in the world that offers 1-on-1 industry diplomas. These software specific diplomas allow students to add to or hone their existing skills in software like Nuke compositing, ZBrush digital sculpting and Houdini FX.

Below, CG Spectrum mentor Ben Fox will be giving you a quick taste of what the Houdini FX 1-on-1 Diploma is like.

Tutorial: Creating Render-Time Interior Detail for Fractured Geometry
By Ben Fox​

Interior detail added as render-time displacement based on volume sampling of an SDF volume.

 

​Houdini is in a league of its own when it comes to flexibility and user control. Ask 5 equally talented Houdini artists to complete an FX task and you may end up with 5 unique approaches with great results. I find that this characteristic of the software makes it so inspiring. Houdini rewards you for spending time deepening your understanding of the software.
 
One of the first places I look for inspiration is within Houdini’s own nodes. While some nodes are pre-compiled operators, others contain navigable subnetworks that allow you to see the inner workings of the operation they perform. These networks can be a treasure-trove of concepts that may be hard to learn elsewhere. A recent discovery I made was found while I was digging into the Voronoi Fracture SOP to see how the operator added interior detail to the fractured geometry.  This article will break down the main concepts of my findings.

Comparison of pre-compiled nodes on the Left and the sub-network inside a Voronoi Fracture SOP.

 

As a mentor for CG Spectrum’s Houdini VFX program, I often work with students who have backgrounds with other 3D packages. They have come to CG Spectrum to broaden their skill-set to include Houdini. One of the biggest hurdles to their learning is moving beyond preconceptions about what is possible from a 3D program. So many things that are easy in Houdini are complex (or impossible) in other 3D programs. Component attributes can be easily modified and queried. Geometry tools can be used at render-time. You can create a pig head with a couple key strokes. All amazing Houdini features.
 
Getting a good fracture pattern for an RBD simulation is an essential part of getting a believable looking final effect. Being able to quickly edit your initial fracture can be invaluable to refining the resulting simulation. The amount of control that Houdini offers for creating a fractured mesh is often daunting for new users. After the main fracture, interior detail can be used to help fractured geometry look like the correct material. You may want to create concrete blocks with a rough bumpy interior fracture, while a glass window will be much smoother. 

A basic fracture of the pig head test geometry asset using the Voronoi Fracture SOP.

​When reviewing student’s projects, I was always shocked by how much cook time the “adding interior detail” step of the Voronoi Fracture SOP took. In my own work, I always managed it by being conservative in the size of the detail I added. But I wanted to find some options for taking control of how the interior detail is added. The Voronoi Fracture SOP has some basic control but updating can be slow. Adding very small details with a high noise frequency would require a very high-resolution mesh which adds massive overhead to your scene and caches.

Interior detail added from the Voronoi Fracture SOP can be slow to update and refine. 

As I mentioned earlier, the first place I looked for a solution was inside the Voronoi Fracture SOP. The Interior Detail section had just the information I was looking for. The main control for the interior detail is driven by the computed depth attribute generated from an SDF volume and an Attribute VOP SOP with a Volume Sample VOP inside.
 
As soon as I discovered that the results were created using VOPs I knew I could shift this step into the material and generate it at render time.  The flexibility of VOPs and the fact that they can be used in geometry contexts as well as materials at render-time is such a powerful feature that gives the artist total control of where you are investing your processing time. A reasonable amount of interior detail can take a significant amount of time to calculate for each parameter change. By moving this operation to the material the speed improvement was significant and allows a much higher level of detail to be added without creating unmanageably dense meshes.

​A rest SOP is used on the geometry before packing and an SDF is generated from the non-fractured geometry and saved to disk.

To move the interior detail step into the material, two SOP level steps are required. A rest attribute needs to be added to the fractured geometry before it gets packed, this can be done with a simple rest SOP. This attribute will be referenced in our material. Second, we need to create an SDF volume of the non-fractured geometry and save this single volume to disk. The Iso-Offset SOP and a file writing SOP of your choice (File, File Cache, ROP Output Driver, etc.) can be used to easily generate and save this data to disk. As I side note, the Iso-Offset SOP does have a file writing option, but the .simdata format that it defaults to doesn’t work for this method and I couldn’t get the Iso-Offset SOP to reliably create a .bgeo file.
 
With the rest attribute added to the pre-packed geometry and the SDF written to disk, you can pack your geometry for simulation with Bullet and start reaping the benefits of not having the interior detail adding unnecessary weight to your scene at this point. One of the best things about this method is that you don’t need to unpack your geometry to access the rest attribute.

The packed geometry can be rendered directly without having to unpack to access any data.

​When you are ready to start rendering, it’s time to add the interior detail as displacement. This setup can be added to any material. The next image shows the base geometry rendered with a simple mantra surface to give a clear representation of the result without any detail added, either as geometry or displacement.

The cached geometry rendered with a basic material as a starting point.

​To add our displacement, we just need to add a Volume Sample VOP to the material and whatever noise you are using for your displacement. A Rest Position VOP is used to get the correct sample position for our SDF volume as well as a static position value for the noise VOP.

The most basic implementation of using a Volume Sample VOP sampled by rest position to drive noise amplitude.

​But you can add more control through ramp parameters and visualization options if you would like more feedback on just what you are working with.  Since the Volume Sample VOP returns a simple float value, it’s very easy to drive a wide array of effects from this one sample operation. Here, two ramps have been added. A scalar ramp parameter, to remap the depth attribute falloff and a RGB ramp that outputs a color into the materials emissive color to get some visual feedback of how the depth is being mapped. You can also divide the depth result by a float parameter to shift the depth range as well for your scene scale.

Additional features, driven by the Volume Sample VOP output, can be added to the material to further refine the result.

From this image, it should also be obvious that this method shouldn’t only be considered when adding interior detial via displacement. You could also use sampled volume data for things like color and other material properties without needing to worry about UVs. By moving these steps to render time operations, we can avoid storing tons of extra attributes on our geometry and make more changes that don’t require changes to be propogated through your whole network
 
Ask a non-Houdini 3D artist if they could use volume data to add interior displacement to simulated fractured geometry at render-time and most of them could sink quite a bit of time into trying to find a solution. That is, if they didn’t just laugh at the request in the first place. This breakdown is just one example of how Houdini allows artists to easily leverage data to create polished and complex looking FX. It should also encourage you to dig deeper into Houdini to find what advanced and optimized workflows you can discover.

bottom of page