IrrlichtWrapper 1.05 (leider immer noch beta)

Anwendungen, Tools, Userlibs und anderes nützliches.
Benutzeravatar
Thalius
Beiträge: 476
Registriert: 17.02.2005 16:17
Wohnort: Basel / Schweiz

Beitrag von Thalius »

ok, gezogen - werde mir das ganze mal durchstrukturieren und testen. Imo ist nix zu sehen auf dem Screen, ist das beabsichtigt ? Und ja, ich sehe dein Problem mit dem Memory ;)

Arbeite mich da mal durch, aber das wird nach dem Wochenende wohl sein - imo hock ich voll im Stress bei der Arbeit. Werde mal sehen ob ich da nicht ggf. ein paar Dinge vereinfachen kann. Apropos - habs nur überflogen PM mir am besten schnell genau was du machen willst. Wenns nur darum geht fonts im 3D Space zu plazieren gibts da nämlich einen eingebauten Node. :)

Mach weiter so, dank deinem Feedback hab ich schon einige Tücken in der Manual ausmerzen können und evtl. kann ich noch ein par Dinge für das nächste Release vereinfachen ( zb. Garbage Collection ) ... Danke!

Thalius
"...smoking hash-tables until until you run out of memory." :P
Benutzeravatar
tft
Beiträge: 650
Registriert: 08.09.2004 20:18
Computerausstattung: GFX 3060 Ti , i7 12700F , 32 GB Ram , 900 GB SSD , TV
Wohnort: Dachsen
Kontaktdaten:

Beitrag von tft »

Hallo ....

das du nichts sehen kanst erstaunt mich nicht. Warscheinlich must du erst den "Standard.png" in die Directory packen in der auch das .pb fiele liegt. Ich lege meine Files leider immernoch nicht bei Media ab.

Sehen soltest du das

Bild
TFT seid 1989 , Turgut Frank Temucin , CH-Dachsen/DE-Berlin/TR-Antalya
Mein Projekt (Driving School Evergarden)
Codes bei (GitHub) Videos von (YouTube)
Treffen via Discord: Einladung

PB 6.10 | W11 | i7 12700F | 32 GB Ram | RTX 3060 Ti | 60 Herz -TV FullHD
ARDUINO Freak | Sprecher | Game Dev. | Geschichten Erzähler :-)
Benutzeravatar
Thalius
Beiträge: 476
Registriert: 17.02.2005 16:17
Wohnort: Basel / Schweiz

Beitrag von Thalius »

Also bins mir grad am durchkauen... muss das neu aufbauen. Prozedural solltest du dir etwas celaneren Aufbau zu Herzen nehmen.

Dein Leak liegt in: RefrechText3D()

Da wir hier mit pointer auf Strukturen arbeiten geht sowas zb. nicht.

Code: Alles auswählen

      If *ClearTextPageNode<>0
        IrrRemoveNode(*ClearTextPageNode)
        *ClearTextPageNode=0
      EndIf
...
          If *TextPageNode
            *ClearTextPageNode=*TextPageNode
            IrrRemoveNode(*TextPageNode)
          EndIf
Das kann nicht gehen da du die Adresse eines nodes übergibst welchen du nachher löscht und der pointer dadurch invalidiert wird. Kein wunder leakt das ;)



Thalius
"...smoking hash-tables until until you run out of memory." :P
Benutzeravatar
tft
Beiträge: 650
Registriert: 08.09.2004 20:18
Computerausstattung: GFX 3060 Ti , i7 12700F , 32 GB Ram , 900 GB SSD , TV
Wohnort: Dachsen
Kontaktdaten:

Beitrag von tft »

Hallo ..

Ich habe versucht meine überlegungen zu prezisieren. Aber ich komme immer zu dem gleichen ergebniss. Und mit anderen Worte das gleiche erzählen bringt wol nichts.
Es hapert immernoch an dem problem das zwischen erstellen und darstellen einer Node eine Frame lücke ist. Dagegen wird eine Node beim Removen sofort entfernt. Daher entsteht ein flakkern, wenn es nicht mit hilfe von 2 Nodes gepuffert ist.

Frame Node 1 erstellen
Node anzeigen
Nachste node erstellen
Forherige löschen
Node darstellen

Wenn ich mit *Node2=*Node den Zeiger speicher. Dann mit *Node=CreateNode() eine neue erzeuge. Zeigen dann *Node2 immernoch auf die *Node und auf das gleiche object? Wenn ja. Dann habe ich verstanden was ich falsch mache. ich müste also zum Switschen auch 2 .irr_nodes anlegen. und die auch beim Löschen entsprechend verwenden.


(%ç*%&//=(%(/%%*"*(&%&/(ç%&//(/&=ç) ich hoffe ich bekomms irgendwann auf die reihe

Gruss TFT
TFT seid 1989 , Turgut Frank Temucin , CH-Dachsen/DE-Berlin/TR-Antalya
Mein Projekt (Driving School Evergarden)
Codes bei (GitHub) Videos von (YouTube)
Treffen via Discord: Einladung

PB 6.10 | W11 | i7 12700F | 32 GB Ram | RTX 3060 Ti | 60 Herz -TV FullHD
ARDUINO Freak | Sprecher | Game Dev. | Geschichten Erzähler :-)
Benutzeravatar
Thalius
Beiträge: 476
Registriert: 17.02.2005 16:17
Wohnort: Basel / Schweiz

Beitrag von Thalius »

