Aktuelle Zeit: 13.12.2018 21:38

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Drehung von licht (LightYaw und RotateLight)
BeitragVerfasst: 03.03.2018 10:37 
Offline

Registriert: 13.08.2016 12:53
Moin,
ich versuche grade mittels LightYaw und RotateLight

ein licht um 360Grad zu drehen (LightYaw+1) nur leider geht das nur bis LightYaw 90.0 zurück gibt ....
wodran kann das liegen ( ich experimentiere grad mit dem purebasic beispiel Code aus der Hilfe)

ich vermute das der Rückgabe wert von LightYaw keine grad sind und ich deswegen Probleme bekomme...

ich bin auch der Meinung das purebasic die Umwandlung auch irgendwie schon vorgefertigt hat nur ich weis nicht mehr wie das Heist und zu allen meine versuche habe ich nix passenden über googel und die Forums suche gefunden ... vielleicht hilft das schon...

(ich hoffe das ist oki das ich den Code hier so poste... )
Code:
#PB_Material_SpecularColor = 1
#PB_Material_AmbientColor  = 2

; IncludeFile #PB_Compiler_Home + "examples/3d/Screen3DRequester.pb"

Define.f KeyX, KeyY, MouseX, MouseY

#CameraSpeed  = 1
#RobotMesh    = 0
#RobotTexture = 0
#Robot        = 0
 
If InitEngine3D()

  Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Textures", #PB_3DArchive_FileSystem)
  Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Models", #PB_3DArchive_FileSystem)
   
  InitSprite()
  InitKeyboard()
  InitMouse()
 
;   If Screen3DRequester()
    OpenScreen(1920, 1080, 32, "Sprite")
    LoadMesh   (#RobotMesh   , "robot.mesh")
    LoadTexture(#RobotTexture, "clouds.jpg")
   
    CreateMaterial(0, TextureID(#RobotTexture))
   
    CreateEntity(#Robot, MeshID(#RobotMesh), MaterialID(0))
    SetEntityMaterial(#Robot, MaterialID(0))
   
;     StartEntityAnimation(#Robot, "Walk")
   
    DisableMaterialLighting(0, 0)
   
     SetMaterialColor(0, #PB_Material_AmbientColor, RGB(0, 0, 0))
     SetMaterialColor(0, #PB_Material_SpecularColor, RGB(0, 0, 0))
    SetMaterialColor(0,#PB_Material_SelfIlluminationColor, RGB(0, 0, 0))
    ScrollMaterial(0, 0.15, 0, 1)
       
    CreateLight(0, RGB(255,255,255),0, 0, 100,#PB_Light_Spot )
    SpotLightRange(0, 30, 35)
     RotateLight(0, 90, 0, 0, #PB_Relative )
;     SetLightColor(0, #PB_Light_SpecularColor, RGBA(255, 255, 255,255))
   
    CreateCamera(0, 0, 0, 100, 100)
    MoveCamera(0, 0, 40, 150)
;     CameraBackColor(0, RGB(0, 0, 128))
     
    Repeat
;       Screen3DEvents()
     
      If ExamineMouse()
        MouseX = -MouseDeltaX() * #CameraSpeed * 0.05
        MouseY = -MouseDeltaY() * #CameraSpeed * 0.05
      EndIf
     
      If ExamineKeyboard()
     
        If KeyboardPushed(#PB_Key_Left)
          KeyX = -#CameraSpeed
        ElseIf KeyboardPushed(#PB_Key_Right)
          KeyX = #CameraSpeed
        Else
          KeyX = 0
        EndIf
       
        If KeyboardPushed(#PB_Key_Up)
          KeyY = -#CameraSpeed
        ElseIf KeyboardPushed(#PB_Key_Down)
          KeyY = #CameraSpeed
        Else
          KeyY = 0
        EndIf
       
      EndIf
         
      RotateEntity(#Robot, 0, 1, 0, #PB_Relative)
      Debug LightYaw(0, #True)
      ;        RotateLight(0, LightPitch(0, #False),  LightYaw(0, #False)-1, LightRoll(0, #False))
      RotateLight(0, LightPitch(0, #False),  LightYaw(0, #False)+1, LightRoll(0, #False))

       RotateCamera(0, MouseY, MouseX, 0, #PB_Relative)
      MoveCamera  (0, KeyX, 0, KeyY)
     
      RenderWorld()
;       Screen3DStats()
      FlipBuffers()
    Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1
  EndIf
   
; Else
;   MessageRequester("Error", "The 3D Engine can't be initialized", 0)
; EndIf
 
End


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Drehung von licht (LightYaw und RotateLight)
BeitragVerfasst: 03.03.2018 10:50 
Offline
Benutzeravatar

Registriert: 21.08.2006 17:39
Hi,

kann gerade nicht wirklich nachgucken, aber idR wird bei Programmiersprachen
auf das Bogenmaß zurückgegriffen (0 bis 2pi statt 0 bis 360deg).

edit: in dem Fall wird jedoch deg genutzt (musste jetzt doch nachsehen :D). nvm ...

edit2:

Das was du suchst, sind die Eulerwinkel:
http://wiki.ogre3d.org/Euler+Angle+Class
http://planning.cs.uiuc.edu/node102.html


MFG
MIB

_________________
(hab alles, kann alles, weiß alles!!^^)

Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Drehung von licht (LightYaw und RotateLight)
BeitragVerfasst: 03.03.2018 12:55 
Offline

Registriert: 13.08.2016 12:53
vielen vielen dank man-in-black

in der Hoffnung das ich das richtig verstanden habe ...


+/-90grad und eine andere Achse mit +/-90grad =360grad

da man bei 180 grad ja genau die Rückseite hat ... und somit die anderen 180 grad ...


vielen dank nochmal man-in-black

ps: es wäre schon wenn so was in der Hilfe von pb stehen würde (mit evtl besser Beschreibung als ich das...)... kann man so was irgendwie dafür vorschlagen ?


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye