The Max 8 Jitter bakers dozen + 1
Sep 25 2018 | 11:14 pm
Hello Jitterati!
Max 8 is here and represents a huge effort from the C74 team, as should be obvious from the recent promotional materials and the massive changelist and bugfix list. I'd like to highlight a few of the Jitter features, and expound a bit on what's coming in the near future.
1 - Vizzie GL integration - A massive undertaking, but perhaps the significance is less obvious to our advanced users. I would just say, give it a try. It's tons of fun to drop these GUI and snapshot ready modules in with existing GL pix / slab patches and start wanging away. Pro tip, object menu -> transform -> bpatcher to patcher.
2 - Vizzie Viewr - dope little module that can be dropped into any GL patch and used as a preview window with much better performance than vanilla pwindow objects.
3 - Multi-drawto - possibly the feature with the most potential for advanced users, you can now draw to multiple jit.gl.node sub-contexts from a single geometry source.
4 - Another new jit.gl.node trick is support as a jit.gl.multiple target. Check the help file to see it in action.
5 - And finally on the jit.gl.node tip, scene dict output via the getscene_dict message. This feature is still a baby but has potential to develop into some exciting features like scene capture and export. Check out the jit.gl.node reference page on getscene_dict for a description.
6 - jit.gl.asyncread texture support - you can now readback any GL texture via the jit.gl.asyncread object. This should give significant performance improvements over jit.matrix readback (e.g. when recording a GL scene or analyzing a texture via cv.jit), and means the readback does not have to be tied to a visible gl.render context. jit.world now uses this readback technique for its output_matrix functionality (see the matrix_mode_async reference listing for more info).
7 - jit.gl.model update to support FBX, glTF and OpenGEX model file formats.
8 - A physics library update and a new num_threads attribute to jit.phys.world that will cause the collison dispatcher process to run in multiple threads.
9 - jit.grab can now open and close its device via a toggle.
10 - jit.gl.shader / jit.gl.slab now opens an editor with default shader text when double-clicked without specifying a file.
11 - jit.gl.layer alias instantiates a jit.gl.videoplane with some default settings that make it more conducive to layering images. Check the jit.gl.videoplane help file for more info.
12 - jit.gl.pix export improvements and fixes for the three possible export targets: JXS, webgl, and ISF. See the reference page for more info.
13 - Default GL Context preference - allows for specifying a GL context that will add any jit.gl or video object instantiated without an explicit drawto specified. Possibly useful to those of you building complex modular systems.
+ 1 - The transform -> attributes to arguments object menu command should be much more useful for jitter objects.
As for the future, you may have noticed a new Jitter preference setting name OpenGL Engine in the preferences window and are now wondering what that's all about. You may also have expected Max 8 to bring the much longed-for OpenGL core profile support to your jitter patches and are wondering why it's missing. Dear reader, it's coming soon.
A major push for Max 8 was getting the infrastructure in place to allow for seamless swapping of the backend GL engine, and that little unassuming preference is the fruits of that labor. Unfortunately there's still a major piece of the puzzle missing for my GL heads, and that is something we are calling the gl3 engine. The gl3 engine will bring core profile support to most of our GL objects, but it still needs some development and testing before we're ready to release via the Package Manager. Several other exciting GL features are wrapped up in the gl3 engine, and I very much look forward to introducing those over the coming months. Stay tuned for now, and happy patching!