Wiki cleanup: error-doc removal, dedup merge, link normalization
10_Wiki/Topics 대규모 정리: - 오류 캡처/미완성 stub 문서 227개 제거 - 교차폴더 중복 43클러스터 병합 (63파일 → redirect) - 링크명 정규화: 깨진 링크 수정·redirect 직결·개념 매핑 ~2,400건 - 카테고리 MOC 6개 신규 생성 - Graph 섹션 미해결 related-keyword 링크 10,058건 제거 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -2,131 +2,26 @@
|
||||
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
|
||||
status: duplicate
|
||||
canonical_id: wiki-2026-0508-시각-전정-충돌-visual-vestibular-confl
|
||||
duplicate_of: "[[시각-전정 충돌(Visual-vestibular conflict)]]"
|
||||
aliases: []
|
||||
source_trust_level: A
|
||||
confidence_score: 0.9
|
||||
verification_status: applied
|
||||
tags: [vr, perception, hci, motion-sickness]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-10
|
||||
verification_status: redirected
|
||||
tags: [duplicate]
|
||||
last_reinforced: 2026-05-20
|
||||
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.
|
||||
> **이 문서는 [[시각-전정 충돌(Visual-vestibular conflict)]] 의 중복본입니다.** Canonical 문서로 redirect.
|
||||
|
||||
## 🔗 Graph
|
||||
- 부모: [[VR/AR]] · [[Perception]]
|
||||
- 변형: [[안구 운동 기능 Oculomotor functions]]
|
||||
- 응용: [[VR Locomotion]] · [[Cybersickness Mitigation]]
|
||||
- Adjacent: [[실재감 Presence]] · [[Motion-to-photon Latency]]
|
||||
- 부모: [[시각-전정 충돌(Visual-vestibular conflict)]] (canonical)
|
||||
|
||||
## 🤖 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 패턴 추가 |
|
||||
| 2026-05-20 | 중복 병합 — canonical 문서로 redirect |
|
||||
|
||||
Reference in New Issue
Block a user