Hi@All
Nachdem ich GLBasic mehr oder weniger den Rücken gekehrt hatte, wollte ich mal die 3D-Funktionalität und Benutzerfreundlichkeit verschiedener Basic-Dialekte vergleichen. Bis jetzt habe ich 3D Sachen immer mit Blitz3D gemacht.
Da ich es in GLBasic auch mal ausprobieren wollte, habe ich in 3D Studio eine Skybox erstellt (also einen Würfel mit 6 Bildern), sie exportiert, konvertiert, in GLBasic geladen, die Kamera in die Mitte gesetzt und die Skybox rotieren lassen.
Dabei sind mir folgende Sachen aufgefallen:
1. Die Textur wurde nicht mitgeladen
2. Der rotierende Würfel wird, trotz Ambientlight (ohne zusätzliche Lichter) ständig hell und dunkel, obwohl die Kamera stillsteht
Des Weiteren hab ich da mal ein paar Fragen was die 3D Sachen in GLBasic angeht:
1. Wieso wird die im 3D-Programm zugewiesene Texturenzugehörigkeit nicht mit konvertiert ?
2. Wieso kann man keine 3ds-Dateien direkt importieren ? Laut einem Thread von 2009 steht das auf der To-Do-Liste, aber das ist ja schon Jahre her !
3. Was stimmt mit dem Licht nicht ?
4. Als ich die Textur manuell zugewiesen habe (Es ging nur eine, nicht alle 6 !), wurde sie außen auf dem Würfel angezeigt, obwohl ich in 3DMax die Normalen geflippt hatte. Konvertierungsfehler ?
5. Wieso muss man dem jeweiligen Objekt JEDESMAL die Textur zur Laufzeit neu zuweisen ?
6. Wieso haben die Objekte keine ID über die man sie ansprechen kann ? Man kann also kein Objekt drehen, skalieren, bewegen etc. ohne es direkt danach zeichnen lassen zu müssen.
Ich kenne das Entitysystem, aber wieso ist sowas nicht von Anfang an integriert worden ? Mir ist schon klar, daß sowas zu programmieren viel Arbeit ist, aber wenn man sich schon die ganze Arbeit macht, wieso macht man es dann nicht gleich richtig ?
Hat jetzt nichts mit 3D zu tun, aber grundlegende Funktionen wie zum Beispiel unausgefüllte Rechtecke oder generell ein Ellipsenbefehl fehlen völlig und auch die Einbindung von DLLs entspricht ganz und gar nicht einem BASIC-Dialekt. Klar könnte man sich selber Funktionen dafür schreiben, aber wenn sowas nicht von Haus aus integriert ist, dürfte sich so eine Sprache nicht 'Basic' nennen, weil sie dem absolut nicht gerecht wird, finde ich.
Alles in Allem hätte GLBasic so eine tolle Sprache werden können, wieso hat man nur soviel falsch gemacht bzw. so wenig nachgedacht bei der Entwicklung ?
Nachdem ich GLBasic mehr oder weniger den Rücken gekehrt hatte, wollte ich mal die 3D-Funktionalität und Benutzerfreundlichkeit verschiedener Basic-Dialekte vergleichen. Bis jetzt habe ich 3D Sachen immer mit Blitz3D gemacht.
Da ich es in GLBasic auch mal ausprobieren wollte, habe ich in 3D Studio eine Skybox erstellt (also einen Würfel mit 6 Bildern), sie exportiert, konvertiert, in GLBasic geladen, die Kamera in die Mitte gesetzt und die Skybox rotieren lassen.
Dabei sind mir folgende Sachen aufgefallen:
1. Die Textur wurde nicht mitgeladen
2. Der rotierende Würfel wird, trotz Ambientlight (ohne zusätzliche Lichter) ständig hell und dunkel, obwohl die Kamera stillsteht
Des Weiteren hab ich da mal ein paar Fragen was die 3D Sachen in GLBasic angeht:
1. Wieso wird die im 3D-Programm zugewiesene Texturenzugehörigkeit nicht mit konvertiert ?
2. Wieso kann man keine 3ds-Dateien direkt importieren ? Laut einem Thread von 2009 steht das auf der To-Do-Liste, aber das ist ja schon Jahre her !
3. Was stimmt mit dem Licht nicht ?
4. Als ich die Textur manuell zugewiesen habe (Es ging nur eine, nicht alle 6 !), wurde sie außen auf dem Würfel angezeigt, obwohl ich in 3DMax die Normalen geflippt hatte. Konvertierungsfehler ?
5. Wieso muss man dem jeweiligen Objekt JEDESMAL die Textur zur Laufzeit neu zuweisen ?
6. Wieso haben die Objekte keine ID über die man sie ansprechen kann ? Man kann also kein Objekt drehen, skalieren, bewegen etc. ohne es direkt danach zeichnen lassen zu müssen.
Ich kenne das Entitysystem, aber wieso ist sowas nicht von Anfang an integriert worden ? Mir ist schon klar, daß sowas zu programmieren viel Arbeit ist, aber wenn man sich schon die ganze Arbeit macht, wieso macht man es dann nicht gleich richtig ?
Hat jetzt nichts mit 3D zu tun, aber grundlegende Funktionen wie zum Beispiel unausgefüllte Rechtecke oder generell ein Ellipsenbefehl fehlen völlig und auch die Einbindung von DLLs entspricht ganz und gar nicht einem BASIC-Dialekt. Klar könnte man sich selber Funktionen dafür schreiben, aber wenn sowas nicht von Haus aus integriert ist, dürfte sich so eine Sprache nicht 'Basic' nennen, weil sie dem absolut nicht gerecht wird, finde ich.
Alles in Allem hätte GLBasic so eine tolle Sprache werden können, wieso hat man nur soviel falsch gemacht bzw. so wenig nachgedacht bei der Entwicklung ?