1. 15 Jun, 2021 2 commits
  2. 14 Jun, 2021 1 commit
    • Josch Morgenstern's avatar
      [#42] refactor camera manager · 63a9167f
      Josch Morgenstern authored
      deletion of controllers and cameras no longer needed
      move window manipulation from controller to manager
      move calculation of lastx and lasty from controller to manager
      remove methods concering handling of cameraController vector
      add methods concerning management of camera vector
      63a9167f
  3. 13 Jun, 2021 1 commit
    • Vanessa Karolek's avatar
      [#42][Refactor] huge update - see body text · 1bd7ed1e
      Vanessa Karolek authored
      1) Now there is only one camera class (no inheritance anymore). Furthermore, the camera object is separated from camera controls and only manages camera specific information, such as the view matrix, projection matrix, the position, etc. Camera controls are now handled via camera controller objects.
      
      2) The CameraManager now manages an arbitrary number of camera controllers, such as PilotCameraController or TrackballCameraController (TraceCameraController will be implemented soon!). Before you can use a camera object in your render loop, you need to add at least one camera. You do not have to use a camera controller to render something, but you need to implement camera movements yourself... If you want to CONTROL a camera object, you can make use of the existing camera controller objects. To create a controller, you need to add a camera controller object to the camera manager and specify which camera should be used for this controller. You can change the bound camera whenever you like to. To switch between all existing camera controllers, you can use the active controller in the render loop and change the cycle between all camera controllers via Tab.
      See the example projects for an examplary application.
      
      3) Currently, events are only handled for the active camera controller.
      
      4) DISCUSSION: We use the 'new' keyword within the camera manager class. Unfortunately, we did not find any other way to create an object (such as the camera controller) inside the scope of one function and make use of the inheritance (only pointers seem to support this) or to refer to an object that updates everywhere where it is refered. To not lose the object at specified memory location, we need to create it via 'new' and ensure that all allocated objects are deleted within the destructor of the camera manager. Find this lines at the 'TODO' marked locations. If you have a better idea to solve this problem, please let us know. :)
      1bd7ed1e
  4. 07 Jun, 2021 1 commit
    • Vanessa Karolek's avatar
      [#42][Fix] fix up vector, camera coordinate system, depth · 9eb16366
      Vanessa Karolek authored
      Vulkan uses a left handed coordinate system. Thus, we need to define GLM_FORCE_LEFT_HANDED and adjust left and right movement of the camera.
      
      We also need to define GLM_DEPTH_ZERO_TO_ONE for the depth values which range between 0 and 1 in Vulkan.
      
      Although the up vector is pointing upwards again, it seems that the rendered scene is not flipped along y axis... is this correct?
      9eb16366
  5. 04 Jun, 2021 1 commit
  6. 01 Jun, 2021 1 commit
    • Vanessa Karolek's avatar
      [#42] add vertical movement via E and Q keys to Camera · 9300e837
      Vanessa Karolek authored
      Before, the camera object was just able to move along the xz plane. For vertical movement, you have to pan view and then use forward or backward movement to move up or down. This might be not so handy for the user.
      Now, you can use E to move up and use Q to move down (both along default world up vector).
      9300e837
  7. 30 May, 2021 1 commit
  8. 28 May, 2021 4 commits
  9. 27 May, 2021 2 commits
  10. 25 May, 2021 4 commits