Transcript
Page 1: Stereoscopy with the JMonkey Engine

Stereoscopy with the JMonkey Engine

Sebastian Stamm, Soren Wellhofer

25th March 2009

Page 2: Stereoscopy with the JMonkey Engine

Losungsansatze Entwicklungen Auswertung

Inhalt

1 Losungsansatze

2 Entwicklungen

3 Auswertung

Page 3: Stereoscopy with the JMonkey Engine

Losungsansatze Entwicklungen Auswertung

Ziele

Zielsetzung

Illusion 3D Ansicht

Zwei Beamer Projektion

Polarisationsfilter

Programmiertechnisch

Positionierung zweier Kameras (Non-Native)

Multi-Canvas-Rendering

⇒ JM Engine Core-KenntnisseEngine-Erweiterungen, Renderer, Zusatzlibraries

Page 4: Stereoscopy with the JMonkey Engine

Losungsansatze Entwicklungen Auswertung

Ziele

Zielsetzung

Illusion 3D Ansicht

Zwei Beamer Projektion

Polarisationsfilter

Programmiertechnisch

Positionierung zweier Kameras (Non-Native)

Multi-Canvas-Rendering

⇒ JM Engine Core-KenntnisseEngine-Erweiterungen, Renderer, Zusatzlibraries

Page 5: Stereoscopy with the JMonkey Engine

Losungsansatze Entwicklungen Auswertung

Ziele

Zielsetzung

Illusion 3D Ansicht

Zwei Beamer Projektion

Polarisationsfilter

Programmiertechnisch

Positionierung zweier Kameras (Non-Native)

Multi-Canvas-Rendering

⇒ JM Engine Core-KenntnisseEngine-Erweiterungen, Renderer, Zusatzlibraries

Page 6: Stereoscopy with the JMonkey Engine

Losungsansatze Entwicklungen Auswertung

Ziele

Zielsetzung

Illusion 3D Ansicht

Zwei Beamer Projektion

Polarisationsfilter

Programmiertechnisch

Positionierung zweier Kameras (Non-Native)

Multi-Canvas-Rendering

⇒ JM Engine Core-KenntnisseEngine-Erweiterungen, Renderer, Zusatzlibraries

Page 7: Stereoscopy with the JMonkey Engine

Losungsansatze Entwicklungen Auswertung

Ziele

Zielsetzung

Illusion 3D Ansicht

Zwei Beamer Projektion

Polarisationsfilter

Programmiertechnisch

Positionierung zweier Kameras (Non-Native)

Multi-Canvas-Rendering

⇒ JM Engine Core-KenntnisseEngine-Erweiterungen, Renderer, Zusatzlibraries

Page 8: Stereoscopy with the JMonkey Engine

Losungsansatze Entwicklungen Auswertung

JME Gibbon (Radakan)

Zielsetzung

RenderPass: Multi-Canvas

JFrames anstatt JME-Fullscreen

ContextSystem: Renderer anpassen

Page 9: Stereoscopy with the JMonkey Engine

Losungsansatze Entwicklungen Auswertung

JME Gibbon (Radakan)

Zielsetzung

RenderPass: Multi-Canvas

JFrames anstatt JME-Fullscreen

ContextSystem: Renderer anpassen

Page 10: Stereoscopy with the JMonkey Engine

Losungsansatze Entwicklungen Auswertung

JME Gibbon (Radakan)

Zielsetzung

RenderPass: Multi-Canvas

JFrames anstatt JME-Fullscreen

ContextSystem: Renderer anpassen

Page 11: Stereoscopy with the JMonkey Engine

Losungsansatze Entwicklungen Auswertung

JME Gibbon (Radakan)

Zielsetzung

RenderPass: Multi-Canvas

JFrames anstatt JME-Fullscreen

ContextSystem: Renderer anpassen

Page 12: Stereoscopy with the JMonkey Engine

Losungsansatze Entwicklungen Auswertung

Modifiziert, Adaptieren,Entwickeln, Integrieren,

Testen

CameraPoints.java

Berechnen Kamerkoordinaten

JME Camera: Position, Target

In Renderer: makeCameraPoints(Camera center)

CameraPoints.getXLeft(), getYLeft(), ...

