New 7.3.2 Jitter Features

Rob Ramirez's icon

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.

TConnors's icon
Greg Finger's icon

cheers on the heightmap and textureset! i'm not really clear in what situations i would use the node.nonautomatic begin_capture bang though.

phiol's icon

Huge thanks Rob for all the hardwork !

Pedro Santos's icon

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.

daddymax's icon

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.

billyanok's icon

Great update!
THX

Stefano Scarani's icon

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.

daddymax's icon

Where re the jit.pix files and the jit.gl.textureset files? I did a search and cant locate them so far.

2K's icon

Great stuff Rob! Thx!

mark's icon

awesome update. thanks!

Rob Ramirez's icon

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?

geoscle's icon

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.

daddymax's icon

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.

Greg Finger's icon

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?

sandroid's icon

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.""

daddymax's icon

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?

Greg Finger's icon

@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"

daddymax's icon

@greg finger - huge thanks - the help file does explain it - excuse my stupid question.

Rob Ramirez's icon

@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!

jit.gl_.textureset.js
js
Greg Finger's icon

thanks for the fix.

stephen schweitzer's icon

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

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

stephen schweitzer's icon

side by side screenshot

Screen-Shot-2017-02-22-at-2.20.jpg
jpg
Rob Ramirez's icon

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.

stephen schweitzer's icon

Thanks Rob. Here's an example of the smear using jit.lcd. All the dims seem to match.

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

Rob Ramirez's icon

you can fix this by sending the message "sendoutput filter none" to your jit.gl.slab object, triggered by a loadbang.

stephen schweitzer's icon

Wow.. you have amazing sleuthing skills! Thanks!

jbailey's icon

Is is possible to apply a heightmap to a material applied to an jit.gl.model?

Rob Ramirez's icon

sure, but it generally doesn't look that great with low-poly models:

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

Asher's icon

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).

Rob Ramirez's icon

unfortunately not, jit.gl.material only supports shading of front facing polygons