Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

OnTheRun

Frischling

  • »OnTheRun« ist der Autor dieses Themas

Beiträge: 8

Wohnort: Schweiz

Beruf: Lehrling

  • Private Nachricht senden

1

03.02.2006, 12:56

[Direct3D] Meshes rendern - Ideen/Anregungen?

Hallo allerseits,
ich bin gerade dabei ein kleine Framework für Demos zu schreiben. Ich habe vorher einige Erfahrung in Punkto OpenGL gesammelt, mich dann aber entschieden mit DirectX weiter zu machen.
Ich habe begonnen die Tutorials vom DX-SDK durchzuarbeiten und konnte auch schon .X-Models laden und rendern. Ich habe mich allerdings gefragt, wie dies von statten geht bei mehreren Models.
Ich habe mir dann eine Mesh-Klasse geschrieben, welche ein Mesh lädt und rendert.
Beim Rendern des Meshs selbst, wird das Material, so wie die Textur gesetzt und schlussendlich das Mesh per DrawSubSet angezeigt.
Ich rufe die Render-Funktion allerdings in einer anderen Klasse (CEngine), in der Funktion Render auf. Dort werden die generellen Sachen gemacht (BeginScene(), EndScene() etc.).
Nun ist das ja für ein Mesh ganz praktisch, wenn man allerdings mehrer Meshs rendern will nicht mehr so.
Ich habe dann begonnen mich mit verketteten Listen zu befassen und habe das glaube ich auch begriffen. Was ich allerdings noch nicht so sehe, ist wo setze ich für die einzelnen Meshs dann die Transformationen, Rotationen, Lichter etc.? Muss ich das beim Durchgehen der Liste vor g_pMesh.Render() machen? Wie seid ihr das angegangen?

Vielen Dank und Gruss

Black-Panther

Alter Hase

Beiträge: 1 443

Wohnort: Innsbruck

  • Private Nachricht senden

2

03.02.2006, 14:27

Die Matrizen müssen ja vor dem Aufruf von DrawSubset gesetzt werden. Wenn du schon eine verkettete Liste hast, könntest du ja Strukturen verketten, und eine Variable dieser Struktur (Eine Struct beschreibt einen Mesh) beinhaltet einen Pointer auf die jeweilige Weltmatrix.
In deiner Hauptklasse könntest du dann einfach in einer Schleife die ganze Liste durchlaufen und bevor du das Mesh mit DrawSubset renderst die jeweilige Transformationsmatrix setzten

Edit: Die TransformationsMatrix selbst kannst du ja ganz wo anders bei belieben wieder ändern!
stillalive studios
Drone Swarm (32.000 Dronen gleichzeitig steuern!)
facebook, twitter

Osram

Alter Hase

Beiträge: 889

Wohnort: Weissenthurm

Beruf: SW Entwickler

  • Private Nachricht senden

3

06.02.2006, 03:06

Eine von mehreren Möglichkeiten sind Szenen Graphen (engl. Scene Graph). Es ist ein gewisser Aufwand, einen zu implementieren, aber wenn man das erst mal hat, ist es recht flexibel. Googel mal danach.
"Games are algorithmic entertainment."

Werbeanzeige