Priv's Blog

촉각 렌더링 시스템 본문

Dev. Study Note/VR Introduction

촉각 렌더링 시스템

Priv 2025. 1. 21. 23:34


 

 

1. 촉각 렌더링 시스템

촉각 렌더링 시스템은 앞서 살펴보았던 시각, 청각 렌더링 시스템과 비교했을 때 구현 난도가 가장 높은 렌더링 시스템이다.

촉각 디스플레이는 HCI(Human-Computer Interfaces) 분야에서 유일하게 수신과 송신을 동시에 처리해야 하는 분야로 알려져 있다.

이는 대부분의 촉각 피드백은 대상과의 직접적인 접촉을 통해서 생성되며, 체험자와 대상 사이의 양방향 상호작용이 촉각 피드백 성립의 필수 조건이기 때문이다.

여기서 다루는 촉각은 손으로 사물을 밀었을 때 느껴지는 저항감에 따른 강도 및 무게의 감지, 피부를 통해 느껴지는 온도, 사물의 표면을 만졌을 때 느껴지는 질감과 마찰 등 인간이 사물과 접촉했을 때 감지할 수 있는 모든 감각을 포함한다.

이를 바탕으로 촉각의 종류를 아래와 같이 구분해 볼 수 있다.

- 피부 감각 기반 (Skin-based): 온도, 압력, 표면의 질감, 진동, 전기 자극, 마찰 등을 감지

- 운동 감각 기반 (Muscle/Joint-based): 사물의 형태, 무게, 위치, 움직임 등을 감지

피부 감각과 운동 감각 모두 서로 긴밀하게 상호작용하는 특징이 있으나, 감지하는 감각의 종류는 조금씩 다르다.

피부 감각은 온도, 질감 등 피부와 사물이 접촉했을 때 감지할 수 있는 요소들을 감지하며, 운동 감각은 무게와 같이 근력을 사용해 사물과 상호작용할 때 지각할 수 있는 요소들을 감지한다.

이는 다시 말해서 촉각 렌더링 시스템을 구축할 때도 두 가지 종류의 렌더링 시스템(피부 감각 기반 렌더링 시스템, 운동 감각 기반 렌더링 시스템)을 함께 구현해야 한다는 것을 의미한다.

촉각 렌더링 시스템을 구현할 때는 다른 렌더링 시스템보다도 훨씬 더 엄격하게 레이턴시 문제를 다루어야 한다.

촉각은 가상 세계와 체험자 사이의 상호작용을 기반으로 구현되기 때문에 프레임 속도가 지연되면 가상 세계에 대한 '감각'을 저하시키거나, 촉각 디스플레이 그 자체를 불안정하게 만들 수 있다.

시각 렌더링 시스템에서 프레임 속도가 지연되면 이미지가 움직이는지, 정지해 있는지 인식하는 수준에만 영향을 미쳤던 것과 크게 다른 모습을 보여준다.

즉, 벽돌 이미지를 시스템이 아무리 더디게 렌더링 한다고 해도, 결국 우리는 벽돌을 벽돌이라고 인지하고 있으며 그것이 부자연스럽다 할지라도 벽돌이라고 인지한 결과까지 영향을 미치지는 않는다.

하지만 벽돌을 만졌을 때 느껴지는 마찰과 무게, 질감 등을 렌더링 하는 속도가 더뎌지거나 불안정해지면 이게 정말 벽돌인지 얼음인지 뭔지 촉각 피드백을 통해 우리가 대상을 인지하는 결과까지도 영향을 받게 된다는 것이다.

 


 

2. 촉각 렌더링 기법

촉각 렌더링 기법은 촉각 피드백을 감지하는 감각의 종류(피부 자극, 운동 자극)에 따라서 달라지게 된다.

 

2.1. 진동 촉각

진동 촉각은 진동 모터 하나만 있어도 구현이 가능하기 때문에 가장 단순하고 저렴한 촉각 렌더링 기법이며, 소형화도 쉬워서 이미 스마트폰이나 게임 컨트롤러와 같은 다양한 장비에 널리 보급되어 사용되고 있다.

