Du bist nicht angemeldet.

Werbeanzeige

1

25.12.2003, 03:12

Was braucht ein 3D Objekt alles?

Wenn ich eine Klasse erstellen will das ein 3D Objekt darstellen soll ist es gut wenn ich auch den Vertexbuffer reinpacke?

Quellcode

1
2
3
4
5
class 3DObjekt
{
   private:
   LPVERTEXPUFFER9  puffer;
....


Soll die Verticesbeschreibugn auch da rein?

Wie habt ihr das gemacht?

2

25.12.2003, 14:44

Also ich hab für VB auch ne extra Klasse, dhVertexBuffer (dh heisst meine Engine) und dann sollten da halt die Verticies auch noch rein (für Picking etc.).

3

25.12.2003, 20:31

Fuer grosse Modell ist ein VertexBuffer von Vorteil. Bei kleineren Modellen ist es vieleicht sogar schneller wenn man Userpointer verwendet.

Schreib dir am besten einen eigenen VertexBuffer. Einen der mit der IDirect3DVertexBuffer9 Schnittstelle Arbeitet und einen der mit Userpointer Arbeitet. Aber die gemeinsamme Schnittstelle nicht vergessen ;)

Ansonsten ist es nachtuerlich nocht wichtig das du eine BoundingBox fuer das Modell hast. Erleichtert das Culling und eine erste einfache Form der Kollisionserkennung wird moeglich.

Ansonsten:
Positions-, Rotationsvektor
Richtungsvektor
Verwendete Textur(en)

So das duerfte fuer ein erstes einfaches Modell reichen :)
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Anonymous

unregistriert

4

26.12.2003, 00:06

Was sind Userpoints?

Und was muss der eingene Vertexbuffer alles machen oder können?

Du schreibst Rotationsvektor meinst du die Matrix?

5

26.12.2003, 03:55

Userpointer sind Pointer die auf einen Speicherbereich in deinem Hauptspeicher Zeigen. Bei den Zeichenfunktionen von Direct3D sind die Funktionen mit "UP" am Ende gekenzeichnet. UP = Userpointer

Schau dir einfach mal an was David's VB so alles kann. Must ihn ja nicht kopieren, denn eigene Gedanken sind immer gut ;D

Ne mit Rotationsvektor mein ich nicht die Matrix. Die wird dann spaeter erstellt. Aber ich denke das du deine Modell auch drehen willst, oder?
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Anonymous

unregistriert

6

26.12.2003, 10:58

Ich dachte immer das ein Vektor eine Richtung hat das ist mir jetzt neu das man damit auch was rotieren kann.

Ja ok, in OpenGL gibt die Rotationsfunktion wo man mit Angabe eines Vektors und des Winkels ein Opjekt rotieren lassen kann. Stimmt ja :D

Danke für die Antworten. Ich starte jetzt mal VisualC++ ;)

cu

7

26.12.2003, 15:19

übrigens solltest du dich nicht auf eine statische Anzahl von Texturen verlassen, sondern die Texturen in einer Liste speichern(std::vector)
damit hast du dann keine Probleme mit Texturen ;D
Do, ut des!
Ceterum censeo, carthaginem delendam esse

8

28.12.2003, 23:04

Texturen sollten immer nur von einem Texturmanager geladen werden und nicht direkt von einem anderen Objekt.

Das verringert den Verbrauch von Speicher.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Werbeanzeige