[MiniB3D] Irgendwas mit der Depth denk ich...

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

FOODy

Betreff: [MiniB3D] Irgendwas mit der Depth denk ich...

BeitragDo, Dez 21, 2006 0:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!
Ich hab grad ein Problem mit der (Modifizierten (von Klepto2)) MiniB3D (von simonh).

Ich kapier einfach nicht was ich falsch mache.
In den Beispielen klappt alles aber dann hab ich mal selber was versucht und dabei kam sowas raus:
http://www.onkel-foody.de/Daten/images/minib3d.jpg


Code: [AUSKLAPPEN]
SuperStrict
Framework Klepto.MiniB3D

Graphics3D 800,600,,0,100

Global CameraPosition:TPivot = CreatePivot()
Global Camera:TCamera = CreateCamera(CameraPosition)
Global CameraLight:TLight = CreateLight(2,CameraPosition)
CameraLight.LightRange(2)
CameraLight.LightColor(25,25,25)
CameraLight.PositionEntity(-2,2,5)

Global MouseItensity:Float = 1
Global CameraSpeed:Float = 0.15

Local p:TPivot = CreatePivot(CameraPosition)
Global Weapon:TEntity = CreateCylinder(,,p)
Global WeaponBrush:TBrush = CreateBrush()
WeaponBrush.BrushColor(127,127,127)
WeaponBrush.BrushShininess(0.25)
Weapon.RotateEntity(90,0,10)
Weapon.PositionEntity(-3,2,4)
Weapon.sx = 0.3
Weapon.sz = 0.3
Weapon.PaintEntity(WeaponBrush)
Local WeaponB:TEntity = CreateCylinder(,,Weapon)
WeaponB.PositionEntity(-0.5,2.5,-0.5)
WeaponB.sy = 1
WeaponB.sx = 0.6
WeaponB.sz = 0.6
WeaponB.PaintEntity(WeaponBrush)
WeaponB = CreateCylinder(,,Weapon)
WeaponB.PositionEntity(-0.5,0,-1.25)
WeaponB.sy = 0.5
WeaponB.sx = 1.5
WeaponB.sz = 1.5
WeaponB.PaintEntity(WeaponBrush)
WeaponB = CreateCube(Weapon)
WeaponB.PositionEntity(1,0.25,-1.25)
WeaponB.sy = 0.25
WeaponB.sx = 0.25
WeaponB.sz = 3
WeaponB.RotateEntity(10,0,0)
WeaponB.PaintEntity(WeaponBrush)

Weapon = p

Camera.CameraRange(0,50)
Camera.CameraFogRange(80,100)
Camera.CameraFogMode(3)
Camera.CameraFogColor(0,0,0)
Camera.RotateEntity(0,0,180)
CameraPosition.PositionEntity(0,0,-10)

CreateCube().ScaleEntity(2.0,2.0,2.0)
CreateCube().PositionEntity(5,0,5)

AmbientLight(10,10,10)

MoveMouse(GraphicsWidth()/2,GraphicsHeight()/2)
FlushMouseSpeed()
HideMouse()

Repeat
   Cls
      Local speed_x:Int = MouseXSpeed()
      Local speed_y:Int = MouseYSpeed()
      If KeyDown(KEY_A) CameraPosition.MoveEntity(CameraSpeed,0,0)
      If KeyDown(KEY_D) CameraPosition.MoveEntity(-CameraSpeed,0,0)
      If KeyDown(KEY_W) CameraPosition.MoveEntity(0,0,CameraSpeed)
      If KeyDown(KEY_S) CameraPosition.MoveEntity(0,0,-CameraSpeed)
      If speed_x Or speed_y
         TurnEntity(CameraPosition,speed_y*MouseItensity,speed_x*MouseItensity,0)
         CameraPosition.rx = CameraPosition.rx Mod 360.0
         CameraPosition.ry = CameraPosition.ry Mod 360.0
         CameraPosition.rz = CameraPosition.rz Mod 360.0
         MoveMouse(GraphicsWidth()/2,GraphicsHeight()/2)
         FlushMouseSpeed()
      EndIf
      If MouseDown(MOUSE_RIGHT)
         RotateEntity(Weapon,5,0,0)
         PositionEntity(Weapon,1.25,0,-1)
      Else
         RotateEntity(Weapon,0,0,0)
         PositionEntity(Weapon,0,0,0)
      EndIf
      RenderCamera(Camera)
   Flip
Until AppTerminate() Or KeyDown(KEY_ESCAPE)

Function FlushMouseSpeed:Int()
   MouseXSpeed()
   MouseYSpeed()
EndFunction


Ich bin echt am verzweifeln Sad
Weiß jemand woran das liegt?



Gruß,
FOODy
BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB
 

klepto2

BeitragDo, Dez 21, 2006 10:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Lass mal folgende Zeilen weg:
WeaponB.sy = 0.25
WeaponB.sx = 0.25
WeaponB.sz = 3
...