하지만 활시위를 당기거나 빗방울이 떨어지는 것처럼 완성도 높고 복잡한 수준의 진동 촉각을 구현하기 위해서는 시간의 흐름에 따른 변화를 섬세하게 구현해야 하기 때문에 그만큼 더 많은 기술과 방법을 요구한다.

진동 촉각 렌더링 기법을 활용하는 대표적인 예시인 택터 디스플레이(Tactor Display)를 살펴보면 텍터의 구조가 스피커 드라이버와 유사한 형태를 띠고 있음을 알 수 있다.

시간의 흐름에 따라 변화하는 신호를 받아서 택터가 그에 적합한 파형의 진동을 생성하는 것이다.

다른 촉각 디스플레이와 마찬가지로 택터 디스플레이를 활용해 넓은 영역에 촉각 피드백을 가하고 싶다면 여러 개의 택터가 요구된다.

 

2.2. 피부 압력

압력을 재현하기 위해 지금까지 연구된 방법으로는 공기주머니 또는 핀 배열을 사용하는 방법으로 나눠진다.

두 가지 방법 모두 피부와 디스플레이 장치가 물리적으로 접촉해야 한다는 공통점을 지닌다.

- 핀 기반 압력 렌더링 기법: 수많은 핀을 이용해서 일종의 돌기처럼 표면의 형태를 본뜬 형태로 압력을 재현한다. 핀의 크기는 용도에 따라서 다양하게 조정할 수 있다. 크기가 상대적으로 큰 핀을 활용하면 무언가를 잡는듯한 느낌을 줄 수 있을 것이다.

- 공기주머니 압력 렌더링 기법: 공기주머니라는 용어를 사용하긴 했지만, 꼭 공기만 넣으라는 법은 없다. 액체를 넣거나 공기보다 더 가벼운 다른 기체를 넣어서 원하는 압력을 자유롭게 표현할 수 있다. 다만 무엇을 주머니에 넣는다 해도 이 기술을 정교하게 구현할 수 있는 방법은 아직 연구 중인 단계이며, 현재는 가속도에 따른 압박감(자동차/비행기 등)을 구현하는 형태로 주로 사용되고 있다.

 

2.3. 표면 텍스처

표면 텍스처를 렌더링 할 때도 앞서 언급한 핀 기반 렌더링 기법이 활용된다.

체험자의 신체가 표면에 직접 접촉하여 마찰감, 굴곡 등 표면 텍스처를 감지할 수 있게 하는 것으로, 이러한 텍스처 질감은 신체를 표면에 접촉한 상태에서 움직여야 제대로 느낄 수 있기 때문에 체험자의 신체 움직임에 따라 표면 텍스처의 변화까지 구현할 수 있어야 한다.

아쉽게도 이 분야 또한 압력 렌더링 기법과 마찬가지로 여전히 연구 중인 단계에 머물러 있다.

- 마찰 기반 텍스처 렌더링 기법: 마찰 수준을 제어할 수 있는 재료를 사용해 체험자의 신체 움직임을 트래킹 하고 이에 따른 마찰 수준을 변화시켜 구현한다. 표면 질감에 대한 정보는 시각 이미지 렌더링에서 사용되는 범프 맵(Bumb Map) 형태로 제공할 수 있을 것이다.

- 움직임 감쇠 기반 텍스처 렌더링 기법: 체험자의 움직임을 방해하는 형태로 마찰을 일으켜서 텍스처를 렌더링 하는 기법이다. 체험자의 움직임에 일종의 '저항'을 거는 방식으로, 원리와 기법은 조금 다르지만 PS5의 게임 컨트롤러인 'DuelSense'의 적응형 트리거가 총기의 탄 걸림 또는 방아쇠 압력에 따라 트리거 버튼의 강도를 제어하는 모습을 떠올려보면 이해하기 쉽다.

 

2.4. 온도(열) 렌더링

온도 렌더링은 생각보다 구현하는 난이도 자체는 매우 낮다.

