media:default
Zurück zu hmjaneisklar's Chiller-Seite

hmjaneisklar`s Kommentare

Ba Ba Boom...Headbutt
Video Icon

Ba Ba Boom...Headbutt

Hat der Reality-Hits-You-Hard-Bro nach dem Elektromast-Crash ganz neue Talente i...

Letzter Kommentar: 12.03.2013
12.03.2013

Kein Thema. Gern geschehen :)

Explodierende Superblase mit Trockeneis
Video Icon

Explodierende Superblase mit Trockeneis

Spülmittel + Glycerin + Destilliertes Wasser + Trockeneis = WOW FX !!!

Letzter Kommentar: 31.01.2013
31.01.2013

Er hat hier doch jeden Tag aufs Neue den Spaß seines Lebens. Und wie sieht dein Leben aus?

Eisfischen 2.0
Video Icon

Eisfischen 2.0

Wieso sich abmühen, wenn man in Wirklichkeit keinen Finger krumm machen muss? Th...

Letzter Kommentar: 23.01.2013
23.01.2013

Danke für die Erklärung! Mein Vote hast du! Immer wieder schön, dass man hier auch richtig was lernen kann!

Illumi Room
Video Icon

Illumi Room

Per Kinect wird ein Raum samt Gegenständen gescannt und ein Projektor bildet dig...

Letzter Kommentar: 15.01.2013
15.01.2013

Wieso "Scheiß"? Ist doch alles recht leicht verständlich.

15.01.2013

7. Nochmal in eine Textur rendern: Diesmal allerdings nicht aus der virtuellen Perspektive des Spielecharakters, sondern aus der Perspektive des Beamers (natürlich auch nur virtuell -- wir bleiben im Weltkoordiantensystem des Videospiels, können die Beamerposition aber durch die vorherige Kalibrierung im virtuellen Raum abbilden). Der Trick hierbei ist, dass wir die Textur aus dem vorigen Renderpass jetzt per Projection Texture Mapping auf das Modell des Raumes/der Wand projizieren (ist die Tiefenvarianz der Wand zu hoch, wäre Projective Texture Mapping vielleicht angebrachter). Die bisherige Kameraposition ist dabei der Projektionsursprung des Mappings. Außerdem muss der virtuelle TV im Modell dabei koplanar mit der Projektionsebene des ersten Renderpasses sein. Das sind aber nur ein paar Koordinatentransformationen -- wir wissen ja alle Abstände etc. durch die Kalibrierung.
8. Da wir aus der (virtuellen) Perspektive des Beamers gerendert haben, wissen wir genau was der (reale) Beamer projizieren muss, damit das projizierte Bild so aussieht, als wäre es die Fortsetzung des TV-Bildes aus der Perspektive der_des Spielerin_s. Der Perspektivwechsel ist wichtig, sonst sieht um den TV alles verzerrt aus. Die Textur aus Schritt 7 dann halt noch vom zweiten Monitorausgang (Beamer) darstellen lassen und fertig!

15.01.2013

Falls es jemand noch vor Microsoft schaffen will (das Problem ist aber ohnehin eher die nötige Hardware und nicht der Problemlösungsalgorithmus):
1. Raum bzw. die Raumseite des TVs rekonstruieren (Stichworte: 3D reconstruction, structure from motion): zB mit Tiefenkameras (zB Kinect Fusion), mit einem Multi-Kamera-Setup, mit einem monokularem Natural Feature Tracking and Mapping System (zB PTAM oder MonoSLAM), oder halt einfach per Hand mit Lineal, Modelling-Software und viel Zeit.
2. Falls du es nicht per Hand gemacht hast: Punktewolke der Rekonstruktion triangulieren, um ein Modell aus Polygonen zu erhalten.
3. Beamer auf TV-Mittelpunkt kalibrieren (dh den Vektor zwischen Projektorlinse und TV, samt dessen Länge bestimmen). Dadurch erfährt unsere Software auch gleich wo im Raum genau der TV ist.
4. Das fertige Modell des Zimmerteils im Videospiel laden. 5. In der Renderloop des Videospiels die aktuelle Szene einmal normal für den TV rendern.
6. Szene ein zweites Mal rendern, aber diesmal mit einem wesentlich größerem View Frustum (um über den TV-Bereich "hinausschauen" zu können) und größerem Viewport (sonst wirds pixelig). Der Teil, den der TV einimmt, sollte man dabei ausmaskieren. Gerendert wird nicht in den Framebuffer, sondern eine Textur, die wir im nächsten Renderpass wiederverwenden.

15.01.2013

7. Nochmal in eine Textur rendern: Diesmal allerdings nicht aus der virtuellen Perspektive des Spielecharakters, sondern aus der Perspektive des Beamers (natürlich auch nur virtuell -- wir bleiben im Weltkoordiantensystem des Videospiels, können die Beamerposition aber durch die vorherige Kalibrierung im virtuellen Raum abbilden). Der Trick hierbei ist, dass wir die Textur aus dem vorigen Renderpass jetzt per Projection Texture Mapping auf das Modell des Raumes/der Wand projizieren (ist die Tiefenvarianz der Wand zu hoch, wäre Projective Texture Mapping vielleicht angebrachter). Die bisherige Kameraposition ist dabei der Projektionsursprung des Mappings. Außerdem muss der virtuelle TV im Modell dabei koplanar mit der Projektionsebene des ersten Renderpasses sein. Das sind aber nur ein paar Koordinatentransformationen -- wir wissen ja alle Abstände etc. durch die Kalibrierung.
8. Da wir aus der (virtuellen) Perspektive des Beamers gerendert haben, wissen wir genau was der (reale) Beamer projizieren muss, damit das projizierte Bild so aussieht, als wäre es die Fortsetzung des TV-Bildes aus der Perspektive der_des Spielerin_s. Der Perspektivwechsel ist wichtig, sonst sieht um den TV alles verzerrt aus. Die Textur aus Schritt 7 dann halt noch vom zweiten Monitorausgang (Beamer) darstellen lassen und fertig biste.

15.01.2013

Hier noch die Lösung des Problems:
1. Raum bzw. die Raumseite des TVs rekonstruieren (Stichworte: 3D reconstruction, structure from motion): zB mit Tiefenkameras (zB Kinect Fusion), mit einem Multi-Kamera-Setup, mit einem monokularem Natural Feature Tracking and Mapping System (zB PTAM oder MonoSLAM), oder halt einfach per Hand mit Lineal, Modelling-Software und viel Zeit.
2. Falls du es nicht per Hand gemacht hast: Punktewolke der Rekonstruktion triangulieren, um ein Modell aus Polygonen zu erhalten.
3. Beamer auf TV-Mittelpunkt kalibrieren (dh den Vektor zwischen Projektorlinse und TV, samt dessen Länge bestimmen). Dadurch erfährt unsere Software auch gleich wo im Raum genau der TV ist.
4. Das fertige Modell des Zimmerteils im Videospiel laden. 5. In der Renderloop des Videospiels die aktuelle Szene einmal normal für den TV rendern.
6. Szene ein zweites Mal rendern, aber diesmal mit einem wesentlich größerem View Frustum (um über den TV-Bereich "hinausschauen" zu können) und größerem Viewport (sonst wirds pixelig). Der Teil, den der TV einimmt, sollte man dabei ausmaskieren. Gerendert wird nicht in den Framebuffer, sondern eine Textur, die wir im nächsten Renderpass wiederverwenden.

15.01.2013

Du laberst ziemlichen Müll. Design Patterns und Clean Code Practice dienen lediglich der Maintainability von Software. Die werden dir bei der Lösung des im Video gezeigten Problems keine Hilfe sein. Nur bei der Wartung und Erweiterung deines Endprodukts. Und was du auf ner Spielekonsole mit SQL und SOA willst, ist wahrscheinlich jedem, der etwas Ahnung in dem Bereich hat, völlig schleierhaft. Physik würde sich auch als ziemlich nutzlos erweisen. Übrigens nennt jeder, der mehr als Abiturwissen über lineare Algebra hat, den ganzen Spaß sicher nicht "Vektorrechnung".
P.S.: Ich hasse die Programmierer, die ständig mit dem Programmiersprachen-Name-Dropping-Spiel anfangen müssen, um vorzugaukeln, dass sie Ahnung haben. Welche Sprache zur Problemlösung verwendet wird, ist im Prinzip eh irrelevant. Mit nimmt einfach die zum Problem-Modell am besten passendeste oder schreibt sich eine passendere, domänen-spezifische Sprache.

15.01.2013

Vom Abschluss her gesehen bin ich ein einfacher Diplominformatiker. Studiert hab ich aber Computervisualsitik. Reicht auf jeden Fall aus, um das machen zu können. Die Herausforderung liegt hier nicht in der rein technischen Umsetzung, sondern darin, es so umzusetzen, dass es günstig und praktisch genug für Heimanwender ist.

Danke,

deine Kommentar-Bewertung wurde übermittelt.

Es haben bereits Chiller diesen Beitrag bewertet.

Die entsprechende Plakette wird erst ab einer Mindestanzahl von 3 Bewertungen von anderen Chillern angezeigt.

not
Username:
Passwort: