Files
2nd/10_Wiki/Topics/Architecture/시각-전정_충돌(Visual-vestibular_conflict).md
T
2026-05-10 22:08:15 +09:00

133 lines
4.6 KiB
Markdown

---
id: wiki-2026-0508-시각-전정-충돌-visual-vestibular-confl
title: 시각-전정 충돌 (Visual-vestibular conflict)
category: 10_Wiki/Topics
status: verified
canonical_id: self
aliases: [Visual-vestibular conflict, Sensory conflict, VR motion sickness]
duplicate_of: none
source_trust_level: A
confidence_score: 0.9
verification_status: applied
tags: [vr, perception, hci, motion-sickness]
raw_sources: []
last_reinforced: 2026-05-10
github_commit: pending
tech_stack:
language: csharp
framework: unity-vr
---
# 시각-전정 충돌 (Visual-vestibular conflict)
## 매 한 줄
> **"매 눈은 매 움직임을 보지만 매 inner ear 는 매 정지 상태를 보고할 때 매 brain 의 매 mismatch → motion sickness"**. Reason & Brand 의 매 1975 sensory conflict theory. 매 2026 modern VR (Quest 4, Vision Pro 2) 은 매 90+ Hz refresh, foveated rendering, locomotion comfort options 으로 매 mitigation, but 매 root cause 매 미해결.
## 매 핵심
### 매 vestibular system
- **Semicircular canals**: 매 angular acceleration (회전).
- **Otolith organs (utricle, saccule)**: 매 linear acceleration + 매 gravity.
- **Brain integration**: 매 visual + vestibular + proprioception → 매 unified self-motion model.
### 매 conflict types in VR
- **Visual motion + vestibular still**: 매 cockpit / vehicle simulator → 매 cybersickness.
- **Visual still + vestibular motion**: 매 reading in moving car → 매 carsickness.
- **Mismatched magnitude**: 매 head-locked HUD 의 lag.
### 매 응용
1. VR locomotion design (teleport vs smooth).
2. Motion-to-photon latency budget (<20ms).
3. Vestibular adaptation training.
## 💻 패턴
### Comfort settings (Unity XR Toolkit)
```csharp
public class ComfortLocomotion : MonoBehaviour {
[SerializeField] LocomotionMode mode = LocomotionMode.Teleport;
[SerializeField] bool vignetteOnTurn = true;
[SerializeField] float snapTurnAngle = 30f;
public void Move(Vector2 input) {
if (mode == LocomotionMode.Teleport) {
if (input.magnitude > 0.5f) ShowTeleportArc();
} else {
if (vignetteOnTurn && Mathf.Abs(input.x) > 0.1f)
vignette.intensity.value = 0.6f;
transform.Translate(new Vector3(input.x, 0, input.y) * speed * Time.deltaTime);
}
}
}
```
### Foveated rendering hint (OpenXR)
```cpp
XrFoveationLevelFB level = XR_FOVEATION_LEVEL_HIGH_FB;
xrUpdateFoveationFB(session, &foveationProfile);
// Reduces GPU load → enables 120Hz on mobile HMD → less conflict
```
### Motion-to-photon measurement
```python
# High-speed camera (1000fps) measuring HMD pixel response
# vs IMU motion event timestamp
def m2p_latency(imu_events, pixel_changes):
paired = pair_nearest(imu_events, pixel_changes)
return np.median([p.pixel_t - p.imu_t for p in paired])
```
### Snap turn (reduces conflict vs smooth turn)
```csharp
void OnTurnInput(float x) {
if (Mathf.Abs(x) > 0.7f && Time.time - lastTurn > 0.3f) {
transform.Rotate(0, Mathf.Sign(x) * 30f, 0);
lastTurn = Time.time;
}
}
```
### Vignette during locomotion (tunneling)
```hlsl
// Fragment shader
float dist = distance(uv, float2(0.5, 0.5));
float v = smoothstep(0.3, 0.5, dist) * comfortIntensity;
color.rgb *= 1.0 - v;
```
## 매 결정 기준
| User profile | Recommended |
|---|---|
| 매 VR novice | Teleport + snap turn + tunneling |
| 매 experienced | Smooth + optional comfort |
| 매 cockpit (driving sim) | Fixed cockpit reference frame |
| 매 spectator (seated) | Forced FoV reduction during motion |
**기본값**: 매 teleport default + 매 snap-turn 30° + 매 tunneling on.
## 🔗 Graph
- 부모: [[VR/AR]] · [[Perception]]
- 변형: [[안구 운동 기능 Oculomotor functions]]
- 응용: [[VR Locomotion]] · [[Cybersickness Mitigation]]
- Adjacent: [[실재감 Presence]] · [[Motion-to-photon Latency]]
## 🤖 LLM 활용
**언제**: 매 comfort design 의 trade-off 설명 / 매 user instruction 작성.
**언제 X**: 매 medical diagnosis of vestibular disorder — 매 clinician 필수.
## ❌ 안티패턴
- **Forced smooth locomotion**: 매 onboarding 에서 매 novice 의 매 nausea.
- **Low refresh rate (<72Hz)**: 매 modern HMD 매 minimum 90Hz.
- **High latency (>30ms M2P)**: 매 conflict 매 magnify.
- **Camera control by game (cutscene with movement)**: 매 강한 sickness inducer.
## 🧪 검증 / 중복
- Verified (Reason & Brand 1975 *Motion Sickness*; LaViola et al. *3D User Interfaces 2e*; Meta XR Comfort Guidelines 2025).
- 신뢰도 A.
## 🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — sensory conflict theory + Unity XR comfort 패턴 추가 |