Du bist nicht angemeldet.

Werbeanzeige

Anonymous

unregistriert

1

05.02.2004, 00:45

Ideen um 3D Objekte zu verwalten

Hallo, ich würde gerne wissen wie ihr das mit euren Modellen im Programm macht.

Ich stelle mir das so vor:

Quellcode

1
2
3
4
5
6
7
struct{
 Vertexbuffer;
 XPos;
 YPos;
 ZPos;
 ect...
};


Doch was ist wenn ich zwei gleiche Modelle hätte. Dann hätte ich einen Vertexbuffer um sonst erstellt.

könnt ihr mir da einen Überblick geben wie das am besten gehen könnte?

danke cu

2

05.02.2004, 12:51

also ich hab nen resouremanager, da kommen alle sounds, texturen und models rein (also vb und ib und evtl animationen).

wenn ich jetzt ein spiel damit machen würde, würde meine struct für ein objekt ungefähr so aussehn:

Quellcode

1
2
3
4
5
6
7
struct
{
    Vector3 Position;
    DWORD ModelIndex;
    DWORD Zustand;
[...]
};
stay tight, project universe comes back!
### project earth <> 2004 ###

3

05.02.2004, 14:41

Ich Arbeite nur mit Interfaces. Bevor ein Mesh geladen wird, wird erst geschaut ob es bereits existiert. Wenn ja wird der Referenzzähler inkrementiert und die Instanz geliefert, sonst wird das Modell geladen und in einer internen Liste gespeichert und dann die Instanz geliefert.

Es ist also auch ein kleiner Manager dahinter. Allerdings nur ein Lade Manager. Denn alle Interfaces besitzen eine Release Methode und entfernen sich selber von der Liste. Das ergab eine schöne SafeRelease Methode die ihren Namen gerecht ist ;D
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

4

05.02.2004, 23:26

Wie sehen bei euch die Klassen/Strukturen eines Object aus.

Hat jede ein Vertexbuffer und ein Indexbuffer?

Quellcode

1
2
3
4
5
6
class 3DObject
{
   VERTEXBUFFER;
   INDEXBUFFER;
   diese_und_das...;
}

5

06.02.2004, 00:02

Auch hier kommen mir die Interfaces zu gute. Alle Objekte arbeiten nur mit dem Mesh Interface. Dabei ist es ihnen egal ob das Mesh IndexBuffe verwendet oder nicht.

Die Meshes kann ich so speziell anpassen :)
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Werbeanzeige