SceneKit en OS X con miles de objetos

Estoy siguiendo este tutorial:http://blog.bignerdranch.com/754-scenekit-in-mountain-lion/

Estoy interesado en usar Scene Kit, pero mis escenas pueden tener miles de esferas. Para hacer una prueba de estrés en Scene Kit, probé esto:

SCNSphere *sphere = [SCNSphere sphereWithRadius:0.5];
for (int i=0; i<10; i++) {
    for(int j=0; j<10; j++){
        for(int k=0; k<10; k++){
            SCNNode *myNode = [SCNNode nodeWithGeometry:sphere];
            myNode.position = SCNVector3Make(i,j,k);
            [root addChildNode:myNode];
        }
    }
}

Esto funciona bien para, digamos, 1000 esferas (10 ^ 3) pero falla (tal vez no es sorprendente) para 1,000,000 esferas (100 ^ 3). No me importa no poder usar un millón de esferas, pero me gustaría averiguar cuál es el límite superior sensible (¿5,000? ¿15,000?) Y cómo aumentarlo.

¿Qué puedo hacer para mitigar esto? p.ej. He intentado sphere.segmentCount = 3 y aunque eso acelera la representación, no tiene mucho efecto en el uso de la memoria, lo que sospecho que es el factor limitante.

Además, no parece haber una clase SCNPoint. Estaba pensando en cambiar solo para mostrar un punto cuando el número de esferas es demasiado alto, pero no puedo ver en la documentación de SceneKit cómo mostrar un punto simple; lo más simple que puedo ver es un triángulo.

Cualquier ayuda es muy apreciada.

Editar: @toyos sugirió que los objetos de SCNSphere se fusionen en un solo objeto SCNGeometry (siempre que no necesiten ser animados de forma independiente, lo que no es así), pero no puedo encontrar una manera fácil de hacerlo.

SCNGeometry se crea utilizando[SCNGeometry geometryWithSources:(* NSArray)sources geometryWithElements:(* NSArray) elements] como se documentaaquí, pero no tengo claro cómo crear unSCNGeometry Objeto de mis esferas.

p.ej. Para una sola esfera, pude ver usandosphere.geometryElementCount para obtener el número de elementos y luego usar eso para poblar una matriz usando[sphere geometryElementAtIndex:(NSInteger)elementIndex] lo que me daría los elementos, pero no estoy seguro de cómo obtener las "fuentes" (o lo que incluso son). El método para obtener las fuentes de geometría es[sphere geometrySourcesForSemantic:(NSString*) semantic], pero ¿qué es esta cadena semántica? (¿se pretende que sea "normal" o "vértices" o esto es otra cosa? la documentación dice muy bien que la semántica es "El valor semántico de la fuente de geometría", sin decir cuáles son los valores posibles de la semántica)

Eso es solo para una sola esfera, lo cual sería bastante inútil (ya queSCNSphere es solo una subclase deSCNGeometry De todos modos), así que ahora tengo que añadir múltiples esferas. Entonces, ¿tendría que traducir manualmente los vértices de la esfera al agregarlos a miSCNGeometry ¿objeto?

Solo estoy tratando de descubrir la manera más sensata de hacer esto.

Respuestas a la pregunta(2)

Su respuesta a la pregunta