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

1

13.11.2012, 17:40

Blender und Hugin (Cylindrical Panorama Projection)

Hi,
Ich bin neu mit Blender, weswegen man mir bitte eventuelle doofe Aussagen/Fragen entschuldigt.
Ich bin dabei ein Point-n-Click Adventure im guten alten Stil von Zork: The Großinquisitor zu planen und wollte eine Technik-Demo zum Umschauen in einer Umgebung bauen, wobei selbige 3D modelliert sein soll, aber im Spiel lediglich 2D. Ich habe bereits eine Testumgebung gebaut und einige Dinge (Perspektivische Bilder zusammenfügen (sehr schlecht), Panorama-Kamera (ziemlich vertikal gestreckt an einigen Stellen)) ausprobiert, bis ich herausgefunden habe, dass mein Ziel eine "equirectangular" Perspektive ist und dies mit Blender nicht ginge dafür mit der Freeware Hugin. Leider waren meine Versuche mit Hugin nicht von Erfolg gekrönt, das Einzige was ich geschafft habe war, ein ähnliches Bild wie bei der Panorama-Kamera in Blender zu erzeugen wenn ich dafür die perspektivischen Bilder und gradlinigen Objektivtyp genutzt habe...
Wisst ihr eine Lösung für mein Problem?

Mfg Helco

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Helco« (15.11.2012, 16:53)


MitgliedXYZ

Alter Hase

Beiträge: 1 369

Wohnort: Bayern

  • Private Nachricht senden

2

13.11.2012, 18:15

Mit Blender kenn ich mich zwar nicht aus, aber du suchst doch so etwas in der Art, oder?
(Ja, ich weiß, dass Programm wird wohl zu teuer sein...)
http://beta.toonboom.com/professionals/animate-pro


Also du willst 2D Bilder in einem 3dRaum anordnen/animieren, oder?

Edit:
Mh ne, wenn ich mir "Hugin" so anschaue, dann suchst du wohl was anderes...

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

3

13.11.2012, 18:34

Beschreib mal genauer was du willst. Ich vermute du möchtest Bilder vorrendern, wie es bei dieser Art von Spiel ja nicht ungewöhnlich ist. Aber bist du sicher, dass du deine Szene so rendern möchtest? Ansonsten poste doch vielleicht mal einen Screenshot von dem was du meinst. Vielleicht sprechen wir hier auch von unterschiedlichen Dingen.
„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.“

4

13.11.2012, 18:52

@Schorsch
Deine Formulierung über "Bilder vorrendern" trifft es ziemlich gut :)
Und ein paar Screenshots habe ich ebenfalls:
Der Testraum von oben (zur Übersicht)

(Link)

Einer der Bilder die ich Hugin übergeben habe:

(Link)

Das von Hugin zusammengefügte Bild:

(Link)

Das Panorama ist wie man sieht ziemlich gestreckt, ich allerdings möchte selbiges ungestreckt um es im Spiel anzuzeigen.

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

5

13.11.2012, 19:06

Was meinst du da jetzt mit gestreckt? Willst du die Wölbung nicht haben? Das liegt halt an der Perspektive. Ich vermute du möchtest etwas ganz anderes. Du könntest gucken, ob du dir deine Perspektive nicht mit mehreren Kameras zusammen bauen kannst. Diese kannst du ja auch parenten oder einem Empty hinzufügen, um alle zusammen zu bewegen.
Ich kann mir nämlich nicht vorstellen, dass man diese Perspektive in so einem Spiel möchte.
„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.“

6

13.11.2012, 19:32

Ich habe gerade einen Konverter für die Panorama-Bilder aus ZGI gefunden und stelle zu meinem Erstaunen fest: Die gleiche Wölbung die bei Hugin/Panorama-Blender auftritt, sieht man auch bei dem Vorbild.
Was zum einen natürlich erfreulich ist anderseits aber auch die Frage aufwirft wie man dann das Bild im Spiel anzeigt sodass der gewünschte 3D Effekt entsteht...

7

13.11.2012, 21:50

Ich hab mich damit nie wirklich beschäftigt, aber diese uralten Quicktime Adventures haben nicht einfach nur 2D-Bilder angezeigt, sondern die bei der Drehung immer noch auf irgendeine Art verzerrt. Einfach nur 2D Bilder blitten wird also vermutlich nicht gut aussehen.
Lieber dumm fragen, als dumm bleiben!

8

14.11.2012, 18:45

@Jonathan_Klein
Stimmt nämlich genauso als ob man von in einem Zylinder sitzt dessen Wände mit dem Panoramabild bemalt worden sind.

Um das ganze 2D zu projizieren berechnet man anhand der Koordinaten jeden Punktes auf der 2D-Fläche die zugehörigen Koordinaten auf der ausgerollten Textur.
Nach einigem Suchen bin ich auch auf eine Formel gestoßen und habe versucht diese mittels eines Fragment Shaders zu testen.

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
uniform sampler2D texture;
uniform float screen;
uniform vec2 textureSize;

void main()
{
    float x,y,xCenter,yCenter;
    x=gl_FragCoord.x;
    y=gl_FragCoord.y;
    xCenter=0.5*textureSize.x;
    yCenter=0.5*textureSize.y;
    x = screen*tan((x-xCenter)/screen) + xCenter;
    y = (y-yCenter)/cos((y-xCenter)/screen) + yCenter;
    gl_FragColor=texture2D(texture,vec2(x,y)/textureSize);
}

Dabei ist screen die Ausgabebreite in Pixeln und textureSize die Größe des Panoramabildes in Pixeln.
Als Panoramabild habe ich das oben abgebildete genommen, für screen 512 und für textureSize die richtigen Werte (3016,450).
Leider ist das Ausgabebild wie man sieht immer noch gestreckt:

(Link)

Könnt ihr mir helfen?
Mfg Helco

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

9

14.11.2012, 19:36

Dafür gibt es ein Unwrapping für Texturen in Blender. Ich gehe davon aus, dass es so auch möglich sein muss eine Szene zu rendern um die passende Textur zu erhalten.
http://www.blendpolis.de/ Frag dort mal nach. Die können dir sicherlich helfen.
„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.“

10

14.11.2012, 19:51

Entschuldigung für die unklare Frage.
Ich versuche im Moment das von Blender (bzw. Blender und Hugin) Panoramabild jetzt auf einer 2D-Fläche (für das Spiel) anzuzeigen. Für das Spiel möchte ich nicht mehr Blender nutzen, sondern selbiges eigens programmieren (mit C++ und OpenGL) weswegen ich jetzt die Projektion mittels eines Fragment Shaders versuche.

Werbeanzeige