Grundgerüst 3D-Welt und Lauftext

Anfängerfragen zum Programmieren mit PureBasic.
MB1973
Beiträge: 4
Registriert: 24.12.2022 00:16

Grundgerüst 3D-Welt und Lauftext

Beitrag von MB1973 »

Hallo Forum-Gemeinde!

Ich bin blutiger Anfänger was PB betrifft. Habe zwar schon in VB6 und XProfan programmiert und versuche mich grad an BureBasic.
Consolenanwendungen habe ich mit PB schon programmiert. Nun wollte ich mal etwas mit Grafik machen. Etwas sehr einfaches.
Habe mir das Beispielprogramm Text3D.pb vorgenommen und wollte es so abspecken das ich zwei Laufschriften auf dem Bildschirm bringe aber es
scheitert schon an den einfachsten Dingen und es hagelt Fehler.

Meine Fragen:
Wie sieht eigentlich der minimale Code zur Initialisierung einer 3dWelt aus (Grundgerüst mit beenden durch ESC ohne Fehlerabfragen)?
Wie zum T***el erstelle ich eine einfache Laufschrift am oberen und unteren Bildschirmrand?
Wie lade ich ein Bild in eine Box in die 3D-Welt. Also nicht als Hintergrund sondern so, dass ich vielleicht drei Bilder gleichzeitig auf
dem Bildschirm darstellen und bewegen kann. Lade ich die dann als Sprite?

Wäre toll, wenn ihr mir ein Beispiel für einen MinimalCode geben könnt.

Gruß, Markus
Benubi
Beiträge: 186
Registriert: 22.10.2004 17:51
Wohnort: Berlin, Wedding

Re: Grundgerüst 3D-Welt und Lauftext

Beitrag von Benubi »

Hallo MB1973,

Schau in die Hilfe unter 3D Engine, und im Beispiele-Verzeichnis "Examples". Dort findest du in "3D" einige Beispiele.

Deine 3D Objekte musst Du als Mesh laden oder erzeugen. Du kannst einen Würfel als Mesh erzeugen mit dem Befehl CreateCube().

Danach solltest Du ein oder mehrere Entities dafür erzeugen (Instanzen, kopien) mit CreateEntity().

Deinen Entities solltest Du ein Material anlegen. Ein Material ist eine oder mehrere Texturen. Sie können animiert sein oder nicht, licht reflektieren oder nicht, leuchtend sein, scrollen etc.

Schaue in die Beispiele für CreateTexture() / LoadTexture() und CreateMaterial().

Eine Laufschrift könntest Du mit DrawText() auf Sprites erzeugen, und die Sprites zeigst du mit DisplayTransparentSprite() nach dem RenderWorld().

Wenn Du Bilder im Hintergrund anzeigen willst, die hinter einem 3D Würfel erscheinen sollen, dann mußt Du diese als Textur laden und kannst sie vielleicht mit einem "Billboard" einfügen. Denn wenn Du sie als Sprite anzeigst, und der Würfel mit RenderWorld() gemalt werden soll, dann wird erst der Bildschirm mit der Hintergrundfarbe der Camera gefüllt. Also musst Du über eine Textur gehen weil deine Sprites sonst übermalt würden.

Für den Lauftext kannst du aber Sprites benutzen, oder mit Text3D() oder mit Billboard+Texturen experimentieren.

Ich schätze dafür bräuchte ich schon mindestens eine Stunde Zeit, weil ich bin etwas aus der Übung - mit der 3D Engine schon lange nichts gemacht und auch nur "oberflächlich" und bin jetzt müde... sorry! Ich denke ich habe aber alles wichtige erwähnt (InitSprite, InitEngine3D, OpenScreen haben ich ausgelassen).

Im 3D Beispiele-Ordner wird deine Frage zu 80% bis 90% beantwortet, musst ein Bisschen durch die Sources gehen und ausprobieren. Scrolltext wird dann das Einfachste und kannst Du dir für den Schluß aufheben ;)
Benutzeravatar
udg
Beiträge: 560
Registriert: 20.06.2013 23:27

Re: Grundgerüst 3D-Welt und Lauftext

Beitrag von udg »

hi, ich kann dir den Sourcecode für ein Demo schicken. Schreib mich einfach an

