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

WhiteMike

Alter Hase

  • »WhiteMike« ist der Autor dieses Themas

Beiträge: 507

Wohnort: Ulm

Beruf: Schüler

  • Private Nachricht senden

1

03.12.2006, 11:33

Detailfrage

Ich wollte kurz fragen, wie genau (wie viele Vertices oder Bytes) so ein Modell auf meinem Rechner haben darf:

4,26 GHz
256MB ATI Radeon X1600 Pro PCI-Express
2GB RAM

Hab Davids Modelle angeschaut und musste feststellen, dass sie nicht besonders Detailiert waren (obwohl man das im Spiel ja nicht sieht) und wollte eben wissen, was möglich ist.

Mit freundlichen Grüßen,
WhiteMike

Anonymous

unregistriert

2

03.12.2006, 11:41

Na so schnell wie die Karte halt rechnen kann (alles zusammen)

Eine GeForce 7950 GX2 schafft 2 Milliarden pro Sekunde. Je nach Frames kannst du dann ausrechnen was geht. Die maximalen Texturgrössen hängen auch von der Karte und vom Treiber ab. Der Durchschnitt schafft im Moment 2048*2048 bei 32bit (Natürlich auch abhängig vom RAM der Graka)

cu

Meine 6600GT schafft übrigens nur 375 Millionen *heul*

Osram

Alter Hase

Beiträge: 889

Wohnort: Weissenthurm

Beruf: SW Entwickler

  • Private Nachricht senden

3

03.12.2006, 14:27

Das sind sehr theoretische Zahlen, in einem wahren Spiel wirst Du die nicht mal annähernd erreichen. bei profis die viel zeit in optimierung etc stecken wird ein Faktor von 10 drunter als gut angesehen!

Dafür gibt es viele Gründe, z.B.
- Du wirst kaum eine 100% Parallelität CPU - GPU erreiche, maW, ab und zu wird die GPU warten
- Ab und zu werden andere Sachen als die Polyrate zum Fladchenhals, z.B. bei hohem Overdraw und/ioder komplexen Pixelshadern die Pixelrate.
- schlechtes Batching
- schlechte Ausnutzung von Caches und so zu wenig Bandbreite innerhalb der Karte
- Bus zur CPU überlastet da zu viel dynamisch.

Am besten macht man erst die Engine, misst dann die Polyrate unter typischen Bedingungen und bestimmt dann das "Poly count target".

GANZ GANZ grob 10 000 Polygone pro wichtigem Objekt (Hauptcharacter in RPG, Flugzeug / cockpit in FluSi, Auto bei Rennspiel etc) sind ok wenn Du LoDs hast.

Texturgröße 2048*2048 bei 32bit ist ok und was wir auch nehmen. Am besten als DDS um VRAM zu sparen.
"Games are algorithmic entertainment."

Phili

unregistriert

4

03.12.2006, 16:04

@WhiteMike
Also ich finde, du hast das wichtigste schon selbst gesagt:

Zitat

dass sie nicht besonders Detailiert waren (obwohl man das im Spiel ja nicht sieht)

Ich finde, man sollte auch wenns möglich ist nicht zu viele Deteils einbauen, gerade leute mit schwachen rechnern werdens dir danken...

Ansonsten kommt das auch sehr stark darauf an, wie aufwendig du die Berechnungen pro Vertex/Pixel machst. Also, wenn du z.B. mit PerPixel-Lighting und BumpMaps arbeitest wirst du sicher sehr viel weniger Dreiecke verarbeiten können als wenn du ganz ohne Beleuchtung arbeitest...

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

5

03.12.2006, 16:45

Zitat von »"Phili"«

Also, wenn du z.B. mit PerPixel-Lighting und BumpMaps arbeitest wirst du sicher sehr viel weniger Dreiecke verarbeiten können als wenn du ganz ohne Beleuchtung arbeitest...

Das wohl nicht. Hier hängt die Performance schließlich davon ab, wie viele Pixel gezeichnet werden. Ob du jetzt ein sehr detailliertes Modell hast oder ein grobes - die Zahl der Pixel, die es abdeckt, wird sich dadurch nicht großartig ändern.

