PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : was ist überhaupt shader?


Gast
2004-02-17, 21:10:55
hi @ all,

mir ist es einbisschen peinlich aber was solls :)

ich wollt wissen was vertex shader , normales shader (gibts sowas überhaupt ...lül) ist?

weil da gibts ja diesen neuen treiber 56.55 der soll 20 % mehr shader power "bringen".

naja....danke schon mal im voraus

mfg

Keel
2004-02-17, 21:42:55
Original geschrieben von Gast
hi @ all,

mir ist es einbisschen peinlich aber was solls :)

ich wollt wissen was vertex shader , normales shader (gibts sowas überhaupt ...lül) ist?

weil da gibts ja diesen neuen treiber 56.55 der soll 20 % mehr shader power "bringen".

naja....danke schon mal im voraus

mfg
Nicht "normaler" Shader - es gibt Pixel- und Vertex Shader, aber in einiger Zukunft wird das wohl eh eins werden.
Wir haben das im Tech-Forum schon das eine oder andere Mal geklärt. Entweder selber die Suchfunktion benutzen oder darauf hoffen, dass hier bald Antworten kommen werden.
Für eine ausführliche Erklärung habe ich atm leider keine Zeit (würde ich auch bestimmt nicht 100%ig korrekt erklären). Aber im Tech-Forum gibt es schon Erklärungen und auch brauchbare Links zu guten Artikeln.

@ Mods:
Das gehört ins Tech-Forum!

Korak
2004-02-18, 01:33:16
Original geschrieben von Keel


@ Mods:
Das gehört ins Tech-Forum!

Yes, sir!!

:freak:

Demirug
2004-02-18, 07:51:44
Der Begriff Shader wird für zwei Dinge benutzt. Zum einen handelt es sich dabei um kleine Programme die Rechenanweisungen für die Geometrieeckpunkte oder die Pixelfarbe enthalten. Desweiteren wird der Begriff auch für die Recheneinheiten im Chip benutzt welche diese Programme ausführen.

Wenn ein Treiber nun mehr "Shaderpower" bringt dann beschleunigt er nicht direkt die Recheneinheit. Ein möglicher Gewinn kommt daher das der Shadercode von den Spielen von Treiber erst in das interne Format des Grafikchips umgesetzt werden muss. Für diese Umsetzung gibt es immer mehr als eine Möglichkeit. Dabei kann dann aber jedes Ergebniss unterschiedlich schnell sein. Ein Treiber muss nun versuchen die beste zu finden. nVidia hilft da aber auch mal gerne nach indem sie für die Shader von bekannten Spielen die beste Übersetzung im Treiner hinterlegt haben.

marco42
2004-02-18, 15:53:43
Original geschrieben von Gast
ich wollt wissen was vertex shader , normales shader (gibts sowas überhaupt ...lül) ist?

mfg

Shading kommt von Shading und heisst auf deutsch Schattierung. Der Shader gibt also die Schattierung vor.

Stell dir das einfach so vor. Es gibt eine Kamera, die sendet Strahlen aus(das sind die Pixel), so in etwa, als wenn deine Augen Scheinwerfer waeren. So, nun trifft ein Strahl auf ein Object, nehmen wir eine Kugel. Die Kugel hat nun einen Shader. Diesen Shader sagtst nun, dass der Strahl auf die Kugel da und da aufgeschlagen ist. Ausserdem kannst du ihm noch sagen, es gibt die und die Lichter und die Kugel reflektiert das Licht in die und die Richtung. Es gibt da noch mehr Moeglichkeiten, aber belassen wir es dabei.

Nun sagt der Shader die Welt ist super einfach, und es gibt drei Arten von Licht. Da waere das Ambiente Licht, dass ueberall ist, auch im Schatten. Das ist das Licht unter deiner Tischplatte. :-) Dann gibt es das Diffuse Licht, dass ist das Licht, dass Abhaengig vom Licht und dem Reflectionsvektor(sowas nennt man eine Normale :) berechnet wird. Das simuliert das Licht, wenn du zB eine matte, mit weisser Tapete beklebten Saeule anschaust. Da gibt es einen Verlauf von Dunkel nach Hell. Deswegen nennt man ihn Diffuse. :-)

Dieses Licht gibt der Scene Tiefe. Du findest es eigentlich ueberall. So als drittes gibt es dann noch die Glanzlichter
Sowas sieht man, wenn man auf eine Plastikkugel schaut. Dieses weisse(warum das immer weiss ist, haengt mit den Eigenschaften des Materials zusammen, bei Metall hat es die Farbe des Metalls) Licht ist abhaengig von deinen Standpunkt, der Kugel und dem Licht, wie du einfach feststellen wirst, wenn du dich bewegst, beim diffusen aendert sich nichts, wenn du dich bewegst. Man kann das noch sehr viel komplizierter machen. Aber dafuer gibt es schoene Buecher[zB texturing and modelling].

So, die drei Lichter addierst du jetzt zusammen. Und schon hast du eine schoene Plastikkugel.

Der Unterschied zwischen Vertex und Pixelshadern ist, dass du dass einmal fuer die Punkt, aus denen die Geometry besteht machst oder fuer die pixel, die nachher siehst. Eigentlich machst du es fuer die Fragments, aus denen sich nachher ein Pixel zusammensetzt, aber ist ja auch egal. Wenn du vertex shader nimmst, dann kannst du vorallem bei Glanzlichtern sehen, wie die Geometry beschaffen ist. Schoen sieht man das bei Quake, wenn man die Lichtberechnet auf Vertex(?) stellt. Wenn du die Geometrie schoen komplex machst, sieht man keinen unterschied mehr, wird halt nur langsam.

Da gibt es noch andere Tradoffs etc. Ich wollte das jetzt nicht zu kompliziert machen.