AddMesh tuts nicht

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

ToeB

Betreff: AddMesh tuts nicht

BeitragSa, Nov 08, 2008 12:56
Antworten mit Zitat
Benutzer-Profile anzeigen
So ich habe folgenden code :
Code: [AUSKLAPPEN]
NewMesh = CreateMesh()         
      For obj.obj = Each obj
         AddMesh(obj\mesh,NewMesh)
         FreeEntity obj\Mesh
         Delete obj.obj
      Next


Er soll ein Mesh erstellen, alle einzellnen Objecte per AddMesh reinkopieren und die alten löschen. Das tut er auch, nur sind die Objecte immer an 0,0,0, egal wo ich sie positioniert habe. Warum ist das so ?

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

Lunatix

BeitragSa, Nov 08, 2008 13:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Nun, dann lese mal die Onlinehilfe Wink
Denn die sagt nähmlich folgendes:

Hilfe hat Folgendes geschrieben:
Wenn mehere (gleiche) Objekte zusammengefügt werden, dann ist die Anwendung der Befehle PositionMesh, RotateMesh und ScaleMesh zuvor sinnvoll, da die Objekte sonst übereinander liegen werden.


Wenn du nähmlich das Entity positionierst, ist das Mesh natürlich immernoch auf xyz = 0
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...

ToeB

BeitragSa, Nov 08, 2008 13:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Das habe ich natürlcih auch versucht Wink :

Code: [AUSKLAPPEN]
For obj.obj = Each obj
         PositionEntity obj\mesh,obj\x,obj\y,obj\z
         AddMesh(obj\mesh,SaveMesh)
         FreeEntity obj\Mesh
         Delete obj.obj
      Next


Bleibt aber immer noch an 0,0,0... Ich check gar nix mehr... =(

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

Lunatix

BeitragSa, Nov 08, 2008 14:00
Antworten mit Zitat
Benutzer-Profile anzeigen
.....!

LESEN ey. Was steht dort? Sag es mir! PositionMesh
Oben sagte ich grade noch, das PositionEntity nicht geht
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...

ToeB

BeitragSa, Nov 08, 2008 16:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Upps ... Embarassed !

Thanks Smile

mfg ToeB


[EDIT]

Die werden aber falsch + Untexturisiert übertragen :
Code: [AUSKLAPPEN]
For obj.obj = Each obj
         PositionEntity obj\mesh,0,0,0
         PositionMesh obj\mesh,obj\x,obj\y,obj\z
         AddMesh(obj\mesh,SaveMesh)
         FreeEntity obj\Mesh
         Delete obj.obj
      Next
´

Warum funzt das nicht ?

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

Lunatix

BeitragSa, Nov 08, 2008 19:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Also nocheinmal:

Wir haben nun 2 Meshes. Diese Meshes werden im späteren spiel die gleichen texturen haben, werden aber aus irgendwelchen Gründen a) als 2 Modelle geladen oder b) Es sind Einschusslöcher, Sprites, was auch immer.

Wenn nun noch der Faktor in Kraft tritt, das die Meshes gleich oder ganrichtmehr bewegt werden, macht es Sinn, diese beiden Meshes aus Gründen der Performance zusammenzufügen.

Dabei werden die Koordinaten des Meshes (nicht des Entitys) [A] mit den Koordinaten des Meshes [B] Addiert, das heisst, das die Vertices von Mesh [A] mit ihren xyz Koordinaten PLUS die xyz Position des Meshes [B] auf dem Entity[B], welches ja Mesh [B] gespeichert hat und verwaltet, Übertragen werden.

Dabei geht allerdings, wie zu erwarten, die Textur, die bereits auf Mesh [A] gelegt wurde und die xyz Position des eigendlichen Entitys verloren bzw. werden diese in Mesh [B] nicht übernommen.

Die Textur Koordinaten, sofern vorhanden (bei CreateMesh müssen diese natürlich selbst berechnent werden, ist es ein geladenes Modell, sollten sie bereits, sofern im jeweiligen Editor wiederum angegeben, geladen und vorhanden sein) werden dabei 1:1 übernommen.

