NAS

ShaderModel

Borg--Drohne

Newbie
Registriert
März 2005
Beiträge
1
Hallo
Kann mir Bitte jemannd sagen wo der Unterschied zu shaderM 2.0 zu 3.0 ist...?
Allso was können GK mit 3.0 was dann 2.0 nicht kann...

danke schön:D
 
guckst du hier.
den link hab ich im Computerbase lexikon gefunden, das ist für solche dinge immer praktisch ;)
derzeit profitieren nicht viele anwendungen (spiele) von SM3, bzw. lassen sich die meisten effekte auch mit shader model 2.x realisieren.
mfg
IRID1UM

PS: willkommen im forum :schluck:
 
Zuletzt bearbeitet:
@Irid1um deine Meinung kann ich nicht ganz teilen, es gibt ca. 5-6 Spiele die Sm3.0 schon
unterstüzen Splinter Cell3, Far Cry mit neuem patch, SS2, X3, Fear usw.Cod2 glaub ich auch
noch und viele die in den nächsten Monaten erscheinen! Es mag sein das es für Sp3 ein
Patch für ATI-grakas gibt der auch SM2.0 unterstützen soll aber nicht ganz so gut aussieht
als mit SM3.0 (X800-Reihe). Ausserdem läuft SM3.0 schneller als 2.0(Quelle PcGamesHardware) Also das mit dem realisieren stimmt nicht ganz so, es sei den du holst
dir eine neue ATI-serie(X1300-X1800).
 
Wo wir gerade beim Thema sind.....
....was ist denn HDR und VSync?
Wenn es ein Patch für ATi GraKas gibt, kann ich das für meine 9800 Pro dann auch benutzen?
 
hdr = bessere lichtefekte (kann dir etz nicht genau sagen wo die unterschiede sind weiß nur das damit das schaun durchs den monitor menschlicher wird (blenden und so)
vsinc = vertikale sincronisation ich glaub das soll verhindern das das bild sich an bestimmten teilen nicht überschneidet also das in einigen stellen schon teile des eigentlich nächsten frame druaf ist!

mfg adi
 
VSync ist das sich die Framezahl an die Monitor Hertz Zahl richtet. Also wenn dein Monitor 75Hz hat, dann hast du im Spiel als maximale FPS auch nur 75fps. (genauere Definition)

Hdr ist High Dynamic Range Rendering. Simuliert hauptsächlich Tageslicht ect. In HL2 Lost Coast kann man diesen Effekt sehr schön beobachten, wenn man aus einem dunklen Raum rauskommt ist für kurze Zeit alles extrem erhellt, das gibt sich aber nach kurzer Zeit. So wie unser Auge sich daran gewöhnt eben :) (genauere Definiton)
 
Zuletzt bearbeitet:
@Sinalco das mit dem Patch is eigentlich nur fürs Spiel, aber das funzt nur ab X800-reihe,
soviel ich weiß. Wer es besser weiß, kann ja hier noch posten!
 
Borg--Drohne schrieb:
Hallo
Kann mir Bitte jemannd sagen wo der Unterschied zu shaderM 2.0 zu 3.0 ist...?
Allso was können GK mit 3.0 was dann 2.0 nicht kann...

danke schön:D
Das kann man so einfach nicht sagen, aus zwei Gründen:

- Uns interessiert primär, was noch in Echtzeit machbar ist. Da spielt die Grundperformance also erheblich mit rein. Eine schnelle SM2-Karte kann mehr in Echtzeit machen als eine langsame SM3-Karte.

- SM2 ist ein Sammelbegriff. Es gibt SM2.0 (Profile2_0) und SM2.x. Bei 2.x gibts die beiden Profile 2_A und 2_B. Mit 2_A kann man von den Shader-Befehlen her deutlich mehr machen als mit 2_0 und 2_B. Mit 2_B kann man immerhin noch einiges performanter hinkriegen als mit 2_0.

