Quartz Crystal rendering issue

usefuldesign.au's picture

Q1 Hi I have a comp that renders okay with an 4x Anti-alias and 64x but gives 'no clear patch' type of random/ram-image looking madness at 16x (a nice 2^n number) (see attached Sphube I.3) and fail to render at 12x, 30x, 36x,...

Then when I went back and tried again, without reloading comp, it rendered perfectly well at 12x and 16x but still not at 30x and higher (except 64x).

I don't mind working around any limitations in QCrystal but it all seems a bit random, could it be my patch?

Q2&3 Also even 64x supersampling does not do away with the 'seams' I get where primatives intersect. Ie on the joining line of a sphere and cylinder there's a sawtooth seam. Without writing a shader (well beyond my present capabilities), are there any ways to clean this up. I've also noticed flickering inside the lighting3D patch. See attached: Sphube I.16 flickering?.mov

I usually associate highlight flickering with having doubled up on primitives in the same place (via iterator patch) but in this case I'm sure it's happening where I only have one sphere/ cylinder instance.

BTW This patch is me trying to replicate Rinboku's wonderful techniques/imagery if you're thinking "I've seen THAT before".

PreviewAttachmentSize
Sphube I.3.mov225.63 KB
Sphube I.64x.mov18.9 KB
Sphube I.16 flickering?.mov194.95 KB

cybero's picture
Re: Quartz Crystal rendering issue

Number one looks to either be a Render in Image problem needing enable feedback, or else a clear. Also set to 8 bits per pixel if it is a Render in Image patch that you are using, often helps to clarify and simplify and 'solve' such problems that I get of this type.

Could be that its a GLSL QC Triangles not Quads type limitation with the way you get Intersects appearing.

usefuldesign.au's picture
Re: Quartz Crystal rendering issue

Thanks for the fast reply. No render in image patch being used :/

It's funny when stepping thru the comp in viewer using K-core stepping the highlights sometimes drop out, but as soon as I release the Cmd-^ modifier keys, the highlight render. Not exactly logical I know but it happens fairly consistently.

Is the GLSL QC Triangles thing anything I can remedy or a QC rendering fact of life?

cybero's picture
Re: Quartz Crystal rendering issue

So no RinI patch - At the present moment in time, as far as I am aware, triangles are the means by which in dual formation, they can create a quad see the GL Quad patch, that has a line diagonally running across the Quad unless set to Alpha.

Others may be more in the know and be aware of positive developments on the OpenGL front.

Until I hear different that is my understanding, unfortunately.

Regarding Core preferences I usually only run with lim scroll, snap to grid, show private, float patch , search - all and nothing else and I can't actually reproduce your error as it happens, it couldn't be to do with any other preferences Kineme Core wise could it?

Changing colour, hsl and other vertex and fragment values can sometimes better facilitate rendering in certain environments in my experience to date.

usefuldesign.au's picture
Re: Quartz Crystal rendering issue

I don't think Kineme Core is the cause. I've noticed these kinds of things before I installed it.

Re: Flickering: I just think using the stepper, somehow, the view gets time to update the drawing – putting in the specularity highlight that should be there, and (also somehow) the Apple Event of the modifiers keys is holding back the veiwer redraw until they are released. That's not the problem though. The same flickering gets rendered in Quartz Crystal which obviously doesn't have Kineme Core functions.

The positioning values are fed from calculations inside iterator patches. I did add a fine adjustment (delta) value to try 'tuning' it out by adjusting the sphere patch time relative to the cylinder patches but no joy.

Re Sawtooth join: The slice and stack values for the spheres are 40,40 but even at 256,256 I get same edge pattern, unless I disable the cylinders they intersect with which cleans them up. No issue b/w cylinders and cubes nor cubes and spheres. Mystery to me. Thanks for the hints though.

Re comment about Triangles and Quads I noticed exactly same thing so perhaps that comes into it. Cwright explained it to me in another thread once.

I'm going to try hiding it all with motion blur now ;)

cwright's picture
Re: Quartz Crystal rendering issue

Video 1 looks like an AppKit/QuickTime/codec bug. Some don't like particular image sizes, and sometimes when rendering very large AA images, it does that. We've not been able to isolate the issue to resolve it, but it pops up from time to time. Try different sizes, or lower AA.

Video 2 Looks like poly tessellation stuff -- not sure how to fix that without the composition. does it happen without antialiasing?

Video 3 looks like degenerate normals or a custom shader is used. Again, difficult to track down without the composition.

usefuldesign.au's picture
Re: Quartz Crystal rendering issue

No custom shaders (I wish!). These artefacts / poly tessellation things happen in the viewer window of QC as well. If anything QCrystal cleans it up a little with AA and definitely with MB. However MB has it's own 'look' which wasn't quite right for this composition.

Here's the comp if you care to look cwright.

Regarding AA, I only do it in QCrystal. I find the RII patch way to expensive on my Dual g5 even at a factor of 1.3 (that slows down the AA comp of the red/blue cylinders and teapot you have posted a few times to around 10 fps or less). And that method of AA doesn't seem to match the high quality of QC's internal AA that you get by default on some objects anyway.

This is the essential code out of a larger comp. Relevant inputs are all published to top level. Space bar toggles animation. It still flickers the lighting when not animating.

See comment above re KinemeCore Pause/Step. To be clear, I am not pointing the finger at KinemeCore: I'm convinced the pause/step playback is just caught in the Quatrz rendering web but the modifier key release phenomenon is weird!

PreviewAttachmentSize
Iterator Sphube.qtz52.78 KB

cwright's picture
Re: Quartz Crystal rendering issue

Ok, the triangles/saw tooth visuals are simply the unusual intersection of cylinder and spheres. This happens because of how QC triangulates those shapes -- varying the slices/stacks to minimize intersection seems to help, but it's not intuitive (higher isn't always "better").

Not sure why the normals freak out -- I've seen jumpy normals on culled primitives (triangles/quads that go partly offscreen) on my gma950, so I'm guessing other cards to weird normal tricks too, and you might just be triggering a bug, or a standard behaviour that doesn't make sense, but is mathematically "right" (seeing as how some objects get scaled and overlap, it's not surprising to hit degenerate geometry cases that opengl can't handle gracefully).

(and yes, QuartzCrystal's antialiasing is much higher quality than what can be done inside QC w/o hardware support -- QC seems to just toss out pixels if you scale down too much, instead of using the color data to smooth edges... ;)

usefuldesign.au's picture
Re: Quartz Crystal rendering issue

Yes, my first instinct (okay, guess) was to adjust the stacks and slices and as you can imagine I tried every combination. Yes, higher wasn't "better". When you say normals are freaking out, the normals are like a perpendicular vector telling the rendered which is front face of a quad/triangle, correct?

Is it that data that is getting missed occasionally by the "highlight engine" in the 3DLighting Patch assigned Rendering?

It's interesting that it happens in QCrystal as well as QC itself, given it has time to get each frame 'right'. I have a bunch of animated 3D primitive comps that exhibit this flickering. Be nice to have a methodology to remove it...

Thanks Alastair