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

MikeL

Frischling

  • »MikeL« ist der Autor dieses Themas

Beiträge: 21

Beruf: Einzelhandelskaufmann

  • Private Nachricht senden

1

16.03.2011, 22:25

Allgemeine Frage zu 3D Modellen

Nabend zusammen,

habe da mal eine allgemeine Frage zu den 3D Modellen.
Ich habe mir jetzt mal das Buch 3D Spieleprorgammierung mit DirectX9 und C++ gekauft und auch schon was rein gearbeitet. Unteranderem das Erstellen von Objekten mit dem Vertex und Index Buffer und auch das man später Komplexere Objekte reinladen kann, durch einen Konverter.
Mal die frage jetzt wie groß sollten solche Objekte sein? Also wie viele Vertex sollte ein Objekt nicht überschreiten fragen wir besser so? Weil ich doch gemerkt habe wenn ein Objekt ne gewisse Vertex Größe überschreitet in dem Modellierunsgprogramm geht das arg auf die Performance bzw das Programm schmiert ganz ab weil es den kompletten Arbeitsspeicher belastet. Oder lässt sich das mit gewissen Tricks wieder ausbessern?
Nutze am Rande erwähnt Blender weil ich nicht viel von Commerzieler Software halte.

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

2

17.03.2011, 07:48

Die Frage kannst nur du selbst beantworten.

Wie genau ein 3D Modell sein soll und kann hängt sicher von der Plattform ab, auf der du entwickeln willst. Wenn du für ein mobiles Gerät entwickelst dann sollten die Modelle natürlich grobmaschiger sein, damit nicht zu viele Dreiecke gezeichnet werden müssen. Bei heutigen handelsüblichen PC's kann ein Modell schon aus vielen 10-Tausenden und 100-Tausenden Vertices bestehen (Sicher auch mehr, ich habe aber nur ein schwaches Notebook oO). Grenzen kannst du nur selber setzen, je nachdem ob das Spiel auch bei schwächeren Systemen laufen soll.

Viele kommerzielle Spiele setzen aber bei dieser Problemstellung viele Tricks ein. So werden die Modelle, die weiter weg von der Kamera sind meistens mit einer geringeren Detailstufe (Level of Detail, LOD) gezeichnet. Der Entwickler hält so mehrere LOD-Stufen eines Modells vor und wechselt bei bestimmten Abstand zwischen diesen. Geringere LOD-Stufen eines Modells kann man auch sehr gut für performante Kollision nutzen, falls man keine Boundingboxen nutzen kann oder will.

Links:
Skript zu LOD
Wikipedia Artikel (Englisch)

Harry222

Alter Hase

Beiträge: 864

Beruf: Student

  • Private Nachricht senden

3

17.03.2011, 16:53

Falls du mit DX11 arbeitest, kannst du auch Tessellation verwenden.
Einige Details an 3D Modellen kann man dann (denke ich) auch noch mit PerPixelLighting und BumpMaps machen, woduch das Modell dann nicht so fein sein muss.

DeKugelschieber

Community-Fossil

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

4

17.03.2011, 22:22

Man braucht auch nicht zwangsläufig viele Vertices um schöne Modelle zu erstellen, die Textur und Lichtreflektion haut einiges raus.

5

17.03.2011, 22:49

Also wenn Blender schon ruckelt, hast du definitiv zu viel ;-)
Abhängig ist das natürlich von vielen Faktoren, zum Beispiel, wie viele Figuren auf einmal im Bild sind und wie groß diese sind. Hast du 10 Gegner kann man theoretisch grob 10 mal mehr Details haben, als wenn du 100 Gegner hast. Und es macht vermutlich auch Sinn, dem Hauptcharakter 20k Polygone zu geben und 9 Gegnern jeweils 9k, anstatt 10k für jede Figur (was ja in der Summe wieder das selbe ergeben würde).
Man darf aber auch nciht nur rechnen, wie viele Polygone man hat, sondern auch, wie groß diese Dargestellt werden. Dafür ist es enorm wichtig zu wissen, welche Shader verwendet werden, will man Echtzeitschatten und schicke Beleuchtung kann man sich weniger Polygone leisten.
Also grober Richtwert: Überlege dir, auf welcher Hardware das laufen soll, und guck dir Wireframe Screenshots von Spielen an, die auf dieser Hardware laufen und mit deinem Vergleichbar sind.

Und immer daran denken: Jeder zusätzliche Vertex ist nur dann sinnvoll, wenn er merklich die Form verändert. 5 Punkte in einer geraden Linie sind meist (aber nicht wirklich immer^^) nicht sehr sinnvoll. Das selbe bei Texturen: Hohe Auflösung nur bei vielen Details, und wenn man sie auch wirklich von so nahem sieht.
Lieber dumm fragen, als dumm bleiben!

MikeL

Frischling

  • »MikeL« ist der Autor dieses Themas

Beiträge: 21

Beruf: Einzelhandelskaufmann

  • Private Nachricht senden

6

18.03.2011, 20:55

Ich danke euch für die vielen Informationen die ich bekommen habe bezüglich des Themas.

Wollte mich da doch mal vorher erkundig haben welche grenze man etwa einhalten sollte und auch die Tipps und Tricks bezüglich der Texturen und der Lichtquellen werde ich mir zu Herzen nehmen.
Will schon etwas machen was auf so vielen Systemen wie möglich läuft (also nicht nur auf High End rechnern) weil meiner selber ein Rechner ist der schon fast zur Steinzeit gehört^^
Werde mich da mal an die Grenze für die Menschen zwischen 10 und 20k halten und dann auf Texturen setzen.

Blender kann ja auch mit wenig Vertex und Polygonen wunder wirken dank dem Smooth und der Scuplt Funktion^^

Werbeanzeige