Zitat:
Da wäre dann vermutlich noch interessant, was du da instanziiert hast
Ich denke auch, dass es daran liegt, was genau bei der Instanzerzeugung passiert.
Ich vermute, dass dir da die Grafikkarte einen Streich spielt und deswegen das stottern kommt.
Arbeitest du mit Shadern? Evtl. vielleicht sogar Cg-Shader?
Weil da gibt es manchmal nette Konstellationen, wo, zumindest auf Nvidias, die Shader kurz neu compiliert und die Buffer gelöscht werden, wenn man manche Dinge falsch macht, die mit Texturen- Upload und teilweise deren Parametrisierung im Shader zu tun haben. cgSetTextureParameter() und Konsorten...wenn man da etwas falsch macht, wird die Textur manchmal intern im Grafikspeicher gelöscht und neu hochgeladen, die Shader neu initialisiert und die Pipeline geflusht...das verursacht dann kurz einen üblen Rendering-Stall, was zu Mikro-Rucklern führt...Hatte ich auch schon massive Probleme mit...
Aber ich glaube fast, dass du das eh schon alles weist und das Problem vielleicht ganz wo anders liegt
Ich hatte nur bisher schon oft gemerkt, dass die Grafikkarte einem beim Übertragen und Hin- und Herschaufeln von Daten ziemlich schnell einen Streich spielen kann und der Rendering-Fluss massiv gestört ist, wenn man das nicht wirklich sauber macht (Effizientes Verwenden von FBOs / VBOs, wie das bei
DirectX ist weiss ich jedoch nicht, kenne mich nur in
OpenGL halbwegs aus...)
Allerdings muss das Problem irgendwo in deiner Engine vergraben liegen, denn generell schliesst sich unterbrechungsfreies Fenster-Rendering in 3D und Multithreading nicht aus...ich z.B. spawne in meiner Delphi Terrain-Engine teilweise bis zu 50 Threads gleichzeitig, die Tiles erzeugen, ohne dass es ruckelt und bei der Thread-Erstellung selbst ist dort kein Voodoo oder dirty Hacks vorhanden, sondern eher der konventionelle Weg über einen Threadpool.
Da wäre wohl auch mal ein Profiler ganz ratsam, um deinem Problem auf die Schliche zu kommen...
P.S. Dein Projekt klingt echt gut und sieht noch besser aus!
Das Problem wird aber wohl wie immer bei den meisten Hobby-Projekten, die Content-Erstellung sein...selbst, wenn du eine superfeine Engine gebastelst hast, die viel prozedural macht, so brauchst du für ein Spiel sogut wie immer eine Horde von Leuten, die ihr Handwerk verstehen und trotzdem noch Monatelang beschäftigt sind, den Content zu erstellen und einzukloppen..
Ausser natürlich, du bleibst beim "Minimal-Ansatz", den auch Minecraft geht..also kaum richtige Animationen und alles recht "billig" aussehend, was die Models betrifft...allerdings passt das dann nicht so ganz zu deiner wirklich schönen Landschaft..siehe die Hasen
Ausser, du schaffst es, auch Charactermodelle prozedural zu erstellen und glaubhaft zu animieren...dann allerdings wärst du fast gottesgleich
Gehen tut ja aber bekanntlich immer alles
Generell denke ich, um mal vom Video zu urteilen, dass du schon fast den Minecraft-Weg gehen kannst und das ganze erstmal halbfertig "releasen" könntest, zumindest als Alpha und vorerst ohne Gebühren.
Sieht auf jedenfall schonmal richtig gut aus, für ein Projekt eines Einzelnen umso erstaunlicher und ich habe selten etwas solch fortgeschrittenes bei einem Hobby-Spieleprogrammierer gesehen.
Das dann auch noch nach nichtmal nen halben Jahr Entwicklungszeit...dicken Respekt!
Deine Einstellung, wie du programmierst, finde ich interessant...meist mache ich es genauso
....mit dem Unterschied, dass es mich dann doch oft nervt, wenn der Code eine Spaghettiwüste ist und ich dann doch anfange, das ganze in Klassen zu kapseln (und mich dann sogar besser fühle und mich darin selbst besser zurechtfinde
)
P.P.S: Deine Plasmawolken sind der Hammer! Ich staune nicht schlecht! Darf man wissen, wie die gemacht sind?