3D²2D und bessere Optik ?!

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

Hot-Bit

Sieger des B2D Retro Wettbewerb / Aug 04

Betreff: 3D²2D und bessere Optik ?!

BeitragSo, März 13, 2005 13:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo.

Ist normalerweise eine Anfänger-Frage, aber da dies noch nie richtig geklärt wurde, wie dies machbar wäre, poste ich es hier:

Wie bekommt man eine bessere Perspektive zustande ?
Wie könnte man die Verzerrung der Objekte, (hier die Kugeln), besser in den Griff bekommen ?

So wie die Darstellung hier ist, ist es für mich nicht akzeptabel.

http://hot-bit.art-fx.org/art/zzz003.zip
Da sind die Texturen auch dabei.

Wer hätte also Lösungs-Wege auf Lager ?

Code: [AUSKLAPPEN]
Graphics3D 800,600
SetBuffer BackBuffer()
SeedRnd MilliSecs()

Cam=CreateCamera()
CameraClsMode Cam,0,1
CameraRange Cam,1,800
PositionEntity Cam,400,-300,400
;CameraProjMode cam,1

licht=CreateLight(2)
TFormFilter 0

Global timer=CreateTimer(70)

Type kugel
   Field x#,y#,dx#,dy#,radius#,bild,tx#,ty#,tz#
End Type

Dim kugerl(15)
For i=1 To 15
kugerl(i)=CreateSphere(12)
tex1=LoadTexture("texturen/t"+Str(i)+".bmp" )
EntityTexture kugerl(i), tex1
ScaleEntity kugerl(i),10,10,10
Next

Gosub setup

While Not KeyDown(1)
 Color 0,135,36
 Rect 0,0,800,600,1
 For kug.kugel=Each kugel
   kug\x=kug\x+kug\dx
   kug\y=kug\y+kug\dy
   If kug\x<10 Or kug\x>790 kug\dx=kug\dx*-1
   If kug\y<10 Or kug\y>590 kug\dy=kug\dy*-1
   PositionEntity kug\bild, kug\x,-kug\y, 800
   TurnEntity kug\bild, kug\tx,kug\ty,kug\tz
 Next
   AntiAlias 1
   RenderWorld()
        fps2 = fps2 + 1
       If fpstimer + 1000 < MilliSecs() Then
         fpsc = fps2:fps2 = 0:fpstimer = MilliSecs()
       End If
        Color 255,255,255
       Text 70,40,"FPS: "+fpsc
   Flip 0
Wend
End

.kbilddaten  ; Daten für die Kugeln
Data 1,11,3,12,15
Data 9,7,13,4
Data 10,8,6
Data 2,14
Data 5

.Setup
; Aufstellen der Kugeln
sx=219:sy=95   
Restore kbilddaten
For xloop = 5 To 1 Step-1
   For yloop = 1 To xloop
      kug.kugel = New kugel
      kug\x = sx   
      kug\y = sy   
      kug\dx=Rnd(-.1,.1)
      kug\dy=Rnd(-.1,.1)
      kug\radius = 10
      Read a1:kug\bild = kugerl(a1)
      kug\tx=Rnd(-.3,.3):kug\ty=Rnd(-.3,.3):kug\tz=Rnd(-.3,.3)
      sx=sx+20
   Next
      sx=sx-xloop*20+10
   sy=sy+18
Next
Return


Thxs...

Toni
... ..... .i.. ...

***
Sieger des BB-Gameboy-Contest 2004
Sieger des Blitzbaster 2D-Minigolf-Contest 2005
***
 

D²O

BeitragSo, März 13, 2005 13:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Schau mal vor der Hauptschleife den eintrag an Smile

Gruss vom Bodensee

BlitzBasic: [AUSKLAPPEN]
Graphics3D 800,600 
SetBuffer BackBuffer()
SeedRnd MilliSecs()

Cam=CreateCamera()
CameraClsMode Cam,0,1
CameraRange Cam,1,800
PositionEntity Cam,400,-300,400
;CameraProjMode cam,1

licht=CreateLight(2)
TFormFilter 0

Global timer=CreateTimer(70)

Type kugel
Field x#,y#,dx#,dy#,radius#,bild,tx#,ty#,tz#
End Type

Dim kugerl(15)
For i=1 To 15
kugerl(i)=CreateSphere(12)
tex1=LoadTexture(\"texturen/t\"+Str(i)+\".bmp\" )
EntityTexture kugerl(i), tex1
ScaleEntity kugerl(i),10,10,10
Next

Gosub setup


;---------------------- Hallo Hot-Bit ---------
CameraProjMode cam,2 ;Mode 2 nutzen
CameraZoom cam,0.002 ;<<<<-Werte selber noch anpassen


;-----------------------

While Not KeyDown(1)
Color 0,135,36
Rect 0,0,800,600,1
For kug.kugel=Each kugel
kug\x=kug\x+kug\dx
kug\y=kug\y+kug\dy
If kug\x<10 Or kug\x>790 kug\dx=kug\dx*-1
If kug\y<10 Or kug\y>590 kug\dy=kug\dy*-1
PositionEntity kug\bild, kug\x,-kug\y, 800
TurnEntity kug\bild, kug\tx,kug\ty,kug\tz
Next
AntiAlias 1
RenderWorld()
fps2 = fps2 + 1
If fpstimer + 1000 < MilliSecs() Then
fpsc = fps2:fps2 = 0:fpstimer = MilliSecs()
End If
Color 255,255,255
Text 70,40,\"FPS: \"+fpsc
Flip 0
Wend
End

.kbilddaten ; Daten für die Kugeln
Data 1,11,3,12,15
Data 9,7,13,4
Data 10,8,6
Data 2,14
Data 5

.Setup
; Aufstellen der Kugeln
sx=219:sy=95
Restore kbilddaten
For xloop = 5 To 1 Step-1
For yloop = 1 To xloop
kug.kugel = New kugel
kug\x = sx
kug\y = sy
kug\dx=Rnd(-.1,.1)
kug\dy=Rnd(-.1,.1)
kug\radius = 10
Read a1:kug\bild = kugerl(a1)
kug\tx=Rnd(-.3,.3):kug\ty=Rnd(-.3,.3):kug\tz=Rnd(-.3,.3)
sx=sx+20
Next
sx=sx-xloop*20+10
sy=sy+18
Next
Return
Blitz+; Blitz3d; BlitzMax; GLBasic; Purebasic;
GameMaker Studio 1.4xx; AGK;

stfighter01

BeitragSo, März 13, 2005 13:23
Antworten mit Zitat
Benutzer-Profile anzeigen
[edit]
mist, wieder zu spät Confused Laughing
[edit]

ich versteh nicht was, wieso dir die verzerrung (die ohnehin minimal ist) dabei etwas ausmacht, aber aber abhilfe kannst du dir so schaffen.

entweder weiter weggehen mit der camera und zoom vergrössern (verringert die verzerrung), oder auf orthogonalprojektion umschalten, dann hast du gar keine verzerrung mehr.

user posted image


mfg stfighter[/img]
Denken hilft!
 

Hot-Bit

Sieger des B2D Retro Wettbewerb / Aug 04

BeitragSo, März 13, 2005 13:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Hoi.

Super. Danke.

Hatte selbst mit CameraProjMode experimentiert, aber CameraZoom nicht probiert....

Thxs, für die schnelle Hilfe !

Toni
... ..... .i.. ...

***
Sieger des BB-Gameboy-Contest 2004
Sieger des Blitzbaster 2D-Minigolf-Contest 2005
***

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group