쉽게 말해서 겨울마다 그리워지는 전기장판을 떠올려보면 된다.

피부가 닿는 접촉 부위에 열을 낼 수 있는 장치를 내장하고 필요에 따라 온도를 조절하기만 하면 된다.

다만 체험자의 안전과 직결되는 렌더링 기법이기 때문에 활용 시에 주의가 필요하다.

 

2.5. 환경 효과 (4D 효과)

환경 효과는 체험자 주변의 환경 그 자체를 구현하는 것으로, 다양한 효과를 구현하기 위에 그만큼 다양한 디스플레이를 요구하는 렌더링 기법이다.

체험자 주변에서 불어오는 바람을 구현하고 싶다면 그만한 풍량을 낼 수 있는 선풍기가 필요할 것이며, 렌더링 시스템은 언제 어디서 얼마나 강한 바람이 체험자에게 불어올 것인지를 결정해서 선풍기를 그에 맞게 활용할 수 있어야 한다.

간단하게 환경 효과를 구현하고자 한다면 아마 태양을 구현하는 것이 가장 쉬울 것이다.

태양은 체험자 머리 위에서 비치는 광원(온도 렌더링 기법도 함께 적용된)의 위치와 강도를 조절해주기만 하면 되기 때문이다.

만약 체험자가 움직이게 되면 그에 따라 환경 효과를 구현하는 디스플레이의 위치와 각도 등도 변화해야 하기 때문에 구현 난도가 더욱 올라가게 된다.

체험자를 따라다니면서 적재적소에 디스플레이를 배치할 수 있도록 로봇 팔을 활용해 소품이나 디스플레이 등을 배치하는 ROSD(Robotically Operated Shape Displays)를 활용하는 것도 방법이 될 수 있다.

 

2.6. 포스(운동 감각) 렌더링

포스 렌더링은 체험자가 만지고 있는 사물의 표면을 통과할 수 없도록 하여 실제로 그 사물이 존재한다고 느끼게 만드는 렌더링 기법이다.

즉, '사과는 이 정도 힘으로 세게 쥐어도 우그러지지 않을 정도로 충분히 단단하다'는 판단 하에 우리가 사과의 형태를 띤 사물을 손에 쥐었을 때, 그러한 판단을 만족시키는 수준의 운동 감각을 제공하는 것이다.

포스 렌더링은 체험자의 신체에 직접적으로 피드백을 가하기보다는 다른 도구를 통해서 간접적으로 피드백을 가하는 경우가 많다.

스타일러스 펜을 손에 쥔 상태로 표면 질감을 느낀다거나, 저항감, 진동 등을 감지하는 방식인데 이러한 방식이 구현하기도 훨씬 쉬울뿐더러 이러한 방식으로 제공되는 피드백으로도 우리는 충분히 그러한 피드백을 납득할 수 있기 때문이다.

- 단일 접점 (3-DOF 출력): 스타일러스 펜처럼 사물과 접촉하는 지점이 한 개뿐인 방식이다. 포스 디스플레이는 단일 접점을 통해서 피드백을 가하긴 하지만 토크(회전)에 대한 피드백은 가하지 않는다.

- 토크까지 포함한 단일 접점 (6-DOF 출력): 이 방식은 토크에 대한 피드백까지 가하는 방식이다. 촉각 피드백을 언급할 때 자주 등장했던 분자 결합 시뮬레이션을 다시 떠올려보면 두 분자 사이에 존재하는 힘의 크기와 방향 등을 온전하게 전달해야 할 필요가 있다. 이러한 복잡한 상호작용을 구현하기 위해 사용되는 포스 렌더링 기법으로, 그만큼 일반적인 단일 접점 방식보다 더 복잡하고 다양한 부가 장치가 요구될 것이다.

 

2.7. 힘을 사용하는 단순화된 형상 렌더링 모델

촉각 피드백을 활용한 상호작용의 컴퓨터 시뮬레이션은 다른 렌더링 시스템과 마찬가지로 제한된 수준의 디테일만 표현할 수 있다.

