Ich versuche gerade verzweifelt herauszubekommen was hier falsch ist!
Ich will mehrere Werte aus OpenGL erhalten, aber es kommen einfach falsche Werte (teilweise auch richtige)!
Eigentlich müssten die Befehle meines wissens nach richtige Ergebnisse ausspucken, ich würd's mit nem aktuellen Treiber versuchen und die Werte mit denen auf http://delphi3d.net/ vergleichen.
_________________ Bevor du definierst, was etwas ist, versichere dich seiner Existenz.
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Benutz bitte die Pascaltags wenn du Code postest. Habe das oben mal geändert.
Ich habe gerade mal in der Spezifikation von GL_ARB_vertex_program nachgesehen und dort steht drin, dass man zum Abfragen von den Programparametern die Methode glGetProgramivARB benutzen muss. Ich gebe zu, dass ist ein wenig verwirrend aber die Spec weiß es besser. Warum auch immer man das so machen muss. Damit geht es aber.
PS: Sicherheitshalber solltest du immer abprüfen ob die Variable GL_ARB_vertex_program in der dglOpenGL af True steht. Denn auch nur dann wird die von OpenGL unterstützt.
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Okay. Bei längeren Zeilen magst du da recht habe. Als alternative gibt es aber auch Code. Das ist dann immernoch wesentlich besser zu lesen als komplett ohne Formatierung.
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Tust du mir bitte einne einen gefallen und bookmarkst diese Seite.
http://oss.sgi.com/projects/ogl-sample/registry/ oder diese
http://glspec.mirg.ru/eng/spec/ Das sind Auflistungen aller Extensions und deren Spezifikationen. Normal findest du dort alle Konstanten, deren Werte und auch die Möglichkeit womit man sie abfragen kann. Und noch ein gut gemeinter Rat. Frage die Werte von glGetError ab und werte diesen aus. Das macht einiges einfacher.
Code:
var
Error:Cardinal;
begin
// Rendern
Error := glGetError;
if Error <> 0then
Caption := gluErrorString(Error);
end;
So einfach ist das. Jetzt zu den Extensions.
DrawRangeElements: Deine Kostanten sind von GL_EXT_vertex_array. Damit kann es auch nicht klappen. Die beiden Konstanten von GL_EXT_draw_range_elements kannst du so abfragen
Code:
if GL_EXT_draw_range_elements or GL_VERSION_1_2 thenbegin
glGetIntegerv(GL_MAX_ELEMENTS_VERTICES,@Temp);
glGetIntegerv(GL_MAX_ELEMENTS_INDICES,@Temp);
end;
Bitte beachte auch, dass diese Extension in Version 1.2 in den Kern übergegangen ist und somit für OpenGL 1.2 zwingend vorrausgesetzt wird. Sie muss ab diesem Zeitpunkt nicht mehr als Extension angeboten werden um unterstützt zu werden. Kleines Beipspiel. OpenGL 2.0 und ARB_textures_non_power_of_two. ATI Karten unterstützen diese Extension nicht. Aber durch die OpenGL Version 2.0 wird die Funktionalität dennoch unterstützt und kann genutzt werden. Ein bisschen konfus alles. glView ist ein sehr gutes Programm was die Extensions sinnvol anzeigen kann. Auch wenn ich dir damit deine Arbeit kaputt gemacht habe.
ARB_fragment_program u. ARB_vertex_program: Bei mir ging das so. Werden die Extension bei dir auch unterstützt?
Treiberversion: Registry: Im Verzeichnis: "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\OpenGLDrivers" befinden sich Unterverzeichnisse die deine Installierten OpenGLTreiber wieder spiegeln. Dort drinn befindet sich ein Eintrag Dll der eine DLL angibt. Wenn du die Version von der DLL abfragst, dann weißt du welche Version dein OpenGL Treiber hat. Was aber normal recht unwichtig ist, da lediglich deren OpenGL Version ausschlaggebend ist. Außer für so programme ab welcher Treiberversion welche Sachen unterstützt werden.
Tags: Für einzelne kleine Phrasen/Zeilen mag es übertrieben sein nur ich meinte für zusammenhängende Zeilen oder Codefragmente. Eben um es auch als Code kenntlich zu machen und ihn nicht der Gefahr auszusetzen, dass man es als normalen Text ansieht.
Mitglieder in diesem Forum: 0 Mitglieder und 5 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.