Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Hugo

Frischling

  • »Hugo« ist der Autor dieses Themas
  • Private Nachricht senden

1

29.09.2012, 17:33

Reflektionen programmieren - schwierig?

Hallo,
es gibt eine Echtzeitsoftware, mit der man Visualisierungen von Architektur und Landschaften machen kann: Lumion3d.
Die habe ich mir vor kurzem gekauft. Jetzt steht ein neues Upgrade an und da gibt es im Lumion3d Forum eine große Diskussion um neue Features in der Version 3.0.
Eins der Features ist, das Lumion keine echten Reflektionen kann und das immer wieder gefordert wird.

Da ich keine Kenntnisse über das Programmieren habe, wollte ich einfach mal hier fragen, wie kompliziert das Programmieren von Reflektionen in einer Echtzeit-Engine ist.

Möglicher Weise, kommt es auf den Code an, in dem programmiert ist? Allerdings kann ich nicht sagen, in welcher Sprache Lumion gemacht ist.
Eine kurze Darlegung über Reflektionen und die Machbarkeit in Engines würde mich freuen. Dann könnte ich die dortige Diskussion besser einordnen. Danke.

Hugo

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

2

29.09.2012, 17:47

Da gibt es verschiedene Möglichkeiten. Die einfachste wäre vermutlich das Bild aus der Sicht des Spiegels zu rendern und dann als Textur auf den Spiegel zu legen. Wenn die Szene statisch ist muss das auch nur einmal am Anfang passieren.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

3

29.09.2012, 17:52

Kompliziert sind Reflektionen eigentlich nicht. Die Frage ist eher wie realistisch soll es sein. Dann ist es eigentlich eher ein Optimierungsproblem, weil jedes Objekt in der Szene einen Einfluss auf jedes andere haben kann. Bei komplexen Szenen ist die benötigte Rechenleistung extrem hoch.

Habe mal kurz geschaut, aber es scheint ja Reflektionen in dem Tool zu geben.

Im übrigen: Warum fragst du hier und nicht dort? Wäre besser, wenn du dort nachfrägst, weil es dort wahrscheinlich auch Antworten von Entwicklern des Tools geben wird.

4

29.09.2012, 18:08

Realistische Reflektionen sind sau schwer. Aber es gibt eine ganze Reihe von Möglichkeiten, sehr nahe an ein realistisches Ergebnis zu kommen, und die sind dann teilweise echtzeitfähig. Es geht auch in aller Regel nie darum, etwas richtig zu machen, es geht darum, etwas so zu machen, dass es gut aussieht.

Mal ein paar Möglichkeiten:
- Man hat große, glatte Spiegelflächen. Das ist Beispielsweise bei Wasseroberflächen der Fall. Hier kann man die komplette Szenen einfach gespiegelt rendern und evtl. ein paar Verzerreffekte drauf legen und ist fertig
- für kleine, beliebig geformte Objekte kann man CubeMaps benutzen (d.h. Enviroment Mapping). Der Nachteil hierbei ist, dass das Gesamte Objekt die selbe CubeMap benutzt, es also nicht darauf ankommt, von wo aus gespiegelt wird, sondern nur in welche Richtung.
- die beiden oberen Techniken kann man auch für nicht perfekte Reflektionen benutzen, indem man die Textur etwas weichzeichnet (bzw. verzerrt).
- Man kann Raytracing benutzen. Aber das ist immer noch nicht wirklich Echtzeitfähig und besonders diffuse, als nicht perfekte Reflektionen sind damit sehr aufwändig.

Das gute ist, dass das Auge sehr schlecht darin ist, Reflektionen zu beurteilen, korrekter Schatten oder Beleuchtungen sind da viel wichtiger. Es ist erstaunlich, wie falsch Reflektionen sein können, ohne dass man es direkt merken würde.
Lieber dumm fragen, als dumm bleiben!

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

5

29.09.2012, 18:38

Da gibt es verschiedene Möglichkeiten. Die einfachste wäre vermutlich das Bild aus der Sicht des Spiegels zu rendern und dann als Textur auf den Spiegel zu legen. Wenn die Szene statisch ist muss das auch nur einmal am Anfang passieren.

