Max 8.3 Jitter Features

Rob Ramirez's icon

Hey everyone, now that the initial buzz around the 8.3 release has died down a bit, and you’ve had some time to explore the (20+ !) new objects I’d like to shed a little light on the new Jitter features we’ve snuck into this release. We will continue to highlight these features over the coming weeks so this post should be taken as an introduction.

The new jit.gl.pbr object for physically based rendering material effects

GL3 features

  • First up, our most significant new feature is an experimental implementation of physically based rendering (PBR) in the form of a new object called jit.gl.pbr. The object functions similarly to jit.gl.material in that it generates a shader for any attached 3d objects and will dynamically adapt to the context lighting state. There are also several inputs to provide image maps for the various properties of the shading model. The object supports image based lighting (IBL) reflection and irradiance maps via the environment texture input.

    Additional features include a sophisticated parallax heightmapping effect with self-shadowing and ambient occlusion, and new texture coordinate generation techniques (@tex_gen biplanar / triplanar). All features are demonstrated in the help patch.

    Please note that the experimental designation above indicates that both the implementation and interface is subject to change while we continue to refine this object.

  • jit.gl.cubemap now directly supports loading equirectangular formatted panorama images, with optional gamma correction.

  • jit.gl.light @type hemisphere for lighting scenes with default shading or with jit.gl.pbr materials. Hemisphere lighting (also known as sky and ground lighting) is similar to directional but the light is cast both from above (sky), and below (ground).

  • jit.gl.pass @fxname gamma - A new gamma correction, tonemap and dithering pass effect. Search the file browser for gamma.correction.pass for a demonstration and explanation of the features.

  • Texture to texture copying is improved and simplified e.g. when attempting to adapt dimensions but change the texture type or rectangle mode.

Jitter Tools

  • jit.gradient.ui for generating and modifying gradient matrices

  • jit.gl.meshwarp masking mode - Functionality detailed in the help patch "mask mode" tab

  • jit.gl.meshwarp texture output functionality

UX improvements

  • Drag and drop image file support added to jit.matrix, jit.gl.texture and jit.openexr

  • Shader editing in jit.gl.shader and jit.gl.slab will now retain the current parameter state when live editing the shader

  • attrui preset and pattr support (perhaps the single biggest UX improvement for Jitter users in some time!)

Image loading

  • Images displayed by matrix and texture objects are now no longer affected by the display color profile. The loading process should also be slightly faster.

Rob Ramirez's icon

As mentioned in the Image Loading item, there is a new code path for loading images in Jitter that should be faster than previous versions, however bugs are likely still being uncovered. We've already pushed an update to the VIDDLL package in our Package Manager (version 1.2.7), so all viddll engine users should pull in that update with 8.3.

daddymax's icon

The PBR materials are amazing. The textures and how they interact with the light and environment is really nuanced. As you are still developing it, what would be good is a jit.gl.material style interface? The current one works well but it takes up a bit of space due to all the inputs and options?

Sabina's icon

This is so great, the graphics look amazing , I managed to create a transparent material using the jit.gl.pbr object, I recorded a demo using a NVIDIA GeForce GTX 1070 :
https://youtu.be/4cOcSOzecrM
Thank you for this Cycling74 Jitter developers :)

Observation : the environment file ( background) is not displayed after changing the size of the context window , example : switching to @fullscreen 1

Wil's icon

I am not understanding jit.gl.meshwarp masking mode.

In the help patch when I click on:
1 - Enable "mask_mode".
The plane gets dark and the UI disappears.

Then:
2 - Press "shift" and double click inside the plane.
Nothing happens. I think the UI should reappear for steps 3-7.

What am I doing wrong?

Federico-AmazingMaxStuff's icon

Hey Wil,
it should indeed work as you described.
If you try to repeat those steps from the help file do you get the same result?
In any case, please let me know which OS and Max version you are on

Wil's icon

Hi Federico,
Yes. I uses the help file.
This is Max 8.3 - Mac OS Monterey (12.4 beta).
The beta should not matter, it is just fixes for Monterey.

