SceneKit na OS X z tysiącami obiektów

Wykonuję ten samouczek:http://blog.bignerdranch.com/754-scenekit-in-mountain-lion/

Jestem zainteresowany użyciem Scene Kit, ale moje sceny mogą potencjalnie mieć tysiące sfer. Aby przetestować zestaw scen w stresie, spróbowałem tego:

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];
        }
    }
}

Działa to dobrze, powiedzmy, na 1000 sfer (10 ^ 3), ale kończy się niepowodzeniem (być może nie dziwi) dla 1 000 000 sfer (100 ^ 3). Nie mam nic przeciwko temu, że nie będę w stanie użyć miliona sfer, ale chciałbym się dowiedzieć, jaka jest sensowna górna granica (5000? 15 000?) I jak ją zwiększyć.

Co mogę zrobić, aby to złagodzić? na przykład Wypróbowałem metodę sphere.segmentCount = 3 i choć przyspiesza to renderowanie, nie ma to większego wpływu na wykorzystanie pamięci, co, jak podejrzewam, jest czynnikiem ograniczającym.

Nie ma też klasy SCNPoint. Myślałem o przełączeniu na wyświetlanie punktu, gdy liczba sfer jest zbyt wysoka, ale nie widzę z dokumentacji SceneKit, jak wyświetlić prosty punkt - najprostszy, jaki widzę, to trójkąt.

Każda pomoc jest bardzo ceniona.

Edytować: @toyos zasugerował, że obiekty SCNSphere zostaną połączone w pojedynczy obiekt SCNGeometry (pod warunkiem, że nie będą musiały być niezależnie animowane, czego nie robią), ale nie mogę znaleźć łatwego sposobu, aby to zrobić.

SCNGeometry tworzy się za pomocą[SCNGeometry geometryWithSources:(* NSArray)sources geometryWithElements:(* NSArray) elements] jak udokumentowanotutaj, ale nie wiem, jak stworzyćSCNGeometry obiekt z moich sfer.

na przykład dla pojedynczej kuli widziałem użyciesphere.geometryElementCount aby uzyskać liczbę elementów, a następnie użyć tego do wypełnienia tablicy za pomocą[sphere geometryElementAtIndex:(NSInteger)elementIndex] co dałoby mi elementy, ale nie jestem pewien, jak zdobyć „źródła” (lub czym są). Metodą uzyskania źródeł geometrii jest[sphere geometrySourcesForSemantic:(NSString*) semantic], ale czym jest ten ciąg semantyczny? (czy ma to być „normalne” czy „wierzchołki”, czy też jest to coś innego? dokumentacja całkiem pomocna mówi, że semantyczna jest „Wartość semantyczna źródła geometrii”, nie mówiąc o możliwych wartościach semantycznych)

To tylko dla pojedynczej kuli, co byłoby dość bezcelowe (odkądSCNSphere jest tylko podklasąSCNGeometry w każdym razie), więc teraz muszę dodać wiele sfer. Czy musiałbym ręcznie tłumaczyć wierzchołki sfery, dodając je do mojegoSCNGeometry obiekt?

Próbuję tylko znaleźć najbardziej sensowny sposób, aby to zrobić.

questionAnswers(2)

yourAnswerToTheQuestion