[B3D]Stereoskopie in Blitz3D
Übersicht

![]() |
aMulSieger des Minimalist Compo 01/13Betreff: [B3D]Stereoskopie in Blitz3D |
![]() Antworten mit Zitat ![]() |
---|---|---|
Stereoskopische Bilder
Einige von euch kennen sie sicherlich: Bilder, welche beim schielen 3-Dimensional erscheinen. Für die anderen möchte ich kurz erläutern, worum es sich hierbei handelt: Stereoskopische Bilder bestehen immer aus zwei Photos/Renderbildern, welche beide aus leicht unterschiedlichen Blickwinkeln aufgenommen wurden. Schielt man nun und schafft es, das jedes Auge ein Bild fixiert, überlagern sich die Bilder. Nach einer kurzen Eingewöhnungszeit erkennt man so im vorher zweidimensionalen Bild die 3. Dimension. Falls meine Erklärung zu kompliziert ist, lest euch am besten den Wikipedia-Artikel durch. Besonders gut sieht sowas bei bewegten Bildern aus, doch leider gibt es davon viel zu wenige. Und da kommen wir auch schon zu meiner kleinen Bibliothek. Sie übernimmt für den Programmierer das Erstellen und Anordnen der beiden Kameras. um das ganze noch einfacher zu machen habe ich alle Kamerabefehle die es in in B3D gibt integriert(mit Ausnahme der Pick-Befehle). Im bin mir bewusst, das es keine große Leistung ist ein paar Kameras zu erstellen, aber ich denke dass mein Code durch eine Übersichtlichkeit Anfängern bei der Entwicklung ähnlich strukturierter Module helfen kann. Außerdem finde ich es nett anzusehen und wollte es unbedingt mit euch teilen. So, nach dieser kurzen Erklärung hier der Code: [AUSKLAPPEN] ; ------------------------------------------
; StereoCamera-Lib.bb ; ------------------------------------------ ; by AMULWARE (2007) ; ------------------------------------------ ; der Type in dem alle Kameras gespeichert werden Type TStereoCamera Field CamPivot ; ein Pivot, der genau zwischen den Augen sitzt und als Parent dient Field Cam_R ; das rechte Auge Field Cam_L ; das linke Auge End Type Function CreateStereoCamera(Parent = 0, EyeDist# = 1, Focus# = 50) ; Mit dieser Funktion wird eine neue Stereo-Kamera erstellt. ; Ein Parent kann über den gleichnamigen Parameter angegeben werden. ; Mit dem Parameter 'EyeDist' kann der Abstand zwischen den Augen angegeben werden. ; Mit 'Focus' kann die Entfernung angegeben werden, bei der der Schnittpunkt ; von den Kamera in Kamerarichtung ausgesannter Geraden liegen soll. SC.TStereoCamera = New TStereoCamera ; Typeeintrag erstellen SC\CamPivot = CreatePivot(Parent) ; Pivot(Punkt zwischen den Augen) erstellen D# = EyeDist# / 2 Width = GraphicsWidth() / 2 Height = GraphicsHeight() SC\Cam_R = CreateCamera(SC\CamPivot) ; rechtes Auge PositionEntity SC\Cam_R, D#, 0, 0 CameraViewport SC\Cam_R, Width, 0, Width, Height SC\Cam_L = CreateCamera(SC\CamPivot) ; linkes Auge PositionEntity SC\Cam_L, -D#, 0, 0 CameraViewport SC\Cam_L, 0, 0, Width, Height FocusPivot = CreatePivot(SC\CamPivot) PositionEntity FocusPivot, 0, 0, Focus PointEntity SC\Cam_R, FocusPivot PointEntity SC\Cam_L, FocusPivot FreeEntity FocusPivot Return SC\CamPivot ; Handle vom Pivot wird zurückgegeben. End Function ; Dieser kann so über dir Entitybefehle ganz normal Positioniert,gedreht und skaliert werden. Function StereoCameraEyeDistance(Id, EyeDist#) ; Mit dieser Funktion kann der Abstand zwischen den Augen verändert werden. SC.TStereoCamera = StereoCameraFindType(Id) If SC <> Null D# = EyeDist# / 2 PositionEntity SC\Cam_R, D#, 0, 0 PositionEntity SC\Cam_L, -D#, 0, 0 EndIf End Function Function StereoCameraFocus(Id, Focus#) ; Mit dieser Funktion kann der Fokus der Kameras verändert werden SC.TStereoCamera = StereoCameraFindType(Id) If SC <> Null FocusPivot = CreatePivot(SC\CamPivot) PositionEntity FocusPivot, 0, 0, Focus PointEntity SC\Cam_R, FocusPivot PointEntity SC\Cam_L, FocusPivot FreeEntity FocusPivot EndIf End Function ; Die folgenden Funktionen machen genau das gleiche wie die original BB-Funktionen. ; Bei Fragen also einfach in der BB-Hilfe/OH nachschauen ;) Function StereoCameraViewport(Id, X, Y, Width, Height) ; s. CameraViewport SC.TStereoCamera = StereoCameraFindType(Id) If SC <> Null Width = Width / 2 CameraViewport SC\Cam_R, X + Width, Y, Width, Height CameraViewport SC\Cam_R, X, Y, Width, Height EndIf End Function Function StereoCameraClsMode(Id, Cls_Color, Cls_ZBuffer) ; s. CameraClsMode SC.TStereoCamera = StereoCameraFindType(Id) If SC <> Null CameraClsMode SC\Cam_R, Cls_Color, Cls_ZBuffer CameraClsMode SC\Cam_L, Cls_Color, Cls_ZBuffer EndIf End Function Function StereoCameraClsColor(Id, Red, Green, Blue) ; s. CameraClsColor SC.TStereoCamera = StereoCameraFindType(Id) If SC <> Null CameraClsColor SC\Cam_R, Red, Green, Blue CameraClsColor SC\Cam_L, Red, Green, Blue EndIf End Function Function StereoCameraRange(Id, Near#, Far#) ; s. CameraRange SC.TStereoCamera = StereoCameraFindType(Id) If SC <> Null CameraRange SC\Cam_R, Near, Far CameraRange SC\Cam_L, Near, Far EndIf End Function Function StereoCameraFogMode(Id, Mode) ; s. CameraFogMode SC.TStereoCamera = StereoCameraFindType(Id) If SC <> Null CameraFogMode SC\Cam_R, Mode CameraFogMode SC\Cam_L, Mode EndIf End Function Function StereoCameraFogRange(Id, Near#, Far#) ; s. CameraFogRange SC.TStereoCamera = StereoCameraFindType(Id) If SC <> Null CameraFogRange SC\Cam_R, Near#, Far# CameraFogRange SC\Cam_L, Near#, Far# EndIf End Function Function StereoCameraFogColor(Id, Red, Green, Blue) ; s. CameraFogColor SC.TStereoCamera = StereoCameraFindType(Id) If SC <> Null CameraFogColor SC\Cam_R, Red, Green, Blue CameraFogColor SC\Cam_L, Red, Green, Blue EndIf End Function Function StereoCameraZoom(Id, Zoom#) ; s. CameraZoom SC.TStereoCamera = StereoCameraFindType(Id) If SC <> Null CameraZoom SC\Cam_R, Zoom# CameraZoom SC\Cam_L, Zoom# EndIf End Function Function StereoCameraFindType.TStereoCamera(Id) ; Diese Funktion sucht den Typeeintrag zum Handle des Pivots und gibt ihn zurück For SC.TStereoCamera = Each TStereoCamera If SC\CamPivot = Id Return SC EndIf Next Return Null End Function Sieht viel aus, ist es aber nicht ![]() Für die, die es gar nicht abwarten können es auszuprobieren hier noch ein BeispielCode: [AUSKLAPPEN] Include "StereoCamera-Lib.bb"
(einfach die Lib als 'StereoCamera-Lib.bb' ins gleiche Verzeichniss speichern oder menuell includen)
Graphics3D 800, 600, 0, 2 SeedRnd MilliSecs() Ego = CreateStereoCamera(0,0.5) ; Erstellen der Kameras StereoCameraClsColor Ego, 45, 45, 45 ; Hintergrundfarbe festlegen StereoCameraFogColor Ego, 45, 45, 45 ; Nebelfarbe festlegen StereoCameraFogMode Ego, 1 ; Nebel anschalten StereoCameraFogRange Ego, 150, 250 ; Nebelentferung festlegen For i = 0 To 99 ; Erstellen von 100 Kegeln (sonst sieht man NIX) Mesh = CreateCone() PositionEntity Mesh, Rnd(-150, 150), Rnd(-150, 150), Rnd(-150, 150) Size# = Rnd(2,10) ScaleEntity Mesh, Size, Size, Size RotateEntity Mesh, Rnd(360), Rnd(360), Rnd(360) Next For i = 0 To 3 ; Erstellen von vier Lichtern (sieht besser aus als mit ohne Lichter) Light = CreateLight(2) PositionEntity Light, Rnd(-150, 150), Rnd(-150, 150), Rnd(-150, 150) LightColor Light, Rand(200), Rand(200), Rand(200) LightRange Light, 100 Next AmbientLight 50,50,50 MoveMouse GraphicsWidth()/2, GraphicsHeight()/2 FlushMouse HidePointer SetBuffer BackBuffer() Repeat ; Hauptschleife Ms = MilliSecs() Pitch_S# = Pitch_S# + MouseYSpeed() * 0.02 ; Drehung(mit Maus) Yaw_S# = Yaw_S# - MouseXSpeed() * 0.02 MoveMouse GraphicsWidth()/2, GraphicsHeight()/2 Pitch_S# = Pitch_S# * 0.95 Yaw_S# = Yaw_S# * 0.95 TurnEntity Ego, Pitch_S#, Yaw_S#, 0 Speed# = Speed# + (MouseDown(1) - MouseDown(2)) * 0.05 ; Bewegung(mit den Maustasten) Speed# = Speed# * 0.99 MoveEntity Ego, 0, 0, Speed# RenderWorld ; Rendern Flip 0 Delay 16-MilliSecs()+Ms Until KeyHit(1) Ich hoffe, dass es euch gefällt und dass ich jemandem helfen konnte - wobei auch immer ![]() Für die, die es nicht hinkriegen(wenn man es erst mal kann ist es ganz einfach), hier noch ein Video, das euch vielleicht ein wenig helfen kann: http://www.youtube.com/watch?v=GPRNZ6R1C3g |
||
Panic Pong - ultimate action mashup of Pong and Breakout <= aktives Spiele-Projekt, Downloads mit vielen bunten Farben!
advASCIIdraw - the advanced ASCII art program <= aktives nicht-Spiele-Projekt, must-have für ASCII/roguelike/dungeon-crawler fans! Alter BB-Kram: ThroughTheAsteroidBelt - mit Quelltext! | RGB-Palette in 32²-Textur / Farbige Beleuchtung mit Dot3 | Stereoskopie in Blitz3D | Teleport-Animation Screensaver |
- Zuletzt bearbeitet von aMul am Mi, Apr 04, 2007 15:30, insgesamt 2-mal bearbeitet
BlackTermi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Cool, tolle Idee sowas zu basteln, aber du solltest dir vielleicht nächstmal nen etwas "cooleren" Threadtitel überlegen, zuerst wollt ichs gar nicht aufmachen... | ||
![]() |
aMulSieger des Minimalist Compo 01/13 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Schön das es dir gefällt. Mit dem Titel hast du wohl recht, der macht wirklich nicht sehr neugierig... aber was besseres fällt mir nicht ein, 'ne Idee? | ||
Panic Pong - ultimate action mashup of Pong and Breakout <= aktives Spiele-Projekt, Downloads mit vielen bunten Farben!
advASCIIdraw - the advanced ASCII art program <= aktives nicht-Spiele-Projekt, must-have für ASCII/roguelike/dungeon-crawler fans! Alter BB-Kram: ThroughTheAsteroidBelt - mit Quelltext! | RGB-Palette in 32²-Textur / Farbige Beleuchtung mit Dot3 | Stereoskopie in Blitz3D | Teleport-Animation Screensaver |
![]() |
Black Spider |
![]() Antworten mit Zitat ![]() |
---|---|---|
irgendwie klappt das bei mir nicht so richtig, ich sehe immernoch 2 seperate Bilder... | ||
Coming soon:
http://img132.imageshack.us/im...im2ab6.gif |
![]() |
Spikespine |
![]() Antworten mit Zitat ![]() |
---|---|---|
Yeah, ich liebe den stereoskopischen Effekt!
Black Spider: ja, man muss ein bisschen ausprobieren. Wenn es nicht klappt, versuch mal den Abstand von Kopf und Monitor zu vergrößern. Ich mach es immer so, dass ich mir ein Element (hier ein Körper) heraussuche und versuche so weit zu schielen, bis sich die beiden Pendante (weiß nicht, wie ich die jetzt besser nennen soll) decken. Dann rastet irgendwann die Einstelung ein und man kann 3D-real genießen ![]() Das Beispiel ist aber tatsächlich etwas schwierig, da es so viel schwarze Fläche gibt. Mit ner bunteren und volleren Szene dürfte es einfacher sein, den Effekt zu erreichen. |
||
Athlon 64 3700+ | 1024 MB RAM | GeForce 7900 GT | Blitz2D, Blitz3D, BlitzPlus, BlitzMax |
Laias |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Respekt!
Wäre Cool wenn man so was für 3D-Brillen entwikeln könnte ![]() |
||
http://laias.wordpress.com |
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
hab ich schonmal ^^
Gibt allerdings verschiedene, Polarisationsfilter sind da wohl das beste, geht eben nur mit einem Projektor. |
||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
![]() |
aMulSieger des Minimalist Compo 01/13 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Soweit ich weiß, ist meine Methode aber die einzige, bei der man keine zusätzlichen Gerätschaften braucht, oder? | ||
Panic Pong - ultimate action mashup of Pong and Breakout <= aktives Spiele-Projekt, Downloads mit vielen bunten Farben!
advASCIIdraw - the advanced ASCII art program <= aktives nicht-Spiele-Projekt, must-have für ASCII/roguelike/dungeon-crawler fans! Alter BB-Kram: ThroughTheAsteroidBelt - mit Quelltext! | RGB-Palette in 32²-Textur / Farbige Beleuchtung mit Dot3 | Stereoskopie in Blitz3D | Teleport-Animation Screensaver |
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
soweit ich weiß, nein.
Irgendwelche Studenten haben nen Monitor entwickelt, mit dem man 3D sehen kann. Aber ist im eigentlichen ja auch ne Gerätschaft. ![]() |
||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
FWeinbehemals "ich" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@Laias
Must mal im Codearchiv schauen da ist sowas drin Und jetzt nochmal zu dem Effekt ich habe es noch nicht einmal Geschaft es in 3D zu sehen. Ich habe schon länger von der möglichkeit gewust und auch schon einige Bilder gesehen aber noch nicht einmal ist es bei mir 3D geworden. Kann mir jemand ein tipp geben wie man es am besten machen kann mfg ich |
||
"Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein." Albert Einstein (1879-1955)
"If you live each day as if it was your last, someday you'll most certainly be right." Steve Jobs |
BlackTermi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Nein, ich habe auch keine Idee für einen besseren Threadtitel.
@ich Hmm, hast du dir das Youtube Video angesehen? Das ist eigentlich ne sehr gute Möglichkeit, wenns nicht "klappt" (so mach ich das zumindest wenn meine Augen nicht so wollen wie ich) Was Spikespinne vorschlägt ist auch ganz nett (sollte es sein), funktioniert bei mir aber nicht, kann aber daran liegen das ich irgendwie eine völlig abnormale Vorstellung davon habe wie ich aussehe wenn ich so vorm PC sitze, meine Eltern müssen ja denke jetzt ist er völlig durchgedreht, lehnt sich starr auf den bildschirm schielend langsam nach hinten und verharrt dann irgendwann um glücklich lächelnd auf den Buildschirm zu sehen ![]() |
||
Laias |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Nein ich meine so Rot-Cyan 3D Brillen
Na ja hätte mich auch klarer ausdrücken können |
||
http://laias.wordpress.com |
FWeinbehemals "ich" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Gut danke das Video ging jetzt bei mir aber nur mit der schablone nun habe ich mal deinen Code nen Bischen verändert und da auch so zwei linein reingemacht damit ich mir die auch erst mal zusammen machen kann und dann mit L wech aber das Prob ist das das bild nicht scharf wird.
Habt ihr noch einen Tipp Aber der Effeckt ist geil Danke erstmal für den Viedo tipp das ist super mfg ich |
||
"Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein." Albert Einstein (1879-1955)
"If you live each day as if it was your last, someday you'll most certainly be right." Steve Jobs |
#ReaperNewsposter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Finds auch super ![]() Allerdings wird es bei mir ebenfalls nicht scharf. Vielleicht sind die Blickwinkel nicht ganz richtig...? PS: Sowas kann man dann doch mit so "Bildschirmbrillen"-dingern (weiß gerade den richtigen namen nimmer^^) verwenden..? |
||
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7 |
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
Anaglyph-Brillen? 3D Brillen?
Bei mir wird es scharf, du musst es nur realitätsgetreu nach Einheiten machen, sonst wirkt es so riesig. Am besten ist, es einfach in ein Spiel einzubauen ^^ |
||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
![]() |
aMulSieger des Minimalist Compo 01/13 |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich hat Folgendes geschrieben: Habt ihr noch einen Tipp
Üben. Üben. Üben. Anders gehts leider nicht... Allerdings hilft es, wenn man möglichst weit weg vom Bildschirm sitzt, oder einen kleinen Bildschirm/Viewport benutzt dann muss man nicht ganz so extrem schielen. |
||
Panic Pong - ultimate action mashup of Pong and Breakout <= aktives Spiele-Projekt, Downloads mit vielen bunten Farben!
advASCIIdraw - the advanced ASCII art program <= aktives nicht-Spiele-Projekt, must-have für ASCII/roguelike/dungeon-crawler fans! Alter BB-Kram: ThroughTheAsteroidBelt - mit Quelltext! | RGB-Palette in 32²-Textur / Farbige Beleuchtung mit Dot3 | Stereoskopie in Blitz3D | Teleport-Animation Screensaver |
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich habe mir jetzt auch mal so eine Lib geschrieben (ohne abzukupfern ^^).
Sowas mache ich immer gern, vorhandene Libs mit eigenen Mittel abkupfern und schaun, mit was ich besser klar komme. Normal mit meinem eigenen, weil ich es einfach besser verstehe ^^ Ist diesmal auch der Fall ![]() Ich hab meins mal in eine Lib gepackt und in verschiedene Demos gepackt. Am besten fand ich AGores Birdie Demo und die Castle Demo von Mak. Die TexRender Demo von Mak war auch genial. (Die Kugeln um den Cube sehen einfach so geil aus ^^) |
||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
FWeinbehemals "ich" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich kann es jetzt ^^ ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
||
"Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein." Albert Einstein (1879-1955)
"If you live each day as if it was your last, someday you'll most certainly be right." Steve Jobs |
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
Cool!
ich kann es! Und ich auch! Hat noch jemand Links zu sowas? Bei Youtube hab ich leider nichts sinnvolles mehr gesehen. Aber 90 Minuten schielen würde mir auch auf die Augen gehen ^^. |
||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
FWeinbehemals "ich" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
die seite ist gut :
http://www.dgs-hamburg.de/Galerie/galerie.htm und das bild ist geil: http://fotoplatz.stereographie.../nachh.jpg mfg ich |
||
"Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein." Albert Einstein (1879-1955)
"If you live each day as if it was your last, someday you'll most certainly be right." Steve Jobs |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group