Page 13: Stereoscopy with the JMonkey Engine

Losungsansatze Entwicklungen Auswertung

Modifiziert, Adaptieren,Entwickeln, Integrieren,Testen

CameraPoints.java

Berechnen Kamerkoordinaten

JME Camera: Position, Target

In Renderer: makeCameraPoints(Camera center)

CameraPoints.getXLeft(), getYLeft(), ...

Page 14: Stereoscopy with the JMonkey Engine

Losungsansatze Entwicklungen Auswertung

Modifiziert, Adaptieren,Entwickeln, Integrieren,Testen

CameraPoints.java

Berechnen Kamerkoordinaten

JME Camera: Position, Target

In Renderer: makeCameraPoints(Camera center)

CameraPoints.getXLeft(), getYLeft(), ...

Page 15: Stereoscopy with the JMonkey Engine

Losungsansatze Entwicklungen Auswertung

Modifiziert, Adaptieren,Entwickeln, Integrieren,Testen

CameraPoints.java

Berechnen Kamerkoordinaten

JME Camera: Position, Target

In Renderer: makeCameraPoints(Camera center)

CameraPoints.getXLeft(), getYLeft(), ...

Page 16: Stereoscopy with the JMonkey Engine

Losungsansatze Entwicklungen Auswertung

Modifiziert, Adaptieren,Entwickeln, Integrieren,Testen

CameraPoints.java

Berechnen Kamerkoordinaten

JME Camera: Position, Target

In Renderer: makeCameraPoints(Camera center)

CameraPoints.getXLeft(), getYLeft(), ...

Page 17: Stereoscopy with the JMonkey Engine

Losungsansatze Entwicklungen Auswertung

Modifiziert, Adaptieren,Entwickeln, Integrieren,Testen

CameraPoints.java

Berechnen Kamerkoordinaten

JME Camera: Position, Target

In Renderer: makeCameraPoints(Camera center)

CameraPoints.getXLeft(), getYLeft(), ...

Page 18: Stereoscopy with the JMonkey Engine

Losungsansatze Entwicklungen Auswertung

Modifiziert, Adaptieren,Entwickeln, Integrieren,Testen

CameraPoints.java

Berechnen Kamerkoordinaten

JME Camera: Position, Target

In Renderer: makeCameraPoints(Camera center)

CameraPoints.getXLeft(), getYLeft(), ...

Page 19: Stereoscopy with the JMonkey Engine

Losungsansatze Entwicklungen Auswertung

����

������������

��������

������

����

����������������������������������������������������������������������

����������������������������������������������������������������������

Z

C2

C1

O

TGesucht: C1, C2

Annahmen:

C1C2 ⊥ ZT

|−−→ZC1| = |

−−→ZC2| = 1

2d ,

d ... Eye distance

−−→ZC1 = −

−−→ZC2 = ±

(cx

cy

)

Page 20: Stereoscopy with the JMonkey Engine

Losungsansatze Entwicklungen Auswertung

����

������������

��������

������

����

����������������������������������������������������������������������

����������������������������������������������������������������������

Z

C2

C1

O

TGesucht: C1, C2

Annahmen:

C1C2 ⊥ ZT

|−−→ZC1| = |

−−→ZC2| = 1

2d ,

d ... Eye distance

−−→ZC1 = −

−−→ZC2 = ±

(cx

cy

)

Page 21: Stereoscopy with the JMonkey Engine

Losungsansatze Entwicklungen Auswertung

����

������������

��������

������

����

����������������������������������������������������������������������

����������������������������������������������������������������������

Z

C2

C1

O

TGesucht: C1, C2

Annahmen:

C1C2 ⊥ ZT

|−−→ZC1| = |

−−→ZC2| = 1

2d ,

d ... Eye distance

−−→ZC1 = −

−−→ZC2 = ±

(cx

cy

)

Page 22: Stereoscopy with the JMonkey Engine

Losungsansatze Entwicklungen Auswertung

����

������������

��������

������

����

����������������������������������������������������������������������

����������������������������������������������������������������������

Z

C2

C1

O

TGesucht: C1, C2

Annahmen:

C1C2 ⊥ ZT

