PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ROPS, TMUS, etc. Was ist was und wofür?


dosenfisch24
2006-01-02, 18:46:38
Früher war die Sache klar. Da hatte man Pixel-Pipelines und Vertex-Pipelines. Wofür die da sind is auch klar.
Seit den neuen Karten von ATI und Nvidia ist jetzt aber auch die Rede von "ROPS" , "TMUS" und "Raster Operation Prozessoren". Was genau machen die denn jetzt. Wie hängen die mit den Pipelines zusammen?
Und wo liegt eigentlich der Unterschied zwischen Pixel-Pipelines und Pixel-Shader Prozessoren bzw. Vertex-Pipelines und Vertex Prozessoren?

Ich weiß, das is ne ziemlich komplexe Frage, aber ich habe bisher weder hier im Forum noch mit ner Googlesuche wirklich ne gute Erklärung gefunden.

Trap
2006-01-02, 18:56:41
Da musst du schon wissen wie die Grafikpipeline aufgebaut ist.

In http://www.opengl.org/documentation/specs/version2.0/glspec20.pdf ist das ganz verständlich, aber leider im Text überall verstreut beschrieben und deshalb nicht einfach zu finden wenn man es nicht schon vorher weiß...

Seiten 24, 28-29, 104-105 sind ein ganz brauchbarer Überblick.

Coda
2006-01-03, 01:07:19
Das gabs alles auch schon früher.

MeLLe
2006-01-03, 08:40:28
Das gabs alles auch schon früher.
Als Antwort auf die Fragen des Threadstarters nicht gerade sehr brauchbar, was, Coda? ;)

saaya
2006-01-03, 16:21:17
Früher war die Sache klar. Da hatte man Pixel-Pipelines und Vertex-Pipelines. Wofür die da sind is auch klar.
Seit den neuen Karten von ATI und Nvidia ist jetzt aber auch die Rede von "ROPS" , "TMUS" und "Raster Operation Prozessoren". Was genau machen die denn jetzt. Wie hängen die mit den Pipelines zusammen?
Und wo liegt eigentlich der Unterschied zwischen Pixel-Pipelines und Pixel-Shader Prozessoren bzw. Vertex-Pipelines und Vertex Prozessoren?

Ich weiß, das is ne ziemlich komplexe Frage, aber ich habe bisher weder hier im Forum noch mit ner Googlesuche wirklich ne gute Erklärung gefunden.

man leute, ihr wisst das deutlich besser als ich also erklaehrt doch wenigstens die basics :-P

also, so weit ich weiss gab es frueher eine feste pipeline struktur die sich jetzt immer mehr aufloest, und die einzelenen stufen der pipelines sind jetzt nicht mehr in einer geraden festen "pipe" angeordnet sondern es gibt an einigen stellen eine aufteilung der last auf zwei komponenten oder es kann zwischen den ehemaligen pipes auf verschiedenen stufen parallel was hin und her geschoben werden.

sorry falls sich das sehr wage anhoert aber genau weiss ichs nicht.

das ziel ist so weit ich weiss die architektur flexibler zu machen und nicht so starre pipelines zu haben die komplett blockiert sind wenn an irgendeiner stelle was "klemmt" :D
bei cpus gehts in die gleiche richtung.

urspruenglich gibts eine pipeline die eine tmu, eine vertexeinheit und eine shader einheit hat, glaub ich. die vertex einheiten wurden als erstes entkoppelt weil man davon nicht so viele wie shader und tmu einheiten braucht.

nvidias g70 hat zb, so weit ich weiss, zwei shader prozessoren pro piepline, der eine ist zwar nur limitiert einsetzbar, aber immerhin.
die liegen aber hintereinander und nicht parallel, vom rest her ist g70 aber kaum veraendert, es wurde also nur die anzahl der pixel prozessoren erhoeht und die restliche logik blieb so gut wie unveraendert so weit ich weiss.

rv530 und r580 haben dagegen so wie ich es verstanden habe pro pipeline 3 pixel prozessoren (shader prozessoren?) die parallel nebeneinander liegen, da die wohl vorher ein limitierender faktor waren hat man einfach die einheit die limitiert verdoppelt. rv530 hat konservativ gesehen nur 4 pipelines, hat aber 12 pixel (shader?) prozessoren und performt wenn es um eine shader lastige anwendung geht so gut wie konservative 8 oder sogar 12 pipe vpus.
rv530 hat aber nur 4 tmus, also textur einheiten, normalerweise haben karten immer so viele tmus wie pipelines bzw pixel prozessoren glaub ich.

das heisst das rv530 bei hochaufloesenden texturen und vielen textur layern die uebereinander liegen durch die niedrige anzahl der tmus sehr limitert ist.
wobei man das relativ sehen muss, wirklich schlecht performt die vpu nicht...
ich glaub aber schon das 8 pixel prozessoren und stat dessen 6 tmus besser performt haette...

so, das meisste was ich gepostet hab wird jetzt wahrscheinlich als voellig falsch erklaehrt, aber dafuer wissen wir dann wies wirklich ist :D

Coda
2006-01-03, 16:43:45
Die Vertexeinheiten waren schon immer entkoppelt. Die GeForce 256 hatte eine und 4 Pixeleinheiten.

rv530 und r580 haben dagegen so wie ich es verstanden habe pro pipeline 3 pixel prozessoren (shader prozessoren?) die parallel nebeneinander liegen, da die wohl vorher ein limitierender faktor waren hat man einfach die einheit die limitiert verdoppelt.Die limitieren nicht. Das Problem ist derzeit nur, dass man die TMUs nicht mehr mitskalieren kann weil die Speicherbandbreite fehlt. Die Entwickler schwenken erst langsam auf rechenlastigere Shader um.

Aquaschaf
2006-01-03, 16:43:57
Als Antwort auf die Fragen des Threadstarters nicht gerade sehr brauchbar, was, Coda? ;)

Es ist doch der Sinn eines Forums Themen nur so oft wie nötig durchzukauen, denn man kann die Informationen z.B. über die Suchfunktion jederzeit wieder aufrufen ;)

reunion
2006-01-03, 16:58:50
Früher war die Sache klar. Da hatte man Pixel-Pipelines und Vertex-Pipelines. Wofür die da sind is auch klar.
Seit den neuen Karten von ATI und Nvidia ist jetzt aber auch die Rede von "ROPS" , "TMUS" und "Raster Operation Prozessoren". Was genau machen die denn jetzt. Wie hängen die mit den Pipelines zusammen?


Die TMUs sind wie der Name schon sagt, für die Texturfilterung zuständig. Diese sitzen AFAIK hinter den Pixel-Shader-Einheiten, im Zentrum der Pipeline.

Die ROPs (oder eben Raster Operation Prozessoren) kümmern sich primär um Anti-Aliasing und Sichtbarkeitsprüfungen, diese sitzen am Ende der Pipeline.

