SCNSphere can be expensive to recreate
In a current project I’m drawing hundreds of spheres, of varying sizes. I discovered at one point that with them all in view simultaneously, performance was very bad (<10 FPS on my 6970M). Trial...
View ArticleSceneKit & shaders
Note: Since writing this originally I’ve figured out how to get at least some aspects of shaders working. I’m still trying to flesh out the rest. I’ll post an update or revised entry at some point....
View ArticleThings you find googling yourself
In no particular order. The Hotline File Transfer Protocol v1.1.1. I presume I was interested in, or actively doing, a third party Hotline client. I did tend to make lots of data transfer clients...
View ArticleSCNView may change your point of view
Ugh… SceneKit is both promising and frustrating. It appears to be a very stereotypical case of “version 1” syndrome – nice idea, flaky implementation and very skimpy documentation. So amongst the many...
View ArticleAnimations only work when the node is already in the scene
If you try to add an animation to an SCNNode that’s not yet part of a scene graph, nothing will happen. It won’t give any indication of failing, and the performance of rendering implies it’s still...
View ArticleCAAnimations can be applied to multiple SCNNodes concurrently
You can create a CAAnimation and hand it to -[SCNNode addAnimation:forKey:] on as many nodes as you want. No apparent side-effects. I just couldn’t find this documented anywhere.
View ArticleSCNGeometrys can be shared by multiple SCNNodes
It’s not explicitly documented either way, but it is perfectly valid, evidently, to attach the same SCNGeometry to multiple SCNNodes. Works as you’d expect – changes to the geometry are reflected...
View ArticleSCNView frame rate
There’s no API to get any kind of performance information from an SCNView, even as basic as a rolling frame rate. But it’s not hard to add – you can be notified when each frame is drawn by overriding...
View Article+[SCNTransaction setDisableActions:] does nothing between begin/commit
Obnoxious undocumented behaviour #bajillion: you can’t disable implicit animation with setDisableActions: inbetween begin & commit on the same SCNTransaction. It just doesn’t work. Update:...
View Article+[SCNTransaction setCompletionBlock:] always invokes the block immediately
It’s supposed to invoke your block when all the animations in the current transaction have completed. It doesn’t; it runs it as soon as the transaction is committed. Le sigh. It does appear to do it...
View ArticleSCNView can have overlapping views, but only if layer-backed
In fact I’m pretty sure this behaviour dates back to NSOpenGLView and possibly others. I suppose technically this has always been the case; that overlapping views weren’t supported at all before...
View Article-[SCNView hitTest:options:] doesn’t work correctly for orthographic projections
How frustrating it was to find this out. Luckily, it didn’t take long to realise that there was a pattern to its madness. It turns out it’s not taking into account the scale of the projection (as set...
View ArticleSCNSphere can be expensive to recreate
In a current project I’m drawing hundreds of spheres, of varying sizes. I discovered at one point that with them all in view simultaneously, performance was very bad (<10 FPS on my 6970M). Trial...
View ArticleSceneKit & shaders
Note: Since writing this originally I’ve figured out how to get at least some aspects of shaders working. I’m still trying to flesh out the rest. I’ll post an update or revised entry at some point....
View Article
More Pages to Explore .....