Hey Folks,
Ich Programmiere mit einer ATI graka, und wollte nun mein programm mal auf einer nvidia testen. komischer weise kommt die nvidia mit dem picking algo nicht klar. Ich benutze genau den selben weg wie hier in der wiki im tutorial. die nvidia grafikkarte braucht 4 mal so lange um die scene im GL_SELECT zu rendern. und auch die glRender funktion die anzahl der treffer zurückliefert dauert ca doppelt so lange. All das beeinflusst leider das flair in der welt, da es doch recht viele objecte gibt. aber wie gesagt mit meiner ati läuft es wunderbar!!!
Vielleicht hat jemand ja schonmal das selbe problem gehabt und kann mir einen tipp geben.
alle links tipps etc. sind willkommen!!!
cherio Woltan
Ich habe genau das gleiche Problem. Bei meiner GF6600 GT mit dem neuesten Treiber (93.71) ist die Framerate viel schlechter als bei einer vergleichbaren ATI Karte (sagen wir mal 1600), und das obwohl meine CPU schneller ist.
Wie kann man dieses Problem bei NVIDIA umgehen? Was für Techniken benutzen denn andere OpenGL Entwickler? Schließlich laufen andere OpenGL Spiele / CAD Programme mit viel besserer Performance.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Das Problem tratt mit den ersten Beta-Treibern der 90er Reihe auf, und da diese Reihe immernoch aktuell ist bleibt das Problem weiterhin bestehen. Aber Selektion sollte man eh nicht mehr verwenden, ich persönlich (und wohl auch die meisten anderen Entwickler) nutzen Farbselektion, bei der die Objekte farblich kodiert offscreen gerendert werden und man dann den anvisierten Pixel ausliest und Farbwerte vergleicht.
Hey Sasche,
von dem Verfahren was du ansprichst hab ich auch schon gehört/gelesen, das ist ne gute idee, ich werd das bei gelegenheit mal ausprobieren. Es findet sich sicherlich ein gutes tutorial dazu irgendwo.
Thx for da reply
cherio Woltan
Ich hätte da noch eine weitergehende Frage:
wie sieht denn die Performance von so einem Farbselect denn aus? Schließlich muss ich danach auch Painten.
Wäre es nicht schneller, wenn ich bei einem Perspektivwechsel merke, wo jedes Objekt liegt und ich so mein eigenes Select nachbaue? (angenommen, das Bild bleibt recht lange statisch und ich will nur etwas anklicken)
Oder macht das die GPU wesentlich schneller als meine CPU?
Die OpenGL-Selection ist sowieso nicht hardwarebeschleunigt. Von daher ist eine eigene Implementation, die von bestimmen Annahmen profitiert meistens schneller.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Wie yonibear sagt läuft die OpenGL-Selection sowieso in Software und damit ist eigentlich jede selbstgemacht Lösung scheller. Bei der Farbselektion rendert man dann mit Hilfe der GPU die Szene mit so wenigen Informationen wie möglich (keine Texturen, Shader, Lichter, nur Objekte die benötigt werden, evtl. mit niedrigerem LOD und nur einen Ausschnitt um den Cursor herum).
Ich nutze auch Farbselektion und rendere nach dem SwapBuffers immer den gesamten Frame noch mal mit den Indizes für die Dreiecke. Obwohl das sicherlich nicht die optimalste Möglichkeit ist, habe ich dabei noch keinerlei Geschwindigkeitsprobleme festgestellt.
Aber Selektion sollte man eh nicht mehr verwenden, ich persönlich (und wohl auch die meisten anderen Entwickler)
Hach wär das schön wenn Autodesk/Alias/Maya das auch mal irgendwas kapieren würden, das nicht jeder Mensch ne Quadro oder sonstwas hat wo evtl das GL_SELECT noch funktioniert..
Mitglieder in diesem Forum: 0 Mitglieder und 8 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.