Frameverzögert passiert eigentlich nur mit einem Delay ( da dein Loop ja den Add Befehl gibt, welcher eine Veränderung in der Szene bewirkt und da dieser verzögert / asynchron zum 3D Prozessor läuft. Wenn du Szenenveränderungen durchführst welche Zeitkritisch sind, nimm sie aus dem Delay ( Delay sollte nur erfolgen wenn sich nix in der Szene verändert. Oder mit Delay noch im Zeitlichen margin liegt ).

Der Einfachheit halber werde ich fürs 1.53 ( Stable ) noch ein paar Kommands hinzufügen:
Returns amount of loaded meshes in the cache.
IrrGetMeshCount()

Returns current index number of the mesh, and -1 if it is not in the cache.
IrrGetMeshIndex(*mesh)

Removes a animated mesh from the cache.
IrrRemoveMesh(*mesh)

Removes a static from the cache.
IrrRemoveStaticMesh(*mesh)

returns an already loaded mesh.
IrrFindMesh(lowerMadeFilename.s)

Clears all unused Meshes from the Cache.
IrrClearUnusedMeshes()
Hoffe ich erreiche Mike die Tage, um mich mal mit ihm abzusprechen.

Apropos: Hats nen speziellen Grund dass du keine Billboards verwendest ?

Anonsten würde ich vorschlagen ein flaches Node zu erstellen ( welches im gegensatz zu Billboards auch gedreht werden kann ). Und dann nurnoch das surface neu zu berechnen und die Node-grösse dem jeweiligen Context anzupassen ( ist auch einiges performanter als alles jedesmal neu zu erstellen ).

Soll ich das ganze noch fertig neustrukturieren oder hast dus im Griff ?
ANosnten hock cih mich nämlich imo mal weiter hinter Manual.

Cheers,
Thalius
"...smoking hash-tables until until you run out of memory." :P
Benutzeravatar
tft
Beiträge: 650
Registriert: 08.09.2004 20:18
Computerausstattung: GFX 3060 Ti , i7 12700F , 32 GB Ram , 900 GB SSD , TV
Wohnort: Dachsen
Kontaktdaten:

Beitrag von tft »

Hallo ...

habe jetzt etwas über 10 Stundne an diesem Prob gesessen und endlich eine Lösung gefunden. Da selbst das wegnehmenn des Delay(1) keine hilfe war. Und durch Experimente mit den Cores ganz klar eine Delay der Node darstellung auf Multicore zurückzuführen ist. Es gibt da einen Befehl der sich IrrSetDeleteAnimator() nennt. Damit habe ich die Verzögerung beseitigt. Indem ich den Pointer für die neue Node einfach widerverwende und vorher diesen als Parameter im DeleteAnimator verwende. Das hat auch die Speicher lags beseitigt. Im übrigen passiert das nicht auf meinem Laptop. Der ist recht langsam. Mir fehlt eindeutig mer intenes Wissen über die IrrlichtEngine und ihre Arbeitsweise. Aber so langsam bekomme ich es hin.

Billboards ? sind mir jetzt nicht so ein begriff. Aber da ich die sache jetzt zu laufen habe. Und mir noch einige Iddeen zum tut Fehlen. Könnte ich diese ja mal einbauen und schauen ob ichs begreife. Grundsätzlich benötige ich ein SingelSurface system. Es soll änlich funktionieren wie zu alten Dos Zeiten. Die Text und Ramen ellemente werden vom Font abgedeckt. Habe mich da von Hectics Draw3D von BlizBasic inspiriren lassen. Und da ich den Font verwenden darf..... baue ich darauf auf. Und weis wenigsten was passiert.

Gruss TFT
TFT seid 1989 , Turgut Frank Temucin , CH-Dachsen/DE-Berlin/TR-Antalya
Mein Projekt (Driving School Evergarden)
Codes bei (GitHub) Videos von (YouTube)
Treffen via Discord: Einladung

PB 6.10 | W11 | i7 12700F | 32 GB Ram | RTX 3060 Ti | 60 Herz -TV FullHD
ARDUINO Freak | Sprecher | Game Dev. | Geschichten Erzähler :-)
Benutzeravatar
Thalius
Beiträge: 476
Registriert: 17.02.2005 16:17
Wohnort: Basel / Schweiz

Beitrag von Thalius »

Hier eine aktuellere Version der Manual ( Endlich meinen Parser-Bug lokalisiert :D rest folgt. )

http://www.anwesend.ch/meckardt/irrlicht/docu/

Thalius
"...smoking hash-tables until until you run out of memory." :P
Benutzeravatar
Rings
Beiträge: 977
Registriert: 29.08.2004 08:48

Beitrag von Rings »

thx
Rings hat geschrieben:ziert sich nich beim zitieren
Benutzeravatar
dige
Beiträge: 1235
Registriert: 08.09.2004 08:53

Beitrag von dige »

@Rings: Willkommen in der 3D-Welt :) wird das pbMC jetzt nach IRR portiert?
"Papa, ich laufe schneller - dann ist es nicht so weit."
Benutzeravatar
Thalius
Beiträge: 476
Registriert: 17.02.2005 16:17
Wohnort: Basel / Schweiz

Beitrag von Thalius »

so.. heut Abend geh ich nochmals da drüber ( ich sollte sowas nicht um 4 Uhr morgens machen .. :roll: - ich schreib ja schlimmer als ne Kuh! )
@Rings: Willkommen in der 3D-Welt Smile wird das pbMC jetzt nach IRR portiert?
Er versuchts zumindest mal ... :mrgreen:

hehehehe

Thalius
"...smoking hash-tables until until you run out of memory." :P
Antworten