이 때문에 기본적으로 실시간 렌더링이 가능할 정도로 충분히 단순한 표현이 필요하지만, 그와 동시에 애플리케이션이 요구하는 수준의 충분한 정보도 포함하고 있어야 한다.

이러한 한계를 극복하기 위해 추상화된 형태의 데이터를 활용하여 촉각 피드백을 시뮬레이션하는 것이다.

촉각 디스플레이가 렌더링해야 하는 '이미지'를 전달하기 위해서 필요한 정보의 양을 단순화하는 방법으로는 아래와 같이 크게 다섯 가지로 나눠진다.

 

2.7.1. 스프링(Spring) 및 대시포트(Dashpot) 모델

시스템이 프로브(probe)와 가상 세계 속 표면 사이의 방향, 장력, 댐핑(damping)을 제어할 수 있는 모델이다.

대시포트는 진동이나 운동을 제어하고 감쇠하는 용도의 기계적 장치를 일컫는데, 크게 실린더 안에 피스톤이 들어있는 형태로 구성되어 유체나 공기의 저항을 활용해 운동 에너지를 흡수하는 방식이다.

일반적으로 진동과 충격의 흡수, 속도 제어 용도로 사용되며 자동차 서스펜션이나 산업용 기계 등에서 쉽게 찾아볼 수 있다.

현실 세계 속에서 스프링과 대시포트가 어떻게 상호작용하는지를 정의하는 방정식을 가상 세계에 적용한다면, 체험자와 오브젝트 간의 물리적 상호작용을 시뮬레이션할 수 있을 것이다.

 

2.7.2. 포인트(Point) 및 플레인(Plane) 모델

위 사진처럼 프로브(여기서는 구형 물체)와 평면 오브젝트가 직교하도록 배치하고, 체험자가 평면 오브젝트의 표면과 접촉함으로써 촉각 피드백을 감지하는 형태의 모델이다.

체험자와 접촉한 평면 오브젝트는 두 번째 사진처럼 프로브의 표면을 따라 이동할 수 있어 오브젝트의 표면 텍스처를 시뮬레이션할 수 있게 해 준다.

이 모델은 구조상 점성이 높은 유체를 통과하는 듯한 움직임까지는 시뮬레이션하는 것이 불가능하다는 단점이 존재한다.

여기서 사용되는 평면 오브젝트의 수를 늘림으로써 가상의 표면적을 늘리게 되면 멀티플 플레인 모델(Multiple Plane)이 된다.

멀티플 플레인 모델을 사용하게 되면 위 사진처럼 구처럼 이어진 곡률이 아닌 각이 있는 코너까지 렌더링 할 수 있게 된다.

 

2.7.3. 포인트 투 포인트(Point to Point) 모델

두 지점 사이에 위치한 스프링의 힘을 방정식을 활용해 표현하는 스프링 모델이다.

이는 일반적으로 변동이 심한 힘이 가해지는 환경에서 안정성을 유지하려는 모습을 표현하기 위해 사용된다.

이 모델은 보편적인 상황에서 사용되는 일반적인 모델이기보다는 복잡한 물리적 상호작용, 계산량이 많아 실시간 구현이 어려운 경우에 임시적으로 사용되는 모델에 가깝다.

예를 들어 렐리 카를 타고 비포장 도로를 질주하는 환경을 렌더링 하고 있다고 가정해 보자.

운전석에 앉아있는 체험자에게 가해지는 수없이 다양한 종류의 충격과 진동은 전달되는 속도가 빠르기도 빠르지만, 물체의 탄성, 경도, 반발력 등이 매우 복잡하게 얽혀서 실시간으로 연산해 구현하기에는 큰 무리가 있다.

이러한 문제를 극복하기 위해 자동차의 서스펜션의 스프링 원리를 포인트 투 포인트 모델로 단순화하여 스프링(서스펜션)의 수축/이완 과정에서 발생하는 힘과 진동을 근사적으로 시뮬레이션하여 표현하는 방법을 사용할 수 있다.

 

