Comments (2)
The desktop WASD and mouse controls just exist to simulate where the player's head would be if there is nothing to actually track. If you want to disable this for desktop, you can change t.modules.headset
to false
in lovr.conf. You can check if the current driver is desktop with lovr.headset.getDriver.
from lovr.
There are at least two approaches. One would be to ignore the player's head moving through walls, but design the experience so that player cannot really take advantage of it - for example using really thick walls and restricting locomotion to teleportation-only. You could also teleport player back if they go too far into the wall. This approach can be done using the physics engine and the colliders (or at least sensor shapes) to detect when collision with wall happens. Details would depend on your overall concept and how the locomotion fits inside it.
The second approach is to actively block the head from moving into the wall. You have to be careful thought, because you usually want to keep 1:1 relation between real world head movement and VR camera movement, or some people might experience disorientation or nausea otherwise. Gorilla Tag uses this approach, both the head and torso cannot ever penetrate the wall. The basic gist is that you use a sphere collider to represent the head, and fixate the camera on this sphere. This gets quite tricky because the sphere position and orientation is controlled from three sources: the head movement, the physics collision response, and the VR locomotion system.
This is actually not an easy problem. It's good to keep it in mind when designing the VR environment.
from lovr.
Related Issues (20)
- VK_ERROR_OUT_OF_DEVICE_MEMORY when loading a 55MB model HOT 4
- Sphere Test and Box Test for lovr.physics HOT 5
- Format Support Should Consider sRGB vs. Linear Formats HOT 1
- Wrong coordinate origin HOT 5
- Depth-Only Rendering Improvements HOT 2
- cannot draw user interface after lauch HOT 10
- App crashes when reloading model HOT 1
- Clearing Buffers to values other than zero HOT 1
- Torus is invisible when its thickness is zero HOT 4
- On macOS, mouse position is affected by DPI HOT 2
- On macOS, error message size is affected by DPI
- Multiple Animated Poses Per Model HOT 4
- High Resolution Sleep on Windows HOT 1
- Model:clone fixups
- Fixed Timestep Physics Interpolation HOT 1
- Pass:draw(Texture) is missing bounding box
- [SteamVR] Overlay closes main app (t.headset.overlay) HOT 1
- Declare Vulkan Requirement in Android Manifest HOT 1
- World:raycastClosest and World:raycastAny HOT 1
- Expose Build Info HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from lovr.