Erfassen, welche Dreiecke gesehen werden
-
thordk schrieb:
deine kommentare sind sehr unqualifiziert. manchmal landest du nen glückstreffer und man könnte teile als konstruktive antwort werten, aber meist ist es einfach totaler bullshit.
die bekanntesten verfahren sind frustrum culling und backface culling. backface culling guckt sich einfach die normale eines dreiecks an. wenn sie vom betrachter wegzeigt, dann wird das dreieck vom betrachter nicht gesehen. das kann man als gl funktion aktivieren. was dafür schlicht gemacht wird ist zu überprüfen, ob die dreiecke im uhrzeigersinn (sichtbar) oder gegen den uhrzeigersinn (nicht sichtbar) angegeben wurden.
Mittels BFC kann man allerdings nicht ermitteln, ob ein Dreieck im View Volume liegt.
Nur als Anmerkung:
Wenn man Testen will ob ein Vertex im View Volume liegt, so kann man entweder die Position des Vertex mit den Lagen der 6 Ebenen des View Frustums vergleichen oder den Vertex in das Canonical View Volume transformieren und dann einfach prüfen, ob die 3 Koordinaten in den Intervallen [0,1] bzw. [-1,1] liegen.
-
Sgt. Nukem schrieb:
Nicht die Dreiecke sondern die Dreieckspunkte der Dreiecke (Vertizes).

stimmt, punkte. ich schiebs auf den rotwein

zu interpreter: das kann man mit backface culling nicht, aber die frage war, ob sich ein dreieck im sichtbereich befand. ich interpretiere (oO) das so, dass es nur um die frage geht, ob es jemals sichtbar war.
für den vergleich mit dem sichtpolyeder (ist das frustrum nicht nur eine ebene des polyeders?) würd ich einfach jede seite als separierende ebene auffassen und testen, auf welcher seite dieser ebene ein punkt liegt. ist meiner meinung nach performanter, als ein direkter check, ob ein punkt innerhalb des polyeders liegt.
-
wenn durito sagen würde, wofür er es braucht, wäre es eventuell leichter ihm etwas optimales vorzuschlagen, ich gehe mal von einem preprozess ab für PVS

-
ach das brauch er ja doch nicht ist sicher nur so ein projekt das nie fertig wird^^
aber ich sarg immer hauptsache man hat was gelernt dabei^^
-
strummelbunzi schrieb:
ach das brauch er ja doch nicht ist sicher nur so ein projekt das nie fertig wird^^
aber ich sarg immer hauptsache man hat was gelernt dabei^^void?
-
????????
-
Nur mal so: wenn du jedes Dreieck testen willst, dann kannst das eh sein lassen, das macht OpenGL eh selber.
Sinn macht das ganze nur, wenn du deine Daten entsprechend anordnest, um durch wenige Tests viele Dreiecke auszuschließen, das macht OpenGL nicht(z.B. mit nem Octree).
-
bei displaylists kann oGL das durchaus machen... machen einige treiber auch

-
rapso schrieb:
bei displaylists kann oGL das durchaus machen... machen einige treiber auch

Hm das interessiert mich, is mir neu.

Kann man denn davon ausgehen, wenn die Treiber halbwegs aktuell sind, dass dieses Verhalten immer da ist?
-
Pellaeon schrieb:
rapso schrieb:
bei displaylists kann oGL das durchaus machen... machen einige treiber auch

Hm das interessiert mich, is mir neu.

