Seite 4 von 5

Verfasst: 23.01.2009 00:01
von tft
hallo...

Capter 10

um das nächste Capter besser erörtern zu können.Habe ich wider ein
Video und screens davon gemacht. Ihr könnt sehen das ein Quader und
ein Galaxie von Sternen im Hintergrund abgebildet sind. Wenn ihr ge-
nauer hinschaut. Werdet ihr sehen das die Sterne im Hintergrund auf
dem Cube zu sehen sind. So wird es ohne zuordnung von EntityOrder
Gezeichnet.

Bild

Mit der Taste F6 kann der Kossmoss hintergrund mittels
EntityOrder so eingestellt werden. Das dieser immer als erstes gezeichnet
wird.

Bild

Hir sehen wir die ganze sachen aus einer anderen richtung. Wir stellen
fest, das es sich zu anfang nur um einen illosion handelt. Durch die
anordnung und EntityOrder können wir selber bestimmen wann etwas
gezeichnet wird.

Bild

Und hir nochmal aus der gleichen position. Aber dismal wird Der Kossmoss immer an der Position der Camera festgemacht.

Bild


Für den Sternen hintergrund verwenden wir eine Specielle Texture
die nur aus 4 Punkten besteht. wir nutzrn die Eigenschalten des Render
vorganges um die Abrundungen zu erzeugen.

Die Funktionen MakeCube und FindFile gehören zum FrameWork.
Letzteres sorgd dafür, das es egal ist von wo Compiliert wird. Das file wird
immer gefunden.

InitB3DDaten.pbi

Code: Alles auswählen

;
; Capter 10
;

bbcamerazoom(cam,1.5)

Define kossmoss
kossmoss=bbloadmesh(FindFile("Dat\kosmos.3ds"))
If kossmoss=0
  MessageRequester("Error", "Cant load kosmos.3ds",0) : End
EndIf
bbscaleentity(kossmoss,5,5,5,1)

Define	a=$00ffffff
Define	me=bbCreateMesh() 
Define	b=bbCreateBrush() 
Define	t=bbCreateTexture(2,2,3) 
	
bbWritePixel( 0,0,a,bbTextureBuffer(t)) 
bbWritePixel( 1,0,$ffffffff,bbTextureBuffer(t)) 
bbWritePixel( 0,1,a,bbTextureBuffer(t)) 
bbWritePixel( 1,1,a,bbTextureBuffer(t))
bbScaleTexture( t,2,2 )
bbpositiontexture( t,0,0.5)
bbBrushTexture( b,t,0,0 )
bbBrushFx(b,3)
bbpaintentity(kossmoss,b)
bbentityorder(kossmoss,0)

Define cube=makecube(0,0,0)
bbpositionentity(cube,0,0,5)

Define SwitshOrder=0
Project3DLoop.pbi

Code: Alles auswählen

;
; Capter 10
;

; wie wir sehen wird das kossmoss Object immer an die Position
; der Camera gesetzt. Dadurch erreichen wir, das der eindruck
; entsteht. Das sich die Camera innerhalb des Objectes bewegt.
; Was aber nicht ganz richtig ist. Die Position der Camera wird
; wie gewohnt verändert. Jedoch der Kossmoss wird ebenso verschoben.
;
; Wenn wir uns jetzt bewegen, Werden wir beobachten. Das der Quader
; irgendwann hinter dem Kossmoss Objecte dargestellt wird. Durch drücken 
; Der F5 Taste.wird die kopplung zwischen Camera und Kossmoss aufgehoben.
; Dadurch können wir sehen wie beide objecte wirklich zueinander
; stehen. 
;
; Um jetzt zu ereichen das der Kossmoss immer als hintergrund gezeichent
; wird. Müssen wir ihm einen Order >0 geben.
; Mit der F6 taste können wir den zustand Switschen.
;
; Experimentiert etwas damit rum. Bewegt euch mit den WASD Tasten und 
; schaut euch die Realität und den Schein genauer an. Mit EntityOrder()
; Lassen sich noch einiges mehr en Tricks anwenden.


If bbkeydown(#key_f5)=0
  bbpositionentity(kossmoss,bbentityx(cam,1),bbentityy(cam,1),bbentityz(cam,1))
EndIf

If bbkeyhit(#key_f6)
  SwitshOrder=~ SwitshOrder
EndIf

If SwitshOrder=0
  bbentityorder(kossmoss,0)
Else
  bbentityorder(kossmoss,1000)
EndIf

Hir noch das AVI

http://www.optima-code.ch/PB/v3.avi

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

Verfasst: 23.01.2009 18:25
von Lord
Was ist ein Capter?

Verfasst: 23.01.2009 19:29
von PureProgger
Er meint wohl Chapter für Kapitel!

Verfasst: 02.02.2009 09:12
von tft
Hallo ...

da das Intresse eher bescheiden zu sein scheint. Wirds bis zum nächsten
Teil doch noch etwas dauern. In der Zwischenzeit Poste ich hir einige ScreenShots.

Das Tut ist ja nur nebenbei entstanden. Das grundlegenede Project ist ein
Weltraum Game ala ELITE. (Wers noch kennt) Ich weis nicht mein wiefielter
versuch das nu ist. Aber mittlerweile habe ich rutine darin :-)

Was gibt es denn schon ?

2 Camera Perspectiven
Space hintergrund
Portale ( Hanger etc ) zum switshen der Location
Leucht Bojen animiert
QWEASD Steuerung
Text3D ausgabe als Single Surface
Collisions erkennung
FullScreen Fade in/Out

Gruss TFT

Bild

Verfasst: 02.02.2009 16:20
von Andesdaf
> Er meint wohl Chapter für Kapitel!
Wollt ich auch schon fragen, was ein Capter ist. Scheint ein Dauertippfehler
zu sein.

Verfasst: 02.02.2009 18:44
von gekkonier
Ich verfolge das hier interessiert und probiere auch die Quelltexte aus - ich bin Besitzer sowohl vom SDK als auch Purebasic.
Danke für die Mühe.
Allerdings postete ich dazu bis dato überhaupt nix, weil ich nix zu bekritteln hatte. Deshalb jetzt mal an dieser Stelle Lob: DANKE!!!

Verfasst: 02.02.2009 21:07
von tft
Hallo ....

so .. nach einigen basteln habe ich jetzt mal in einer Stunde eine GUI
zusammen gezimmert. Fenster,Text und Botton.
Wie schon anfangs erwähnt. Mit B3D sind diese dinge recht schnell und
einfach lösbar.

Bild

Verfasst: 18.02.2009 01:13
von X0r
Na hoffentlich haste für das Fenster nicht einfach nen skalierten Cube genommen. ;)

Verfasst: 19.02.2009 22:10
von tft
Hi ...

nein .... das geht mit den Text Elementen auch nicht. Das gibt dooffe Verzerrungs Effecte....

Gruss TFT

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

Verfasst: 30.01.2011 14:09
von tft
Hallo,

da nun nach 2 Jahren zwar über 7 Tausen Aufrufe zu verzeichnen sind. Das Intresse also da ist. Aber keinen weiteren
Fragen oder Anmerkungen kommen. Werde ich die Sache hir nun ruhen lassen. Einen Gruss an alle die sich bedankt haben und fiel Spass noch bei weiteren Experimenten.

Ich selber habe mich von der SDK abgewendet und benutze die Xors3D Engine. Diese ist 99% kompatible zu Blitz3D und basiert auf DX9.
Ausserdem sind viele Funktionen dazu gekommen.

Gruss TFT