PB 4.3 und B3D Engine ( Für Anfänger und interesierte )

Hier kannst du häufig gestellte Fragen/Antworten und Tutorials lesen und schreiben.
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:

PB 4.3 und B3D Engine ( Für Anfänger und interesierte )

Beitrag von tft »

Hallo........

mein erster Versuch dieses Thema etwas genauer zu durchleuchten fiel
leider wegen Lizensrechtlichen ungereimtheiten ins wasser. Aber ich gebe
ja nicht so schnell auf. Neues Konzept .... neuer Spass.

Copyrigt vermerk für das nachvolgende Tutorial

alle Rechte verbleiben beim Autor , T.Temucin alias TFT .
Die kommerzielle nutzung des FrameWorks ist nur mit ausdrücklicher
genehmigung des Autors erlaubt.
Die Links dürfen nicht Kopiert oder auf einer anderen Webseiten
plaziert oder als Verweis angegeben werden.
Die im Tutorial benutzten und zum Download bereitgestellten
Objecte und Texturen dürfen nur in zusammenhang mit diesem
Tutorial verwendet werden.

Haftungs ausschluss

Für schäden die durch das verwenden des FrameWorks direkt oder
indirekt entstehen übernimmt der Autor keine Haftung.

---------------------------------------------------------

In den letzten 3 Tagen habe ich mich damit befast die etwas veraltete
B3D Engine die es als SDK zu kaufen gibt genaue unter die lupe zu
nehmen.

Ich kenne sie recht gut. Da ich ein begeisterter B3D User bin. Und wie ich
gehofft habe ist es recht einfach die Engine in eigenen Projecte zu
integrieren. Der Grund für diesen Entschluss liegt für mich ganz klar
darin begründet. Das ich lieber eine Funktionierende und Stabiele Engine
verwende. Als ständig diese halbgaaren Free geschichten.

Also Back to the rutz.

Diese Tutorial richtet sich an alle intersierten Coder. Die Mal eben schnell
... oder weils einfach schnell geht. Ein Game in 3D Coden möchten.
Ohne 80% ihrer freizeit damit zu verbringen das Rad merfach neu zu
erfinden.

Eine kurze erleuterung zum Aufbau des Tutorials. Ich bin kein Schreiber.
Ausserdem habe ich (C) auf meine Rechtschreibfehler. Daher habe ich
mir eine Form des Tutorial ausgedacht. Die auch für eigenen Experimente
gut zu gebrauchen ist.

Ich habe ein FrameWork vorbereitet, das all die Funktionen und
Inizialisierungen vornimmt. Die nicht Project abhängig sind. Das ganze
besteht aus einem Satz Includes die entsprechend ihren Namen als
Code Träger dienen. Diese sind so vorbereitet, das nur die Includes
bearbeitet werden. Bei jedem neuen Capter wird das FrameWork neu
verwendet.

Code: Alles auswählen

;
;(C) by TFT 2009 / PB 4.30 mit Blitz 3D SDK 1.02
;
; FrameWork B3D 003, 10.1.09
;

EnableExplicit
;

If InitSprite()=0
  MessageRequester("Error", "Cant init DirectX Sprite",0) : End
EndIf

IncludeFile "..\..\Blitz3DSDK_V102\PureBasic\blitz3dsdk.pbi"
IncludeFile "SetScreenMode.pbi"

IncludeFile "InitProjectDaten.Pbi"
IncludeFile "InitProjectProceduren.Pbi"

Procedure FPS()
  Protected Tickdammy=GetTickCount_()
  Static FPSTimer1,FPSTimer2,FPSCount
  If FPS<>0
    Tickdammy=GetTickCount_()
    If FPSTimer1<Tickdammy
      FPSTimer1=Tickdammy+1000
      FPSCount=FPSTimer2
      FPSTimer2=0
    Else
      FPSTimer2 + 1
    EndIf
    bbtext(10,10,"FPS = "+Str(FPSCount))
  EndIf
EndProcedure

bbBeginBlitz3D ()

If FM=1 
  bbGraphics3D (ScreenX, ScreenY, 0, 2)
Else
  bbGraphics3D (ScreenX, ScreenY, 0, 1)
EndIf

Global cam = bbCreateCamera ()

IncludeFile "InitB3DDaten.pbi"
IncludeFile "InitCodeView.pbi"