Coda
2006-01-03, 17:43:57
Diese sitzen AFAIK hinter den Pixel-Shader-Einheiten, im Zentrum der Pipeline.Nein. Die liegen vor oder parallel zu den Pixelshadern, bzw. sind je nach Ansicht auch Bestandteil davon X-D

3d
2006-01-03, 17:50:41
warum schreibt niemand ein faq, wo erklärt wird was eine pipeline ist, wie sie aufgebaut ist und wie es im groben funktioniert?

das würde mich auch interessieren wie das alles zusammenhängt.
vor allem mit den TMUs ,ROPs und was noch alles da ist.
auch in bezug auf die "normalen" sachen wie: texturen, filterung, rendern usw. wäre ein faq nicht schlecht.
(nicht alle hier sind 3d "experten")

und bitte nicht in englisch
ich denke die mehrheit hier kann mit englisch nix anfangen.

deekey777
2006-01-03, 17:57:22
:massa: http://www.3dconcept.ch/
Hoffentlich geht noch was.
http://www.beyond3d.com/words/index.php

Oder die c't 20/05 nachbestellen, da gibt es einen Artikel über die Technik der aktuellen Grafikkarten, der von einem Dr. Dr. Dr. Irgendwas verfasst wurde.

3d
2006-01-03, 18:07:46
was gibts da bei 3dconcept so interessantes?
die vergleichstabelle?
oder die nauen marktanteile?

der faq von beyond3d ist schon nicht schlecht.
sowas in deutsch und vollständig wäre perfekt.

zeckensack
2006-01-03, 18:08:24
Früher war die Sache klar. Da hatte man Pixel-Pipelines und Vertex-Pipelines. Wofür die da sind is auch klar.Gut. Dann kann ich mir die Nummer mit dem Vertex-Prozessor ja schenken :)
Seit den neuen Karten von ATI und Nvidia ist jetzt aber auch die Rede von "ROPS" , "TMUS" und "Raster Operation Prozessoren". Was genau machen die denn jetzt.
TMUs sind texture mapping units. Eine TMU bekommt als Quelldaten (über's Dreieck interpolierte) Texturkoordinaten und einen großen mehrdimensionalen Konstantenspeicher (aka "Textur"), und erzeugt daraus ein Textursample, indem anhand der Koordinate die richtigen Stellen in der Textur adressiert und zusammengefiltert werden.

Wie Coda so treffend sagte: das gab's auch schon früher (auf Voodoo 1-Boards zB als separaten Chip).

Die Samples gehen dann in die "Pixel-Pipeline" zurück, wo sie verrechnet werden können. ZB Sample*0,5 für eine trivial abgedunkelte Oberfläche, oder auch allerhand modernerer Schranz, denn nicht jede Textur ist ein hübsches Bildchen. Das können beliebige Vektor-Haufen sein, wie zB irgendwie kodierte Materialeigenschaften wie Reflektivität, Oberflächenausrichtung etc pp.

Die modernen "Pixel-Pipelines" sind flexibel genug, denn sie haben -- das hast du vergessen aufzuzählen -- programmierbare "ALUs". Dies sind wiederum arithmetic and logic units. Ein klassischer Fachterminus aus dem Prozessor-Bau, der bei Grafikprozessoren nicht ganz passend ist, weil "logic"-Operationen (bitweises XOR/OR/AND/shift/rotate ...) idR dort nicht ausführbar sind.

"ROP" und "Raster-Prozessor" sind Synonyme, und total unpassende Begriffe, weswegen ich mir die Aufschlüsselung der Abkürzung auch mal verkneife.
Diese Einheiten bilden die Schnittstelle zwischen "Pixel-Pipeline" und dem Grafikspeicher. Ein Pixel der in den Framebuffer (oder bei Render-To-Texture in eine Textur) geschrieben werden soll, muss durch einen ROP. ROPs schreiben nicht einfach alles durch, sondern erledigen auch noch Rechenarbeit. Sie unterstützen zum einen die klassischen Verknüpfungs-Operationen für's Blending (zB Cdest_new:=(1-Cnew.alpha)*Cdest_old+Cnew.alpha*Cnew.rgb). Zum anderen erledigen sie die finalen Z-, Alpha- und Stencil-Tests.

HTH.

Fragen? Fragen.

Demirug
2006-01-03, 18:18:37
Die modernen "Pixel-Pipelines" sind flexibel genug, denn sie haben -- das hast du vergessen aufzuzählen -- programmierbare "ALUs". Dies sind wiederum arithmetic and logic units. Ein klassischer Fachterminus aus dem Prozessor-Bau, der bei Grafikprozessoren nicht ganz passend ist, weil "logic"-Operationen (bitweises XOR/OR/AND/shift/rotate ...) idR dort nicht ausführbar sind.

Nur zur Ergänzung. Ab D3D10 werden diese Operationen Plicht.

3d
2006-01-03, 18:26:15
pflicht

ich appeliere nochmal an die moderatoren und gurus.
solange nicht ein bericht geschrieben wird darüber oder ein faq, werden hier leute immerwieder fragen.
und dann heißt es immer:" benutz die suchfunktion, da steht alles"
toll... :rolleyes: :frown:

wir brauchen ein faq
am besten ala wikipedia, so daß jeder was schreiben/erklären kann und auch editieren/berichtigen. somit geht es schneller und die gurus/moderatoren müssen nicht alles machen.
wie wär das?

saaya
2006-01-03, 18:35:58
Die Vertexeinheiten waren schon immer entkoppelt. Die GeForce 256 hatte eine und 4 Pixeleinheiten.

Die limitieren nicht. Das Problem ist derzeit nur, dass man die TMUs nicht mehr mitskalieren kann weil die Speicherbandbreite fehlt. Die Entwickler schwenken erst langsam auf rechenlastigere Shader um.

bei der pro, ja, bei der 1600xt, nein, da bringt mehr speicherbreite nichts mehr ab ca. 24gb/s bei 650mhz core takt.
das sind die werte die ich von nem kollegen gekriegt hab, kannst du dami was anfangen? :D

:massa: http://www.3dconcept.ch/
Hoffentlich geht noch was.
http://www.beyond3d.com/words/index.php

Oder die c't 20/05 nachbestellen, da gibt es einen Artikel über die Technik der aktuellen Grafikkarten, der von einem Dr. Dr. Dr. Irgendwas verfasst wurde.
cool, danke!

Sie unterstützen zum einen die klassischen Verknüpfungs-Operationen für's Blending (zB Cdest_new:=(1-Cnew.alpha)*Cdest_old+Cnew.alpha*Cnew.rgb). Zum anderen erledigen sie die finalen Z-, Alpha- und Stencil-Tests.
wöh? :| :D kannst du das nochmal erklaeren?

hmmm und die rops sitzen doch am anfang der pipe oder?
denn auf welche pixel ueberhaupt shader effekte oder texturen fallen sollen muss doch als erstes klargestellt werden oder?

vielen dank fuer die antworten! :)

also ich bin gerne bereit bei nem guide oder ner faq zu helfen, als n00b kann ich da wunderbar auf stellen zeigen die nicht einleuchtend sind und besser erklaert werden muessen, und bestimmt auch helfen die sachen einfacher zu formulieren sobald ichs verstanden hab :)

