Does it make sense, in any way, that the Sprite render patch doesn't honor anti-aliasing settings when in a GLSL environment, or is this a bug?

Inspecting the Mandlebrot composition from the Developer Tools clearly shows this. If one places the sprite in "Over" mode, and switches anti-aliasing on, the Sprite doesn't "get smaller" and appear with anti-aliased edges, the way it does when outside of the GLSL environment.

It makes total sense from a "Sprite antialiasing is a horrific hack that doesn't actually solve more problems that it creates" point of view. It works by generating 9 quads instead of 1, with some texture hackery to draw a partially transparent border in the 8 outer quads. Since you're not providing the sprite with a texture in GLSL (the texture goes to the GLSL shader), the sprite can't work is antialiasing magic. The GLSL patch isn't aware of what treachery is necessary, so it doesn't help the sprite out.

Basically, if you want antialiasing, you really want to do it the right way. Not the way sprite does it. This is via the hidden preference, or by setting the appropriate settings when creating your CGLContextObj.

An alternative is to manipulate the texture yourself to add the transparent border area. Texture-level antialiasing can only take you so far though...

Attachment: slightly less lame AA.qtz
Description: application/quartzcomposer




(there are alternative tricks in both CI and GLSL to do this more cleanly, but I just wanted to illustrate the idea)

--
[ christopher wright ]
[email protected]
http://kineme.net/

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Quartzcomposer-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/quartzcomposer-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to