Tutorial für Orgre3d für PB?

Anfängerfragen zum Programmieren mit PureBasic.
GPI
Beiträge: 1511
Registriert: 29.08.2004 13:18
Kontaktdaten:

Tutorial für Orgre3d für PB?

Beitrag von GPI »

Die Hilfedatei ist ja leider völlig unbrauchbar. Ich hätte ja gerne Tutorials, die Quasi bei Null anfangen. Ich will keine Uncharted-Grafik hinzaubern, ich möchte eigentlich eher was Primitives wie eine Minecraft-Artige-Welt. Und ich würde gerne ohne spezielle Editoren auskommen, würde aber gerne Normal-Maps verwenden (und wie man sie am besten erstellt).

Leider hab ich festgestellt, das die Orge-Seite schon mal völlig nutzlos für mein Unterfangen ist, weil Orgre OOP ist und PB eben nicht. Damit sind leider viele Befehle aus den Beispielen so nicht verfügbar.
Wenn ich bspw. http://www.ogre3d.org/tikiwiki/tiki-ind ... =Tutorials anschaue, stolpere ich über den ersten Befehl:
mSceneMgr->setAmbientLight(Ogre::ColourValue(0.5, 0.5, 0.5));

Der PB-Befehl heitß wohl AmbientColor(RGB(255*0.5, 255*0.5,255*0.5)). Darauf muss man auch erstmal kommen....

Über den Sinn eine Grafik-Engine einzubauen und dann die Befehle umzubennen, damit man ja kein Tutorial ohne Probleme ausprobieren kann, stell ich jetzt mal nicht...

Lange Rede kurzer Sinn: Gibts für PB irgendwo Tutorials, oder ist die PB-Implantierung schlicht für den Popo, weil man keine Infos findet und man alles sehr mühsam selbst rausfinden muss.
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Tutorial für Orgre3d für PB?

Beitrag von RSBasic »

GPI hat geschrieben:mSceneMgr->setAmbientLight(Ogre::ColourValue(0.5, 0.5, 0.5));

Der PB-Befehl heitß wohl AmbientColor(RGB(255*0.5, 255*0.5,255*0.5)). Darauf muss man auch erstmal kommen....
Ja, das ist in der Tat blöd. Man sollte mal eine Liste aller bereits in PB umgesetzten Funktionen auflisten mit den jeweiligen Ursprungsmethoden in Ogre, damit man diese besser finden kann.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Mijikai
Beiträge: 754
Registriert: 25.09.2016 01:42

Re: Tutorial für Orgre3d für PB?

Beitrag von Mijikai »

Ogre ist sehr verwirrend in PB.
Die Engine mag gut sein aber eine umfangreiche Doku wäre da wenigstens schon mal hilfreich.
GPI
Beiträge: 1511
Registriert: 29.08.2004 13:18
Kontaktdaten:

Re: Tutorial für Orgre3d für PB?

Beitrag von GPI »

Mijikai hat geschrieben:Ogre ist sehr verwirrend in PB.
Die Engine mag gut sein aber eine umfangreiche Doku wäre da wenigstens schon mal hilfreich.
Es wäre auch hilfreich zu wissen, welche Version das jetzt ist :) - und eine Version ohne Windows-Scale-Faktor<>100% - Bug. Aktuell ist die Maus schlicht dann nicht nutzbar.
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Tutorial für Orgre3d für PB?

Beitrag von RSBasic »

Laut Changelog wurde zuletzt auf 1.8.2 aktualisiert.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
tft
Beiträge: 605
Registriert: 08.09.2004 20:18
Computerausstattung: GTX Titan , i9 9900K , 32 GB Ram , 500 GB SSD , 3 ASUS FullHD Monitore and more
Wohnort: Dachsen
Kontaktdaten:

Re: Tutorial für Orgre3d für PB?

Beitrag von tft »