zeckensack
2006-01-03, 18:44:01
...

wir brauchen ein faq
am besten ala wikipedia, so daß jeder was schreiben/erklären kann und auch editieren/berichtigen. somit geht es schneller und die gurus/moderatoren müssen nicht alles machen.
wie wär das?Kannst du in die Tonne treten. Schau doch mal hier (http://www.forum-3dcenter.org/vbulletin/showthread.php?t=262104&page=3), mit welcher Geschwindigkeit sich Leonidas um Content auf 3DCenter kümmert. Oder zumindest bemerkt und verspricht damit anzufangen.

Oder frag' mal Robbitop, Raff und Madkiller wie lange ihre Artikel jeweils auf Veröffentlichung warten mussten.

Coda
2006-01-03, 18:44:39
Nein die ROP sitzt ganz am Ende und schreibt die Ausgabe der Pixelshader in den Grafikspeicher oder "vermischt" das Ergebnis für Transparenz etc. damit.

zeckensack
2006-01-03, 19:00:31
wöh? :| :D kannst du das nochmal erklaeren?Das Geformel ist eine Verknüpfung zwischen alten und neuen Pixeln.
Am ROP kommt ein Pixel schon fix und fertig an, er hat eine Farbe, einen Alpha-Wert, und Z (Tiefeninformation).
Der Z-Test ist dazu da, um zu verhindern dass neue Pixel die "weiter hinten" liegen, alte, bereits im Framebuffer herumliegende Pixel die "weiter vorne" liegen überschreiben.

Und das Rechenbeispiel war die klassische Formel für Transparenz. Dabei wird anhand des Alpha-Kanals des neuen Pixels zwischen eben diesem und dem alten Pixel, das an der gleichen X/Y-Position im Framebuffer liegt, überblendet.

Wenn ein Pixel mit Alpha:=0,25 am ROP ankommt, bedeutet das üblicherweise dass er zu 75% durchlässig ist, also ist die finale Farbe (die vom ROP anhand der angegebenen Formel errechnet wird) 1/4 der Farbe des aktuellen Pixels plus 3/4 der Farbe des Pixels der schon vorher da war.

hmmm und die rops sitzen doch am anfang der pipe oder?Eben nicht. Der blöde Name impliziert das irgendwie, aber ein ROP sitzt ganz am Ende der Verarbeitungskette. Über den ROP werden die fertigen Pixel in den Speicher geschrieben -- oder auch nicht, aber einen anderen Weg gibt es nicht.
denn auf welche pixel ueberhaupt shader effekte oder texturen fallen sollen muss doch als erstes klargestellt werden oder?Das wird nicht pro Pixel entschieden.
Die Applikation bzw das Spiel kann nur (zur Not pro Dreieck, aber in der Praxis sehr viel seltener) einen anderen Shader aktuell machen (und andere Texturen aktuell machen).
Wenn gerade keine Texturen benötigt werden, dann lädt man eben einen Shader auf den Chip, der keine Textur-Instruktionen enthält.
(bzw wenn man gehässig/blöd/abenteuerlustig ist, lässt man die Textur-Instruktionen drin, aber verrechnet das Ergebnis nicht ...)

"Shader" laufen immer, auch wenn sie trivial sein sollten. Selbst wenn du konstant weiß haben willst, musst du das dem Chip irgendwie beibringen. Simpelst-Renderer wie GLQuake brauchen dann schon echte Arithmetik pro Pixel, ergo "Shader", die tatsächlich auf aktuellen Chips von den Shader-ALUs ausgeführt werden, obwohl man das natürlich damals noch nicht ahnen konnte.
Wenn du ein älteres Programmiermodell benutzt, kriegst du davon auch nichts mit, aber trotzdem wird sämtlich Farb-Logik, die früher fest verdrahtet war, heute von (kleinen) Shader-Programmen emuliert.

3d
2006-01-03, 19:01:14
Kannst du in die Tonne treten. Schau doch mal hier, mit welcher Geschwindigkeit sich Leonidas um Content auf 3DCenter kümmert. Oder zumindest bemerkt und verspricht damit anzufangen.

Oder frag' mal Robbitop, Raff und Madkiller wie lange ihre Artikel jeweils auf Veröffentlichung warten mussten.
wer braucht denn jetzt schläge hier? :biggrin:
ist Leoanidas der verantwortliche?

mir ist egal wie das realisiert wird, hauptsache es kommt ein faq.
wenn nur die gurus schreibzugriff hätten, gäbs doch keine probleme und auch keine arbeit für die moderatoren (Leonidas?)
es gibt ja genug experten hier, die ab und zu etwas zeit haben paar begiffe zu erläutern.
alleine die paar sachen, die hier grad erklärt wurden sind schon viel wert.
aber was haben wir davon?
in paar tagen ist es doch vergessen und verloren.

saaya
2006-01-03, 19:44:40
Das Geformel ist eine Verknüpfung zwischen alten und neuen Pixeln.
Am ROP kommt ein Pixel schon fix und fertig an, er hat eine Farbe, einen Alpha-Wert, und Z (Tiefeninformation).
Der Z-Test ist dazu da, um zu verhindern dass neue Pixel die "weiter hinten" liegen, alte, bereits im Framebuffer herumliegende Pixel die "weiter vorne" liegen überschreiben.
das heisst bis dahin wird der pixel aber fertig berechnet obwohl er eventuel garnicht sichtbar ist?
ist das nicht ne ziemlich verschwendung?

Und das Rechenbeispiel war die klassische Formel für Transparenz. Dabei wird anhand des Alpha-Kanals des neuen Pixels zwischen eben diesem und dem alten Pixel, das an der gleichen X/Y-Position im Framebuffer liegt, überblendet.

Wenn ein Pixel mit Alpha:=0,25 am ROP ankommt, bedeutet das üblicherweise dass er zu 75% durchlässig ist, also ist die finale Farbe (die vom ROP anhand der angegebenen Formel errechnet wird) 1/4 der Farbe des aktuellen Pixels plus 3/4 der Farbe des Pixels der schon vorher da war.
ok

Eben nicht. Der blöde Name impliziert das irgendwie, aber ein ROP sitzt ganz am Ende der Verarbeitungskette. Über den ROP werden die fertigen Pixel in den Speicher geschrieben -- oder auch nicht, aber einen anderen Weg gibt es nicht.
Das wird nicht pro Pixel entschieden.
Die Applikation bzw das Spiel kann nur (zur Not pro Dreieck, aber in der Praxis sehr viel seltener) einen anderen Shader aktuell machen (und andere Texturen aktuell machen).
Wenn gerade keine Texturen benötigt werden, dann lädt man eben einen Shader auf den Chip, der keine Textur-Instruktionen enthält.
(bzw wenn man gehässig/blöd/abenteuerlustig ist, lässt man die Textur-Instruktionen drin, aber verrechnet das Ergebnis nicht ...)

"Shader" laufen immer, auch wenn sie trivial sein sollten. Selbst wenn du konstant weiß haben willst, musst du das dem Chip irgendwie beibringen. Selbst Simpelst-Renderer wie GLQuake brauchen dann schon echte Arithmetik pro Pixel, ergo "Shader", die tatsächlich auf aktuellen Chips von den Shader-ALUs ausgeführt werden, obwohl man das damals natürlich damals noch nicht ahnen konnte.
Wenn du ein älteres Programmiermodell benutzt, kriegst du davon auch nichts mit, aber trotzdem wird sämtlich Farb-Logik, die früher fest verdrahtet war, heute von (kleinen) Shader-Programmen emuliert.
ja, das hab ich schonmal gehoert, das die dx7 hardware eingespart wird oder so?
und naja, das ist halt der nachteil mit mehr flexibilitaet, man hat weniger standards bzw muss sich alle standards selbst setzen.
aber gibt es keine tools in denen man vereinfach angibt was man will und die das dann nen shader fuer einen basteln? :D
so das man zb den code wie fuer die alten weniger flexiblen vpus schreibt, und das tool schreibt den code dann moeglichst effizient in einen shader?

ich stimme da mit 3d ueberein, warum postet ihr das nicht auf wikipedia , oder wikihardware?
n kumpel aus australien hat eine seite in wikipedia style wo es nur um computer hardware geht.
s ist doch viel einfacher wenn mehrere leute schreibzugriff haben, dann muss nicht alles an jemanden geschickt werden der dann staendig updated, editiert und alles zusammenbastelt... :)

