PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Das perfekte 3D-Spiel/ Die perfekte 3D-Karte


Bruce Slater
2002-06-19, 13:06:47
Viele sagen "dieses Spiel ist toll, aber das andere ist noch besser"
usw. - da weiß man nicht mehr was man haben will und nicht wenige
wünschen sich ein perfektes Spiel und perfekte hardware.

Beim PC-Spiel will ich jetzt nur auf die 3D-Features eingehen,aber
vielleicht schreibe noch allgemeines.

Wie soll nun ein grafisch perfektes Spiel aussehen?

Es muss Reflexionen,Lichteffekte,Schatteneffekte,Morphingeffekte,
Farbveränderungen darstellen können, räumlich wirken,
hochdetailliert (sehr viele Details, sehr viele Polygone,Curved Surfaces)
sein, viele weitere 3D-Effekte (Transparenz,Raucheffekte)
nutzen, dazu noch scharf sein (hochwertige Filter einsetzen)
und dennoch große Landschaften perfekt darstellen können.
Zu guter letzt dürfen keine Defizite an der Bildqualität
(Aliasing,Polygonpopping,Dithering-Effekte) entstehen und
das Spiel muss mit ABSOLUT flüssigen 90fps laufen.
(einige werden sagen 60fps sind ausreichend aber zwischen
60 und 90fps gibt es deutlichen Unterschied)

Wie kriegt man das nun hin? Spiele wie Unreal 2 und Doom 3 haben
das schon teilweise geschafft!

a) Generell gilt: Je mehr Effekte man nutzen will umso mehr Textur-
schichten muss man einsetzen. In diesem Fall:


1.) Base Texture (Basis Textur)
2.) Detail Texture (Detail)
3.) Morphing-Map (Veränderungen am Objekt/Textur)
4.) Lightmap (Beleuchtung)
5.) Reflexion-Map (Reflexionen)
6.) Bump-Map (3D-Illusion)(am besten Displacement-Map)
7.) Effect-Map (für weitere 3D-Effekte an der Textur)
8.) Color-Map (für Farbveränderungen an der Textur)
9.) 8 Shadowmaps/Lichtquellen (Schatteneffekte)

= insgesamt 16 Texturschichten

Einige werden sagen die Bump Maps könnten die Reflexionen ersetzen
aber ich finde es ist unbefriedigend (höchstens Cube Environment
Mapping (könnte) in Frage kommen)

Mit Effect Maps könnte man weitere Effekte (Etwa Motion Blur,
Tiefenunschärfe,Hitzeflimmern,Fata Morgana etc.) ermöglichen

DirectX-9 fordert mindestens 16 Texturschichten um zu laufen. D.h.
mit DirectX-9 ist man (fast) gerüstet. Zudem unterstützt es Displace-
ment Mapping.

Nun müssen 3D-Effekte frei programmierbar sein. Seit DX8 und
Nvidia GeForce3 ist das möglich,aber nicht perfect. DX9 ist schon
besser. DX10 sollte die Anforderungen erfüllen.

(Man könnte sagen DirectX10 und OpenGl 2.0 werden das Tor zum
Fotorealismus sein)

Soviel zu den 3D-Effekten

b) 3D-Effekte allein reichen für Realismus nicht aus - die Texturen
und die Spielewelt muss detailliert sein (Mercedes Benz Truck Ra-
cing ist schon ein Versuch). In Doom 3 und Unreal 2 gibt es
Szenen mit einer Rekordzahl von über 200000 Polygonen - bis zu
10000 für die Spielfiguren.

Mein Vorschlag:

mindestens 100000 Polygone für Spielfiguren
mindestens 10000000 Polygone für die Umwelt/Landschaften
bis zu 35000 Polygone Gegenstände
und 3500 - 10000 Polygone für 3D-Effekte
mindestens 2048x2048 Texturen bis 16k x 16k*Texturen

...Und der Einsatz von Curved Surfaces

* = vor allem bei Objekten mit vielen Einzelheiten(z.B Bäume)

Hinzu kommt noch eine große Sichtweite (z.B. bei Grand Prix 4,
F12002) von mehreren Kilometern. Dabei muss folgendes beachtet
werden: je entfernter das Objekt umso weniger kann das mensch-
liche Auge sehen - das kann man nutzen um die Performance zu
steigern indem man die Trianglezahl verringert da diese bei
großen Entfernungen keine Rolle mehr spielt. Vor allem bei
komplexen Objekten (Bäume bzw. Blätter, Wolken,kugelförmige
Objekte,Verformte Objekte) sollte die Trianglezahl extrem hoch
sein - da diese sonst unrealistisch aussehen (Die Bäume in Ser.
Sam 1/2 sehen beschissen aus weil die Blatter scharf und kantig
sind - was an der ungenügenden Polygonzahl liegt) - da sollten
schon "mindestens" 150000 Polygone stecken.
Die Umwelt muss zudem mit vielen Objekten und Gebäuden bestattet
werden (z.B komplexe Denkmäler,Autos in großer Zahl,Bäume mit
vielen Blättern, viele Wolken in verschiedenen Formen,hochdetaill
ierter Himmel/Nachthimmel mit sehr vielen komplexen Himmelskörpern
,Gebäude mit vielen Details z.B. mit detaillierten Fenstern,Werbe-
tafeln, viele Lichteretc.)
Kurz: alles muss so aussehen wie im richtigen Leben, sogar noch
besser. 10 Millionen Polygone würden ausreichen.

