Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Zu den Caches: Ist es dementsprechend sinnvoll, wenn ich eine Art Suchfunktion nach Shader / Program bzw. Texturen implementiere?
Community-Fossil
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
Mesh{ // deine VBOs } 3dObjekt{ BoundingBox bb, Position p, Mesh* m, bool sichtbar; } Octree{ Octree* Teile[8]; einfügen(3dObjekt){ // alle Teile durchlaufen, testen ob BoundingBox+Position innerhalb davon (einer oder mehrere), wenn Teil weitere Teile hat -> you guess } update(){ // alle 3dObjekte durchlaufen, culling test mit hilfe des Octrees -> sichtbar true/false } } Renderer{ render(){ if(einObjekt->sichtbar){ // rendern... } } } |
Community-Fossil
Zitat von »EuadeLuxe«
Wenn sich ein Objekt bewegt, prüfst du das einfach in der Update-Methode, und platzierst, das ganze evtl. um, richtig?
Quellcode |
|
1 2 3 4 |
void mainLoop(){ octree->update(); renderer->render(); // hat jetzt alle 3dObjekte mit sichtbar true/false und rendert entsprechend. Im nächsten frame wird neu gecullt (brauchst du nicht wenn die Kamera sich nicht bewegt) } |
Community-Fossil
Zitat
Was bitte ist denn ein "dynamischer Octree"?
Was bitte ist denn ein "dynamischer Octree"?
Werbeanzeige