2.7.4. 멀티스프링(Multispring) 모델

물체를 회전시키는 힘을 의미하는 토크(Torque)를 렌더링 하기 위해 사용되는 모델로, 여러 개의 스프링을 디스플레이 끝부분에 둘러싸듯이 배치하여 회전에 의해 발생하는 촉각 피드백을 구현할 수 있다.

 

2.8. ROSD를 활용한 형상 렌더링

ROSD, 즉 로봇을 활용하여 촉각 렌더링을 구현하는 방법으로, 로봇 팔을 활용해서 체험자가 현재 상호작용하고 있는(또는 해야 하는) 사물(미리 준비된 소품)을 적재적소에 배치하는 것이다.

여기서 가장 중요한 것은 체험자가 가상 세계 속에서 본 사물의 위치와 현실 세계에서 로봇이 배치하는 사물의 위치가 동일해야 하며, 체험자가 가상 경험을 수행하는 동안에는 로봇의 존재가 지각되지 않도록 해야 한다는 것이다.

 

2.9. 관성 및 저항 효과

관성 및 저항 효과는 촉각 디스플레이에 마찰 및 점성, 모멘텀의 특성을 추가한 것이다.

관성과 저항 모두 움직임에 의해서 발생하는 촉각 피드백으로, 접촉한 두 사물의 재질과 상태, 형태 등에 따라 규모나 방향 등이 달라질 수 있다.

이러한 효과는 체험자가 질량이 큰 오브젝트의 속도를 늦추거나 움직이게 하는 등 물리적인 상호작용을 경험할 때 현실감을 더해줄 수 있다.

 

2.10. 오류 보정

오류 보정은 촉각 디스플레이가 가상 세계의 법칙을 위반할 때 작동하게 된다.

대부분 촉각 디스플레이의 레이턴시가 체험자의 속도를 따라가지 못해서 체험자가 사물을 뚫어버린다거나, 가해져야 하는 피드백의 수준이 충분하지 않았을 때 주로 발생한다.

생각보다 이러한 오류가 발생하는 경우는 드물지 않은데, 일반적으로 시스템은 방향성을 지닌 강력한 힘을 가해서 체험자를 문제가 없는 가장 가까운 지점에 강제로 되돌려놓는 방식으로 오류를 보정한다.

 

2.11. 3D 하드카피 (3D Hard Copy)

3D 하드카피는 '소품과 VR' 파트를 다루었을 때 이미 한 번 언급한 방법이다.


 

소품(Props)과 VR

1. 프랍(Prop)게임, 영화, 애니메이션 등 그래픽 관련 분야에서 다루는 '프랍(Prop)'이란, 일종의 소품을 의미한다.범위도 매우 다양하여 '하드 서페이스 프랍(Hard Surface Prop)'과 '소프트 서페이스 프

arainablog.tistory.com


가상 세계 속 사물을 본뜬 실제 소품을 3D 프린터기 등을 활용해 직접 만들어 사용하는 것이다.

이는 촉각 렌더링 분야에서 가장 쉽고 빠르고 직관적으로 촉각 피드백을 구현할 수 있는 확실한 방법이다.

다행히도 3D 프린팅 기술이 보급화되기 시작하면서 접근성 또한 빠르게 개선되고 있으며, 소품에 각종 센서나 보조적인 촉각 디스플레이(진동 모터, 열선 등)를 추가하여 완성도를 끌어올리는 시도도 이어지고 있다.

 


 

3. 포스(Force) 디스플레이를 활용한 복잡한 촉각 렌더링 기법

촉각을 렌더링을 할 때는 앞서 언급한 것처럼 레이턴시 문제를 매우 엄격하게 다루어야 하기 때문에 복잡한 수준의 촉각 렌더링을 구현하기에는 아직까지 현실적으로 큰 무리가 있다.

복잡한 촉각을 실시간 렌더링으로 구현하고자 한다면 이러한 어려움은 더더욱 커지는데, 렌더링 된 오브젝트들의 느낌을 일관되게 유지하고자 한다면 높은 수준의 프레임 레이트가 요구되기 때문이다.