Odal
2006-01-03, 19:51:34
bei der pro, ja, bei der 1600xt, nein, da bringt mehr speicherbreite nichts mehr ab ca. 24gb/s bei 650mhz core takt.
das sind die werte die ich von nem kollegen gekriegt hab, kannst du dami was anfangen? :D


es müssen auch nur max. 4 TMU parallel gefüttert werden und die XT mit 700Mhz (DDR1400) schon eine recht hohe bandbreite.

ausgewogen wär es erst wenn die x1600pro 585Mhz Ramtakt hätte


ich wär auch mal für ein FAQ oder auch einen richtigen Artikel "3D Pipeline für Dummies" irgendwas wo erstmal relativ grob erklärt wird was was macht und welche verschiedenen pipelineformen es gibt.

Odal
2006-01-03, 19:54:43
aber gibt es keine tools in denen man vereinfach angibt was man will und die das dann nen shader fuer einen basteln? :D
so das man zb den code wie fuer die alten weniger flexiblen vpus schreibt, und das tool schreibt den code dann moeglichst effizient in einen shader?


das macht doch die API z.b. DirectX bzw. Direct3D
man ruft dann ganz normale Direct3D Funktionen auf

saaya
2006-01-03, 20:00:00
also zur beyond3d faq, aktuell und so toll ist die aber nicht, der erste eintrag ist ja schon unkomplett bzw falsch oder?

AGP (Accelerated Graphics Port):
AGP is an expansion bus made by Intel, specifically for the videocard. It works independent of the PCI bus (which runs at 33Mhz, or PCI2.1 at 66Mhz) and runs at 66Mhz with mode 1X. Another mode refers to the speed of the bus, 2X means 2X66Mhz = 133Mhz. Sidebanding means that your Videocard can write and read textures to/from your main memory.
unabhaengig vom pci bus?
agp und mind ein pci slot sharen doch ne irq oder?
ausserdem wird der agp clock vom pci clock abgeleitet (bis auf ausnahmen aka nf3/kt400?)
und agp2x heisst nicht wie es hier wirkt das der bus mit 133mhz laeufft, der taktet immernoch mit 66mhz schickt nur mehr daten pro takt, oder?

naechster eintrag:

Anti-aliasing:
-For a detailed description on this, please visit this whitepaper.

-Explaining this completely would mean explaining the whole mathematical sampling theory. It boils down to this. To recover a signal , or image, you need a minimum of samples to be able to give a realistic representation of the image. The problems start with texture maps being either too close or too far away from the viewpoint. If the polygon is far away you only have a limited number of points to show the texture map, so logically you have to drop a lot of the real pixels of your texture map. This creates some sort of interlace effect : one line is shown and one is not. This can result in weird patterns (moiré patterns) appearing, and makes the texture map look completely different from the real one. A similar problem if the polygon is close to you. You need more info than there is resulting in the generation of random noise (meaningless values). Most of the time the last problem is solved by MIP-Mapping while the other is solved by the anti-aliasing. Another point where anti-aliasing is used is with straight lines, usually abrupt changes in color from pixel to pixel, the border of a polygon for example. If you draw a straight line (under an angle) using a paint program and you zoom in, you will discover that the line looks like a stairway. To remove this and make the line look like a line points in different colors are added to the side of the line to make it look more like a real line. Most of the time it is this kind of Anti-Aliasing they are talking about. All Next Generation hardware support some form of AntiAliasing but only Full Scene AntiAliasing as used by PowerVR Second Generation does not need the CPU for this. The Edge Anti Aliasing techniques used by Voodoo2 and others needs the CPU to prepare the data (sorting, etc...). Results of AntiAliasing are amazing.

results of antialiasing are amazing... das hat doch null mit der definition zu tun :-P
und ich finde die erklaerung viel zu umstaendlich und langatmig.
aliasing nennt man den treppeneffekt der entsteht wenn eine diagonal durch pixel dargestellt werden soll. je nach winkel wirkt die diagonale eher wie eine gleichmaessige linie oder eher wie eine feingezackte treppe. um diesen unscheonen effekt zu beseitigen wird eine szene zweimal berechnet, wobei die eine leicht verschobene perspektive benutzt, die zwei samples werden uebereinander gelegt wodurch alle linien deutlich gleichmaessiger erscheinen.

dadurch koennen linien aber auch dicker wirken als sie eigentlich sind...
dann noch erklaehren was der unterschied zwischen 2aa und 4aa etc ist, und verlinken zu supersampling und multisampling.

viel kuerzer und auf den punkt gebracht imo...
also ich find die faq bis jetzt eher duerftig... die sachen die ich nicht verstehe, versteh ich nach der beschreibung dort immernoch nicht :/
das ist als wenn man ene fremde sprache durch einen duden dieser sprache lernen will, wenn man die basics nicht schon weiss versteht man nichts und lernt nichts dazu, oder nur sehr aufawendig stueck fuer stueck :D

was wir brauchen waere ein normalsterblich zu grafikexperte werterbuch :D

deekey777
2006-01-03, 20:00:37
das heisst bis dahin wird der pixel aber fertig berechnet obwohl er eventuel garnicht sichtbar ist?
ist das nicht ne ziemlich verschwendung?

Unsichtbare Pixel werden verworfen, bevor sie berechnet werden, oder?

http://www.3dcenter.de/artikel/2004/07-30.php