Wenn es korrekt sein soll, musst du aber schon jedes Frame machen, da die Spiegelung abhängig von der Kameraposition ist.
Was du meinst, ist wohl eine Environment-Map. Die ist aber nur für einen Punkt korrekt, nicht für eine Fläche.

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

6

29.09.2012, 19:32

Natürlich ist die nur für einen Punkt korrekt. So wie ich das hier verstehe geht es aber nicht darum eine 100% korrekte Lösung zu haben, sondern ein visuell schönes Ergebnis. Er schreibt ja selbst dass er keine Erfahrung hat und von daher kann man es ihm ja einfach machen. Wenn es natürlich um eine annähernd korrekte Spiegelung geht dann ist mein Ansatz natürlich quatsch. Ich behaupte trotzdem dass es ausreichend ist;)
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

7

29.09.2012, 20:38

So wie ich das hier verstehe geht es aber nicht darum eine 100% korrekte Lösung zu haben, sondern ein visuell schönes Ergebnis.

Eins der Features ist, das Lumion keine echten Reflektionen kann und das immer wieder gefordert wird.


Müsste halt der Threadersteller mal sagen, was genau er gerne hätte. Lumion scheint ja Reflektionen zu können, nur eben eher mäßige. Aber ohne mehr Details ist natürlich alles diskutieren sinnlos.
Andererseits: An Lumion etwas als Außenstehender zu ändern, dürfte unpraktikabel sein. Von daher wäre erstmal die Frage, was der Threadersteller eigentlich bezwecken möchte. (Achja: Auf die Sprache kommt es übrigens nicht an).
Lieber dumm fragen, als dumm bleiben!

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

8

29.09.2012, 20:53

Natürlich ist die nur für einen Punkt korrekt. So wie ich das hier verstehe geht es aber nicht darum eine 100% korrekte Lösung zu haben, sondern ein visuell schönes Ergebnis. Er schreibt ja selbst dass er keine Erfahrung hat und von daher kann man es ihm ja einfach machen. Wenn es natürlich um eine annähernd korrekte Spiegelung geht dann ist mein Ansatz natürlich quatsch. Ich behaupte trotzdem dass es ausreichend ist;)

Jo, ich hab das bei unserem Fahrradsimulator auch so gemacht. Statische Reflection Cubemaps für Flächen ;)

Hugo

Frischling

  • »Hugo« ist der Autor dieses Themas
  • Private Nachricht senden

9

30.09.2012, 18:34

Hi,
und Danke an Alle für´s einmischen und die Erfahrungen.
Was ich wissen wollte, habt ihr mir im Grunde beantwortet - einen groben Querschnitt durch das Thema Reflektionen in Echtzeitanwendungen. Damit kann ich die Diskussion dort im Forum etwas besser einschätzen - das war, was ich wollte.
Ich selbst habe natürlich keinen Einfluß auf Reflexionen in Lumion, da muss man damit zurecht kommen, was das Programm bietet. Das nachfragen hier und nicht dort hängt damit zusammen, dass man sich, wie ich finde, bei den Machern windet wie ein Aal in Sachen "echte Reflexionen". Alle Anfragen hierzu verlaufen im Sande. Warum weiß ich nicht. Vielleicht will man sich das aufheben bis zur 4.0 oder 5.0. Aus marketing und Geld-Mach-Gründen. Bislang war noch eine Option für mich, ob sie es nicht können, das kann ich mir aber fast nicht vorstellen. Andererseits - eine Stimme hier war ja, das Reflektionen sauschwer wären.

Bei Lumion3d steht jetzt ein Upgrade von 2.5 auf 3.0 an. Diejenigen Kunden, die jetzt das upgrade als "early bird" ordern, aber nicht genau wissen, was neu drin ist (sukzessive werden die neuen Features mitgeteilt, aber wohl nicht Alle) zahlen halt 700,-, die späteren halt 1000,-. Die "frühen" wissen nicht genau was Alles drin sein wird und ärgern sich vielleicht (wenn z.B- keine Reflexionen drin sind), die späten ärgern sich vielleicht 300,- zuviel bezahlt zu haben. Und in diese Überlegung zieht sich halt das Keyfeature der Reflexion. Wegen dieses im Grunde taktischen und politischen Gamblings der Macher, was ich echt mies finde - geht das Ganze nebenbei noch.

Ok - danke jedenfalls für die Impulse
besten Gruß
Hugo

Werbeanzeige