사실적인 촉각 렌더링의 복잡도는 VR 경험에서 허용되는 물리적 접촉이 어느 정도인지에 따라 달라지게 된다.

단순한 사물의 형태만 제시한다고 가정하면, 위 사진처럼 스타일러스 펜을 사용해 사물과 접촉하는 방식으로 구현해도 충분할 것이다.

하지만 아래 사진처럼 사물을 손에 쥐고, 움직이고, 던지는 등 다양한 물리적 상호작용까지 모두 구현하고자 한다면, 훨씬 더 많은 양의 운동 감각 정보(탄력, 질감, 무게, 표면의 굴곡 등)를 체험자에게 제공해야 할 것이다.

 

3.1. 운동 통제

체험자의 운동(움직임)을 통제함으로써 촉각 상호작용 범위를 제한하는 것이다.

위 사진처럼 복강경 수술을 재현하기 위한 VR 장비를 떠올려보면 위 또는 아래로만 움직일 수 있는 1-DOF를 지니고 있다.

이러한 경우에 1-DOF 이상의 움직임을 허용하게 된다면 오히려 몰입감과 현실감을 떨어트리는 부작용이 발생할 것이다.

 

3.2. 토크 생성

체험자가 가한 힘을 가지고 토크를 생성하는 방법이다.

예를 들어, 3-DOF 포스 디스플레이(조작 장치)의 끝단에 바늘 대체물을 부착하고, 그 바늘이 마네킹의 특정 지점을 통과하도록 제약을 걸면, 조작 장치의 좌우 및 상하 움직임이 바늘을 삽입 지점(피벗 지점)을 기준으로 회전하게 되어 바늘에 토크가 제공될 것이다.

 

3.3. 핀칭(Pinching)

핀칭은 두 개의 3-DOF 포스 디스플레이가 결합되는 형태를 하고 있으며, 이 장치를 집개발처럼 조작하도록 설계하여 어떠한 사물을 잡을(Pinch) 수 있도록 만드는 것이다.

핀칭은 5-DOF를 보장할 수 있는데, 그 이유는 위 그림처럼 어떠한 사물을 집게처럼 집었을 때를 생각해 보면 이해하기 쉽다.

위 그림에서 체험자가 사물을 움직일 때는 3-DOF가 보장되지만, 회전할 때는 2-DOF만 보장된다는 것을 알 수 있다.

 

3.4. 다중 접점

다중 접점은 쉽게 말해서 인간의 손으로 사물을 집는 상황을 표현하는 것이다.

즉, 체험자와 오브젝트 사이에 여러 개의 접촉점을 가지는 상황을 의미한다.

이 경우, 체험자가 집어든 사물이 어떠한 공간이나 다른 사물에 부착되어 있는 경우를 제외하면 6-DOF를 보장하는 것이 일반적이다.

 


 

4. 촉각 렌더링 프로세스

촉각 렌더링은 시각 이미지 렌더링, 청각 렌더링과 비교했을 때 훨씬 난도가 높은 편에 속한다.

촉각 렌더링은 체험자와 오브젝트 사이의 상호작용을 중점적으로 다루기 때문에 가상 세계에 대한 데이터는 물론, 가상 세계를 채우고 있는 사물들에 대한 데이터도 요구한다는 점, 레이턴시 문제에 대해 더 엄격하다는 점, 입력과 출력이 공존하는 특징, 시각/청각으로 표현되는 세계보다 더 완전한 세계의 모델의 필요성 때문이라고 볼 수 있다.

스타일러스 펜과 같이 기본적인 엔드 이펙터(End-Effector)를 사용할 경우의 촉각 렌더링 프로세스를 간략하게 살펴보면 아래와 같다.

- 체험자가 엔드 이펙터(여기서는 스타일러스 펜)를 원하는 위치로 가져가고, 디스플레이 하드웨어가 엔드 이펙터의 각도를 감지해 보고한다.