saaya
2006-01-03, 20:06:25
das macht doch die API z.b. DirectX bzw. Direct3D
man ruft dann ganz normale Direct3D Funktionen auf
ich meinte ob es eine app gibt die shader fuer einen schreibt, so wie dreamweaver html vereinfacht... oder hab ich da einen voellig falschen eindruck von shadern? :D

Coda
2006-01-03, 20:14:16
das macht doch die API z.b. DirectX bzw. Direct3DNö. Der Treiber.

ich meinte ob es eine app gibt die shader fuer einen schreibt, so wie dreamweaver html vereinfacht... oder hab ich da einen voellig falschen eindruck von shadern?Also die UE3 hat sowas, es werden derzeit die Shader aber noch von Hand geschrieben für jedes Material.

saaya
2006-01-03, 20:18:35
Unsichtbare Pixel werden verworfen, bevor sie berechnet werden, oder?

http://www.3dcenter.de/artikel/2004/07-30.php
sehr informativ, danke :)

coda, gibt es denn wenigstens schon vorgefertigte "standard" shader fuer bestimmte effekte die so oder so benoetigt werden oder haeufig verwendet werden?
so wie einen standard wasser shader, einen standard depth of field shader (depth of field wird doch durch einen shader erreicht oder?)

back on topic, macht doch eine neue sektion im forum fuer guides und faqs, gebt den gurus mod rechte in der sektion, dann koennen alle mods und gurus an den guides und faqs editieren und sie updaten.
dann muesste man nurnoch regeln setzen dass nicht einfach was geloescht wird ohne zustimmung der person die es geschrieben hat, oder ohne zustimmung von merheren leuten.
daran wird sich ja bestimmt jeder halten.
dann entstehen bestimmt schnell stueck fuer stueck echt interessante guides und faqs ohne das eine einzelne person viel arbeit da rein stecken muss :)

Coda
2006-01-03, 20:29:57
coda, gibt es denn wenigstens schon vorgefertigte "standard" shader fuer bestimmte effekte die so oder so benoetigt werden oder haeufig verwendet werden?
so wie einen standard wasser shader, einen standard depth of field shader (depth of field wird doch durch einen shader erreicht oder?)Nein. Das ganze ist auch immer nicht nur ein Shader. Du stellst dir das viel zu einfach vor.

Odal
2006-01-03, 20:32:22
ich denk mal dazu hat keiner lust sich die arbeit zu machen und was zu schreiben

Coda
2006-01-03, 20:34:54
Das Problem dabei ist dass man das ganze kaum auf einen kurzen Artikel runterbrechen kann. Selbst wenn man es sehr ausführlich macht wirst du nicht viele Leute damit erreichen und den meisten wird dann eh die Lust vergehen. Schreibt man es kurz und knapp versteht es erst recht keiner.

Das schlimmste sind diese Beschreibungen auf THG etc. Das sollten sie einfach bleiben lassen, da wird mehr Unsinn verbreitet als Nützliches.

3d
2006-01-03, 21:42:28
ich denk mal dazu hat keiner lust sich die arbeit zu machen und was zu schreiben wenns so wäre, würde auch hier niemand antworten.
und wie du gesehen hast haben sich schon gurus freiwillig zu wort gemeldet.
d.h ab und zu haben die experten zeit und lust sich um sowas zu kümmern.

muss ja auch nicht alles fertig sein auf einmal. so ein guide oder faq kann man schön erweitern.
ein artikel wäre da natürlich zu aufwendig, darum solls ja ein faq sein, den man immer wieder erweitern kann.

wie ausführlich man die sachen erklärt kann man ja den schreibern überlassen.
man wird es schon verstehen. wer tief ins details gehen will, der kann sich dann weiterbilden.

zeckensack
2006-01-03, 22:44:53
das heisst bis dahin wird der pixel aber fertig berechnet obwohl er eventuel garnicht sichtbar ist?
ist das nicht ne ziemlich verschwendung?Jein.
Da gibt's ein gewisses Optimierungspotential, was praktisch auch mehr oder weniger stark ausgenutzt wird. Du kannst in vielen Fällen das alte Z schonmal einlesen und mit dem Z des gerade aktuellen Pixels vergleichen, bevor die "Pixel Pipeline" an sich (TMUs, ALUs) überhaupt die Arbeit aufnimmt. Nennt sich "Early Z" und ist in jedem Grafikchip der was auf sich hält irgendwie eingebaut.
Das geht nur nicht immer, weil Shader zB Z verändern können, und beim Alpha-Test kriegst du dann auch große Probleme.
Deswegen gehört zu einem kompletten ROP trotzdem noch die Möglichkeit zu einem "Notfall"-Z-Test. In jedem Fall schreibt der ROP das Zeug raus.

Auf der Hardware-Ebene sind dann noch diverse Tricks denkbar, um die Logik zwischen dem Early Z und dem Post-Shader-Test nicht verdoppeln zu müssen, aber das geht jetzt ein bisschen weit.

Ich wollte auch erstmal die Funktionalität erklärt haben, und nicht so exakt den Aufbau. Obwohl ich da ein paar Ideen habe kann ich das sowieso nicht genau wissen.

ja, das hab ich schonmal gehoert, das die dx7 hardware eingespart wird oder so?Sie wird nicht gebraucht. Sie wäre nützlich wenn sie a)schneller wäre als die programmierbare Logik und b)sehr oft gebraucht würde. Beides kannst du vergessen.

Programmierbare Shader sind eine Übermenge von "DX7-Hardware". Sie können das gleiche, und noch viel mehr.
Alles doppelt einbauen, nur einmal absichtlich beschränkt, ist einfach keine gute Idee.