Repeat
    
    IncludeFile "Project3DLoop.pbi"
    
    bbRenderWorld ()
    
    IncludeFile "LookCode.Pbi"
    IncludeFile "Project2DLoop.pbi"
    
    FPS()
    bbFlip (SFR)
    Delay(TFS)          ; Dem System etwas Zeit einräumen
    
Until bbKeyHit (#KEY_ESCAPE)

IncludeFile "ProjectEnd.pbi"

bbEndBlitz3D ()

End
Die einzelnen Includs sind im FrameWork selber noch leer. Aber der Code
läst sich Compiliren und leuft.

Diese Includes sind bereits Erarbeitet.

IncludeFile "..\..\Blitz3DSDK_V102\PureBasic\blitz3dsdk.pbi"
IncludeFile "SetScreenMode.pbi"

Ersteres enthält das BlitzSDK, und das nachfogende ist ein Screen
Requester mir einigen zum Testen gebreuchlichen Optionen.

Zum SDK möchte ich noch anmerken. Ich kann es aus Licenstechnischen
gründen weder teilweise noch ganz mitgeben. Entweder ihr schaut euch
die Laufenden Exe an um das ergebniss zu sehen oder ihr besorgt euch
die SDK auf Legalem weg. Die Exes gibts immer zum Gasamten Capter Packet dazu.

Bild

Ich werde hir die Optionen nicht weiter kommentieren. Jedes Gatget hat
ein ToolTip das sich selbst erklärt.

Das Start FrameWork für alle nachfolgenden Capter gibts hir.

http://www.optima-code.ch/PB/capter-001.zip

Als besonderheit kann man mit der Taste F1 den Code am Bildschirm
anzeigen lassen. Mit dem MouseRad kann der Text hoch und runter
gescrollt werden. Es gibt Roten Text und Grüne Ramen. Der Rote Text
zeigt stellen an denen B3D komanndos verwendent werden. Der Grüne
Ramen kann angeklickt werden. Das bewirkt dann die anzeige des


Entsprechenden Includes. Mit der F2 Taste wird wider das FrameWork
angezeigt, und nochmaliges drücken von F1 löscht die Code Anzeige.
In den einzelnen Captern werden nur dies Includs auswälbar sein
die auch Code enthalten.

Im Capter-001 befindet sich auch die B3D.DLL, Diese sollte ins
Windows/System32 verzeichniss kopiert werden.

Feedback ist erwünscht. Besonders muss ich wissen ob das FrameWork
in seiner jetzigen Form überall funktioniert.

Fiel Spass TFT
Zuletzt geändert von tft am 23.01.2009 09:30, insgesamt 2-mal geändert.
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
DrShrek
Beiträge: 1970
Registriert: 08.09.2004 00:59

Beitrag von DrShrek »

Warum machst Du das ganze nicht unter:
Blitz3D SDK Forums/Blitz3D SDK Programming

http://www.blitzmax.com/Community/topics.php?forum=120
Siehste! Geht doch....?!
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
Benutzeravatar
Milchshake
Beiträge: 166
Registriert: 30.01.2006 17:47
Wohnort: Zwischen dem Sessel und dem Computer

Beitrag von Milchshake »

Weil es für PB gedacht ist, und wir, als PB Programmierer sind die Hauptzielgruppe.
Hab jetzt PB 4.02
Muhahaha!!!!
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:

Beitrag von tft »

Hallo ...

der Link functioniert nicht.

Und Ja ... es ist an PB User gerichtet.

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
DrShrek
Beiträge: 1970
Registriert: 08.09.2004 00:59

Beitrag von DrShrek »

Milchshake hat geschrieben:Weil es für PB gedacht ist, und wir, als PB Programmierer sind die Hauptzielgruppe.
Nicht unbedingt logisch. Es geht doch wohl eher um das Programmieren mit dem BlitzBasic SDK. Aber mir ist es egal...das SDK ist schon seit ca 1Jahr nicht mehr upgedatet...scheint also doch eher eine Sackgasse für 'neue' Projekte zu werden
Siehste! Geht doch....?!
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
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:

Beitrag von tft »

Hallo.....

Nachdem nun das Arbeits Grundgerüst steht. Werden wir ganz klein anfangen.
Wer sich nicht gedulden kann........ darf natürlich die Capter bereits vorher
einsehen die bis jetzt bereits fertig sind.

http://www.optima-code.ch/PB/capter-002.zip
http://www.optima-code.ch/PB/capter-003.zip
http://www.optima-code.ch/PB/capter-004.zip
http://www.optima-code.ch/PB/capter-005.zip

Project2DLoop.pbi

Code: Alles auswählen

;
; Capter 002
;

; Die ersten versuche mit der B3D Engine gehen erstaunlich unkopliziert vonstatten.
; Aber das steht ganz im Zeichen von der Philosophy von BlitzBasic. Einfach ... und  sicher.
;
; Dieser teil ..... wird nach dem Rendering ausgeführt. Hir kommen alle sachen hin, die ausschlieslich
; Mit der Darstellung von 2D sachen wie Sprites , Text etc in verbindung stehen.
;
; Es wird etwas ungewohnt sein, ohne den completten Code zu arbeiten. Aber ihr werdet sehen. Das e sich
; einfach machen läst. Also traut euch.


  i + 1
  If i>ScreenY-10
    i=0
  EndIf
   
  bbtext(ScreenX/2,i,"Und der Text bewegt sich doch",1,1)
  
  
; Die Variablen ScreenX und ScreenY wurde ja bereits beim Screen Select festgelegt. Daher können wir
; sie verwenden. Die Beiden Letzten Parameter beim Text befehl Zentrieren die Ausgabe auf X und Y.
  
Zwei bis drei Zeilen und schon bewegt sich Text auf dem 3D Screen. Das
ist mir so einfach von der Hand gegangen...... 4 Minuten und das
ergebniss ist sofort da. Wenn jemand weis wie man das mit Ogre für
PB so einfach hinbekommt. Der möge doch bitte den Code hir Posten. Ich
meine das nicht sarkastisch oder abwertend.

Gruss TFT
Zuletzt geändert von tft am 10.01.2009 13:50, insgesamt 1-mal geändert.
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
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:

Beitrag von tft »

Hallo ...

@Dr. Shrek
das würde ich nicht so sagen. Die Engine braucht nicht geuptatet werden da
sie super gut und Stabil leuft. Das einzige was ich mir persönlich wünschen
würde ist DDS support für die Texturen. Aber verfolge mal dieses Tutorial.

Wenn ich so bei Capter 30 angekommen bin. Wirst du bestimmt erstaunt
sein. Was so alles möglich ist. Denn es liegt nicht an der Engine ... ob das
ergebnis gut oder schlecht wird. Sondern am Coder .

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
DrShrek
Beiträge: 1970
Registriert: 08.09.2004 00:59

Beitrag von DrShrek »

tft hat geschrieben: Denn es liegt nicht an der Engine ... ob das
ergebnis gut oder schlecht wird. Sondern am Coder .
Gruss TFT
Ok...dann las doch gleich die Engine weg und nimm die native 3D Engine "Ogre" von PureBasic.
Siehste! Geht doch....?!
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
Benutzeravatar
X0r
Beiträge: 2770
Registriert: 15.03.2007 21:47
Kontaktdaten:

Beitrag von X0r »

@Dr. Shrek
das würde ich nicht so sagen. Die Engine braucht nicht geuptatet werden da
sie super gut und Stabil leuft. Das einzige was ich mir persönlich wünschen
würde ist DDS support für die Texturen. Aber verfolge mal dieses Tutorial.
Hä? DDS wird schon längst von der B3D-Engine unterstützt.
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:

Beitrag von tft »

Hallo...

Überhaupt sind 2D operationen der klassischen Art mit B3D ein Kinderspiel.
Machen wir doch einfach mal einen Rahmen um den Text.

Project2DLoop.pbi

Code: Alles auswählen

;
; Capter 003
;

; Es gibt natürlich auch Zeichen operationen wie Kreis und Rechteck.
;

  i + 1
  If i>ScreenY-10
    i=0
  EndIf
   
  bbrect(10,i-8,ScreenX-20,16,0)
  
  bbtext(ScreenX/2,i,"Und der Text bewegt sich doch",1,1)

; Der letzte Parameter bei bbrect() bestimmt, ob es eine ausgefültes oder ein Rahmen Rechteck wird.
; Das sind natürlich absolute Basics. Zeigt aber wie einfach das ganze funktioniert.
Sehr simple und einfach ......

http://www.optima-code.ch/PB/capter-003.zip
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