3D OGRE Zylinder Projektion für Panorama gesucht

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
dige
Beiträge: 1182
Registriert: 08.09.2004 08:53

3D OGRE Zylinder Projektion für Panorama gesucht

Beitrag von dige »

Hallo,

Olby hat im englischen Forum einen Panorama Viewer gepostet.

http://www.purebasic.fr/english/viewtop ... 30#p497274

Mit dem man 360 Grad Panoramen in einer Kugelprojektion anschauen kann.

Hat jemand eine Idee wie man das auf einen Zylinder projezieren kann, wenn
man nur normale Panorama Bilder (ohne Himmel und Boden) anschauen will?

Ciao dige

Code: Alles auswählen

EnableExplicit

UseJPEGImageDecoder()
UsePNGImageDecoder()

Define.i w,h,d,mx.f,my.f,file$=Trim(ProgramParameter(0))

If file$
   If InitEngine3D() And
      InitSprite() And
      InitKeyboard() And
      InitMouse()
   
      If ExamineScreenModes()
         While NextScreenMode()
            w=ScreenModeWidth()
            h=ScreenModeHeight()
            d=ScreenModeDepth()
         Wend
         
         If OpenScreen(w,h,d,"Panorama",#PB_Screen_SmartSynchronization)
            CreateCamera(0,0,0,100,100)
            CameraFOV(0,90)
            
            Add3DArchive(GetPathPart(file$),#PB_3DArchive_FileSystem)
            CreateMaterial(0,LoadTexture(0,file$))
            DisableMaterialLighting(0,#True)
            MaterialFilteringMode(0,#PB_Material_Trilinear)
            RotateMaterial(0,180,#PB_Material_Fixed)
            
            CreateSphere(0,-10,32,32)
            CreateEntity(0,MeshID(0),MaterialID(0))
            
            Repeat
               If ExamineMouse()
                  mx=-MouseDeltaX()/4.0
                  my=-MouseDeltaY()/4.0
               EndIf
               RotateCamera(0,my,mx,0,#PB_Relative)
               RenderWorld()
               FlipBuffers()
               ExamineKeyboard()
           Until KeyboardPushed(#PB_Key_Escape)
        EndIf
      EndIf
   EndIf
EndIf
"Papa, mein Wecker funktioniert nicht! Der weckert immer zu früh."