- 포스 시뮬레이터가 보고된 각도 값을 기반으로 순방향 운동학 방정식을 적용해 새로운 위치를 연산한다.

- 가상의 오브젝트와 접촉이 발생하였는지를 시뮬레이션을 통해 파악한다.

- 만약 접촉이 발생하였으며, 엔드 이펙터가 가상 오브젝트 쪽으로 이동하였다면 오브젝트의 표면에서 접촉이 발생한 지점이 어디인지를 시뮬레이션을 통해 파악한다.

- 시뮬레이션을 통해 파악한 엔드 이펙터와 가상의 오브젝트가 접촉한 가상의 지점을 기준으로 해당 오브젝트가 밀리려면 어떤 힘이 얼마나 필요한지를 연산한다.

- 계산된 힘의 방향으로 엔드 이펙터를 이동시키기 위해 어떻게 액츄에이터(모터)를 활성화할 것인지를 결정하기 위한 운동학적 연산을 수행한다.

- 필요한 엔드 이펙터 움직임에 준해서 모터에 전류를 공급한다.

 

4.1. 촉각 렌더링 하드웨어/소프트웨어

아쉽게도 촉각 렌더링 하드웨어는 아직 그렇게 많지가 않다.

촉각 렌더링 디스플레이도 개발이 시작된 지 얼마 되지 않았으며, 그나마 활용되고 있는 장비도 대부분 진동 촉각 분야에 집중되어 있는 것이 현실이다.

촉각 렌더링의 레이턴시 문제에 대한 엄격함에 대응하기 위해서는 사운드 렌더링에서 언급되었던 DSP처럼 별도의 아키텍처를 도입해 사용하는 것도 하나의 방법이 될 수 있다.

촉각 렌더링용 소프트웨어 라이브러리도 하드웨어와 사정이 크게 다르지 않다.

포스 디스플레이를 제어하는 용도로 마련된 것이 대부분이며, 온도나 바람과 같은 환경 조건을 제어하기 위한 cy.PIPES API가 존재하긴 하지만, 공기주머니나 온도 등 다양한 촉각 디스플레이를 범용적으로 다룰 수 있는 API는 아직 만들어지지도 않았다.

그래도 시간이 흐르면서 촉각 렌더링 시스템에 대한 관심과 기술이 함께 발전하면서 OpenHaptics, QuickHaptics API, HLAPI, GHOST 등 다양한 API가 계속 등장하고는 있으며, 의료 훈련 시뮬레이션 분야에서는 촉각 렌더링 시스템에 대한 수요가 꾸준히 존재하기 때문에 해당 분야로 접근하면 OpenSurgSim, Chai3D와 같이 더 많은 정보와 기술들을 찾아볼 수 있다.

 

4.2. 햅틱 애셋 인코딩

촉각 정보를 저장한 애셋을 활용하기 위한 공통 포맷을 만드는 일은 거의 없었으나, 그럼에도 햅틱 애셋을 만들어 사용할 필요는 있기 때문에 햅틱 애셋 인코딩 사례 자체는 존재한다.

더 정확하게 표현하자면 햅틱 애셋은 사운드 애셋처럼 진동 촉각 디스플레이에 사용되는 파형을 저장하는 것이다.

햅틱 애셋을 생성할 때도 사운드 렌더링, 비주얼 렌더링과 마찬가지로 레코딩(베이킹)하는 방식을 사용할 수 있으며 여기서도 상당히 합리적인 선택지로 기능한다.

또 다른 방법으로는 비주얼 표현에 의지하는 것이다.

촉각을 시뮬레이션한다고 생각해 보면 색상과 같은 시각적인 표현과 무관하다고 생각하기 쉽지만 전혀 그렇지 않다.

자신이 만진 물체가 손을 벨 정도로 날카롭거나 뜨거울 때 붉은색 계열의 색상을 활용하여 위험을 알리는 연출을 사용한다거나, 몸을 짓누르는 정도로 매우 빠르게 움직이는 속도감을 표현할 때는 시야가 흐려지는 듯한 연출이나 FOV를 왜곡하여 뒤로 쭉 빨려 들어가는 듯한 연출을 사용하는 것이다.

