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

4.6 KiB

id, title, category, status, canonical_id, aliases, duplicate_of, source_trust_level, confidence_score, verification_status, tags, raw_sources, last_reinforced, github_commit, tech_stack
id title category status canonical_id aliases duplicate_of source_trust_level confidence_score verification_status tags raw_sources last_reinforced github_commit tech_stack
wiki-2026-0508-시각-전정-충돌-visual-vestibular-confl 시각-전정 충돌 (Visual-vestibular conflict) 10_Wiki/Topics verified self
Visual-vestibular conflict
Sensory conflict
VR motion sickness
none A 0.9 applied
vr
perception
hci
motion-sickness
2026-05-10 pending
language framework
csharp 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)

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)

XrFoveationLevelFB level = XR_FOVEATION_LEVEL_HIGH_FB;
xrUpdateFoveationFB(session, &foveationProfile);
// Reduces GPU load → enables 120Hz on mobile HMD → less conflict

Motion-to-photon measurement

# 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)

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)

// 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

🤖 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 패턴 추가