I am really not sure what is the problem.
Here are some screen shots:

help file with mask_mode off.

help file mask_mode on

Then, holding "shift" I double click the video plane - nothing happens.

Wil's icon

Hi Federico,
After a reinstall now it is working. Thanks!

help file mask-mode working!

Federico-AmazingMaxStuff's icon

Very glad to hear that!

Nodanoma's icon

jit.gl.pbr is a mega upgrade — thanks to all the people involved, and also for the latest bug fix.

Now, is there any guideline as to how the albedo_texture must be sampled when used on a jit.gl.model? With jit.gl.material it is straightforward, i.e. the model's colormap can be used as diffuse_texture 1:1 — not so qith jit.gl.pbr. On a plane mesh an image has to be partially resampled/mirrored/shifted to yield the desired texture, and it can be done. The same algorithm, however, cannot be applied to a model it seems and since its coords are far from intuitive I am a bit lost here. Any help is appreciated!

jit.gl.pbr albedo_texture for jit.gl.model needs a resampling algorithm — is there one?

Max Patch
Copy patch and select New From Clipboard in Max.

Rob Ramirez's icon

thanks for the patch! I honestly have no idea why it's exhibiting this behavior. we'll take a look.

TConnors's icon
Abao's icon

I have the same issue, I can make the jit.gl. gridshape transparent by adjusting the alph of its diffuse map, but doesn’t work with jit.gl.model.

Nodanoma's icon

@WEI you'll want to map the model matrix (@matrixoutput 1) to a jit.gl.mesh and with jit.gl.pbr attached to the latter the transparency can be adjusted using the alpha channel in the albedo_texture. However, in this case, the color/alpha mapping will currently not match the target coordinates and will thus produce uninented aesthetics.

Rob Ramirez's icon

ok perhaps not as mysterious as I initially thought, looks like the textures are simply flipped vertically (as they are wont to do). we'll get it fixed up, but the workaround is simple enough for now:

Max Patch
Copy patch and select New From Clipboard in Max.

Nodanoma's icon

sigh
thanks for checking it out, missed the forest for the trees there.

Rob Ramirez's icon

Hey all, the Jitter team has cooked up an extra special Amazing Max Stuff video that walks through some of the fantastic new features in 8.3, as well as a sneak peak of some of the new hotness still in the works.

slo ~|•'s icon

👏🏻👏🏻👏🏻 Fun!

TConnors's icon

Wonderful!

Abao's icon

@oni and @Rob thanks!

and nice tutorials for the new 8.3! maybe i can try with the jit.gradient.ui for the transparency too!

Rob Ramirez's icon

latest gl3 update fixes some issues in this thread and adds texture input support to jit.gl.pbr - https://cycling74.com/forums/gl3-package-update-0-3-1

Riccardo Santalucia's icon

Hi there.
I am having some trouble with the @parallax attribute of the [jit.gl.pbr] object, regarding the way that it treats the edges of the shape. Matteo is also mentioning this in the walkthrough video.
Here I share more details, https://cycling74.com/forums/jitglpbr-unexpected-behaviour-of-the-parallax-attribute
Does anybody have a clue on how to resolve this issue?

Cheers,
Riccardo

Romian Daret's icon

Hi there, I have two very specific questions :

  • IS jit.gl.pbr now (secretely?) able to treats the silhouette (edges of the shape) when used with heightmap as jit.gl.material doesn when mode is vtf_normals, especially ?

  • CAN jit.gl.pbr when sum of all alpha of all maps <0 AND skybox used display transparent objects ?

For the 1st question, I don't think it is possible, even if we can see that kind of result in the video quoted in this thread. I don't know if pbr is used for that part when we see the edge "really looking like distorsed" by the heightmap.

For the 2nd one, no pb for transparency between objects. solid objects, transparent one, pbr or not.

Using depth_enable 1 for all objects. depth_write 0 for transparent ones and blend_enable 1 for all AND higher value for layer attributes for drawing the transparent ones as last ones.

But the pb comes from the skybox. If I enable it ... transparent objects disappears... and weird things occur.