Archiv verlassen und diese Seite im Standarddesign anzeigen : 3Dc - was bringts?
3Dc™
3Dc is an exciting new compression technology designed to bring out fine details in games while minimizing memory usage. It is the first compression technique optimized to work with normal maps, which allow fine per-pixel control over how light reflects from a textured surface. With up to 4:1 compression possible, this means game designers can now include up to 4x the detail without changing the amount of graphics memory required and without impacting performance.
Gibts schon was konkretes?
Habe gehört, daß HL² und FarCry (=> patch) schon 3Dc haben.
X800 und X700 (=> relativ preiswert) hätten dann Vorteile :biggrin:
skamikaze
2004-11-01, 14:57:57
3Dc = 3dCenter ?!
Jesus
2004-11-01, 15:02:03
Tja es will keiner so recht benchen :) Im Benchmarkthread gibts nen Fred darüber ...
bringen tuts was, allerdings nur an den richtigen Stellen, oder wenn man zu wenig VRam hat.
Spasstiger
2004-11-01, 15:08:08
3Dc ist bisher noch relativ uninteressant für die meisten Entwickler. Es besteht wenig Bedarf an dieser Kompressionstechnik, zum einen weil der Grafikspeicher meist schon groß genug ist (bei Radeon X800 Karten mit 256 MB sowieso) und zum anderen weil das Quellmaterial einfach noch nicht genug hochaufgelöst ist, damit es sich lohnt (beides hängt ja direkt miteinander zusammen).
Wenn 3Dc in Microsoft WGF aufgenommen wird, kann 3Dc durchaus ein übliches Feature werden, bisher genießt es aber nur ein Nischendasein.
Es gibt eine Grafikdemo, die deutlich von 3Dc profitiert, siehe
http://www.humus.ca/3D/3Dc.rar bzw. http://www.humus.ca/ (unter Direct 3D -> 3Dc).
Jesus
2004-11-01, 15:16:04
hm nett
The performance increase of 3Dc and DXT is well worth the effort. Some benchmark numbers:
No compression: 125fps
3Dc: 146fps (+17%)
DXT: 136fps (+9%)
3Dc & DXT: 158fps (+26%)
That's with a fairly advanced shader, and overhead for the shadowmap which moves lot of workload where textures aren't used. Without shadows the difference is even larger:
No compression: 164fps
3Dc: 210fps (+28%)
DXT: 195fps (+19%)
3Dc & DXT: 239fps (+46%)
Es besteht wenig Bedarf an dieser Kompressionstechnik,
Bedarf an guter Kompression besteht immer.
... zum einen weil der Grafikspeicher meist schon groß genug ist (bei Radeon X800 Karten mit 256 MB sowieso)
selbst die neuen Midrangekarten haben nur 128 MB und da muss man sparsam umgehen. Wenn mehr da ist braucht man auch mehr. Kompression ist dadurch nicht weniger gefragt. Zumal der Marktanteil von 256 MB Karten doch noch vernachlässigbar ist.
edit: Bei komprimierten Texturen wird ausserdem noch Speicherbandbreite gespart. Und die ist ja bei jeder Karte immer zu knapp.
... und zum anderen weil das Quellmaterial einfach noch nicht genug hochaufgelöst ist, damit es sich lohnt (beides hängt ja direkt miteinander zusammen).
Wenn man sich drauf verlassen kann, dass der Grossteil der User die Technik nutzen können, wirds auch verwendet. Wenn man mit der niedrigen Qualität auskommt holt man halt einfach mehr Texturen.
Spasstiger
2004-11-01, 15:30:24
Bedarf an guter Kompression besteht immer.
selbst die neuen Midrangekarten haben nur 128 MB und da muss man sparsam umgehen. Wenn mehr da ist braucht man auch mehr. Kompression ist dadurch nicht weniger gefragt. Zumal der Marktanteil von 256 MB Karten doch noch vernachlässigbar ist.
edit: Bei komprimierten Texturen wird ausserdem noch Speicherbandbreite gespart. Und die ist ja bei jeder Karte immer zu knapp.
Wenn man sich drauf verlassen kann, dass der Grossteil der User die Technik nutzen können, wirds auch verwendet. Wenn man mit der niedrigen Qualität auskommt holt man halt einfach mehr Texturen.
Doom 3 kommt aber auch mit 256x256 Texturen aus und sieht trotzdem klasse aus. Vereinzelt sind Texturen nur 64x64 aufgelöst (z.B. Zeitschriften). Gut, keiner weiß was 2005 kommt und spätestens mit Unreal Engine 3 Spielen werden sich 1024er Texturen auf breiter Ebene durchsetzen.
Aber 3Dc wird sicherlich nur im großen Stil genutzt, wenn auch Nvidia 3Dc anbietet. Das wird so schnell nicht der Fall sein, denke ich.
Jesus
2004-11-01, 15:42:51
Doom 3 kommt aber auch mit 256x256 Texturen aus und sieht trotzdem klasse aus. Vereinzelt sind Texturen nur 64x64 aufgelöst (z.B. Zeitschriften). Gut, keiner weiß was 2005 kommt und spätestens mit Unreal Engine 3 Spielen werden sich 1024er Texturen auf breiter Ebene durchsetzen.
Aber 3Dc wird sicherlich nur im großen Stil genutzt, wenn auch Nvidia 3Dc anbietet. Das wird so schnell nicht der Fall sein, denke ich.
also die D3 texturen sind ja mehr als grottig. sorry aber is so ;)
Ausserdem gehts ja hier um die Normal maps ;)
Doom 3 kommt aber auch mit 256x256 Texturen aus und sieht trotzdem klasse aus. Vereinzelt sind Texturen nur 64x64 aufgelöst (z.B. Zeitschriften). Gut, keiner weiß was 2005 kommt und spätestens mit Unreal Engine 3 Spielen werden sich 1024er Texturen auf breiter Ebene durchsetzen.
Aber 3Dc wird sicherlich nur im großen Stil genutzt, wenn auch Nvidia 3Dc anbietet. Das wird so schnell nicht der Fall sein, denke ich.
Bei Doom3 ist der Speicherplatz schon knapp und 256 MB Karten profitieren.
1024er Texturen brauchen 4 mal soviel Speicherplatz. D.h. man müsste Karten mit 1024 MB haben. Selbst in 2-3 Jahren wird das nicht der Standard sein.
Als Folgerung kann man daraus nur ziehen, dass sie die Kompression schon eingeplant haben.
Nvidia wird bei der nächsten Generation wohl mit 3DC genauso nachziehen wie ATi mit SM3.0+anderem Zeugs.
Spasstiger
2004-11-01, 15:52:57
also die D3 texturen sind ja mehr als grottig. sorry aber is so ;)
Ausserdem gehts ja hier um die Normal maps ;)
Normalmaps sind auch Texturen (und in der Regel genauso groß wie die Diffuse Maps) ;). Außerdem find ich die Texturen in Doom 3 sehr stimmig, bringen die Atmosphäre klasse rüber. Und einige sehr gut aufgelöste Texturen gibts ja auch, z.B http://doom3.planet-multiplayer.de/images/misc/d3_texqual_ultra.bmp (unkomprimiert, 2,3 MB).
@RLZ: Klingt logisch. Ich fänds trotzdem erstaunlich, wenn Nvidia wieder mal eine von ATI entwickelte Technologie übernimmt. Mit DXTC gibts ja auch einen einheitlichen Standard (der natürlich die Normal Maps mit starken Verlusten komprimiert).
EDIT: Mir fällt da gerade ein, die Entwickler der UE3 Engine haben selbst gesagt, dass für die höchste Grafikeinstellung eine Grafikkarte mit 1 GB Grafikspeicher benötigt wird. Vielleicht rechnen sie doch nicht mit 3Dc. Natürlich wirds wieder darauf hinauslaufen, dass auch popelige 256 MB Karten noch die höchste Quali flüssig darstellen können (fragt sich nur, in welcher Auflösung).
Bedarf an guter Kompression besteht immer.
Wenn man sich drauf verlassen kann, dass der Grossteil der User die Technik nutzen können, wirds auch verwendet. Wenn man mit der niedrigen Qualität auskommt holt man halt einfach mehr Texturen.Das Problem bei 3Dc ist, dass es als Erstimplementierung eines Features noch suboptimal und im Anwendungsbereich stark eingeschränkt ist. So funzt beim NV40 der 64-Bit-FB nur ohne MSAA, und das Dynamic Branching im Pixelshader ist nicht unproblematisch. Bei der Radeon kann man 3Dc nur für bestimmte Bumpmapping-Techniken sinnvoll einsetzen, Offset-Mapping kommt mit einer 3Dc-komprimierten Normalmap z. B. nicht mehr aus.
Natürlich sind Textur-Komprimierungsverfahren ansich immer zu begrüßen, auch wenn sie noch nicht jeden Fall abdecken.
Offset-Mapping kommt mit einer 3Dc-komprimierten Normalmap z. B. nicht mehr aus.
Kann man ja in den Alphakanal der DiffuseMap(DXT1a macht sich da gut) stecken oder baut sich ne eigenen Textur fuer die Spezialmaps (heightmap, specularmap,...).
Da eh immer erst ein Zugriff in die Heightmap ist, durch dessen Ergebnis die neuen Zugriffkoordinaten in die anderen Texturen bestimmt wird, ists eigentlich recht egal wo man sie hinsteckt...
Kann man ja in den Alphakanal der DiffuseMap(DXT1a macht sich da gut) stecken oder baut sich ne eigenen Textur fuer die Spezialmaps (heightmap, specularmap,...).
Da eh immer erst ein Zugriff in die Heightmap ist, durch dessen Ergebnis die neuen Zugriffkoordinaten in die anderen Texturen bestimmt wird, ists eigentlich recht egal wo man sie hinsteckt...Den Alphakanal der Diffusemap würde ich lieber als Specularmap missbrauchen wollen. Natürlich könnte man auch probieren, alle Spezialmaps in eine (ggf. komprimierte) Textur zu packen, doch aus Performancegründen sollte man mit insgesamt so wenig Texturen wie möglich arbeiten.
Allerdings möchte man vielleicht die Diffusemap öfter wiederverwenden als zugehörige Specular- oder Normal- oder Heightmaps, insofern wäre eine Auftrennung je nach Struktur des Contents vielleicht doch sinnvoll.
Exxtreme
2004-11-02, 14:16:27
Es besteht wenig Bedarf an dieser Kompressionstechnik, zum einen weil der Grafikspeicher meist schon groß genug ist (bei Radeon X800 Karten mit 256 MB sowieso) und zum anderen weil das Quellmaterial einfach noch nicht genug hochaufgelöst ist, damit es sich lohnt (beides hängt ja direkt miteinander zusammen).
Kompression ist eigentlich fast immer vorteilhaft. Und 3Dc spart nicht nur Speicherplatz im RAM sondern auch Bandbreite, die man sinnvoll in AA etc. stecken kann.
Kompression ist eigentlich fast immer vorteilhaft. Und 3Dc spart nicht nur Speicherplatz im RAM sondern auch Bandbreite, die man sinnvoll in AA etc. stecken kann.AA kostet gar nicht so viel Bandbreite, da man wegen den ROPs (ab 4x AA) eh mehrere Takte loopen muss.
smoe82
2004-11-02, 14:58:20
Bei Doom3 ist der Speicherplatz schon knapp und 256 MB Karten profitieren.
1024er Texturen brauchen 4 mal soviel Speicherplatz. D.h. man müsste Karten mit 1024 MB haben. Selbst in 2-3 Jahren wird das nicht der Standard sein.
Als Folgerung kann man daraus nur ziehen, dass sie die Kompression schon eingeplant haben.
Nvidia wird bei der nächsten Generation wohl mit 3DC genauso nachziehen wie ATi mit SM3.0+anderem Zeugs.
1024x1024 -Texturen benötigen nicht 4 mal so viel Platz, wie 256x256 -Texturen.
Sondern: 16 mal so viel.
Anzahl der zu speichernden Pixel: 256 x 256 = 65536
bei 1024 x 1024 = 1048576
1048576 / 65536 = 16
Kann man sich auch daraus herleiten, daß eine Fläche oder zweidimensionale Matrix, wie 256 x 256, eine quadratische Funktion ist. Somit hat die Verdoppelung der Basis (256) die Verfierfachung des Ergebnisses zur Folge.
Exxtreme
2004-11-02, 15:09:24
AA kostet gar nicht so viel Bandbreite, da man wegen den ROPs (ab 4x AA) eh mehrere Takte loopen muss.
Und warum wurden zuwenige ROPs eingebaut? Weil vielleicht zufälligerweise die Bandbreite nicht ausreicht um mehr ROPs zu versorgen? ;D
Und Bandbreite übrig zu haben ist eigentlich immer gut. Stell dir vor, ein Spiel ist zufälligerweise MSAA-freundlich designt worden und benutzt Alphablending statt Alphatesting. ;)
vBulletin®, Copyright ©2000-2025, Jelsoft Enterprises Ltd.