Banshee18
2006-01-03, 22:56:40
Mich würde eine (sehr ausführliche) FAQ auch interessieren.
Eine spezielle Ausbildung für so etwas gibt es nicht, wie ich schon herausgefunden habe, auch Bücher findet man nicht. :( Ich würde mir auf jeden Fall eines kaufen, wenn es eines gäbe.

Demirug
2006-01-03, 23:17:14
Mich würde eine (sehr ausführliche) FAQ auch interessieren.
Eine spezielle Ausbildung für so etwas gibt es nicht, wie ich schon herausgefunden habe, auch Bücher findet man nicht. :( Ich würde mir auf jeden Fall eines kaufen, wenn es eines gäbe.

Selbst wenn es jemand schreiben wollte würde er kaum einen Verlag finden. Das Thema ist einfach viel zu spezialisiert.

Banshee18
2006-01-03, 23:38:04
Selbst wenn es jemand schreiben wollte würde er kaum einen Verlag finden. Das Thema ist einfach viel zu spezialisiert.

Ich beneide euch Gurus um euer Wissen, da ich trotz großen Interesses keine Möglichkeit sehe, dieses Wissen auch zu erlangen. :(

Ist GPU Gems vielleicht eine Möglichkeit, als "Noob" mehr über dieses Thema zu erfahren? Leider weiß ich nicht, wo man es bekommen kann.

saaya
2006-01-04, 00:38:46
geht mir genauso banshee :(

aber es freut mich das zeckensack demirug leonidas und sogar coda ;) sich die zeit nehmen uns wenigstens die basics naeher zu bringen :)
danke nochmal :D

und wie gesagt, macht doch ne faq sektion, dann kann da jeder einen satz oder einen ganzen paragraphen oder noch mehr posten oder hinzufuegen, je nachdem wie viel lust/zeit er gerade hat.

stueck fuer stueck setzt sich dann bestimmt ne sehr geile faw zusammen.
genaus funktioniert doch wikipedia. das hat auch sehr klein und knapp angefangen und ist inzwischen zum standard online nachschlagewerk geworden, und es ist immernoch eher infantil und stark am wachsen!

Ailuros
2006-01-04, 01:34:04
results of antialiasing are amazing... das hat doch null mit der definition zu tun :-P
und ich finde die erklaerung viel zu umstaendlich und langatmig.
aliasing nennt man den treppeneffekt der entsteht wenn eine diagonal durch pixel dargestellt werden soll. je nach winkel wirkt die diagonale eher wie eine gleichmaessige linie oder eher wie eine feingezackte treppe. um diesen unscheonen effekt zu beseitigen wird eine szene zweimal berechnet, wobei die eine leicht verschobene perspektive benutzt, die zwei samples werden uebereinander gelegt wodurch alle linien deutlich gleichmaessiger erscheinen.

dadurch koennen linien aber auch dicker wirken als sie eigentlich sind...
dann noch erklaehren was der unterschied zwischen 2aa und 4aa etc ist, und verlinken zu supersampling und multisampling.

viel kuerzer und auf den punkt gebracht imo...
also ich find die faq bis jetzt eher duerftig... die sachen die ich nicht verstehe, versteh ich nach der beschreibung dort immernoch nicht :/
das ist als wenn man ene fremde sprache durch einen duden dieser sprache lernen will, wenn man die basics nicht schon weiss versteht man nichts und lernt nichts dazu, oder nur sehr aufawendig stueck fuer stueck :D

was wir brauchen waere ein normalsterblich zu grafikexperte werterbuch :D

Ein bisschen verkorkst geschrieben ist es zwar schon, aber obwohl kurz bin ich froh das sowohl polygon- als auch texture-aliasing erwaehnt wird.

Antialiasing gibt es auch beim sound-processing und wenn ich mich nicht irre erschien es dort zuerst. In allen Faellen wird versucht ein Frequenz-Problem zu verbessern.

Coda
2006-01-04, 01:41:23
Ich hab auf der Uni letztens einen Vortrag über die moderne 3D-Pipeline gehalten. Soll ich die Präsentation mal als PDF hochladen? Sind halt nur die Slides ohne große Erklärung, aber schön bebildert ;)

deekey777
2006-01-04, 01:44:58
Ich hab auf der Uni letztens einen Vortrag über die moderne 3D-Pipeline gehalten. Soll ich die Präsentation mal als PDF hochladen? Sind halt nur die Slides ohne große Erklärung, aber schön bebildert ;)
Mit Blackjack und Nutten? Ach, Hauptsache Bilder. Her damit. :biggrin:

Coda
2006-01-04, 01:49:03
Na gut. Ihr könnt mich ja dazu fragen...

http://www.mental-asylum.de/files/3dghw.pdf

(del)
2006-01-04, 02:20:25
Na gut. Ihr könnt mich ja dazu fragen...

http://www.mental-asylum.de/files/3dghw.pdf
Was sind unsolide Objekte?

Coda
2006-01-04, 02:22:40
Wireframe. Die Formulierung ist aber eher doof.

Ach ja, da wurden bewusst manche Sachen unter den Tisch gekehrt, weil ich nicht lange Zeit hatte.

Odal
2006-01-04, 02:40:26
ich hätte ne frage...

du hast da ja ein paar shader bei HL2 als Bsp. gebracht für die Pixelprozessoren
diese schader müssen dort ja zum teil "verkettet" ausgeführt werden, sprich erst der eine und dann der andere nochmal drüber. Werden jetzt die gerasterten Pixel auf die shader a) angewand wurde für den nachfolgenden shader b) vom gleichen pixelprozessor bearbeitet oder wird die (mit a) bearbeiteten) pixel zum nächsten pixelprozessor übergeben damit der shader b) drüberjagen kann? oder muss das ganze zeug nochmal durch die komplette pipeline gejagt werden und wird bis zum pixelprozessor durchgerootet (ist ja eigentlich quatsch man hat ja schon fertige pixel (vertices?) wo nur mehr shader drauf angewand werden müssen).

Coda
2006-01-04, 02:41:16
HL² berechnet auf DX9-Hardware alles Single-Pass soweit ich informiert bin, d.h. die verschiedenen Berechnungen werden alle im gleichen Shader durchgeführt und kombiniert. Die Bildchen dienen nur der Illustration wie es nur nach dieser Operation aussehen würde.

Odal
2006-01-04, 02:44:55
also bekommt ein pixelprozessor immer einen gerasterten pixel (vertex also punkt mit tiefeninformationen etc. ) und jagt da sämtliche shader drüber bevor er sich dem nächsten pixel (vertex) widmet

so sind dann immer 16 pixel gleichzeitig in der mache (bei 16 pp versteht sich)

ist es dann so das ein pixelshader immer alle gerasterten pixel von einem triangle berechnet...
die nächste pipeline macht gerade mit nem anderen triangle rum und der pixelprozessor bekommt dann nur von diesem pixel zum shadern

allerdings haben wir doch z.b. 6 vertexprozessoren und 16 pixelshader und ROPs TMUs...

sind die vertexprozessoren dann einfach nur viel schneller fertig das sie den rest der 16 pipes versorgen können und nicht rumidlen oder werden die daten von einem triangle nach den vertexoperationen gesplittet und auf die pipes aufgeteilt?

Coda
2006-01-04, 02:46:10
Ich denke du meinst das richtige. Er bekommt aber keinen gerasterten Pixel sondern nur die Eingabedaten für diesen Punkt, er gibt ja schließlich die Pixelfarbe aus am Ende. Er jagt auch nicht "sämtliche" Shader drüber sondern nur einen (Pixelshader = Pixel-Programm).

Ja es sind dann immer parallel mehrere Pixel in Bearbeitung, das ist der große Vorteil von dedizierter Grafikhardware.

Odal
2006-01-04, 02:58:43
ja aber man kann doch verschiendene shader gleichzeitig auf das zeug anwenden

das ein shader so ein paar zeilen quellcode ist ist und vom shadercompiler in eine art assembler format umgewandelt wird ist mir bekannt.

aber werden dann die verschiedenen shader erst kombiniert (also z.b. shader a) x+1 shader b) sin(x) kombiniert = sin(x+1) ) oder werden diese nacheinander vom pixelprozessor bearbeitet und damit die pixel (vertex bzw. punkte mit tiefeninformation und texturfarbwert) erst shader a) drüber dann shader b) drüber kombiniert...

