Articles

Diving Deeper into the Max 8.3 Release with Jitter

In addition to all of the audio and music features, Max 8.3 included an Easter egg in the form of our newest experimental Jitter object: jit.gl.pbr. This object provides a new way to define and render materials for 3D geometry - using Physically Based Rendering -  and can be thought of as an alternate version of jit.gl.material. You might have heard about Physically Based Rendering (PBR) in the context of video games or other kinds of special effects production where photorealism is important. If you haven't heard the term before, the purpose behind PBR is to define the surfaces of 3D geometry in a way that mimics the natural physics of light and how it reflects from surfaces. In short, it makes geometry look more realistic.

PBR has gained in industry popularity since a 2004 book by Matt Pharr, Greg Humphreys, and Pat Hanrahan was first published, and it has since become the industry standard workflow for creating materials in both realtime and post-production work. Now you can also find many websites that offer a wide range of high quality, free-to-use PBR materials representing everything from natural surfaces like wood or metal to things like alien slime. For Jitter users, the great benefit of this new object will be experimenting with adding photorealistic and unusual materials to your generative 3D work to open up a new kind of visual outcome.

image by Tom Hall

PBR was brought to life by our Jitter visuals team, which recently added Matteo Marson as a contributor. Tom Hall caught up with him recently, and was able to learn a little bit more about Matteo's love of Max, Jitter and Physically Based Rendering techniques:

Tom: How did you first get into Jitter?

Matteo: I started using Max back when I attended the Conservatory of Music in Turin (Italy). I was lucky enough to meet incredible teachers during my course of study, and in particular, the Jedi masters Andrea Agostini and Daniele Ghisi (the guys behind Bach, Cage, and Dada packages), who taught me everything I know about Max. I began using Max (6) for audio programming and musical scoring, but I always wondered what I could do with those weird green patch cords. So, out of curiosity, when I felt like my Max programming skills were solid enough, I started to study Jitter on my own. Since then, Jitter has always been part of my toolbox and has heavily influenced the direction of my artistic productions (in a positive way).

Why do you do this kind of work in Max?

Max is a giant freaking monster! It’s always challenging for me to explain to someone else what Max is and what you can do with it because the answer is “everything,” which sounds a bit like a lie. But if you want to track the volcanic activity on a Philippine island, generate a score in real-time out of those values for a string quartet that plays in Canada, which controls an audio-reactive fireworks show in Tokyo; you can do that! You will not find an object called "jit.volcano2fireworks", of course, but Max is a Turing-complete multi-level programming environment that lets you create whatever you need - through standard programming and Gen, using Javascript, Lua, and GLSL integration or even programing your objects in C. I feel like Max isn’t software but rather a playground that lets you create whatever you want, as long as you can express the processes that are involved in algorithmic form. So, I do my stuff in Max because it’s a synonym for artistic freedom for me, and it’s usually the shortest path from the idea to its realization.

What do you find particularly advantageous about the generation of video graphics within the framework of Jitter?

One of the first things that come to my mind when I think about the advantages of using Jitter is ‘integration.’ To make an example: I’m a member of the artistic collective SPIME.IM. There are usually two or three people on stage during our live shows, each one playing with his computer. We use Jitter as our primary tool for generating video graphics in real-time, and each of us controls or affects the visuals, one way or another. So Jitter is totally and easily integrated into the workflow: we generate the control signals via Max 4 Live devices and send them to the Jitter machines through MIDI and OSC connections. This degree of integration lets us create a strong coherence between the audio and the video graphics. 

It seems that you've been pursuing an interest in Physics-Based Rendering (PBR) for a while, what is it about PBR that you're drawn to?

I’ve always been fascinated by physical-based algorithms. Take physical modeling synthesis, for example; it can generate a massive variety of timbres and musical expressions, exposing only a few significant control parameters. Physics-Based Rendering does the same in the video graphics realm. I find this approach to the generation of images extremely interesting because you do not define the final result. Still, instead, you describe the behavior, and the resulting interaction of the light with the objects in the scene is an emergent property. This reflects in a straightforward way to simulate many different materials (you just care about the color, roughness, and metalness), and the results are always “believable.”

Other than PBR, what is your favorite new feature about Max 8.3?

Max 8.3 update is simply huge! It’s pretty hard to pick just one thing I love about it. I’m a sample-accuracy maniac; therefore, all the new objects that allow audio-driven solutions are early Christmas gifts for me. But if I have to pick just one thing, I’d say that what had the most significant impact on the way I do things in Max (being a Jitter guy) is the support for attrui presets (finally!).

image by Joshua Kit Clayton

Thanks Matteo for helping us get an introduction into this world of Physically Based Rendering and high-quality rendering options. If you want to get further blown away, check out Matteo's Patreon-based Max tutorials found at https://www.patreon.com/mmmt, where you'll be able to dig even further into the rendering wonderland.

And if you'd like to find out what all the Jitter team has put into the 8.3 release, here's a video they put together for just that purpose:

by Tom Hall on May 31, 2022

AJ Fletcher's icon

Thanks for sharing this post Tom and thanks to Federico, Rob and Matteo for the walkthrough video!

Riccardo Santalucia's icon

Hey there,
the issue regarding the quality of the @parallax mode, creating ugly and linear silhouettes, is still there.
Is there a way to fix it?
Thank you,
Riccardo