OpenGl Stencil Buffer und Farbtiefe
-
Ne es ging mir nicht darum dass ich nicht weiss wie man 32 Bit im Vollbild initialisiert bekommt. Meine Frage war nur wieso der 16 Bit Modus beim rendern der Reflektionen so viel langsamer ist, das verstehe ich nicht.
-
Überleg doch mal.
Wenn OGL einen 32 Bit Buffer in einen 16 BitBuffer kopieren muss (hier den StencilBuffer in den PrimeBuffer) dann muss doch jeder Pixel umgerechnet werden.
Schliesslich stehen dem StencilBuffer für jeden Pixel 32 bits zur Verfügung, dem Primary Buffer hingegen nur 16.
Das bedeutet du muss ständig vom Primebuffer zum Stencilbuffer HOCHRECHNEN und danach vom StencilBuffer zum Primebuffer RUNTERRECHNEN...
-
da unter 16bit kein hardware stencilbuffer zur verfügung steht, wird auf software umgestellt und wenn die cpu das ganze zeichnen macht, dann ist es langsammer als mit der graka, die unter 32bit den zubuffer mit 24bit und den stencilbuffer mit 8bit verwendet.
rapso->greets();
-
hmm seltsam
aber nur bei älteren grakas oder?
[ Dieser Beitrag wurde am 24.06.2003 um 21:03 Uhr von Sovok editiert. ]
-
Sovok: Geforce 1. Ich glaube da hat der Stencil Buffer gerade an Bedeutung gewonnen..
-
selbst die neusten grakas unterstützen keinen stencilbuffer bei 16bit, das liegt daran dass der stencilbuffer und der zbuffer im selben speicher liegen und weil der dafür aufgeteilt werden muss, müßte man einige bits von den 16 opfern, das ist aber wohl nicht das wahre, weil 16bit nicht gerade hoche präzision erlauben (zfighting gefahr)
bei 32bit hat man hingegen genug spielraum um 8bit für stencil zu opfern.
ich glaube die RivaTnT konnte das schon und die matrox g400 hat dafür extra demos spendiert bekommen in denen volume shadows gezeigt wurden...
rapso->greets();
-
Danke, jetzt versteh ich das. Was kann man mit dem Stencilbuffer eigentlich noch so machen ausser Reflectionen und Schatten.
Und noch was zu OpenGl. Kennt ihr vielleicht gute Tutorials über Kamera's, das was ich alles dazu gefunden habe ist nicht so toll und irgendwie find ich auch nichts gescheites zu Quaternionen.
Und meine Kamera die versucht habe zu proggen funktioniert nicht richtig.
Bin halt echt ein Anfänger.
-
haste nehe,gamedev,flipcode und gametutorials schon durchgeschaut?
-
man kann mit denen den overdraw messen (bei jedem pixelsetzen den stencil incrementieren, oder grundsätzlich bei jedem möglichen pixel incrementieren)
clippingplanes sind möglich, volume fog,csg bei multipass rendering an nicht perfekt aneinander passender geometri kann man dafür sorgen, dass ein pixel nicht zweimal additiv geblendet wird, wenn man 2d und 3d verbindet (wie bei manchen WiSims heutzutage gemacht wird) kann man versuchen ein wenig den zbuffer für die sprites zu faken, man kann quasi die ganzen flugzeug instrumente mit stencil zeichnen, dann kann man eventuell nur den hintergrund zeichnen ohne dass das kockpit neu gepinselt wird. bei weltraum shootern hat man oft ein bisschen probleme wegen dem zbuffer, weil er eine nicht ausreichende range abdeckt udn auch nicht ausreichend präzise ist, in diesen fällen kann man die objekte von vorn nach hinten zeichnen und für jedes davon einen eigenen stencilwert setzen und je weiter nach hinten man kommt, desto größer wird der stencilwert und man darf dann halt nur einen pixel setzen, wenn kein pixel mit kleinerem stencil gesetzt wurde, dadurch ist es möglich die z-range pro objekt neu zu setzen (also far und near clipping planes verschieben)
übrigens sollte man, wenn man mehr als 16bit zbuffer benutzt, den stencil und den zbuffer immer gleichzeitig löschen, weil die grafikkarte sonst nicht ihren zeroticks-clear machen kann und mühsehlig jeden z-wert auf das "clearword" setzt, da 8bit ja immer stencil sind und beibehalten werden müssen.
rapso->greets();
-
Ok, danke, ist ja erstmal ne Menge
Die Nehe tutorials arbeite ich gerade durch, was zur Kamera ist da nicht drin. Die Kamera von Gametutorials ist irgendwie nicht so toll. Naja und ansonsten suche ich auch was mir die ganze Theorie von Quaternionen erklärt, aber da finde ich nur spärlich was. Eigentlich kenne ich mich mit der 3d Mathematik recht schlecht aus, und ich denke wenn ich weiter OpenGl machen will kommen ich sonst ziemlich schnell an meine Grenzen.