und ersetze diese durch EntityScale(sx,sy,sz)

durch deinen werden die Matrizen nicht angepasst, wenn ich mich nicht irre. Habe hier leider gerade keinen zugriff auf minib3d(darum ist das nur eine mögliche Fehlerquelle). Poste das Resultat dann mal bitte.
Matrix Screensaver
Console Modul für BlitzMax
KLPacker Modul für BlitzMax

HomePage : http://www.brsoftware.de.vu

FOODy

BeitragDo, Dez 21, 2006 11:10
Antworten mit Zitat
Benutzer-Profile anzeigen
@Klepto2:
An der Skalierung lag es nicht.

Hmmm....
Ich hab jetzt CameraRange auf 1,50 (Die Min.Range war auf vorher auf 0) gemacht und die Fehler sind jetzt weg.
Aber wieso geht 0 den nicht?



Gruß,
FOODy



PS:
Ich find deine Module-Modifikation von MiniB3D ganz cool. (Vorallem das es jetzt keine einzige Datei mehr ist Smile )
BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB
 

klepto2

BeitragDo, Dez 21, 2006 11:20
Antworten mit Zitat
Benutzer-Profile anzeigen
stimmt, du musst Camerarange > 0 haben also zb: 0.00001 oder so. Das liegt an OpenGL selber und ist treiber abhängig. Bei mir würde ich zb: bei 0 garnix sehen.
Matrix Screensaver
Console Modul für BlitzMax
KLPacker Modul für BlitzMax

HomePage : http://www.brsoftware.de.vu

FOODy

BeitragDo, Dez 21, 2006 11:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Achso..
Ok Very Happy
Danke dir, klepto2! Smile

Ich hab jetzt noch ne Frage am Rande.
Wie könnte ich die Max2D Befehle benutzen?
Also ohne das sie "richtig 3D" sind?


Gruß,
FOODy
BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB
 

klepto2

BeitragDo, Dez 21, 2006 11:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Das ist momentan leider nicht möglich Sad , wir arbeiten aber fieberhaft daran eine Lösung dafür zufinden. im Moment müsste man wohl auf Sprites zurückgreifen.
Matrix Screensaver
Console Modul für BlitzMax
KLPacker Modul für BlitzMax

HomePage : http://www.brsoftware.de.vu

FOODy

BeitragDo, Dez 21, 2006 12:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok. :/
Ich denke das wars fürs erste Smile
Danke für die Hilfe, klepto2 Very Happy


Gruß,
FOODy
BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB

BtbN

BeitragDo, Dez 21, 2006 12:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Du kannst aber auch mit puren OpenGL-Befehlen recht einfach 2D-Zeichnungen machen.
Allerdings weiß ich nicht, ob man mal eben so zwischendurch auf Ortogonales Rendern umstellen kann. Ansonsten eben sprites.

FOODy

BeitragDo, Dez 21, 2006 15:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Eine Funktion mit der man zwischen Ortogonales Rendern und zurück wechseln kann wäre cool.

Wie das mit den Sprites funktioniert muss ich mir noch ansehen : /

Ich liebe das Module Very Happy
Hoffentlich gibst zu Weihnachten noch ein Update ^_^



Gruß,
FOODy
BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB
 

klepto2

BeitragDo, Dez 21, 2006 18:07
Antworten mit Zitat
Benutzer-Profile anzeigen
So, wenn alles gut geht wird MiniB3D heute abend oder morgen früh Max2D kompatibel sein.

Wer lust hat kann ja mal kurz diese App hier testen:
http://klepto2.kl.funpic.de/DL/minib3dmeets2d.rar

Das ist ein Test von miniB3D mit MAx2d unter verwendung von der Highgui3.
Matrix Screensaver
Console Modul für BlitzMax
KLPacker Modul für BlitzMax

HomePage : http://www.brsoftware.de.vu

FOODy

BeitragDo, Dez 21, 2006 18:43
Antworten mit Zitat
Benutzer-Profile anzeigen
@Klepto2:
Irgendwie stürtzt es beim Starten immer ab.
Es erscheint das Programfenster und dann schließt es sich sofort wieder. Sad

Gruß,
FOODy


EDIT:
Wenn du/ihr es noch in dieser Woche mit dem 2D hinbekommt, ist es echt genial Very Happy
BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB
 

klepto2

BeitragDo, Dez 21, 2006 19:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Foody, kannst du mal folgende Version ausprobieren?
http://klepto2.kl.funpic.de/DL/meets2d(original).rar
Matrix Screensaver
Console Modul für BlitzMax
KLPacker Modul für BlitzMax

HomePage : http://www.brsoftware.de.vu

FOODy

BeitragDo, Dez 21, 2006 19:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja das geht Very Happy
Super!

Echt spitze Smile


Gruß,
FOODy
BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group