|−−→ZC1| = |

−−→ZC2| = 1

2d ,

d ... Eye distance

−−→ZC1 = −

−−→ZC2 = ±

(cx

cy

)

Page 23: Stereoscopy with the JMonkey Engine

Losungsansatze Entwicklungen Auswertung

����

������������

��������

������

����

����������������������������������������������������������������������

����������������������������������������������������������������������

Z

C2

C1

O

TGesucht: C1, C2

Annahmen:

C1C2 ⊥ ZT

|−−→ZC1| = |

−−→ZC2| = 1

2d ,

d ... Eye distance

−−→ZC1 = −

−−→ZC2 = ±

(cx

cy

)

Page 24: Stereoscopy with the JMonkey Engine

Losungsansatze Entwicklungen Auswertung

����

������������

��������

������

����

����������������������������������������������������������������������

����������������������������������������������������������������������

Z

C2

C1

O

T cx = ±√

d2

4 − c2y

cy = ±12

√d2(Zx−Tx )2

(Zy−Ty )2+(Zx−Tx )2

−−−→OC1,2 =

(Zx + cx

Zy + cy

)C1,2(..., ...)

Page 25: Stereoscopy with the JMonkey Engine

Losungsansatze Entwicklungen Auswertung

����

������������

��������

������

����

����������������������������������������������������������������������

����������������������������������������������������������������������

Z

C2

C1

O

T cx = ±√

d2

4 − c2y

cy = ±12

√d2(Zx−Tx )2

(Zy−Ty )2+(Zx−Tx )2

−−−→OC1,2 =

(Zx + cx

Zy + cy

)C1,2(..., ...)

Page 26: Stereoscopy with the JMonkey Engine

Losungsansatze Entwicklungen Auswertung

����

������������

��������

������

����

����������������������������������������������������������������������

����������������������������������������������������������������������

Z

C2

C1

O

T cx = ±√

d2

4 − c2y

cy = ±12

√d2(Zx−Tx )2

(Zy−Ty )2+(Zx−Tx )2

−−−→OC1,2 =

(Zx + cx

Zy + cy

)

C1,2(..., ...)

Page 27: Stereoscopy with the JMonkey Engine

Losungsansatze Entwicklungen Auswertung

����

������������

��������

������

����

����������������������������������������������������������������������

����������������������������������������������������������������������

Z

C2

C1

O

T cx = ±√

d2

4 − c2y

cy = ±12

√d2(Zx−Tx )2

(Zy−Ty )2+(Zx−Tx )2

−−−→OC1,2 =

(Zx + cx

Zy + cy

)C1,2(..., ...)

Page 28: Stereoscopy with the JMonkey Engine

Losungsansatze Entwicklungen Auswertung

����

������������

��������

������

����

����������������������������������������������������������������������

����������������������������������������������������������������������

Z

C2

C1

O

T cx = ±√

d2

4 − c2y

cy = ±12

√d2(Zx−Tx )2

(Zy−Ty )2+(Zx−Tx )2

−−−→OC1,2 =

(Zx + cx

Zy + cy

)C1,2(..., ...)

Page 29: Stereoscopy with the JMonkey Engine

Losungsansatze Entwicklungen Auswertung

����������������������������������������������������������������������������������������������������������������

����������������������������������������������������������������������������������������������������������������

(-+

)(

++

)−→ZT : Change over Y

Page 30: Stereoscopy with the JMonkey Engine

Losungsansatze Entwicklungen Auswertung

�����������������������������������������������������������������������������

�����������������������������������������������������������������������������

(++

)

(+-

)

−→ZT : Change over Y

−−−→ZC1,2: Change in Y

Page 31: Stereoscopy with the JMonkey Engine

Losungsansatze Entwicklungen Auswertung

Engine Adaptionen und Entwicklungen

Hands on!

Page 32: Stereoscopy with the JMonkey Engine

Losungsansatze Entwicklungen Auswertung

Entwicklungsprozess

Entwicklung

Testapplikationen, Bugfixes

2 Bildschirme, 2 Beamer

Kreos, Wii, ...

Auswertung/Probleme

Core - Verstandnis: schlechte Dokumentation

Core - Modifikationen: Ungeahnte Effekte