SM2.0 (Radeon 9500-9800) kann, vereinfacht gesagt, weniger als die Grafikkarte Power hat. SM2.x Profil 2_A (GeForce 5200 bis 5950) kann, ebenso vereinfacht gesagt, mehr als die Grafikkarte Power hat. Dennoch: Mit dem SM2-Featureset wäre NV30/NV35 noch langsamer (da bestimmte Sachen mit SM2.0 umständlicher in der Berechnung sind.) Prinzipiell sollte man dafür sorgen, dass die Leistung limitiert und nicht das Shader-Featureset. Radeon X800 bietet praktisch SM2.0, unterstützt jedoch deutlich mehr Befehle pro Shader (nur eben keine der zusätzlichen Instruktionen, die 2_A hat.)

Bei SM3 gibts fast keine Ausnahmen, sondern ein fest definiertes Featureset.

2_A und 3_0 bieten die Anweisungen ddx und ddy, um Gradienten innerhalb des Quads auszurechnen. Das ist zum Beispiel wichtig, wenn man bei prozeduralen Texturen Flimmern vermeiden möchte. Shader wurden überhaupt vor allem deshalb eingeführt, um ein gleichartiges Featureset zu garantieren. So muss eine SM3-Karte unter anderem auch 16x AF bieten. Leider wird nichts näheres zur AF-Implementation gesagt, und das was NV40 oder R420 (und selbst R520 im HQ-Modus) unter 16x AF versteht, ist ziemlich fragwürdig. Ob das so gedacht war, weiß ich nicht.

Ebenso wird gefordert, dass die Vertexshader Texturen sampeln können müssen. Der R520 hat aber für den VS kein einziges unterstütztes Texturformat markiert, kann also in Wahrheit doch keine Texturen im VS sampeln.

Ab SM3 ist FP32-Genauigkeit auch im Pixelshader gefordert (im Vertexshader oder einer traditionellen T&L-Unit ohnehin Standard), weiterhin darf beim _PP-Flag die Genauigkeit auf bis zu FP16 herunter reduziert werden.
 
Zuletzt bearbeitet:
Sinalco schrieb:
Wo wir gerade beim Thema sind.....
....was ist denn HDR und VSync?
VSync wird z. B. in diesem 3dc-Artikel erläutert: http://www.3dcenter.org/artikel/2004/03-12_a.php

HDR steht für "High Dynamic Range" und ist insofern selbsterklärend. Leider wird der Begriff "HDR" heute für vieles missbraucht. So gibt es bestimmte Überstrahl-Effekte, dazu wird unzulässigerweise gleich "HDR-Rendering" gesagt.

Prinzipiell kann jede DX9-Karte dynamisches HDR-Rendering bieten. Praktisch sind jedoch zwei Features erforderlich: Floatingpoint-Texturfilterung (ab NV40), Floatingpoint-Blending (ab NV40, ab R520). (FP-Texturfilterung im Pixelshader zu simulieren ist sehr aufwändig, also langsam. FP-Blending zu simulieren ist ebenfalls sehr langsam.)

Mittels HDR-Rendering lassen sich viel genauere Lichtberechnungen durchführen. Während ab DX9 intern sowieso alles sehr genau berechnet wird, werden die Farben traditionell auf Truecolor-RGB gerundet, bevor sie in den Framebuffer gelangen. Damit kann man nur Werte von 0 bis 1 in 256 Stufen speichern, und keine "überhellen" Werte. Der traditionelle Framebuffer ist ein LDR-Format. Insofern unproblematisch weil auch der Monitor quasi ein "LDR-Ausgabegerät" ist. Doch man benötigt für dynamisches HDR-Rendering einen Zwischen-Framebuffer in einem HDR-Format, welches dann mittels Tonemapping in eine LDR-Darstellung überführt wird. Tonemapping nimmt die Umrechnung des HDR-Bildes in ein LDR-Format anhand der Gesamthelligkeit vor – und simuliert die Eigenschaften der Augenpupille, sich je nach Lichtverhältnis unterschiedlich weit öffnen zu können. Beim Tonemapping kann man, wenn man möchte, auch den Überstrahl-Effekt applizieren: Die sehr hellen Bildbereiche werden geblurrt und mit dem Bild verrechnet (im einfachsten Fall addiert.) Doch echtes HDR-Rendering bietet eben noch viel mehr.