Hallo,
ich kann dein Leid nachfollziehen. Mir gets seid Jahren so. Das PB die beste Sprache der Welt einfach in sachen 3D ein totaler Krüppel ist.
Ogre verstehe ich bis heute nicht. Daher habe ich den Umweg über eine Veraltete Engine gemacht. Und damit get das meiste ja auch. Wenn
kein State of the art benötigt wird.

Gruss TFT
TFT seid 1989 , Turgut Frank Temucin , Dachsen/Berlin/Antalya
Aktuelles Projekte : Driving School Evergarden
YouTube : Pure Basic to go
FaceBook : Temuçin SourceMAgic Games
DISCORD : SourceMagic
W10 , i9 9900K ,32 GB Ram , GTX Titan , 3 Monitore FHD
ARDUINO Freak :-)
Benutzeravatar
TroaX
Beiträge: 659
Registriert: 08.03.2013 14:27
Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Pop_OS! | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Pop_OS!
Wohnort: NRW
Kontaktdaten:

Re: Tutorial für Orgre3d für PB?

Beitrag von TroaX »

Naja eigentlich sind ja alle Funktionen weitgehend dokumentiert und für den Einstieg sind auch ettliche Examples in Purebasic enthalten. Die Tatsache, das es keine guten und aktuellen Tutorials mehr gibt liegt daran, das die einfach keiner mehr schreibt. Ich hatte das schon einmal in einem anderen Thread erwähnt. Es gibt mittlerweile so viele verschiedene Engines, die einem die Entwicklung von Video-Spielen (auch 3D) so stark vereinfachen, das die manuelle Programmierung, wie sie in Purebasic angewandt wird, nur noch auf wenig Interesse stößt.

Unreal Engine, Unity, Leadwerks, CryEngine und Co. bieten sehr viele Authoring-Werkzeuge an, so das man man nur noch für etwas speziellere Funktionen etwas programmieren muss und dafür hat man meist eine für Einsteiger gut zugängliche API. Nicht zu vergessen, das es Purebasic noch an einer mächtigen Shader-Bibliothek mangelt (zumindest ist nichts in der Richtung dokumentiert).

Und ohne ernsthafte 3D-Entwickler gibt es eben auch keine guten Tutorials für die 3D-Entwicklung. Aber es steht jedem frei, welche zu schreiben und zu veröffentlichen. Vielleicht sollte hier die Community für die nötige Abhilfe sorgen. Github-Projekt anlegen, das Wiki für die Tutorials nutzen und in den Codes die Examples verwalten. Wenn ihr die Tutorials offline schreiben wollt, nutzt dazu einen guten Markdown-Editor wie Typora (<- Hammer Tool - Damit schreibe ich bis auf Dokumente alles - Tutorials, Dokumentationen usw.). Baut dort nach und nach eine Sammlung von Tutorials auf. Denn ich glaube kaum, das da in Zukunft von anderen noch etwas kommt. So blöd es ist. Denn ein Handbuch (Dokumentation) hat Purebasic. Beispiele/Examples hat es ebenfalls. Aber Tutorials müssen von der Community kommen.
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Pop_OS!
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Pop_OS!
NAS: Fritz.Box :lol:
Coding: Purebasic 6.04 | PHP | HTML | CSS | Javascript
GPI
Beiträge: 1511
Registriert: 29.08.2004 13:18
Kontaktdaten:

Re: Tutorial für Orgre3d für PB?

Beitrag von GPI »

TroaX hat geschrieben:Naja eigentlich sind ja alle Funktionen weitgehend dokumentiert und für den Einstieg sind auch ettliche Examples in Purebasic enthalten.
Da würde ich dir in einen Punkt stark wiedersprechen: Die Original-Ogre-Engine ist in OOP geschrieben und die PB nicht. Dadurch wird 99% der Dokumentation von Ogre (auf die auch in der Hilfe hingewiesen wird) hinfällig, weil sie nicht mehr passt. Man muss sich mit deutlich mehr rumärgern, als eigentlich nötig ist. Die Dokumentation ist eher mehr schlecht als recht, da helfen die Beispiele auch nur bedingt.

