Rookie Awards 2024 - Open for Entries!
BATTLE OF VINDOBONA
Share

BATTLE OF VINDOBONA

Raphael Stiep
by raphaelstiep on 30 Mar 2024

Recreation of the battle opening scene from Ridley Scotts “The Gladiator”

0 61 0
Round of applause for our sponsors

REFERENCES AND PLANNING

This week's given theme was “Romen Empire / Greek Mythology.” Since I’m a huge fan of the Movie “the Gladiator” I immediately wanted to challenge myself by recreating the opening battle scene “Battle of Vindobona” from Ridley Scott’s masterpiece. After choosing one specific scene, the project started like any good project should by looking for references. My biggest goal was to nail the shot's look and give it that cool, cold feeling. Here are some examples of the References and how I usually go about breaking down a shot into all the various Aspects. One of the Rules I tried following for this environment was what I heard the Environment Artist James Hodgart call "The Rule of Three.” It says that the minimum amount of variation to aim for in your assets is three of every type. This not only allows you to maintain a good variation but also your sanity while building a large-scale scene.

MY GOALS FOR THIS PROJECT

I always try to learn something new and really challenge myself in the Mid-/End term projects here at PIXL VISN Media Arts Academy. These intense 1-week projects force you to apply all the knowledge we’ve been learning and it really sears into your brain leaving painful lessons. (which may or may not leave a mark 🙂)

So here are my goals I had for this week's project:
-->  artistically match the look of The Gladiators opening scene
--> learn the workflow using Houdini LOPS (Lighting Operators) and slowly dabble into the USD workflow that comes with it
--> Improve my CG compositing skills by adding various elements after rendering. 

SCENE BUILDING / LAYOUT

Blockout

I decided to do the camera animation and rough blockout of the shot in Maya since it is still the tool I feel most comfortable with. After I was comfortable with the composition, I exported all the geo and the camera into Houdini.

Foreground Movement

Now I got to the point I was scared most about: creating the roman soldiers in the foreground. The final approach I went with was to build a library of animations using Mixamo, then blending some of the animations together and adding personal touches by giving them some spears or tweaking some of the movements. Those animations were then brought into Houdini as alembic file caches. Looping most of the animations either normally or in a zig-zag pattern allowed me to copy them to points using a frame offset attribute to add even more breakup to it. To finish the foreground movement, I quickly simulated some banners that were made in Maya and added one legionary manually walking into the scene.

Another cool detail I really enjoyed in the Foreground was the procedural palisade tool which allowed me to take any kind of wood log model and turn it into a palisade adjusting its look with a few sliders and then drawing it into my scene along a curve. 

Background Forest

For the background I created 5 different pine trees using Speed Tree. Since the forest in the reference has a unique shape, it was my best bet to create the trees myself. This forced me to start learning Speed Tree and showed me the amazing potential it has for creating specific environments. Using those 5 trees to scatter them in the Background I then created the forest.  

Background Army

The army crawling out of the forest was done pretty much the same way as the roman army in the foreground. I used the same attributes as for the forest making sure the points where I copied the soldiers to are not colliding with the tree trunks themselves. Because the background army is so big I had huge performance problems from that point onwards. The reason for that was that I did not use packed Geometry for the foreground legionaries to be able to add a for each loop to the copy to point on the SOP level to create the frame offset on the animations. For normal scattering this would not be a problem since you can for example just use the “Instancer” LOPS Node which increases the performance by a lot. Since I was dealing with animations which I wanted to offset per point this gave me some problems though. There is a LOPS Node called “retime instances” which would do the trick, only it requires you to feed it with actual USD Assets instead of just some “SOP Import” geometry. Since I did not have the time to convert all my animations to USD Assets, I ended up not adding a frame offset on the Background Army which is clearly visible closeup. Luckily though, it is far enough away for me to get away with the movement being way too uniform.

Midground

Finally, time to connect all the elements and add a lot of detail. For the midground I used Quixel Assets, which I semi automatically converted into a USD Library. This allowed me to add them into a “Stage Manager” and then feed them into the LOPS “Instancer” Node. Connecting different Attributes and using some self-Made scale and rotation randomizing HDA’s, I could quickly iterate over different distributions of the midground assets and create the look I had in mind for it. 

Here is a step-by-step Breakdown of the different scene elements coming together:

RENDERING

Since I was creating this scene using Houdini I wanted to try using Karma XPU for rendering. The most challenging part was to be able to render something without errors. It kept happening to me that the rendered image was bugged out a lot, looking like this (the flag):

From what I could tell, the problem was the GPU not having enough storage to render such a complex scene, although the point where this issue started appearing was irregular. I still cannot really tell what the problem was, so if anyone has some insights on that I would be more than happy to hear from you😊.

My solution in the end was to render the foreground and background on separate layers which worked more consistently for me.  

COMPOSITING

Having a lot of render problems, I did not have as much time left for compositing as I hoped for. A lot of my renders were crashing over and over due to the VPN for the Licenses disconnecting, which in the end led to me only having the first have to the frames for the background Layer. Looking positively on this, it forced me to fix all the issues in compositing. The fix for that was to project the last rendered frame I had onto a curved plane and render it out using the camera I already had. I was surprised how well this worked out. The final steps were color matching all the different elements and adding a sky Matte Painting behind the forest. Finishing it up with the obligatory lens imperfections like some grain, distortion, vignetting etc.

REFLECTION

Generally, I am quite pleased with the result this time. Of course, there still are some rough spots which I would like to change or do differently next time:

-->  The specular interaction of the legionaries in the foreground is way too sharp in my opinion
-->  The big flag simulation on the left seems to be way too Stiff which makes it look like plastic
-->  The foreground legionaries seem to still be missing some movement
-->  And obviously the background crowd is moving way to uniform

Also, I learned many technical aspects of Solaris and the USD Workflow inside Houdini. Constantly having to optimize my scene really forced me to try out different techniques and finally led to me having a scene loading time of about 1 min.

I really learned to appreciate the possibilities Houdini gives me while creating Environments. Having a real render engine compared to what Unreal Engine had to offer in the past really makes me want to do more cool stuff with this tool.  

CREDITS

Software's used: 
--> Houdini
--> Maya
--> Speed Tree
--> Nuke
--> Photoshop / Resolve

Credits:
--> Palisade spikes base geo: Quixel Bridge
--> Sky background: google
--> Smoke and ember elements: fxelements.com
--> Midground scatter assets: Quixel Bridge
--> Textures: polyhaven.com
--> Roman legionary: sketchfab.com - Cyberhirsch
--> German army models: mixamo.com
--> All character animation and rigging: mixamo.com
--> Music: Emmanuel Jacob – Stick to the plan
--> SFX: artlist.io 


Comments (0)

This project doesn't have any comments yet.