Kann man denn davon ausgehen, wenn die Treiber halbwegs aktuell sind, dass dieses Verhalten immer da ist?nein, grundsätzlich ist das nicht möglich, z.b. bei verwendung von vertexshadern.
ich glaube das stand mal in nem kleinen satz im ogl form, als ich jemand wunderte dass displaylists schneller waren als alle methoden die er versucht hatte, "cass" als nv-guy hat das rausgeplappert.kannst ja einfach mal ne displaylist machen die du mit einer suppe aus winzigen triangles füllst, und dann davon weggucken... wobei die art des cullings nicht rausgerückt wurde, vermutzlich boundingspheres oder AABB.
-
Oh, hey, da lief ja einiges in dem Thread...
Dochdoch, rapso & strummelbunzi (was fuer'n nick...) ich brauch das schon

Pellaeon & thordk, es geht mir nicht um Performance. Ich weiss, dass die GraKa das Dreieck testet, ich will diese Information aber nicht nur fuer die grafische Ausgabe, sondern auch in meinem RAM zwecks spaeteren Auswertung in einem Simulator. Da wird ne Szene gerendert und das Opfer (der User ;)) bewegt sich in der Szene. Fuer die Auswertung brauch ich anschliessend eine Markierung des Bereiches, welcher auch wirklich gesehen wurde.
Ich hab das jetzt mal so implentiert:
- buffer loeschen
- rendern
- buffer swappen
- nochmals einfaches rendern mit GL_NV_occlusion_query
-->Anhand von erfassten Pixeln und Flaeche des Dreiecks wird festgelegt, wie stark das Dreieck gesehen wurde
rapso schrieb:
bei displaylists kann oGL das durchaus machen... machen einige treiber auch

jep, nvidia's Linux-Treiber machen das

-
rapso was genau studierst du/hast du studiert?? lernt man das alles im normalen Informatik studium oder muss man da was spezielles Wählen??
-
MasterCounter schrieb:
rapso was genau studierst du/hast du studiert?? lernt man das alles im normalen Informatik studium oder muss man da was spezielles Wählen??
Wahlpflichtfach Grafikkarten-Treiber-Programmierung

-
giebt es das wirklich ich mein wen ich fachinfomratiker werden wiel giebts es das dort auch^^?
-
ne, jetzt echt mal ernsthaft, natürlich kann sich auch ein SideWinder oder korbinian melden
ich will das alles nämlich auch wissen, weiss aber nicht ob da das Informatiker Studium das richtige wäre, also plz mal melden rapso 
-
strummelbunzi schrieb:
giebt es das wirklich ich mein wen ich fachinfomratiker werden wiel giebts es das dort auch^^?
Ich muss mich jetzt echt stark beherrschen...................
Man KANN sich im Info-Studium auf Computergrafik spezialisieren.
-
Man kann auch an die GamesAcademy gehen und 3D GrafikProgrammierung Studieren...
-
MasterCounter, solches fachwissen ist nicht inhalt eines informatik studiums. man wird sich manchmal in projekten mit bestimmten dingen sehr differenziert auseinandersetzen und nicht zuletzt während der diplomarbeit möglicherweise auf irgendwas stürzen und extrem vertiefen. aber in der regel eignet man sich fachwissen nur an, indem man sich selbst drum kümmert und "privat" forscht

-
Man KANN sich im Info-Studium auf Computergrafik spezialisieren.
Aber gib den jungen Leuten hier net soviel Hoffnung. Das Info Studium hat nicht wirklich was mit Computergrafik zu tun.
I mach Computergrafik nun schon mein ganzen Programmiererleben und es gibt es sogar als Lahrstuhl an meiner Uni. Aber spannend ist es dort leider nicht. Und Informatik studium hat mehr mit harter arbeit zu tun als ihr vielleicht denken mögt. C++ und Programmieren können nützt einem da kaum was (schon sehr von Vorteil die Denkstruktur zu haben, aber man benutzt es nicht).
Habe auch vor mich dort auf ComputerGrafik zu spezialisieren und meine Diplomarbeit dort zu schreiben, aber lest euch bevor ihr so eine Entscheidung trefft lieber die Site von Hume Sikkins zum Studium durch ^^
-
ChaosAngel schrieb:
Man KANN sich im Info-Studium auf Computergrafik spezialisieren.
Aber gib den jungen Leuten hier net soviel Hoffnung. Das Info Studium hat nicht wirklich was mit Computergrafik zu tun.
Hab ich auch nirgends behauptet. Es ist dennoch Fakt, dass viele Unis einen Fachbereich Computergrafik besitzen und man sich dann auf diesen Bereich spezialisieren KANN.
Aber zu deiner Beruhigung kann ich es ja extra betonen:
Das Infostudium hat im Kern NICHTS mit Grafik zu tun und selbst wenn man sich auf das Gebiet spezialisiert wird es nur einen sehr kleinen Teil des Studiums ausmachen.