Aktuelle Zeit: 29.03.2024, 08:52

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Problem mit FPS Zahl viele Objekte.
BeitragVerfasst: 28.01.2011, 03:32 
Offline

Registriert: 17.01.2011, 02:50
Beiträge: 2
Hallo, ich stelle derzeit einige versuche mitIrrlicht an und habe nun eine Funktion erstellt welche mir dynamisch nach x,y,z angabe ein Modell aus Blöcken zusammensetzt.
Wenn ich nun eine Große Gerade Fläche damit erstelle, sinken die FPS dramatisch in den Boden.
Wie wäre es möglich eine Hohe Sichtweite zu haben, aber trotzdem tollerierbare FPS im Rahmen von ca. 60 FPS ?
Die Blöcke habe ich aus einem Tutorial entnommen und sind alles IScenenode Objekte.
Momentan zeichnet er auch alle Objekte als IsceneNodes.
Bild 1 Besitzt 100*100*1(Höhe) Blöcke bei der Höhe 1.
Sind Also 10000 Blöcke, die gezeichnet werden. Das Sichtfeld zu verändern brachte auch nicht wirklich mehr FPS, zudem soll man später auch Blöcke in der Ferne sehen können.
Ich habe im Forum etwas über Billboards gelesen und das man mit Bilboards Elemente in weiter Entfernung zeichnen kann.
Wäre das ein Möglicher ansatz um die Frames zu verbessern ?
PS: Ich nutze OPENGL


Gruß


Dateianhänge:
Bild 3 Cube 9 FPS.jpg [104.95 KiB]
Noch nie heruntergeladen
Bild 2 Cube 9 FPS.jpg [104.65 KiB]
Noch nie heruntergeladen
Bild 1 Cube 9 FPS.jpg [265.62 KiB]
Noch nie heruntergeladen
Nach oben
 Profil  
 
BeitragVerfasst: 28.01.2011, 16:59 
Offline
Benutzeravatar

Registriert: 17.04.2007, 08:42
Beiträge: 460
Wohnort: Willich, NRW
uff^^ Entweder du machst Culling in ieiner Form (Nur zeichnen was sichtbar ist) oder noch viel besser. Lass das ò.ó! Du zeichnest im Endeffekt ja wieder nur ein CubeObject. Einfach auf die gewünschte Größe resizen und die Textur kacheln dann hast du haar genau das was du da siehst aber bestehend nur aus einem Block ergo deutlich mehr fps.

gruß heck

_________________
Bild

Irrlicht - From Noob To Pro A Guideline

--

Sonstige Projekte, Blog : http://www.rpdev.net


Nach oben
 Profil  
 
BeitragVerfasst: 29.01.2011, 22:25 
Offline

Registriert: 28.06.2010, 21:47
Beiträge: 27
Sieht aus, wie Minecraft.

Schau dir mal DAS an. Da wurde Minecraft schon nachgeproggt.


Nach oben
 Profil  
 
BeitragVerfasst: 03.02.2011, 00:39 
Offline

Registriert: 17.01.2011, 02:50
Beiträge: 2
das heck hat geschrieben:
uff^^ Entweder du machst Culling in ieiner Form (Nur zeichnen was sichtbar ist) oder noch viel besser. Lass das ò.ó! Du zeichnest im Endeffekt ja wieder nur ein CubeObject. Einfach auf die gewünschte Größe resizen und die Textur kacheln dann hast du haar genau das was du da siehst aber bestehend nur aus einem Block ergo deutlich mehr fps.

gruß heck


Das war eigentlich meine gleiche Idee, allerdings bin ich nicht drauf gekommen, wie ich das anstellen kann.
Also wie ich einen IsceneNode Cube mit 4 Punkten Zeichne. Hatte auch meine Probleme mit der API.
Wär nett wenn du den genauen Befehl vlt. posten könntest. Danke.

@Marthog: Hab nicht vor Minecraft zu programmieren. Ich will einfach eine 3D Welt, welche beliebig generierbar.
trotzdem Danke für den Link.


Nach oben
 Profil  
 
BeitragVerfasst: 03.02.2011, 09:48 
Offline
Benutzeravatar

Registriert: 17.04.2007, 08:42
Beiträge: 460
Wohnort: Willich, NRW
Probier mal folgendes:

Code:
ISceneNode* cube = smgr->addCubeSceneNode();
cube->setScale(vector3df(100.0f, 100.0f, 5.0f));
//müsste ein recht zusammengedrücktes Quadrat ergeben, spiel einfach mal n bissl mit den Werten


oder du kannst den Skalierungsvektor auch schon an den SceneManager ergeben

Code:
/*
addCubeSceneNode (f32 size=10.0f, ISceneNode *parent=0, s32 id=-1, const core::vector3df &position=core::vector3df(0, 0, 0), const core::vector3df &rotation=core::vector3df(0, 0, 0), const core::vector3df &scale=core::vector3df(1.0f, 1.0f, 1.0f))=0;
*/
smgr->addCubeSceneNode(10.0f, 0, -1, vector3df(0,0,0), vector3df(0,0,0), vector3df(100.0f,100.0f,5.0f));


Vergiss aber nicht mit Scale fügst du einen Multiplikator hinzu. Die letzendliche Größe wäre dann

x = y =100.0f*10.0f und
z = 5.0f*10.0f

Hoffe das hilft!

Grüße heck

_________________
Bild

Irrlicht - From Noob To Pro A Guideline

--

Sonstige Projekte, Blog : http://www.rpdev.net


Nach oben
 Profil  
 
BeitragVerfasst: 03.02.2011, 22:42 
Offline

Registriert: 28.06.2010, 21:47
Beiträge: 27
Muss die Welt aus Blöcken aufgebaut sein?

Wenn nicht, kannst du auch einfach ähnlich, wie ISceneManager::addHillPlaneMesh die eine Terrain zufällig generieren und da die entsprechenden Texturen draufzeichnen lassen.


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de