New 7.3.2 Jitter Features
Hey jitterists, just wanted to point out a few new features in the 7.3.2 update.
the most significant new feature is an update to how jit.gl.material handles height-map inputs. there is now an attribute called heightmap_mode that allows you to enable a new technique for generating vertex displacement from the map, called vertex texture fetch (vtf). vtf mode is a pretty slick way to modify geometry meshes, and since it’s facilitated through jit.gl.material, it allows for gl-texture inputs and is super simple to use. this means your crazy gl.slab / gl.pix effects can easily be used to modify mesh vertices.
there’s a basic demo of its functionality in a new example patch called material.heightmap (simply type this into file browser), and some more info in the jit.gl.material help file. but even better, our good buddy Sam has shared some of his experiments with it on his youtube channel: https://www.youtube.com/watch?v=_mTPh9ZTZC8
we’ve also got a new feature that allows for capturing to texture non-automatic gl objects with jit.gl.node. check out the node.non.automatic.capture example file for details on using the begin_capture notification from jit.gl.node.
there’s also some new gen based effects that duplicate some of the classic Jitter filters from the old days. since these are simply gen-patchers, they are ready to be hacked. check out the following example patches for a demo:
jit.gl.pix.altern
jit.gl.pix.ameba
jit.gl.pix.eclipse
jit.gl.pix.rubix
jit.gl.pix.srcdim.dstdim
jit.gl.pix.wake
and lastly, a very useful JS tool for buffering gl-textures (for delays or whatever), with functionality that mimics jit.matrixset. check out the jit.gl.textureset-example patch to see it in action.
Nice!
cheers on the heightmap and textureset! i'm not really clear in what situations i would use the node.nonautomatic begin_capture bang though.
Huge thanks Rob for all the hardwork !
Rob, do you sleep at all?
I have to congratulate you on all the great work you've been doing on Jitter in these last years. And, as if that was not enough, you've managed to simultaneously be the most contributive Cycling74 team member here in the forums.
Best update for a while - thanks Cycling. Jit.pix.rubix - im glad to see this - i was trying to make a rubix in pix the other day and failing spectacularly - will be interested to see how you do it.
Great update!
THX
Great, Bob! But I've a question: do yo think that Cycling74 will fix the problems with jit.grab in 64bit in the future? There are to much important features that don't work in 64bit.
Where re the jit.pix files and the jit.gl.textureset files? I did a search and cant locate them so far.
Great stuff Rob! Thx!
awesome update. thanks!
cheers guys!
@DADDYMAX and anyone else having problems with the example files not showing up, take the following steps:
quit Max
remove the Examples folder (on Mac it's /Users/Shared/Max 7/Examples, on Windows it's C:\ProgramData\Max 7\Examples)
restart Max
the examples folder should then be copied over again with the new files.
@GREG FINGER - some folks have patches that rely on non-automatic drawing, e.g. multiple instances that might rely on anim.node hierarchy transformations that can't be achieved with gl.multiple. they can now capture easily capture these structures to a texture with gl.node.
@STEFANO SCARANI - not sure what you're referring to, but if it's related to 32 bit Quicktime functionality, that functionality has been removed by apple, and nothing we can do about it. what specifically are referring to?
Hi Rob,
thank you for the vtf feature, it is awesome and useful! Latest updates from jit.mo since ease and vtf are simply amazing :)
I've just encountered few crash related issues:
Windows 10, nvidia gtx 1060, Max 7.3.2 64bit
when: using the heightmap example, when going going into fullscreen on external monitor connected via HDMI.
what: the output window stops rendering and Max crashes. Same issue doesn't happen if the window is just enlarged.
throubleshooting: I've tried using jit.gl.render and jit.windows instead of jit.world but I've the same behavior.
notes: This stuff appearently only happens if vtf mode is involved.
Thanks Rob - fixed. NB - if anyone else has this weird issue (update doesn't install all of the new files and examples) just reinstall and all is fixed.
Rob, another question. any tips with using gl.textureset with gl.multiple? i see that it creates an uniquely named texture ("jit_gl_texture u921000878_cap_cap_cap" for example). it seems like the number portion of that stays the same, but the "_cap" grows every increasingly (as long as a new texture/matrix is supplied?). So if i weren't updating the textures, i'd say i could just store all the unique names/identifiers in a coll, and use a poly~ to output the specific coll index to a [jit.gl.texture #1] (where the #1 attribute, would likely be some sequentially increasing name like tex1, tex2, tex3. depending on the poly~ voice number), but in a situation where it is a constantly updating texture (for example from the output of a jit.grab), how would i handle that situation? maybe just not use textureset?
does anybody else had this message on starting max after installing version 7.3.2?
"You are using an older version of 'blocks.system' (7.3.1) than was shipped with Max 7.3.2.
Please verify your installation and your search paths.""
One more (hopefully final) clarification on this update: The post here suggests that the heightmap feature in jit.gl.material can take textures. Is this definitely the case? If i hook up jit.noise to the heightmap input, it works fine. If i run it through jit.gl.pix, it stops working, unless i then put the jit.gl.pix through a matrix and convert it back. Can anyone confirm that heightmap can be controlled with jit.gl.pix?
@daddymax in the jit.gl.material help file, under the height-maps tab, there's a subpatcher called [p texture-heightmap]. In there states:
"heightmap mode vtf and vtf_normals requires rectangle 0 on jit.gl.texture, jit.gl.slab, or jit.gl.pix inputs"
@greg finger - huge thanks - the help file does explain it - excuse my stupid question.
@Franz, thanks for the report. i'll check this out and see if i can reproduce a crash on windows.
@Daddymax - yes, non-rectangular power-of-two textures are currently a requirement for VTF. this limitation will probably be removed in a future update. but i've added @rectangle as an attribute to both gl.pix and gl.slab to make things easier.
@Greg - oh dear, that is definitely not intentional. i've attached an updated version of the JS that fixes that. simply replace this in your examples folder: (Users/Shared or C:\ProgramData) /Max 7/Examples/jitter-examples/javascript/render
thanks for catching that!
thanks for the fix.
Greetings,
I’m trying to migrate to gl.textureset from matrixset.
I’m resampling a texture the way I can resample a matrix in matrixset and I’m running into a smear problem. When I route the gl.textureset out, then back in through an op.max I’m getting smearing as if the texture size doesn’t match. With each pass the smearing widens. Should I be doing this a different way?
Thanks
hi stephen, your patch looks pretty solid to me. the "smearing" thing can happen if the textures dimensions are mismatched. i would just make sure your dims are all the same for each texture output, using jit.fpsgui.
also, make sure you use the updated textureset.js posted above.
rereading your post, i see you already understand the cause is mismatched dims. i tested it with a jit.grab input, and all dims were equal with no smearing, so i'd just double check that.
Thanks Rob. Here's an example of the smear using jit.lcd. All the dims seem to match.
you can fix this by sending the message "sendoutput filter none" to your jit.gl.slab object, triggered by a loadbang.
Wow.. you have amazing sleuthing skills! Thanks!
Is is possible to apply a heightmap to a material applied to an jit.gl.model?
sure, but it generally doesn't look that great with low-poly models:
hey @ROB RAMIREZ , i'm experimenting with using your above patch with jit.gl.nurbs instead of the gl.model, and lighting for only one side of the nurbs surface is calculated. Is there any way to be able to see 'both' sides? (i'm sorry i don't really have the graphics terminology for this).
unfortunately not, jit.gl.material only supports shading of front facing polygons