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

Osram

Alter Hase

Beiträge: 889

Wohnort: Weissenthurm

Beruf: SW Entwickler

  • Private Nachricht senden

11

31.12.2007, 23:30

Re: Was brauche ich alles für 3d Informationen?

Zitat von »"Sebby"«

Hallo,

ich hab mir mal ältere Spiele und auch ganz aktuelle angesehen und etwas festgestellt,

Eigentlich machen es alle Klassisch:

Eckenliste

* Trennung von Geometrie und Topologie


Es ist mir nicht 100% klar was Du meinst. Sagst Du die Topoligie wird überhaupt nur implizit angegeben?

Zitat


* minimale Redundanzen (Punkte werden nur 1x abgelegt)


Ja, macht Sinn.


Zitat


* Kanten werden mehrmals durchlaufen und ausgegeben


Ich würde sagen, >50% der Formate geben Kanten gar nicht an.
Bei den restlichen werden wiederum >50% Kanten nur einmal angeben und dann indizieren. So machen wir das z.B. bei unserem Küchenplanungsprogramm: Flächen verweisen auf Kanten, Kanten auf Eckpunkte. Wir machen das weil wir eine Liniendarstellung haben und die Kanten hierfür Eigenschaften haben.

Zitat


* Suche nach zu Kanten gehörenden Facetten nicht effizient möglich (nur mit erschöpfender Suche möglich) Für alle Kanten in F1 (jedes Eckenpaar) suchen wir in allen weiteren Facetten, ob sie enthalten ist, wenn Nein dann Randkante)


Du musst zunächst unterscheiden wie die Daten auf Platte und im Speicher vorliegen. Auf Platte werden die dafür nötigen Informationen nicht explizit vorhanden sein, da das redundant wäre und man es ja beim Laden "berechnen" kann.

Im Speicher wird es ein Renderer (inkl Renderer eines Spiels) normalerweise auch nicht haben, da er es nicht braucht.

Andere 3D Applikationen (z.B. Modeller) nutzen manchmal die "winged edge" Struktur (siehe Google).



Zitat


Soweit so gut, nur hab ich folgendes festgestellt, bei fast allen spielen kommt nach diesen daten noch ein Datenblock der fast identisch mit dem Block der Scheitelpunkte ist. Wenn ich diesen überschreibe geht trotzdem noch alles.


Vielleicht die Normalen?

Zitat


was könnten das für daten sein? was braucht man denn alles wenn man z. B. Fahrzeuge steuert oder allgemein eine Simulation macht?


Fürs Rendern? Wenn ja, sieh Dir 3D Formate an, z.B. die Beschreibung des *.X Formates in dem DXSDK.

Für die Physik? Ausm Kopf:
- Zumindest für TerrainPolys ein "physikalisches Material" z.B. Asphalt, Grass, Kies etc. Dies beeinflusst Sound und physikalische Größen wie Haftung.
- Info für Damage Model (wie schrottet sich Dein Auto?)
- Info für Kollisionen wenn Du nicht die normale 3D Geometrie nehmen willst.

Man kann auch etliches Spiel- oder Genre-spezifisches haben:
- Info für Effekte, z.B. wo ist der Auspuff?

Übrigens gibts ja mehrere Open Source Rennspiele.
"Games are algorithmic entertainment."

12

01.01.2008, 17:33

Hallo nochmal,

erstmal nachträglich ein gutes neues Jahr. Ok ich hab jetzt rumprobiert und gespielt mit den vorhandenen formaten, es sieht so aus als wären die unbekannten daten vertex normale bzw surface normalen

ich hab das noch nicht so ganz kapiert, wieso brauch ich überhaupt normalenvektoren bei scheitelpunktenn oder flächen?

hab da mal dieses bild gesehen:


(Link)


(Link)


die blauen striche sind die normalenvektoren. ich hab immer noch nicht so kapiert wozu ich die bei scheitelpunkten überhaupt brauche.

wäre euch dafür sehr dankbar

Osram

Alter Hase

Beiträge: 889

Wohnort: Weissenthurm

Beruf: SW Entwickler

  • Private Nachricht senden

13

02.01.2008, 00:31

Meist braucht das System die Normalen zur Belichtungsberechnung und meistens sind diese nicht aus anderen Daten errechenbar, also müssen sie in den Dateien gespeichert werden.
"Games are algorithmic entertainment."

Werbeanzeige