Da ich bezweifle, das du weisst was ein Entity eigendlich ist: Ein Entity ist sowas wie ein "Globaler Begriff", eine Art Schublade in einem Schreibtisch, wobei der Schreibtisch dein Hauptprogramm darstellt.
In diese Schubladen kannst du nun verschiedene Sachen ablegen, du kannst eine Camera dort hineinlegen, ein Mesh usw. Noch dazu sind die Koordinaten des Inhaltes angegeben, diese werden beim Zeichnen mit den Kamera oder Mesh Positionen verrechnet, wobei die Kamera natürlich keine Mesh Koordinaten hat, weshalb dieser Teil wegfällt.

Ich hoffe, ich habe mich einigermassen verständlich ausgedrückt, und zum Abschluss lege ich dir noch nahe, dich mit Blitz3D ersteinmal ein bisschen mehr vertraut zu machen und vor allem Lesen zu lernen, dabei musst du das gelesene Allerdings auch verstehen. Dies ist kein Angriff meinerseits, sondern nur ein guter Ratschlag, den du, solltest du mal wieder neue Befehle ausprobieren, vielleicht anwenden solltest Wink

ToeB

BeitragSo, Nov 09, 2008 11:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Lunatix hat Folgendes geschrieben:
Ich hoffe, ich habe mich einigermassen verständlich ausgedrückt, und zum Abschluss lege ich dir noch nahe, dich mit Blitz3D ersteinmal ein bisschen mehr vertraut zu machen und vor allem Lesen zu lernen, dabei musst du das gelesene Allerdings auch verstehen. Dies ist kein Angriff meinerseits, sondern nur ein guter Ratschlag, den du, solltest du mal wieder neue Befehle ausprobieren, vielleicht anwenden solltest Wink


1.: Nein ich habs net verstanden, mit Mesh a und Entity B etc. !?

2.: Ich bin mit BB3D schon sehr gut vertraut, nur manche sachen bin ich ahlt zu blöd für.

3.: Was ist der Unterschied zwischen Mesh und Entity ?

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

Lunatix

BeitragSo, Nov 09, 2008 15:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein. Du bist mit Blitz3D kein Stück vertraut, wenn du nichtmal weisst, was ein Mesh und was ein Entity ist. Du machst auf mich den Eindruck, als ob du es garnichtverstehen willst. Lies dir den Text Aufmerksam und langsam durch und stelle es dir im Kopf vor.


Was ein Mesh ist kannst du hier lesen: http://de.wikipedia.org/wiki/Polygonnetz
Und was ein Entity ist, dazu findest du auch etwas im Netz.

Ergreife mal etwas Eigeninitiative, dann bekommst du auch mehr Antworten... und auch im Englischen Forum wirst du was zu Addmesh finden.
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...

hectic

Sieger des IS Talentwettbewerb 2006

BeitragSo, Nov 09, 2008 16:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Unterschiede wie sie mir bekannt sind:

Mesh: Ist ein Gitterobjekt und beinhaltet eben Vertieces und Triangles. Jeder Vertex hat dann seine Position, Ausrichtung (Normale), Farbe und UV-Map. Jedes Triangle gibt an, welche drei Vertices für ein Triangle zustehen. Das heisst auch, dass mehrere Triangles auf ein und denn selben Vertexpunkt zugreifen können. Das wird besonders auf Terrains deutlich, da da die Textur von Triangle zu Triangle fliessend ist, damit eben keine Nahtstellen sichtbar werden.

Entity: Ist ein Objekt welches vom Programmierer im Spiel angesprochen werden sollte. Dieses beinhaltet zum Beispiel welches Mesh zu diesem Entity gehört und welche Ausmaße, Ausrichtung und Position es hat. Wenn man also ScaleEntity macht, dann bleiben die Mesh-Vertex-Koordinaten an Ort und Stelle, aber die Umrechnung zur Darstellung wird eben skalliert, wie auch die Position und dessen Ausrichtung.

Würde man zum Beispiel statt PositionEntity dann PositionMesh machen, würde es zwar auch funktionieren, aber es würden auch immer kleinere Rundungsfehler auftretten und nach einiger Zeit würde eine Spielfigur ganz deformiert aussehen. Unter anderem aus diesem Grund muß das voneinander getrennt sein.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

The_Nici

BeitragSo, Nov 09, 2008 18:21
Antworten mit Zitat
Benutzer-Profile anzeigen
hectic, dazu wäre das Drehzentrum ganz verschoben, da PositionMesh das Gitternetz neu positioniert, aber nicht den Mittelpunkt in der Welt.
MfG

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group