So in popular games like Ratchet & Clank and Grand Theft Auto, when the player flies out of the map and keeps going further and further away, the character and all the vertices start to 'vibrate' more and more until the character is unrecognizable... Why does that happen?
Why do 3D game player characters start to morph when out of map bounds?
164 Views Asked by Adam At
1
There are 1 best solutions below
Related Questions in GRAPHICS
- How to fix "Access violation executing location" when using GLFW and GLAD
- Why is the value of `gl_FragCoord.z` is always 0.5?
- A way to warp an image based on a map
- Spacing out overlapping rectangles: how to translate pseudocode?
- 3D graph in Rstudio (time vs intensity vs coefficient)
- I want to create a creative website based on my project. I am new in this field
- Color each field in a mosaic plot in R
- How to convert raw RGB luminance using OCIO
- CPU Ray Tracer finds intersection for only a certain setup
- How do I dynamically change vertex colors using Direct3d 12 and Visual C++?
- Python Mediapipe replace chest pose landmark lines with custom image
- I was following Computer Graphics from Scratch -- Getting distorted spheres
- Convert coordinates in android
- Python Mediapipe replace pose landmark line drawings with custom image drawings
- Is there a way to automatically export OpenOffice/LibreOffice drawings to bitmaps, with options?
Related Questions in 3D
- Issues with a rotation gizmo and sign flips when converting back to euler angles
- coded one, but renderer renders two 3D models in three.js
- WorldToScreen function
- Sweep shape along 3D path in Python
- How to add another panel or window to the open3d.visualization.O3DVisualizer class? (In python open3d)
- How to estimate the memory size of a binary voxelized geometry?
- LibGDX Normal Textures Not Showing Up in 3D (Blender) Model Java
- A way to warp an image based on a map
- 3D surface won't show data on plotly
- Creating 3D python data from index sums of 2D data
- 3D graph in Rstudio (time vs intensity vs coefficient)
- Combining multiple plots with mayavi
- JavaFX 3D API does not work on all Android deivces
- Manual retargeting - How to compute target pose bone positions correctly?
- How do I dynamically change vertex colors using Direct3d 12 and Visual C++?
Related Questions in GAME-ENGINE
- How can I get the inverse Transformation of in 2D
- Making mixins similar to FabricMC in Rust
- How to find the rotation of a quaternion along each of the 3 axes separately?
- Runge Kutta implementation is less accurate than Euler implementation
- Viewport namespace missing from SharpDX directive, please assist
- I’m not drawing cards from my decklist/JSON
- Unable to find GL_INT_2_10_10_10_REV define on Android GLES
- OpenGL moving objects have black trail
- Anyone else notcing delays of shared d3dtexture2D betweeen two processes?
- Flask Socket-IO custom objects getting added regardless of client action
- CLANG:"__declspec(dllimport) cannot be applied to a non-inline function" error in my C Program
- Game engine spawning objects from externally specified classes
- Grappling/Swinging System in Godot 4 3D
- Ursina Python Engine: Question about the Lighting System
- Confused about how Rotation works in vulkan
Related Questions in GAME-PHYSICS
- How would I code player jump physics, similar to "soccer physics", and make players collide with a ball in pygame?
- AI and Game physics
- How do I detect for collisions without immediately resolving them in Godot 3D?
- How to find the rotation of a quaternion along each of the 3 axes separately?
- Unity's HingeJoints: Door changes starting Position and AngleLimits on play mode
- Paddle and Ball Sync Problem in Multiplayer Air Hockey in Godot
- Movement value is reset before it can get cancelled by a UnityEvent
- How to make two kinematic objects in Unity detect overlap?
- Jump height and Gravity not consistent with fluctuating FPS (flappybird-like Javascript minigame)
- Game Collision Detection - Separating Axis Theorem Collision Resolution Issue
- Aligning mesh to a dynamic rapier 3D rigidbody
- Player looks like teleporting instead of moving smoothly when camera damping is enabled GODOT
- Collision Detection works only with two objects
- This Unity Jumping & Gravity script is a mess, how can I fix it?
- Grappling/Swinging System in Godot 4 3D
Related Questions in GAME-DEVELOPMENT
- Physics.OverlapSphere couldn't detect my ‘Player’
- Dots and Boxes with apha-beta pruning
- Cannot sync non-player objects in Unity mirror
- Calling an event with a delay in Roblox Studio. How to do?
- writing event_management in unity
- Variable in Python going up by more than 1 at a time
- Can I pre-scale and cache Images?
- Preventing the ball from moving after restarting the game in Raylib C++
- Pixi.JS Collision detection
- Player update vs world update module in game development
- JComponent added to JPanel doesn't appear?
- How to apply the margin UI image to the end of screen as given in image, Unity?
- Points system in Unity not working. I want to count points but make both objects disappear and it's not working
- How do I launch my game on steam via script?
- Grid-like lines in my procedurally generated mesh
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
My guess would be that it is due to floating point inaccuracy. As the character goes further away from the origin of the map, the (x, y) coordinates of its vertices (that are most likely single-precision floating points), get bigger and bigger.
The issue here is that single-precision floating points are only able to represent correctly around 7 correct significant digits in decimal representation. Hence, if the x position of the character starts to approach 10,000,000, all the vertices that are between 10,000,000 and 10,000,001 will actually be snapped to the same x value (the closest value representable in single-precision floating-point). This "snapping" (or "rounding error") is what cause the vertices not to be displayed at the intended position, and hence creating artefact such as vibrating, or huge deformation that makes the character not recognizable anymore.