Da heutige Hardware noch nicht die erforderliche Leistung besitzt, durchgehendes HDR-Rendering hochperformant anzubieten, werden in der Praxis "getrickste" Verfahren benutzt, welche auf bestimmte Features nicht angewiesen sind. Damit ist zwar nicht die volle Qualität von echtem dynamischen HDR-Rendering drin, aber man kann einige HDR-ähnliche Grafikeffekte in Echtzeit rendern.
 
Zuletzt bearbeitet:
@Aths: Hast Du vielleicht auch Infos darüber wieviel Prozent sm3.0 im Vergleich zu sm2.0b an "Mehrleistung" bringt?
 
_Grisu schrieb:
@Aths: Hast Du vielleicht auch Infos darüber wieviel Prozent sm3.0 im Vergleich zu sm2.0b an "Mehrleistung" bringt?
Das kann man nicht pauschal sagen. In der Tendenz gilt: Je länger und komplexer der Shader, desto besser ist man mit SM3 beraten.

Der R520 kann recht effizient im Pixelshader dynamisch verzweigen. Das lässt sich für gewisse Optimierungen nutzen, in dem man Teile des Pixelshader-Codes, der ohnehin keine Auswirkungen mehr auf die Pixelfarbe hat, einfach wegschneidet. Gewinnt man durch das Wegscheiden mehr, als die Prüfung auf Auswirkung kostet, gewinnt man Leistung. Es ist aber auch denkbar, dass die Prüfung auf Auswirkung länger dauert als man am Ende einspart.

Nun kann der G70 weniger effizient in Pixelshader, dafür sehr effizient im Vertexshader dynamisch verzweigen (was wiederum der R520 nicht bietet) – der mögliche Gewinn durch SM3 hängt stark von der konkreten Hardware ab.

Bei SM3 hat man aber in jedem Fall mehr Interpolatoren (das sind bestimmte Input-Register) und kann damit im Prinzip mehr pro Shader-Pass machen. Sofern die größere Zahl der Interpolatoren (10 statt 8) braucht, bringt SM3 auch einen Speed-Up, ansonsten natürlich nicht.

Das Vertauschen von Register-Komponenten nennt man Swizzling. Mit SM2_A und 3_0 ist es möglich, beliebiges Swizzles vorzunehmen, 2_0 und 2_B erlauben nur bestimmte Varianten. Diese Varianten decken die am häufigsten benötigten Fälle ab. Ansonsten muss man mehrere Swizzle-Operationen nacheinander ausführen, was entsprechend mehr Takte kostet – zwar ist es bei SM3 nicht vorgeschrieben, dass ein freies Swizzling auch performant umgesetzt wird, davon kann man aber ausgehen. Also kann bei bestimmten Swizzle-Operationen SM3 im Vergleich zu SM2.x 2_B schon mal einen Takt sparen.

Mit SM3 kommt man auch bei komplexeren Berechnungen oft mit einem einzelnen Shader aus, und muss vor allem nicht laufend den Shader wechseln. (Shaderwechsel kostet auch etwas CPU-Leistung.) SM3 bietet dank langer Shader und dank Geometry Instancing auch Möglichkeiten, die CPU zu entlasten, und somit die Grafikperformance zu verbessern.
 
Zuletzt bearbeitet:
Bis jetzt hat SM3.0 in Spielen aber noch keine Performanceverbesserung gebracht oder?
 
Rukola schrieb:
Bis jetzt hat SM3.0 in Spielen aber noch keine Performanceverbesserung gebracht oder?