c) Damit das Bild in ALLEN Bereichen scharf bleibt, sollte 128x Aniso
tropisches Filtering und 8-16x Anti-Aliasing und sehr hohe Auflö-
sungen (mindestens 1600x1200) eingesetzt werden.

d) Zudem darf keine der 3D-Effekte unrealistisch wirken. Daher muss
vorher berechnet werden wie stark zum beispiel eine Lichtquelle ist
oder wie groß die visuelle Reichweite einer Druckwelle ist und wie
es aussehen muss und welche Faktoren noch hinzukommen usw.)

Wie hoch ist nun die Speicherbandbreite eines solchen Spiels?

X-Res. x Y-Res. x Farbtiefe x Owerdraw (entfällt bei Tilebased-cards)
x Schreibrate (0.33 bis 0.5)

Das perfekte Spiel (Game X): (1600x1200er Auflösung)

1600x1200x8(64Bit= 8 Bytes)x1x0.3333333

= 5120000 Bytes = 5.12 MB/Frame für Frame buffer

Dies ist der Framebuffer.
Ich gehe vom optimalen Fall aus,bei der Annahme eines tilebased
Karte- so das ich den Z-Buffer hier auslaussen kann und es kein
Owerdraw entsteht und komme deswegen schon zur Texturspeicherband-
breite:

X-Res. x Y.-Res. x Farbtiefe x Owerdraw(entfällt)xAnzahl Texturen x
Anzahl Texturschichten.

Unser Spiel "Game X" benutzt ja 16 Texturschichten und Anisotropisch-
Filtering. Aniso. Filtering benötigt 4 Texturen. Also schreiben wir:

1600x1200x8x1x4x16

= 983400000 Bytes = 983,4 MB/Frame für Texturspeicher

Addieren wir nun diese Werte:

5.12MB + 983.4 MB = ca. 988 MB

Hinzu kommt noch die Speicherbandbreite für die Schattenerzeugung
aber darauf will ich jetzt nicht eingehen-weil es sehr kompliziert
ist. Ich ergänze den letzten Wert auf 1000 MB also 1GB/Frame

Ergebnis: Unser Spiel "Game X" benötigt ca. 1GB Speicherbandbreite
um EIN Bild zu rendern. Wir benötigen aber ja 90 Bilder
pro Sekunde (oder auch 90 Frames). Also multiplizieren wir
den Wert mit 90:

90Frames x 1GB / Frame = 90 GB Speicherbandbreite

Das ist nicht alles: wir wollen ja auch Anti-Aliasing einsetzen.
Bei 16x AA ergibt das dann ca. 1.5 Terabyte/sekunde.
Das ist das 150fache was eine GF4 Ti4600 bieten kann!!!
Aber da es bereits Techniken gibt die den Leistungsverlust durch
AA verringern kann man sagen das unser Spiel "Game X" 350GB Speicher
bandbreite in einer Sekunde benötigt, das 30fache was eine GF4 Ti
4600 vielleicht schafft.

Das ist immer noch nicht alles - die Polygone müssen auch noch berechnet werden. Nehmen wir an Game X hat durchschnittlich
30 Spielfiguren (ich spreche hier jetzt von Ego-Shooter)
die jeweils aus 100000 Poly's bestehen und alle Waffen haben
die jeweils 35000 Poly's aufbringen.Alle schiessen aufeinander.
10000 Poly's für die entstehenden 3D-Effekte und zum Schluß
10 Millionen Polygone für die Außenwelt. Das macht dann etwa
15 Millionen Polygone pro Bild. Bei 90 Bildern in einer Sekunde
ergibt das 1.3 GigaTriangles/sek. , das 10 fache einer GF4 Ti4600
. Aber um diesen Polygondurchsatz zu ermöglichen muss der AGP slot
und der Prozessor noch mehr Leistung haben. Nicht einmal AGP 8x
würde hier ausreichen. Hier gehe ich vom worstcase aus (also nicht
das sich die Polygone verringern da die Spielfigur nicht weit
entfernt ist).
Erst AGP16X(und höher) und die Prozessoren der nächsten Jahre
könnten mit einer solchen Menge fertigwerden.

Das war's. Mehr fällt mir nicht ein.

Die perfekte Grake wäre:

8 ixel Pipelines mit jeweils 8 Texturpipelines
500 Mhz Chiptakt
500 Mhz Speichertakt mit Quad Date Rate (effektiv also 2Ghz)
1024Bit - Speicherinterface
Curved Surface Unterstützung
Quad Vertex Shader mit Poly-Leistung von 1.4 gigatriangles
Tile Based Renderer
DirectX-10 Unterstützung
OpenGl 2.0 compatibel
PixelShader 2.0
"Fusion"-API (die sowohl CPU als auch GPU leitung profitiert)

Was sagt 3D-Center dazu?

nocturne
2002-06-19, 13:11:28
Originally posted by Bruce Slater
Wie kriegt man das nun hin

Geh mal nach draussen an die frische Luft und schau Dich um. Die Engine ist fantastisch! ;)

ow
2002-06-19, 13:13:40
Originally posted by Bruce Slater


Die perfekte Grake wäre:

8 ixel Pipelines mit jeweils 8 Texturpipelines
500 Mhz Chiptakt
500 Mhz Speichertakt mit Quad Date Rate (effektiv also 2Ghz)
1024Bit - Speicherinterface
Curved Surface Unterstützung
Quad Vertex Shader mit Poly-Leistung von 1.4 gigatriangles
Tile Based Renderer
DirectX-10 Unterstützung
OpenGl 2.0 compatibel
PixelShader 2.0
"Fusion"-API (die sowohl CPU als auch GPU leitung profitiert)

Was sagt 3D-Center dazu?


???

Wieso nicht

32Pipes mit jeweils 64 Textureinheiten
4Ghz Chip und RAM-Takt
64K RAM Interface

Directx 25
OpenGL8.0

Pixel shader 16.0


Faende ich 'perfekter'.

zeckensack
2002-06-19, 13:23:18
Ich habe einen solchen Chip hier, den habe ich selbst aus einem Stück Grillkohle geschnitzt.
Leider habe ich patentrechtliche Probleme mit der Firma Trident, deswegen kann ich vorerst nicht die Serienproduktion starten ;(

ow
2002-06-19, 13:29:50
:rofl:

Melkor
2002-06-19, 14:13:12
sehr interessant der Thread, jawohl!

wulfman
2002-06-19, 14:49:18
das wichtigste hast du vergessen:

das perfekte 3d-spiel hat eine fesselnde story oder perfektes gameplay, anderenfalls ist eine demo/ein benchmark.

mfg
wulfman

Quasar
2002-06-19, 14:52:13
Originally posted by wulfman
...fesselnde story...perfektes gameplay

Muss das in Hardware unterstützt werden oder reicht da auch eine CPU-Emulation von PerfectGameplay(tm)?

wulfman
2002-06-19, 14:57:52
Originally posted by Quasar


Muss das in Hardware unterstützt werden oder reicht da auch eine CPU-Emulation von PerfectGameplay(tm)?

von hardware ist im titel nur teilweise die rede, da steht etwas vom perfekten spiel. was er da geschrieben hat, ist die perfekte 3d-engine/ die perfekte 3d-karte.

wobei der absatz
Kurz: alles muss so aussehen wie im richtigen Leben, sogar noch
besser.
interessant ist. besser als echt? wie nehmen wir etwas derartiges wahr? direkter neuraler input ohne umweg über die augen?

mfg
wulfman

Quasar
2002-06-19, 15:00:06
Nimm doch net immer alles so ernst....

wulfman
2002-06-19, 19:02:08
Originally posted by Quasar
Nimm doch net immer alles so ernst....

anscheinend werde ich immer zu ernst genommen, muss an meinem stil liegen. ich wollte nur noch klarstellen, worauf sich meine erste aussage eigentlich bezog.

achja: :)

mfg
wulfman

Unregistered
2002-06-20, 09:08:23
Vielleicht meint er mit echter als im Leben die kleinen "Fischchen" - (Staub oder sowas ?), die auf dem menschlichen Auge liegen, auch noch simuliert werden.

Wenn man mal genau an eine Stelle starrt, merkt man die ja auch...

Ganon
2002-06-20, 10:24:48
Originally posted by Unregistered
Vielleicht meint er mit echter als im Leben die kleinen "Fischchen" - (Staub oder sowas ?), die auf dem menschlichen Auge liegen, auch noch simuliert werden.

Wenn man mal genau an eine Stelle starrt, merkt man die ja auch...

Was ist denn daran "echter"? Es wäre erst dann ja echt! Dann müsste noch was rein! Diese kurzzeitigen Überbleibsel von Licht im Auge! Ich hoffe ihr wisst was ich meine! Z.B. Strahlt euch mit ner Taschenlampe ins Auge und dann macht sie aus!

Also von der Perfekten Grafikengine sind wir noch sehr weit entfernt!

P.S. Das perfekteste Spiel auf Erden ist immernoch Tetris! Das ist jetzt kein Witz!