Search Unity

  1. Looking for a job or to hire someone for a project? Check out the re-opened job forums.
    Dismiss Notice
  2. We are looking for your feedback about Templates! Tell us about your experiences by taking our survey.
    Dismiss Notice
  3. Good news ✨ We have more Unite Now videos available for you to watch on-demand! Come check them out and ask our experts any questions!
    Dismiss Notice

Screen tearing on screen but not in recording

Discussion in 'General Graphics' started by R-Stevo, Jan 16, 2021.

  1. R-Stevo

    R-Stevo

    Joined:
    May 19, 2019
    Posts:
    6
    Hi there Unity Community,

    I built and ran my 3D shooter which has a simple cube, a house from the asset store and a 3d character.

    The character has regular movement and camera movement that you would expect from a 3D shooter.

    When I test the game in the editor and the built version I get really bad screen tearing when running left and right whilst rotating the camera. I tried recording this to show on the forums because I assumed it was game engine related, however in the recording the tearing doesn't seem to be present.

    When I say tearing, I am referring to the vertical lines running down the side of the building and cube "jittering" and visibly showing parts of the lines from the previous frames.

    My setup:

    Display: Acer KG221Q 75 Hertz
    CPU: AMD Ryzen 5 1600
    RAM: 16GB running at 2400mhz
    GPU: NVIDIA 1080 ROG Strix
    HDD: 1GB Samsung 980 NVME drive

    All other games run perfectly fine, such as Fortnite, World of Warcraft, Rocket League and so on.

    I have tried VSync enabled/disable in the editor and in NVIDIA settings.

    I have tried manually limiting FPS to 30 and 60 via script.

    I have turned the quality settings down to medium in the editor.

    I have no idea what else to try and why this would be occurring in this game and no other.

    Does anyone have any suggestions?

    Thanks.
     
  2. R-Stevo

    R-Stevo

    Joined:
    May 19, 2019
    Posts:
    6
    Solved the problem.

    I wouldn't usually answer my own questions but I think this could help someone in the future.

    It turns out that any camera movement should be completed inside of LateUpdate().

    As stated in the Unity Docs:

    "LateUpdate is called after all Update functions have been called. This is useful to order script execution. For example a follow camera should always be implemented in LateUpdate because it tracks objects that might have moved inside Update."

    https://docs.unity3d.com/ScriptReference/MonoBehaviour.LateUpdate.html
     
unityunity