햅틱 비트맵(Haptic bitmaps)은 텍스처나 온도와 같은 표면의 특징을 저장하는 비트맵으로, 아직 보편화는 되지 않았으나, 비주얼 비트맵과 마찬가지로 활용도가 높기 때문에 점차 보편화될 것이라 예상된다.

비주얼 비트맵에서 촉각 렌더링과 가장 연관성이 있을 것이라 예상해 볼 수 있는 '범프 맵'을 떠올려보면, 시각 이미지를 렌더링 할 때 음영 차이를 통해 텍스처만으로 표면의 거침과 굴곡 등을 표현한 방법과 마찬가지로 촉각 렌더링용 '범프 맵'을 활용하면 사물의 표면 텍스처 정보를 쉽게 적용/제작/편집할 수 있을 것이다.

더 나아가보자면, 표면의 온도를 색상으로 표현하는 용도로 사용되는 히트 맵(Heat Map)을 온도 렌더링에 활용하는 방안도 구상해 볼 수 있다.

 


 

5. 촉각 렌더링 방법

앞서 살펴본 바와 같이 촉각 렌더링에는 다음과 같은 세 가지 방법이 존재한다.

- 레코딩 데이터(베이킹) 활용: 저장 및 재생이 가능한 형태의 햅틱 애셋을 활용해 구현하는 방법.

- 실험적 방법: 올바른 형태로 촉각이 표현될 때까지 수정 및 테스트를 반복하며 값을 조정해 나가는 방법.

- 물리적 시뮬레이션 활용: 물리 법칙에 근거하여 직접 연산한 데이터를 활용해 매개변수를 조정해 구현하는 방법.

다른 렌더링 시스템과 다르게 촉각 렌더링 시스템의 경우, 가장 합리적이라고 말할 수 있는 레코딩 데이터 활용법부터 난관에 봉착하기 쉽다.

촉각을 레코딩하면 된다고 말하지만, 도대체 어떻게 레코딩해야 한단 말인가?

진동은 단순히 진동의 강도와 시간만으로 구현이 가능하기 때문에 레코딩이 쉽겠지만, 가위를 벌렸다 오므리는 동작을 햅틱 애셋으로 저장하고자 한다면 어떤 데이터를 어떻게 저장해야 할까?

다양한 재료를 자르는 가위 한 개의 반응력을 측정한 다음, 재료를 절단하는 데 필요한 힘을 레코딩했다면 가위로 절단할 수많은 재료들마다 필요한 힘이 달라질 텐데 그렇다면 얼마나 많은 레코딩 데이터를 준비해야 할까?

실험적 방법 또한 만만치 않은 것은 마찬가지이다.

어느 감각이 자연스럽고 현실적인 감각인지는 주관적인 기준이므로 사람마다 만족감이 달라지기 마련이고, 적정한 수치를 찾기 위해 수정과 테스트를 반복하는 과정은 절대 시간 비용이 저렴하다고 볼 수 없기 때문이다.

물리 시뮬레이션 활용법은 촉각 렌더링이 레이턴시 문제에 매우 엄격하다는 점 때문에 문제가 될 수 있다.

앞으로 이루어질 컴퓨팅 성능의 발전과 더불어 DSP와 같은 별개의 아키텍처가 등장한다면 보다 쉽게 문제를 해결할 수 있겠지만, 현재는 실시간으로 물리 시뮬레이션을 활용해 촉각 피드백을 완전히 구현하는 것은 사실상 불가능하다.

 


 


수고하셨습니다!


'Dev. Study Note > VR Introduction' 카테고리의 다른 글

VR과 상호작용  (0) 2025.01.22
기타 감각 렌더링 시스템  (0) 2025.01.21
사운드 렌더링 시스템  (0) 2025.01.20
비주얼 렌더링 시스템  (0) 2025.01.15
렌더링 시스템  (0) 2025.01.12
Comments