Registriert: Sa Mai 04, 2002 19:48 Beiträge: 3830 Wohnort: Tespe (nahe Hamburg)
Hi,
ich mache mal ne neuen Thread auf, nicht das wir irgendwann alle im gleichen Posten und dann den Überblick verlieren. Geht mir im allgemeinen um eine Koordinierte Planung bzw. der Definition der Zielsetzung. Ich weiß, dass es vielleicht ne Berufskrankheit ist, aber vielleicht sollte man nochmal ne Brainstorming machen und die ganzen Ideen irgendwie zusammen bringen und auflisten, damit man etwas hat wonach man arbeiten kann bzw. Prioritäten setzt. Einfach mal so aus dem Bauch heraus, glaubt wer, dass es vielleicht mal Sinn machen würde ne kleine Chat-Sitzung zu machen?
_________________ "Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."
# Da (soweit ich das gesehen hab) keiner dieser Header die GL1.5-Konstanten enhtält, fügen wir diese manuell hinzu.
# Danach gehen wir unseren Header gemeinsam durch, passen ihn sowohl syntaktisch als auch layouttechnisch an und prüfen ob alles drin ist was drin sein muss.
# Danach veröffentlichen wir den Header und informieren auch größere Seiten wie OpenGL.org, flipcode und gamedev darüber.
Wenns andere Vorschläge gibt, wie z.B. die von Lars erstellte Unit anzupassen, dann bin ich dafür natürlich auch offen!
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Also ich bin auf jeden Fall dafür, dass wir die Header von SGI verwenden. Weil (wie ich selbst feststellen musste) sind die Header von ATI was spezifikationen von NVidia angeht recht spärlich (gar nicht) ausgerüstet. Gleiches wird mit 99%tiger Sicherheit auch auf NVidia zutreffen.
Die OpenGL15 funktionalität muss man dann per Hand hinzufügen. Das sollte aber ja nicht so das Problem sein, das Lars das ja bereits schon einmal geschrieben hatte.
Zu dem dritten Punkt kann ich auf das Tool verweisen was ich geschrieben hatte. Es ist in der Lage die SGI Header zu übersetzen und mit einem von mir angepassten OpenGL1.1 Header (C++ zum Importieren) hat man dort schon so ziemlich alles dabei was man benötigt. Abgesehen von GLUT. Aber die könnte man evtl sogar noch per Hand in die Tool mit einplegen.
Dann könnte man sich vor allem auch den Aufwand des Formatierens sparen.
Das mit der Veröffentlichung sollte jemand machen der des Englischen richtig mächtig ist.
Ich bin auch dafür die SGI Header Konvertierung zu nehmen, weil die auch am saubersten strukturiert sind im Gegensatz zu den NVidia Headern. Die wenigen OpenGL 1.5 Funktionen per Hand einzubauen sollte dann ja kein großer Zeitaufwand sein.Ich stimme auch SoS zu, daß wir die Header alle mal gemeinsam danach noch mal durchgehen sollten. Danach sollten wir alle Extensions einmal durchtesten. Also jede Funktion sollte irgendwie im Rahmen eines kleinen Test Programms mal aufgerufen worden zu sein, um wirklich sicher zu gehen daß alles 100% korrekt ist. Das geht natürlich nur bei NVidia,ATI,ARB und EXT Extensions. Man sollte weiterhin mal überlegen ob mal wirklich alle SGI,3DFX,INTEL und weitere kuriose Extensions aus den SGI Headern mitaufnehmen sollte. Einerseits hätte man den Header dann wirklich komplett, aber andererseits kann man diese Extensions auch nie wirklich testen.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Hab mir das Header-Konvertierungs-Tool von LossyEx mal runtergeladen und die Referenzheader von SGI (glext.h und wglext.h) da mal durchlaufen lassen, und die daraus resultierende .pas-Datei kann sich ja schonmal sehen lassen, nen Funktionstest hab ich allerdings noch nicht gemacht.
Man müsste dann jetzt halt nur noch die fehlenden Extensions (werd mir auch selbst mal genauer ansehen welche das sind) hinzufügen und wie von Lars vorgeschlagen noch nen Funktionstest machen.Den kann man allerdings natürlich nur für die Extensions machen die auf unseren Grafikkarten unterstützt werden, weshalb wir wohl kaum alles prüfen können, aber ich geh sowieso mal davon aus das Lossys Tool recht zuverlässig ist.
@Veröffentlichung :
Das übernehme ich gerne, denn ich kann mit Stolz behaupten das ich im Englischen sowohl schriftlich als auch wörtlich sehr sicher bin, und hoffentlich ist bis dahin auch die Domain endlich wieder online.
Registriert: Sa Mai 04, 2002 19:48 Beiträge: 3830 Wohnort: Tespe (nahe Hamburg)
Okay, freut mich ja schon, dass nun nachdem erstmal nichts kam, hier schon wieder reger Verkehr ist und auch alles wie geplant läuft. Denke auch, dass sich SOS darum gerne kümmern darf, ich reiße mich sicherlich nicht darum Die Beschwerde für die Domain ist übrgigens heute nacht raus gegangen, hoffe doch sehr, dass die das schnell in den Griff kriegen, werde ungerne sauer
_________________ "Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Da Programmierer ja von Natur aus faule Menschen sind, hab ich mir grade mal ein popeliges Programm zusammengebastelt, welches alle Extensions aus der SGI-Extensionlibrary übers Internet ausliest, und dann prüft welche Extensions im von Lossys Programm generiertem Header fehlen.Rausgekommen ist folgende Liste fehlender Extensions :
OpenGL1.5-Extensions : GL_ARB_fragment_shader GL_ARB_occlusion_query GL_ARB_point_sprite GL_ARB_shader_objects GL_ARB_shading_language_100 GL_ARB_texture_non_power_of_two GL_ARB_vertex_shader
Also müssten eigentlich nur noch die rot hervorgehobenen Extensions zu dem von LossyEx generiertem Header hinzugefügt werden.
Wenn mir jetzt noch jemand verrät, wo man im Netz (ich such grad selbst, aber evtl. weis es ja jemand hier) eine Liste mit allen OpenGL-Konstanten (obwohl ich bezweifle das es sowas gibt) findet, erweitere ich das Programm mal und lass es auch prüfen ob evtl. irgendwelche Konstanten in unserem Header fehlen.
Ansonsten wäre unser Header dann ja fast fertig und man müsste eigentlich nur nochmal darüber reden ob da evtl. sonst noch was rein soll (Zusatzfunktionen) und wie die Sache mit dem Testen ablaufen soll...da könnten wir evtl. die Extensions auf die einzelnen Teammitglieder aufteilen.
Es wäre auch net schlecht, wenn das Ganze jetzt schnell von der Bühne geht und unsere Header publik gemacht wurden bevor die ersten GL1.5-Treiber die Massen erreichen (dürfte laut nem Catalyst-Programmierer evtl. schon der nächste Catalyst3.7 sein, und der ist nicht mehr fern).
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Wow. Die ATI extension ist ja tatsächlich nich in den Headern von SGI zu finden. Hätte ich ja nicht gedacht. Aber das mit den Konstanten ist so eine Sache. Du würdest so ziemlich alle in den Headern von SGI finden. Oder in der Extensionregisty. Aber eine ander Quelle ist mir nicht bekannt.
Zum Thema testen habe ich ein Prgramm geschrieben was eine Simpleheightmap rendert und zwar mithilfe von ARG_vbo, ATI_vao, EXT_var und DL. NV_var war leider nicht drin, da meine EX TNT2 das nicht konnte in die Radeon so wie so nicht.
PS: ARB_vbo hatte ich mit der generierten Unit schon einmal getestet. Auf Grund der noch fehlenden GLUT's musste die gluPerspective auskomentieren und habe somit nichts gesehen. Aber es gabe keine sonstigen Fehler oder AccessViolations.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Wollt nur mal kurz drauf hinweisen (bevor es sonst jemand macht ), das der Header nach der Konvertierung noch minimal angepasst werden muss, und Delphi folgende Fehler bei der Rohfassung ausspuckt :
[Fehler] dglOpenGL.pas(1655): Undefinierter Bezeichner: 'GL_MODELVIEW_STACK_DEPTH' [Fehler] dglOpenGL.pas(1657): Undefinierter Bezeichner: 'GL_MODELVIEW_MATRIX' [Fehler] dglOpenGL.pas(1660): Undefinierter Bezeichner: 'GL_MODELVIEW' [Fehler] dglOpenGL.pas(2980): Bezeichner erwartet, aber 'OBJECT' gefunden [Fehler] dglOpenGL.pas(2981): Bezeichner erwartet, aber 'OBJECT' gefunden [Fehler] dglOpenGL.pas(4006): Undefinierter Bezeichner: 'PUSHORT' [Fehler] dglOpenGL.pas(4007): 'PUSHORT' ist kein gültiger Typenbezeichner [Fehler] dglOpenGL.pas(4007): 'PUSHORT' ist kein gültiger Typenbezeichner [Fehler] dglOpenGL.pas(4007): 'PUSHORT' ist kein gültiger Typenbezeichner [Fehler] dglOpenGL.pas(4024): Undefinierter Bezeichner: 'TDWORD' [Fehler] dglOpenGL.pas(4024): Undefinierter Bezeichner: 'TLPVOID' [Fehler] dglOpenGL.pas(4025): 'TLPVOID' ist kein gültiger Typenbezeichner [Fehler] dglOpenGL.pas(4026): Undefinierter Bezeichner: 'PLPVOID' [Fehler] dglOpenGL.pas(4027): 'PLPVOID' ist kein gültiger Typenbezeichner [Fehler] dglOpenGL.pas(4047): Undefinierter Bezeichner: 'PINT32' [Fehler] dglOpenGL.pas(4048): Undefinierter Bezeichner: 'TINT64' [Fehler] dglOpenGL.pas(4049): 'TINT64' ist kein gültiger Typenbezeichner [Fehler] dglOpenGL.pas(4049): 'TINT64' ist kein gültiger Typenbezeichner [Fehler] dglOpenGL.pas(4049): 'TINT64' ist kein gültiger Typenbezeichner [Fehler] dglOpenGL.pas(4050): 'TINT64' ist kein gültiger Typenbezeichner [Fehler] dglOpenGL.pas(4050): 'TINT64' ist kein gültiger Typenbezeichner [Fehler] dglOpenGL.pas(4050): 'TINT64' ist kein gültiger Typenbezeichner [Fehler] dglOpenGL.pas(4051): 'TINT64' ist kein gültiger Typenbezeichner [Fehler] dglOpenGL.pas(6428): Undefinierter Bezeichner: 'glGetString' [Fehler] dglOpenGL.pas(6428): Undefinierter Bezeichner: 'GL_EXTENSIONS'
Ich werd den Header daraufhingehend anpassen und werd dann auch einige Extensions testen, da ich ein recht prall gefülltes Verzeichnis mit selbstgecodeten Anwendungen hab die recht klein sind und oft nur zur Demonstration einer Extension dienen...ich werde dann später auch mein Ergebnis posten.
Edit : Entweder steh ich jetzt total aufm Schlauch, oder der SGI-Header ist total lückenhaft ...
Dort fehlen ja solch essentielle Sachen wie glGetString und diverse andere glGets...Ist der Header etwa nur ne Erweiterung und benötigt noch nen anderen???
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Also der Header von SGI baut nur auf den von den OpenGL1.1 von C++ auf. Den habe ich aber verändert in das Archiv gepackt. Und irgendwie verwirrt mich das. Warum der bei dir so viele Fehler anmault. Wobei du auf jedenFall den GL_1_1.h mit importieren. Also die "Extension" GL_VERSION_1_1. Die werden anhand des Namens speziell behandel.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
K, danke für die schnelle Antwort.Wundert mich halt nur das der SGI-Header nicht komplett ist.
Edit : Die obigen Fehlermeldung rührten daher, das ich eigentlich nen total kompletten Header wollte und daher vor dem Erstellen der .pas-Datei alle Extensions in deinem Programm markiert hab...damit scheint er Problem zu haben, wenn ich das nicht mache funzt der Header nämlich direkt ohne Fehlermeldungen.
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Ich muss auch dazu sagen die Header sind teilweise in einem sauigen Zustand. Mal mit normalen C++ typen mal mit OpenGL typen. Und öfters sogar typen die in Delphi nicht mal existieren. Ich hatte da in meinem Tool auch eine Schlüsselwörterumbenenung eingebaut. Da fehlt wohl noch das ein oder andere (Object). Und bei der Typenumwandlung tut sich ein ähnliches schauspiel. Ich werde da wohl im laufe des morgigen Tages noch mal ein Update zu schicken.
Das hat zwar nichts mit den vorhergehenden Beiträgen aber trotzdem indirekt mit dem zeitlichen Ablauf zu tun. Auf gamedev.net gibt es einen Artikel über die SIGGRAPH, bei dem es auch um das neue OpenGL 1.5 und die OpenGL Shading Language geht. Zu den Treibern steht da folgendes:
Zitat:
At the time of writing, 3D Labs is the only IHV shipping a driver that supports OGLSL. ATI currently has drivers in beta, and NVIDIA is promising supporting drivers by the end of the year.
Ende des Jahres ist irgendwie bißchen spät für NVidia. Hoffentlich wird dadurch nicht der Standard blockiert, wenn hauptsächlich erstmal nur ATI Karten die Extension haben werden.
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Ich weiß nicht, ob das von Nvidia so super schlau ist aber das müssen sie selber wissen.
So hier aber mal wieder ein Update.
folgende Sachen habe ich gerade gefixt
- OBJECT wird nun nicht mehr als Variablenname verwendet. Wird in _OBJECT umbenannt.
- UShort wird zu GLushort
- DWORD wird zu GLuint
- LPVOID wird zu GLvoid
- INT32 wird zu GLint
- INT64 wird zu GLint64 (neuer Typ)
P oder T wird je nach typ vorangestellt.
Das Programm konvertiert die meisten C++ Standardtypen in die passenden OpenGL Typen.
Die GLX Extensions könnten durch hinzufügen der glxext.h mit importiert werde. Nur dummerweise sind die Typen in dem Linuxheader vollkommen anders als die im Windowsheader. Somit müsste ich erst einmal die gesamten Typn hinzufügen. Ich glaube aber mal, das Linux derzeit auch nicht so super der Schwerpunkt des headers ist. Früher oder säter sollten sie mit hinein aber das ist derzeit noch nicht so wichtig.
Die einzelnen anderen Header kann man ja entweder in den einen angepassten mit einpflegen oder in einen Extra. Je nachdem was lieber ist. Für GLUT gilt das Selbige.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Hab mir die neuste Version runtergeladen, und die scheint jetzt absolut keine Probleme mehr bei der Headerkonveriterung zu machen.
Die glu.h muss natürlich auch unbedingt in unserem finalen GL1.5-Header drin sein, denn auf deren Funktionen wie z.B. gluPerspective will ja heute keiner mehr (aus gutem Grund) verzichten.
Mitglieder in diesem Forum: 0 Mitglieder und 3 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.