weil selbst der sin ist ja eine komplexe mathematische funktion die in hardware durch shifting, bitverknüpfungen etc. umgesetzt wird und das zeug zig mal durch die ALU's muss

Coda
2006-01-04, 03:00:14
ja aber man kann doch verschiendene shader gleichzeitig auf das zeug anwendenGleichzeitig geht gar nicht. Es ist immer nur ein Shader aktiv.

Wieso sollte man mehrere verwenden wenn es auch mit einem geht? Das macht man nur wenn einem die Resourcen ausgehen und dann muss man nochmal durch die komplette Pipeline und das ganze mit dem ROP kombinieren.

Odal
2006-01-04, 03:05:13
Gleichzeitig geht gar nicht. Es ist immer nur ein Shader aktiv.

Wieso sollte man mehrere verwenden wenn es auch mit einem geht? Das macht man nur wenn einem die Resourcen ausgehen und dann muss man nochmal durch die komplette Pipeline und das ganze mit dem ROP kombinieren.

naja ich dachte um einen möglichst hohen ROI zu haben,

reuse statt immer das rad neu zu erfinden.

wie schon im vorfeld angesprochen, das es eben schon vorgefertigte mathematische funktionen gibt, die z.b. metallischen glanz simmulieren.
Dann könnte man vielleicht eine drüberhaun die alles durch eine art glas erscheinen lassen usw.

wenn man beide effekte hat braucht man bei nur einem shader ja, wenns metallischer glanz ohne diesen durch eine glasscheibe zu sehen, wieder einen ganz anderen shader.

was meinst du mit: "wenn einem die ressourcen ausgehen" ?
d.h. wenn die shader zulang werden und z.b. (bei assembler hat man ja z.b. auch nur begrenzte anzahl von registern etc.) und diese voll sind (FX problem) man erstmal ein zwischenergebniss berechnen muss und dann das nochmal durch den pixelprozessor jagen muss der dann den rest des shaders drauf anwendet und seine ALUs anheizt?

Coda
2006-01-04, 03:07:57
Das musst du auf einem höheren Abstraktionslevel lösen, da hilft dir weder die Hardware noch die API.

was meinst du mit: "wenn einem die ressourcen ausgehen" ?
d.h. wenn die shader zulang werden und z.b. (bei assembler hat man ja z.b. auch nur begrenzte anzahl von registern etc.) und diese voll sind (FX problem) man erstmal ein zwischenergebniss berechnen muss und dann das nochmal durch den pixelprozessor jagen muss der dann den rest des shaders drauf anwendet und seine ALUs anheizt?Genau.

Odal
2006-01-04, 03:19:20
aha und auf was ist so ein shader festgelegt? auf ein objekt (mesh) auf eine fläche eines objektes of ein triangle?

was passiert wenn ich jetzt z.b. einen glasshader habe. D.h. ich habe eine Fläche (bzw. Körper) dem ein Glasshader zugeordnet ist. Eigentlich muss er doch die ganzen pixel hinter sich verändern (da man ja zum teil durchgucken kann) d.h. je nach betrachtungswinkel müsste dann doch ein shader auf verschiedene objekte (bzw. Teilobjekte) hinter diesem körper angewand werden. Da frag ich mich immer wie das funktioniert.

sry. wegen der dummen fragen in meiner Computergraphik 1 vorlesung damals haben wir kaum / bis garnicht Hardware behandelt (und shader waren damals auch noch nicht so in )

Coda
2006-01-04, 03:22:38
aha und auf was ist so ein shader festgelegt? auf ein objekt (mesh) auf eine fläche eines objektes of ein triangle?Der komplette Zustand der Grafikpipeline bezieht sich immer auf den nächsten Drawcall, d.h. alle Dreiecke die mit einem Aufruf gerendert werden haben z.B. den selben Pixel- und Vertexshader. Siehe Seite 11.

was passiert wenn ich jetzt z.b. einen glasshader habe. D.h. ich habe eine Fläche (bzw. Körper) dem ein Glasshader zugeordnet ist. Eigentlich muss er doch die ganzen pixel hinter sich verändern (da man ja zum teil durchgucken kann) d.h. je nach betrachtungswinkel müsste dann doch ein shader auf verschiedene objekte (bzw. Teilobjekte) hinter diesem körper angewand werden. Da frag ich mich immer wie das funktioniert.Für sowas kopiert man sich den Framebuffer und bindet diese Kopie als Textur an die Pixelshader. Das gleiche gilt für Wasser usw.

sry. wegen der dummen fragen in meiner Computergraphik 1 vorlesung damals haben wir kaum / bis garnicht Hardware behandelt (und shader waren damals auch noch nicht so in )Ich muss das Zeug erst noch machen. Wird sicher wahnsinnig spannend ;)

Übrigens schreibe ich im Moment die Ausarbeitung für das Ding, da steht dann alles genauer drin.

Odal
2006-01-04, 03:33:05
Der komplette Zustand der Grafikpipeline bezieht sich immer auf den nächsten Drawcall, d.h. alle Dreiecke die mit einem Aufruf gerendert werden haben z.B. den selben Pixel- und Vertexshader. Siehe Seite 11.


ok drawcall heisst z.b. nimm textur a shader b und objekt c (trianguliert d.h. alle dreiecke von dem teil) und jag das durch die pipeline?




Für sowas kopiert man sich den Framebuffer und bindet diese Kopie als Textur an die Pixelshader. Das gleiche gilt für Wasser usw.


lol ;D ich depp da hätte ich auch selber drauf kommen können


Ich muss das Zeug erst noch machen. Wird sicher wahnsinnig spannend ;)


auf alle fälle, ich mein so ein bisschen mit opengl oder direct3d in computergrafik programmieren zu müssen ist ja schön und gut, aber die hardware basics zu lernen sind imho unabdingbar wenn es an komplexere sachen wie shader geht.

Coda
2006-01-04, 03:45:42
ok drawcall heisst z.b. nimm textur a shader b und objekt c (trianguliert d.h. alle dreiecke von dem teil) und jag das durch die pipeline?Drawcall heißt dass er Dreiecke aus einem Vertexbuffer nehmen und darauf Vertex- und Pixelshader ausführen soll. Also ja.

auf alle fälle, ich mein so ein bisschen mit opengl oder direct3d in computergrafik programmieren zu müssen ist ja schön und gut, aber die hardware basics zu lernen sind imho unabdingbar wenn es an komplexere sachen wie shader geht.Ich weiß gut bescheid, sei ohne Sorge ;)

Ailuros
2006-01-04, 09:39:59
Eine ziemlich gute Praesentation uebrigens :)

saaya
2006-01-04, 11:01:22
Ailuros, wieso frequenzproblem?
bei grafik wuerd ich das nicht ein frequenzproblem nennen?


hmmmm wenn ich das richtig verstanden hab mit dem glasshader als beispiel, dann wird sozusagen nur der fertige frame nachbearbeitet, richtig?