Aber wenn man Per-Pixel-Lighting und Normal-Mapping verwendet, kann man sich viele Dreiecke sparen, weil man damit ja gerade höher detaillierte Oberflächen simulieren will.

Phili

unregistriert

6

03.12.2006, 17:41

@David Scherfgen
Hoppla, ja das stimmt natürlich... :oops:
Allerdings hab ich indirekt schon recht, weil man mehr Zeit in den Vertex-SHader stecken kann, wenn der Pixel-Shader einfacher gestrickt ist... :lol:

Aber wenn mans dann stadtdessen halt auf mit Vertexbeleutung und ohne Vertexbeleuchtung bezieht(die PerPixel-Beleuchtung war halt nen bisschen schlechtes Beispiel ;) ) dann passts ja wieder. Wenn der Vertesshader komplexer ist, dann kann man auch nur weniger Vertizes benutzen.

Osram

Alter Hase

Beiträge: 889

Wohnort: Weissenthurm

Beruf: SW Entwickler

  • Private Nachricht senden

7

03.12.2006, 17:45

Phili hat mich auf diesen teil des original Posts aufmerksam gemacht:

Zitat


dass sie nicht besonders Detailiert waren (obwohl man das im Spiel ja nicht sieht)


Wenn Du das wriklich genauso meinst dann ist die niedrige Detaillierung ja GUT. Es gab mal einen interessanten Artikel von einem der ein Cockpit für Il2 gemacht hat. Darin beschrieb er vor allem wie er Monate (!) nur damit verbracht hat, "details" zu entfernen die nicht im Spiel nötig waren. Nur dadurch hatte er genug Polys zur Verfügung, dass es an den Stellen die sichtbar sind oder gar auffallen, auch wirklich ein sehr gutes Ergebniss erreichen konnte.
"Games are algorithmic entertainment."

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

8

03.12.2006, 20:21

Zitat von »"Phili"«

@David Scherfgen
Hoppla, ja das stimmt natürlich... :oops:
Allerdings hab ich indirekt schon recht, weil man mehr Zeit in den Vertex-SHader stecken kann, wenn der Pixel-Shader einfacher gestrickt ist... :lol:

Ich denke, das kommt darauf an, wie die Pipeline in der Grafikkarte realisiert ist. Da läuft ja alles stark parallelisiert ab. Während die Vertex-Einheit Vertex-Shader ausführt, ist die Pixel-Einheit schon dabei, die bereits fertig transformierten Dreiecke zu rendern. Dann ist die Frage, wer als erstes fertig ist. Ich schätze mal, dass die Vertizes in den meisten Fällen zuerst fertig sind.
Am Ende hängt die Performance immer vom langsamsten Teil der Pipeline ab.
Wenn der Flaschenhals bei der Fillrate oder beim Pixel-Shading liegt, sollte man weitere Vertizes hinzufügen können, ohne dass es insgesamt länger dauert.

Chase

Alter Hase

Beiträge: 753

Wohnort: Nagaoka / Darmstadt / Düsseldorf

Beruf: fauler Studi

  • Private Nachricht senden

9

04.12.2006, 00:03

Zitat von »"Osram"«


GANZ GANZ grob 10 000 Polygone pro wichtigem Objekt (Hauptcharacter in RPG, Flugzeug / cockpit in FluSi, Auto bei Rennspiel etc) sind ok wenn Du LoDs hast.

Die durchschnittliche Anzahl der Polygone waechst aber staendig an. Als ich angefangen habe hiess es "Alles ueber 500 Polys ist Schwachsinn".. was vorallem wichtig ist: Verwende so viele Polys wie du sinnvoll einsetzen kannst: Nichts ist schlimmer anzusehen als eine ebene Flaeche die vollkommen grundlos in zig Faces unterteilt ist. Anfaenger haben oft garnicht die Faehigkeit dazu 10000 Polygone zur Geltung kommen zu lassen, also arbeite dich langsam hoch. Um so geringer die Polygonanzahl, um so besser.

PS: Vergleichsweise viele Modelling-Threads in letzter Zeit ;)
"Have you tried turning it off and on again?"

Werbeanzeige