Bild
PB v5.43 LTS + v6.02 LTS | Windows 7 x86 + 11 x64 - Gforce RTX 4090 - AMD Ryzen 9 5900X 12-Core Processor 4.2 GHz - 64,0 GB RAM,
ASUSTEK TUF Gaming X570 Plus
ASUS ROG Thor-1200P Platinum (1200W, Aura Sync, OLED Display, 0dB-Cooling)
1x 1 TByte Samsung MZ-V7S500BW 970 EVO Plus 1 TB NVMe M.2 Internal SSD
1x 2 TByte Samsung MZ-V7S2T0BW 970 EVO Plus 2 TB NVMe M.2 Internal SSD
von BiSONTE! TOP. Kauft Eure Hardware gern bei ihm.
Monitor:
LG 38GL950G-B 95 (38 Zoll) Ultragear Curved 21: 9 UltraWide QHD IPS
MB1973
Beiträge: 4
Registriert: 24.12.2022 00:16

Re: Grundgerüst 3D-Welt und Lauftext

Beitrag von MB1973 »

Hallo Benubi, danke erstmal für die Antwort
Benubi hat geschrieben: 24.12.2022 01:22 Hallo MB1973,

Schau in die Hilfe unter 3D Engine, und im Beispiele-Verzeichnis "Examples". Dort findest du in "3D" einige Beispiele.
Dort habe ich mir die Text3D.pb angesehen. Mir ist hier nur nicht ganz klar, welche Teile zum Cube und was eigentlich zur Laufschrift gehört
Deine 3D Objekte musst Du als Mesh laden oder erzeugen. Du kannst einen Würfel als Mesh erzeugen mit dem Befehl CreateCube().
Danach solltest Du ein oder mehrere Entities dafür erzeugen (Instanzen, kopien) mit CreateEntity().

Deinen Entities solltest Du ein Material anlegen. Ein Material ist eine oder mehrere Texturen. Sie können animiert sein oder nicht, licht reflektieren oder nicht, leuchtend sein, scrollen etc.
Kan man da da eigentlich für jede Würfelseite eigene Texturen erzeugen?
Schaue in die Beispiele für CreateTexture() / LoadTexture() und CreateMaterial().

Eine Laufschrift könntest Du mit DrawText() auf Sprites erzeugen, und die Sprites zeigst du mit DisplayTransparentSprite() nach dem RenderWorld().
Das hört sich gut an mir wären Sprites ganz recht. Wenn man sie später auch noch animieren könnte. Aber da bin ich noch weit von entfernt
Wenn Du Bilder im Hintergrund anzeigen willst, die hinter einem 3D Würfel erscheinen sollen, dann mußt Du diese als Textur laden und kannst sie vielleicht mit einem "Billboard" einfügen. Denn wenn Du sie als Sprite anzeigst, und der Würfel mit RenderWorld() gemalt werden soll, dann wird erst der Bildschirm mit der Hintergrundfarbe der Camera gefüllt. Also musst Du über eine Textur gehen weil deine Sprites sonst übermalt würden.
Ich hoffe, dass man das Hintergrundbild dann auch später noch bewegen kann. Also nach links oder rechts aus dem Bildschirm herausfahren lassen:
MB1973
Beiträge: 4
Registriert: 24.12.2022 00:16

Re: Grundgerüst 3D-Welt und Lauftext

Beitrag von MB1973 »

Hallo udg!

Danke für das Angebot. Ein Beispiel-Code würde ich begrüßen. Wenn es nicht zuviel verlangt ist... Könntest du den Code bitte kommentieren
damit ich verstehe welcher Befehl oder besser, welche Befehlsgruppe was macht? Also Welche Befehle gehören zwingend zusammen zu einer Laufschrift
oder einem anderen Ereignis wie z.B. CreateCube etc?

Vielen Dank im Voraus
udg hat geschrieben: 24.12.2022 05:00 hi, ich kann dir den Sourcecode für ein Demo schicken. Schreib mich einfach an

/quote]
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: Grundgerüst 3D-Welt und Lauftext

Beitrag von tft »

Hallo,

ich habe mal eine Video Reihe gemacht. Schau doch mal vorbei.

https://www.youtube.com/watch?v=0taW-gR ... 4&index=28

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 :-)
Antworten