Imo war es ein Fehler die Ogre-Engine so zu implantieren und eine völlig neue API einzuführen. Zumal PB mit Interfaces ja eine 1:1 Umsetzung machen könnte.
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Tutorial für Orgre3d für PB?

Beitrag von RSBasic »

GPI hat geschrieben:mSceneMgr->setAmbientLight(Ogre::ColourValue(0.5, 0.5, 0.5));

Der PB-Befehl heitß wohl AmbientColor(RGB(255*0.5, 255*0.5,255*0.5)). Darauf muss man auch erstmal kommen....
Es kann aber auch setAmbientLightColour() sein, aber sicher bin ich mir nicht. Keine Ahnung, was der Unterschied ist.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
TroaX
Beiträge: 659
Registriert: 08.03.2013 14:27
Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Pop_OS! | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Pop_OS!
Wohnort: NRW
Kontaktdaten:

Re: Tutorial für Orgre3d für PB?

Beitrag von TroaX »

Purebasic ist aber einfach keine OOP-Sprache. Es war und ist also zwingend erforderlich, die API zu OGRE zu abstrahieren. Und wenn die Entwickler von PB definitiv eine Umstellung auf Objektorientierung ausgeschlossen haben, dann wird es auch entsprechend abstrahiert bleiben. Es gibt ja kaum noch aktuelle prozedurale, funktionale oder imperative 3D Engines bzw. Renderer. Egal welchen sie also nutzen. Sie müssen es abstrahieren.

Mir kommt es da eher vor, das du versuchst, mit der OGRE-Dokumentation einen Bezug zur Purebasic 3D-API aufzubauen. Das dieses Unterfangen bei unterschiedlichen Paradigmen nahezu unmöglich ist, hast du ja jetzt selber festgestellt. Zum Beispiel die Klasse SceneManager wird in Purebasic im Hintergrund als alleinstehende Instanz für alle Proceduren, die sich auf die Szene beziehen, vorgehalten, während zum Beispiel Meshes wie in Purebaisc üblich mit einer ID refenziert werden. Die instanz selbst bekommt man aber nicht in die Finger. Wo wir wieder bei folgendem Umstand sind. Die 3D-Engine/-API nutzt OGRE und stellt auch einen entsprechenden Teil der Funktionalitäten der OGRE-Engine zur Verfügung. Aber die API in Purebasic ist nicht OGRE, sondern eben die Purebasic 3D-API. Wenn man also damit arbeiten will, nutzt man auch die Dokumentation der Purebasic 3D-API. Die Dokumentation ist wirklich bescheiden sortiert. Da besteht kein Zweifel. Aber du kommst mit der PB-Doku definitiv weiter als mit der OGRE-Doku. Denn die ist OOP und die Methoden-Bezeichnungen sind nicht kompatibel mit den Proceduren von PB. Wahrscheinlich nicht einmal immer die Parameter. Es ist abstrahiert.

Um die Dokumentation in den richtigen Kontext zu bringen, sind theoretisch Tutorials nötig. Diese gibt es aber kaum und wir sind wieder bei meinem letzten Beitrag. Ich glaube nicht, das Fred und Co. sich selbst hinsetzen und Tutorials schreiben die zeigen, was sie sich bei der Art der Abstraktion gedacht haben. Aber nachvollziehen kann ich die Abstraktion durchaus. Denn der objektbezogene Ansatz von Purebasic lässt sich auch auf die 3D-API anwenden, was zu einem einheitlichen Programmierkonzept innerhalb der Sprache führt. Dieses Konzept ist zwar mit den meisten anderen Konzepten anderer Sprachen nicht wirklich kompatibel. Aber wenigstens gibt es ein Konzept. Bei PHP gibt es das nicht wirklich und das Ding bekommt die Entwicklerszene auch nicht tot :lol:
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Pop_OS!
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Pop_OS!
NAS: Fritz.Box :lol:
Coding: Purebasic 6.04 | PHP | HTML | CSS | Javascript
Antworten