Absprache, Interfaces, Integration, ...

⇒ Version Conflicts

Nervenaufreibende Tests, Integrations, Bug-Searches

Unsauberer Programming style

Page 33: Stereoscopy with the JMonkey Engine

Losungsansatze Entwicklungen Auswertung

Entwicklungsprozess

Entwicklung

Testapplikationen, Bugfixes

2 Bildschirme, 2 Beamer

Kreos, Wii, ...

Auswertung/Probleme

Core - Verstandnis: schlechte Dokumentation

Core - Modifikationen: Ungeahnte Effekte

Absprache, Interfaces, Integration, ...

⇒ Version Conflicts

Nervenaufreibende Tests, Integrations, Bug-Searches

Unsauberer Programming style

Page 34: Stereoscopy with the JMonkey Engine

Losungsansatze Entwicklungen Auswertung

Entwicklungsprozess

Entwicklung

Testapplikationen, Bugfixes

2 Bildschirme, 2 Beamer

Kreos, Wii, ...

Auswertung/Probleme

Core - Verstandnis: schlechte Dokumentation

Core - Modifikationen: Ungeahnte Effekte

Absprache, Interfaces, Integration, ...

⇒ Version Conflicts

Nervenaufreibende Tests, Integrations, Bug-Searches

Unsauberer Programming style

Page 35: Stereoscopy with the JMonkey Engine

Losungsansatze Entwicklungen Auswertung

Entwicklungsprozess

Entwicklung

Testapplikationen, Bugfixes

2 Bildschirme, 2 Beamer

Kreos, Wii, ...

Auswertung/Probleme

Core - Verstandnis: schlechte Dokumentation

Core - Modifikationen: Ungeahnte Effekte

Absprache, Interfaces, Integration, ...

⇒ Version Conflicts

Nervenaufreibende Tests, Integrations, Bug-Searches

Unsauberer Programming style

Page 36: Stereoscopy with the JMonkey Engine

Losungsansatze Entwicklungen Auswertung

Entwicklungsprozess

Entwicklung

Testapplikationen, Bugfixes

2 Bildschirme, 2 Beamer

Kreos, Wii, ...

Auswertung/Probleme

Core - Verstandnis: schlechte Dokumentation

Core - Modifikationen: Ungeahnte Effekte

Absprache, Interfaces, Integration, ...

⇒ Version Conflicts

Nervenaufreibende Tests, Integrations, Bug-Searches

Unsauberer Programming style

Page 37: Stereoscopy with the JMonkey Engine

Losungsansatze Entwicklungen Auswertung

Entwicklungsprozess

Entwicklung

Testapplikationen, Bugfixes

2 Bildschirme, 2 Beamer

Kreos, Wii, ...

Auswertung/Probleme

Core - Verstandnis: schlechte Dokumentation

Core - Modifikationen: Ungeahnte Effekte

Absprache, Interfaces, Integration, ...

⇒ Version Conflicts

Nervenaufreibende Tests, Integrations, Bug-Searches

Unsauberer Programming style

Page 38: Stereoscopy with the JMonkey Engine

Losungsansatze Entwicklungen Auswertung

Entwicklungsprozess

Entwicklung

Testapplikationen, Bugfixes

2 Bildschirme, 2 Beamer

Kreos, Wii, ...

Auswertung/Probleme

Core - Verstandnis: schlechte Dokumentation

Core - Modifikationen: Ungeahnte Effekte

Absprache, Interfaces, Integration, ...

⇒ Version Conflicts

Nervenaufreibende Tests, Integrations, Bug-Searches

Unsauberer Programming style

Page 39: Stereoscopy with the JMonkey Engine

Losungsansatze Entwicklungen Auswertung

Entwicklungsprozess

Entwicklung

Testapplikationen, Bugfixes

2 Bildschirme, 2 Beamer

Kreos, Wii, ...

Auswertung/Probleme

Core - Verstandnis: schlechte Dokumentation

Core - Modifikationen: Ungeahnte Effekte

Absprache, Interfaces, Integration, ...

⇒ Version Conflicts

Nervenaufreibende Tests, Integrations, Bug-Searches

Unsauberer Programming style


Recommended