doch wenn du alle zustätzlichen effekte abschaltest wie HDR, tonemapping soft shadows etc.. , dann hast du schon einen gewissen performance Vorteil gegen über der shader 2.0 version.
Die qualität gleicht sich dann einer Shader 2.0 version an wobei aber bei selber Grafikqualität die Leistung mit Shader 3.0 um einiges besser ist.
 
Zuletzt bearbeitet:
Rukola schrieb:
Bis jetzt hat SM3.0 in Spielen aber noch keine Performanceverbesserung gebracht oder?
Das kann man nicht so einfach sagen.

Die größte Einschränkung von SM2.0 ist die Shader-Länge. SM2.x Profil 2_B erlaubt ja schon deutlich längere Shader. Damit kann man mehrere Shader zusammenfassen, das entlastet die CPU und spart Bandbreite auf der Grafikkarte (da das Zwischenspeichern der bis dahin berechneten Pixelfarbe entfällt.) In Far Cry bringt Profil 2_B denn auch einen Performance-Gewinn. Dieser wäre mit SM3.0 ebenfalls möglich, da SM3 das komplette SM2.x, mit allen Caps auf den Maximalwert gesetzt, einschließt (mit Ausnahme der unterstützten Texturformate im Vertexshader.)

Insofern bringt auch SM3 eine Performanceverbesserung gegenüber SM2.0, nur reichen eben oft auch 2.x-Profile.

Bei SM3-Nutzung berechnet Far Cry die Entfernung zur Lichtquelle pro Pixel aus (und nicht nur pro Eckpunkt des Dreiecks) was genauer ist, als die pro Eckpunkt berechnete Entfernung über das Dreieck zu interpolieren (für solche Sachen ist übrigens der erwähnte Interpolator da, von denen SM3 10 Stück bietet, SM2 nur 8.) Hier wird also etwas höhere Grafikqualität mit SM3 geboten, ohne dass eine mit SM3 neu eingeführte Instruktion genutzt wurde. Da man unter "Performance" imo nicht nur Geschwindigkeit, sondern auch Qualität verstehen sollte, könnte man sagen dass SM3 hier die Performance verbessert hätte – nur ist SM3 für diesen Effekt prinzipiell nicht unbedingt notwendig.

Inwieweit Spiele derzeit von SM3 profitieren ist also eine ganz andere Fragestellung als inwieweit Spiele von SM3 denn profitieren könnten.

//Edit
azdr schrieb:
doch wenn du alle zustätzlichen effekte abschaltest wie HDR, tonemapping soft shadows etc.. , dann hast du schon einen gewissen performance Vorteil gegen über der shader 2.0 version.
Kein echtes HDR-Rendering ohne Tonemapping. "HDR" sollte man so für sich genommen nicht sagen, aus zwei Gründen:

- Es gibt auch HDR-Imaging und andere HDR-Sachen, gemeint ist hier aber HDR-Rendering.

- Intern rechnet jede DX9-Karte in HDR-Genauigkeit, insofern kann jede DX9-Karte auch "HDR". Das alleine reicht aber noch nicht für performantes HDR-Rendering.

HDR-Rendering erzeugt zunächst auch ein HDR-Target, was ein Monitor nicht darstellen kann. Tonemapping macht daraus ein LDR-Target. Ein guter Monitor hat ein Kontrastverhältnis von ca. 1:1000, also 3 dB. Das FP16-Format bietet selbst in einer einfach implementierten Variante schon 9,3 dB (ca. 1:2.100.000.000) und ein bestmöglich implementiertes FP16-Format sogar 12,3 dB.


Es ist, siehe auch vorherigen Post, kein Problem mit SM3 schneller zu sein als mit SM2.0. Aber mit SM2.x reicht oft schon aus – gleich SM3 zu nehmen ist nicht immer notwendig. Natürlich klingt es fortschrittlich, wenn ein Spiel mit Support von SM3 wirbt.


//Edit by Green Mamba
Immer wieder schön Texte von dir zu lesen.
Aber bitte keine Mehrfachposts. :)
 
Zuletzt bearbeitet:
Sapphire Forum
Zurück
Oben