mir ist ein problem aufgefallen was spiegelungen angeht, wie wird eine spiegelung berechnet von etwas was verdeckt ist.
beispiel, adriana lima zieht sich hinter einer wand durch die man nicht durchkucken kann um, schade :D
wenn man nun einen spiegel oder eine glaskugel richtig plaziert koennte man seinen voyeursluesten nachgene und die schoenheit mutter naturs bewundern ^^

wie wird das umgesetzt?
eigentlich wird adriana doch von der hardware ignoriert, gleich am anfang wrd doch erkannt sie steht hinter einer wand durch die man nicht durchkucken kann, sie muss also garnicht berechnet werden.
early z oder?

sie muss ja aber doch berechnet werden da die glaskugel bzw ein spiegel sie doch zeigt. wie loest man dieses problem?

wird die distanz dann einfach am spiegel btw in der glaskugel reflektiert/gebrochen, so dass der z wert die distanz zwischen dem spiegel/der glaskugel plus die distanz zwischen dem spiegel/der glaskugel und adriana lima ist.

oder denke ich nicht abstrakt genug und wird adriana lima sozusagen nur als bild auf dem spiegel/der glaskugel berechnet?

Ailuros
2006-01-04, 11:21:48
Ailuros, wieso frequenzproblem?
bei grafik wuerd ich das nicht ein frequenzproblem nennen?


hmmmm wenn ich das richtig verstanden hab mit dem glasshader als beispiel, dann wird sozusagen nur der fertige frame nachbearbeitet, richtig?

mir ist ein problem aufgefallen was spiegelungen angeht, wie wird eine spiegelung berechnet von etwas was verdeckt ist.
beispiel, adriana lima zieht sich hinter einer wand durch die man nicht durchkucken kann um, schade :D
wenn man nun einen spiegel oder eine glaskugel richtig plaziert koennte man seinen voyeursluesten nachgene und die schoenheit mutter naturs bewundern ^^

wie wird das umgesetzt?
eigentlich wird adriana doch von der hardware ignoriert, gleich am anfang wrd doch erkannt sie steht hinter einer wand durch die man nicht durchkucken kann, sie muss also garnicht berechnet werden.
early z oder?

sie muss ja aber doch berechnet werden da die glaskugel bzw ein spiegel sie doch zeigt. wie loest man dieses problem?

wird die distanz dann einfach am spiegel btw in der glaskugel reflektiert/gebrochen, so dass der z wert die distanz zwischen dem spiegel/der glaskugel plus die distanz zwischen dem spiegel/der glaskugel und adriana lima ist.

oder denke ich nicht abstrakt genug und wird adriana lima sozusagen nur als bild auf dem spiegel/der glaskugel berechnet?


http://www.3dcenter.de/artikel/anti-aliasing/index02.php

Odal
2006-01-04, 11:26:47
hmmmm wenn ich das richtig verstanden hab mit dem glasshader als beispiel, dann wird sozusagen nur der fertige frame nachbearbeitet, richtig?


ähm nein bzw. afaik nicht es sind ja keine pixel mit nur x-y koordinaten und farbwert ala bmp bild oder dergleichen da ist ja noch tiefeninformation etc. mit dabei

saaya
2006-01-04, 12:13:42
http://www.3dcenter.de/artikel/anti-aliasing/index02.php
wau, cool :D
danke fuer den link :)

ähm nein bzw. afaik nicht es sind ja keine pixel mit nur x-y koordinaten und farbwert ala bmp bild oder dergleichen da ist ja noch tiefeninformation etc. mit dabei
hmmmmm aber es werden schon fertig gerechnete teile des frames genommen un dann werden die mit dem shader nachbearbeitet, oder?
oder werden die finalen pixel sofort berechnet?

sorry, ich hab echt kaum ahnung was sowas angeht

Coda
2006-01-04, 15:54:37
Für Spiegel wird die Szene nochmal von einer anderen Position aus berechnet, das ganze ist aber schwierig mit nem Rasterizer.

Demirug
2006-01-04, 21:42:03
Ein Poster mit den Aufbau der Direct3D Renderpipeline gibt es übrigens auf der folgenden Seite: http://www.xmission.com/~legalize/book/preview/poster/index.html

Das ist der logische Aufbau der in den GPUs realisiert ist.

saaya
2006-01-04, 22:28:51
Für Spiegel wird die Szene nochmal von einer anderen Position aus berechnet, das ganze ist aber schwierig mit nem Rasterizer.
hmmmm ja das hoert sich kompliziert an... eine glaskugel spiegelt ja so gut wie den gesamten raum, wenn auch verzerrt und sehr klein.

danke demirug :)
wieso gibt es in der grafik 15 vertex buffer? komische zahl...
die pixel shader alu die dort angegeben wird, davon gibt es immer vier zu einem quad zusammengefasst, oder?

also mit dem poster als grundlage kann man glaub ich schon sehr viel erreichen, fehlt nur ne erklaehrung jedes bereiches (erstmal grob, ins detail kann man ja spaeter noch gehen) und dann eventuell ein typischer ablauf von daten werden eingelsen und komen in der pipeline an bis pixel wird in den ramdac geschrieben.

wieso sagt denn keiner was zu der wiki idee das mehrere leute zugriff zu einer faq haben und stuekc fuer stueck daran arbeiten?
findet ihr die idee alle schlecht?

Demirug
2006-01-04, 22:45:13
wieso gibt es in der grafik 15 vertex buffer? komische zahl...

Es sind 16 da bei 0 angefangen wird zu zählen.

die pixel shader alu die dort angegeben wird, davon gibt es immer vier zu einem quad zusammengefasst, oder?

Für DX gibt es nur eine. In der Hardware sind in der Regel immer 4 zu einem Quad zusammen gefasst. Diese können auch durchaus abweichen bzw es können mehere Vorhanden sein. Das Poster beschreibt wie gesagt nur den Blickwinkel des Entwicklers auf die GPU. Diesen Blickwinkel stellt der Treiber her.

saaya
2006-01-04, 23:26:25
my bad :hitself:

das poster ist schon interessant, aber ohne weitere infos nicht sehr aufschlussreich...
fuer laeien wie mich auf jeden fall.
aber es ist interessant, und zusammen mit den anderen sachen versteh ich langsam immer mehr :)

Coda
2006-01-04, 23:31:56
Ach ja wegen Kugeln und Spiegel: Da muss man Cubemaps dafür nehmen, weil man kaum für jedes Dreieck einmal die Szene neu berechnen kann.

saaya
2006-01-05, 00:41:39
Ach ja wegen Kugeln und Spiegel: Da muss man Cubemaps dafür nehmen, weil man kaum für jedes Dreieck einmal die Szene neu berechnen kann.
danke :)
hat dazu nochmal jemand einen link zu noch so einem tollen artikel wie die anderen die bis jetzt gepostet wurden zur hand? :D

btw, in diesem thread hat sich doch schon so einiges an interessanten informationen angesammelt. hoffentlich bleibt der thread weiter am leben und irgendwann fasst mal jemand die sachen zusammen, das waere dann schonmal ein kleiner aber feiner anfang fuer eine faq :)