KR20160075066A - 기존 대화형 3d 컴퓨터 그래픽 응용프로그램에 햅틱 입출력 기능을 부가하기 위한 햅틱 플러그인 시스템 및 방법 - Google Patents

기존 대화형 3d 컴퓨터 그래픽 응용프로그램에 햅틱 입출력 기능을 부가하기 위한 햅틱 플러그인 시스템 및 방법 Download PDF

Info

Publication number
KR20160075066A
KR20160075066A KR1020140184564A KR20140184564A KR20160075066A KR 20160075066 A KR20160075066 A KR 20160075066A KR 1020140184564 A KR1020140184564 A KR 1020140184564A KR 20140184564 A KR20140184564 A KR 20140184564A KR 20160075066 A KR20160075066 A KR 20160075066A
Authority
KR
South Korea
Prior art keywords
depth map
haptic
module
rendering
dll
Prior art date
Application number
KR1020140184564A
Other languages
English (en)
Other versions
KR101651023B1 (ko
Inventor
박진아
송덕재
Original Assignee
한국과학기술원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국과학기술원 filed Critical 한국과학기술원
Priority to KR1020140184564A priority Critical patent/KR101651023B1/ko
Publication of KR20160075066A publication Critical patent/KR20160075066A/ko
Application granted granted Critical
Publication of KR101651023B1 publication Critical patent/KR101651023B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/016Input arrangements with force or tactile feedback as computer generated output to the user
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs

Abstract

본 발명은 기존에 개발되어 있는 대화형 3차원 컴퓨터 그래픽스 응용프로그램에 추가적인 소스코드 작업 없이 햅틱 장비를 사용한 피드백 힘 렌더링을 사용할 수 있도록 해 준다. 본 발명은 오늘날 확립되어 있는 OpenGL 또는 Direct3D 기반의 실시간 3차원 컴퓨터 그래픽스의 내부 구조를 활용하여 깊이맵을 추출하는 기법을 포함한다. 이로 인해 햅틱 렌더링 알고리즘 구현에 필요한 깊이 정보를 다양한 그래픽스 렌더링 환경에서 추출해 내고 사용할 수 있다. 본 발명은 두 개의 서로 다른 소프트웨어 모듈 간에 깊이맵을 끊어짐 없이 전송하는 기법을 포함한다. 이 기법은 햅틱 렌더링 알고리즘을 수행하는 모듈에서 데이터 입출력 문제에 대한 추가적인 고려 없이 사용자에게 충분한 촉감을 제공할 수 있는 1000Hz 의 햅틱 렌더링을 구현할 수 있도록 해 준다.

Description

기존 대화형 3D 컴퓨터 그래픽 응용프로그램에 햅틱 입출력 기능을 부가하기 위한 햅틱 플러그인 시스템 및 방법{A HAPTIC PLUG-IN SYSTEM AND METHOD FOR IMPLEMENTING HAPTIC PLUG-IN FOR EXISTING INTERACTIVE 3D COMPUTER GRAPHICS APPLICATIONS}
본 발명은 기존 대화형 3D 컴퓨터 그래픽 응용프로그램에 햅틱 입출력 기능을 부가하기 위한 방법에 관한 것으로, 보다 상세하게는, 기존에 개발된 OpenGL 또는 Direct3D 기반의 실시간 대화형 3차원 컴퓨터 그래픽스 응용프로그램에서 깊이맵을 추출하고 다른 프로세스에 전송하여 소스코드 작업 없이도 햅틱 렌더링 구현을 가능하게 하는 방법에 대한 것이다.
햅틱 피드백을 제공하는 가상환경을 구축하고자 하는 경우 일반적으로 그래픽 렌더링은 직접 구현하거나 혹은 그래픽 렌더링 기능을 제공하는 미들웨어(엔진)를 기반으로 햅틱 렌더링 기능을 추가하는 형태를 띄게 된다. 그래픽 렌더링 엔진에 햅틱 렌더링 기능을 추가할 때에는 햅틱 렌더링 알고리즘은 직접 구현하거나 혹은 기존에 존재하는 햅틱 라이브러리를 사용하여 이를 그래픽 렌더링 엔진에 통합하게 된다. 이 때 소스코드가 제공되지 않는 그래픽 렌더링 엔진이라면 작업 자체가 불가능하게 되어 버린다. 또한 소스코드 작업이 가능한 경우라 하더라도 사용하고자 하는 그래픽 렌더링 엔진의 코드 구조에 따라서 실질적인 기능 구현의 난이도가 증가하거나 혹은 코드 버전 관리의 복잡도를 증가시키게 될 소지가 있다. 그러나 햅틱 렌더링에 필요한 데이터 자체는 이미 그래픽 렌더링 프로그램의 렌더링 파이프라인상에 존재하고 있으므로 이것을 사용하여 특별한 프로그래밍 작업 없이 간단하게 햅틱 렌더링 기능을 사용할 수 있도록 하여야 한다.
다른 그래픽 렌더링 프로그램의 데이터를 추출해서 햅틱 렌더링에 사용하기 위해서는 해당 프로그램의 공통적인 구조를 파악하여 필요한 데이터가 있는 지점을 잘 선정할 수 있어야 하며 또한 분리된 프로세스 간에 끊어짐이 없는 데이터 전송이 가능하도록 해야 한다.
한편, 본 발명에 관한 선행기술문헌 목록은 다음과 같다.
[문헌1] Brandon D. ItkoWitz, Loren C. Shih, Marc Douglass Midura, Joshua E. Handley, William Alexander Goodwin, "US Patent 7990374: Apparatus and Methods for Haptic Rendering Using Data in a Graphics Pipeline", SensABLE Technologies, Inc., 2005 [문헌2] Galen Hunt and Doug Brubacher, "Detours: Binary Interception of Win32 Functions", in Third USENIX Windows NT Symposium, USENIX, July 1999 [문헌3] Shahzad Rasool, Alexei Sourin, "Haptic Interaction with 2D Images", VRCAI, 2011
본 발명에 따른 기존 대화형 3D 컴퓨터 그래픽 응용프로그램에 햅틱 입출력 기능을 부가하기 위한 방법은, 다수의 OpenGL 또는 Direct3D 기반 실시간 3D 그래픽 응용프로그램에서 깊이맵 추출이 가능하게 하고, 이를 추가적인 성능 저하 없이 햅틱 렌더링을 실행하는 모듈로 전송할 수 있는 햅틱 플러그인 시스템 및 방법을 제공하는 것을 그 목적으로 한다.
전술한 목적을 달성하기 위한 본 발명의 일 실시예에 따른 햅틱 플러그인 방법은, 실행 모듈에 의해 대화형 3차원 컴퓨터 그래픽스 응용프로그램인 타겟 응용프로그램에 API(Application Program Interface)를 가로채는 DLL(Dynamic Linking Library) 모듈을 침투시키는 단계, 깊이맵을 추출하는 단계, 추출한 깊이맵을 DLL 모듈을 침투시킨 실행모듈로 전송하는 단계, 전송된 깊이맵으로 햅틱 렌더링을 실행하는 단계, 햅틱 장치 입력 위치를 타겟 프로그램 화면에 시각화하거나 마우스 입력으로 모의하는 단계를 포함할 수 있다.
또한, 본 발명의 일 실시예에 따른 햅틱 플러그인 방법에서, 깊이맵을 추출하는 단계는, 일차적인 장면 렌더링이 끝난 후 후처리를 목적으로 렌더타겟을 교체하는 시점에 깊이맵을 추출할 수도 있고, 일차적인 장면 렌더링이 끝난 후 후처리를 목적으로 렌더타겟을 교체하면서 그 전에 명시적으로 렌더타겟을 클리어하는 시점에 깊이맵을 추출할 수도 있다.
그리고, 본 발명의 일 실시예에 따른 햅틱 플러그인 방법에서, 추출한 깊이맵을 DLL 모듈을 침투시킨 실행모듈로 전송하는 단계는, 실행 모듈과 DLL 모듈에 깊이맵 크기의 버퍼를 두 개씩 두고 매번 역할을 교대하여 비동기적으로 깊이맵을 전송할 수 있으며, 이 경우, DLL 모듈에서는 두 개의 버퍼가 각각 깊이맵 추출과 전송 역할을 교대하여 수행할 수 있고, 실행 모듈에서는 두 개의 버퍼가 각각 전송된 깊이맵 수신과 햅틱 렌더링 역할을 교대하여 수행할 수 있다.
한편, 본 발명의 다른 실시예에 따른 햅틱 플러그인 시스템은, API(Application Program Interface)를 가로채는 DLL(Dynamic Linking Library) 모듈, 및 기존에 개발된 대화형 3차원 컴퓨터 그래픽스 응용프로그램인 타겟 응용프로그램에 DLL 모듈을 침투시키는 실행 모듈을 포함할 수 있고, 여기서, DLL 모듈은, 깊이맵을 추출하고 추출한 깊이맵을 실행모듈로 전송할 수 있고, 실행 모듈은 전송된 깊이맵으로 햅틱 렌더링을 실행할 수 있으며, 햅틱 장치 입력 위치가 타겟 응용프로그램 화면에 시각화하거나 마우스 입력으로 모의될 수 있다.
또한, 본 발명의 다른 실시예에 따른 햅틱 플러그인 시스템에서, DLL 모듈은, 일차적인 장면 렌더링이 끝난 후 후처리를 목적으로 렌더타겟을 교체하는 시점에 상기 깊이맵을 추출할 수도 있고, 일차적인 장면 렌더링이 끝난 후 후처리를 목적으로 렌더타겟을 교체하면서 그 전에 명시적으로 렌더타겟을 클리어하는 시점에 깊이맵을 추출할 수도 있다.
그리고, 본 발명의 다른 실시예에 따른 햅틱 플러그인 시스템에서, 실행 모듈과 DLL 모듈에 깊이맵 크기의 버퍼가 두 개씩 할당되고, 매번 역할을 교대하여 비동기적으로 깊이맵이 전송될 수 있고, 이 경우, DLL 모듈에서는 두 개의 버퍼가 각각 깊이맵 추출과 전송 역할을 교대하여 수행할 수 있고, 실행 모듈에서는 두 개의 버퍼가 각각 전송된 깊이맵 수신과 햅틱 렌더링 역할을 교대하여 수행할 수 있다.
본 발명에서 개시된 기술은 다음과 같은 효과를 가질 수 있다. 다만, 특정 실시예가 다음의 효과를 전부 포함하여야 한다거나 다음의 효과만을 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
본 발명에 따른 햅틱 플러그인 방법 및 시스템은, 다수의 OpenGL 또는 Direct3D 기반 실시간 3D 그래픽 응용프로그램에서 깊이맵 추출이 가능하게 하고, 또한, 이를 추가적인 성능 저하 없이 햅틱 렌더링을 실행하는 모듈로 전송할 수 있다. 결과적으로, 이렇게 전송받은 깊이맵을 기존에 개발된 깊이맵 기반 햅틱 렌더링 알고리즘에 적용하면 1000 Hz의 안정적인 햅틱 피드백 반응을 이끌어낼 수 있다.
도 1은 본 발명의 일 실시예에 따른 햅틱 플러그인 시스템과 타겟 3D 응용 프로그램을 포함하는 전체 시스템의 개략도이다.
도 2는 도 1의 전체 시스템을 단순화하여 나타낸 것이다.
도 3은 OpenGL API를 중심으로 깊이맵 추출 가능 시점을 나타낸 것이다.
도 4는 DLL 모듈로부터 실행 모듈로의 비동기 더블-버퍼 깊이맵 전송을 나타낸 것이다.
도 5는 본 발명의 일 실시예에 따른 햅틱 플러그인 시스템의 구동 화면을 나타낸 것이다.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 일 실시예에 따른 햅틱 플러그인 시스템과 타겟 3D 응용 프로그램을 포함하는 전체 시스템의 개략도이며, 도 2는 이를 간략화하여 나타낸 것이다. 도 1 및 도 2를 참조하면, 본 발명의 일 실시예에 따른 햅틱 플러그인 시스템은 실행 모듈과 DLL 모듈을 포함하며, 실행 모듈에 의해 DLL 모듈이 타겟 3D 응용프로그램으로 침투된다(DLL injection). 즉, 본 발명의 일 실시예에 따른 햅틱 플러그인 시스템은 독립적인 실행 모듈과 타겟 응용 프로그램에 침투시키는 DLL 모듈의 양 자가 서로 통신을 하며 작동하는 환경을 기반으로 한다. 또한, 여기에 DLL 모듈을 침투시키는 목적지인 OpenGL 또는 Direct3D 기반 3D 그래픽스 응용프그램이 있어야 전체적인 시스템이 동작하게 된다. 다만, 본 발명은 OpenGL API와 Direct3D API의 경우 모두에 적용될 수 있으나, 이하의 실시예에서는 OpenGL API인 경우를 중심으로 서술하도록 한다.
도 3은 OpenGL API를 중심으로 깊이맵 추출 가능 시점을 나타낸 것으로, 이를 참조하면, 타겟 3D 응용프로그램에 침투한 DLL 모듈은 깊이맵을 추출해 내기 위해 OpenGL의 그래픽스 파이프라인 혹은 그래픽스 렌더링 상의 특정 지점에서 깊이맵을 추출해 내는 OpenGL 함수를 호출한다.
구체적으로, 본 발명의 일 실시예에 따른 햅틱 플러그인 시스템에서, 깊이맵의 추출이 가능한 시점은 다음과 같다.
첫째, 프레임 종료 시점으로서, 기본적인 그래픽스 렌더링 구조에서는 프레임 렌더링을 완료하고 후면 버퍼를 교체함과 동시에 디스플레이 장치에 결과를 보이는 것을 명시하는 시점에서 깊이버퍼에 그려진 깊이맵을 추출할 수 있다.
둘째, 렌더타겟을 교체하는 시점으로서, 일차적으로 렌더링이 완료된 이미지를 사용해서 이미지 프로세싱을 하거나 혹은 지연 렌더링 같은 렌더링 구조를 사용하는 경우 도중에 화면 크기의 사각형을 그리면서 깊이값이 덮어씌워질 수 있다. 이런 동작은 렌더타겟을 교체하면서 시작되므로 렌더타겟을 교체하는 시점에 깊이맵 추출을 시도할 수 있다. 단, 이때에 몇 번째 교체 시점에 추출할 것인가 하는 것은 사용자가 지정할 수 있다.
셋째, 렌더타겟 텍스쳐를 클리어하는 시점으로서, 전술한 렌더타겟을 교체하는 시점과 마찬가지 구조에서 렌더타겟을 교체할 때에 명시적으로 깊이버퍼를 클리어 하게 될 수 있다. 만일 렌더타겟 교체 직전에 깊이버퍼를 클리어 한다면 교체 시점에 깊이맵을 추출해도 소용이 없고 클리어 시점에 깊이맵 추출을 시도해야 한다. 이때에도 마찬가지로 몇 번째 교체 시점에 추출할 것인가 하는 것은 사용자가 지정할 수 있다.
본 발명의 일 실시예에 따른 햅틱 플러그인 시스템에서는 전술한 3가지의 깊이맵 추출 시점을 사용자가 선택할 수 있도록 하였다. 이는 단일 응용프로그램 안에서는 일정하거나 혹은 크게 변함이 없을 것이므로 응용프로그램 별로 설정될 수 있다.
한편, 본 발명의 일 실시예에 따른 햅틱 플러그인 시스템에서, 실행 모듈과 DLL 모듈에 깊이맵 크기의 버퍼가 두 개씩 할당되고, 매번 역할을 교대하여 비동기적으로 깊이맵이 전송될 수 있고, 이 경우, DLL 모듈에서는 두 개의 버퍼가 각각 깊이맵 추출과 전송 역할을 교대하여 수행할 수 있고, 실행 모듈에서는 두 개의 버퍼가 각각 전송된 깊이맵 수신과 햅틱 렌더링 역할을 교대하여 수행할 수 있는데, 도 4는 이러한 DLL 모듈로부터 실행 모듈로의 비동기 더블-버퍼 깊이맵 전송을 나타낸 것이다.
DLL 모듈로부터 추출해 낸 깊이맵을 실행모듈로 끊어짐없이 전송하기 위해 양쪽 모듈에 같은 크기의 버퍼를 각각 두 개씩 두고 비동기적인 전송을 실행한다. DLL 모듈에서는 두 개의 버퍼가 각각 깊이맵 추출과 전송 역할을 교대하며 수행하고 실행 모듈에서는 두 개의 버퍼가 각각 전송된 깊이맵 수신과 햅틱 렌더링 역할을 번갈아가며 수행한다. 이로써, DLL 모듈로부터 추출해 낸 깊이맵을 실행모듈로 끊어짐없이 전송할 수 있다.
한편, 본 발명의 다른 실시예에 따른 햅틱 플러그인 방법은, 실행 모듈에 의해 대화형 3차원 컴퓨터 그래픽스 응용프로그램인 타겟 응용프로그램에 API(Application Program Interface)를 가로채는 DLL(Dynamic Linking Library) 모듈을 침투시키는 단계, 깊이맵을 추출하는 단계, 추출한 깊이맵을 DLL 모듈을 침투시킨 실행모듈로 전송하는 단계, 전송된 깊이맵으로 햅틱 렌더링을 실행하는 단계, 햅틱 장치 입력 위치를 타겟 프로그램 화면에 시각화하거나 마우스 입력으로 모의하는 단계를 포함할 수 있으며, 여기에서, 깊이맵을 추출하는 단계는, 일차적인 장면 렌더링이 끝난 후 후처리를 목적으로 렌더타겟을 교체하는 시점에 깊이맵을 추출할 수도 있고, 일차적인 장면 렌더링이 끝난 후 후처리를 목적으로 렌더타겟을 교체하면서 그 전에 명시적으로 렌더타겟을 클리어하는 시점에 깊이맵을 추출할 수도 있다. 그리고, 본 발명의 다른 실시예에 따른 햅틱 플러그인 방법에서, 추출한 깊이맵을 DLL 모듈을 침투시킨 실행모듈로 전송하는 단계는, 실행 모듈과 DLL 모듈에 깊이맵 크기의 버퍼를 두 개씩 두고 매번 역할을 교대하여 비동기적으로 깊이맵을 전송할 수 있으며, 이 경우, DLL 모듈에서는 두 개의 버퍼가 각각 깊이맵 추출과 전송 역할을 교대하여 수행할 수 있고, 실행 모듈에서는 두 개의 버퍼가 각각 전송된 깊이맵 수신과 햅틱 렌더링 역할을 교대하여 수행할 수 있다.
이상 설명한 실시예에서는 OpenGL 기반 실시간 3D 그래픽 응용프로그램을 위주로 설명하였으나, 본 발명에 따른 햅틱 플러그인 방법 및 시스템은 Direct3D 기반 실시간 3D 그래픽 응용프로그램에서도 적용이 가능하다.
상술한 바와 같은 본 발명에 따른 햅틱 플러그인 방법 및 시스템은, 다수의 OpenGL 또는 Direct3D 기반 실시간 3D 그래픽 응용프로그램에서 깊이맵 추출이 가능하게 하고, 또한, 이를 추가적인 성능 저하 없이 햅틱 렌더링을 실행하는 모듈로 전송할 수 있다. 결과적으로, 이렇게 전송받은 깊이맵을 기존에 개발된 깊이맵 기반 햅틱 렌더링 알고리즘에 적용하면 1000 Hz의 안정적인 햅틱 피드백 반응을 이끌어낼 수 있다.
햅틱 장치의 입출력을 활용하는 가상현실을 구축할 때에 시각적인 현실성까지 보강할 필요가 대두된다면 그래픽스 렌더링을 직접 구현하는 것은 어려운 일이 될 수 있다. 이 때에 본 발명에 따른 햅틱 플러그인 방법 및 시스템은, 소스코드가 제공되지 않는 경우, 혹은 제공이 되더라도 미처 내부 구조를 파악할 여유가 없는 상태에서 기존 렌더링 엔진을 활용할 수 있는 가능성을 제시해 준다. 본 발명에 따른 햅틱 플러그인 방법 및 시스템에서는 햅틱 렌더링 출력을 도출하는 과정만을 서술하였지만 마찬가지 구조를 사용하여 타겟 프로그램의 마우스 입력 등을 햅틱 디바이스를 통해 모의하여 입력 또한 어렵지 않게 사용할 수 있다.
현 시점에서 가장 현실적인 이용가능성 하나는 기존에 개발된 게임이나 시뮬레이션 등에 햅틱 렌더링 기능을 추가하고자 할 때에 사전 평가를 위한 빠른 프로토타이핑이다. 실질적으로 햅틱 장치를 활용한 상세 기능 구상에 따라 소스코드 작업이 필요하다 하더라도 그러한 기능 구현의 가치나 가능성 등을 타진하기 위한 사전 평가는 중요하게 행해지고 있는 부분이며 본 발명은 그러한 상황에서 빠른 의사결정에 도움을 줄 수 있다.
이상에서 전술한 바와 같은 햅틱 플러그인 방법은 이를 구현하기 위한 프로그램 명령어로서 구현될 수 있으며, 이러한 프로그램 명령어를 기록한 컴퓨터로 읽힐 수 있는 기록매체는, 일 예로, ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 미디어 저장장치 등이 있다.
또한 전술한 바와 같은 프로그램을 기록한 컴퓨터로 읽힐 수 있는 기록매체는 네트워크로 커넥션된 컴퓨터 장치에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 이 경우, 다수의 분산된 컴퓨터 중 어느 하나 이상의 컴퓨터는 상기에 제시된 기능들 중 일부를 실행하고, 그 결과를 다른 분산된 컴퓨터들 중 하나 이상에 그 실행 결과를 전송할 수 있으며, 그 결과를 전송받은 컴퓨터 역시 상기에 제시된 기능들 중 일부를 실행하여, 그 결과를 역시 다른 분산된 컴퓨터들에 제공할 수 있다.
본 발명의 각 실시예에 따른 장치 및 방법을 구동시키기 위한 프로그램인 애플리케이션을 기록한 기록매체를 읽을 수 있는 컴퓨터는, 일반적인 데스크 탑이나 노트북 등의 일반 PC뿐 만 아니라, 스마트 폰, 태블릿 PC, PDA(Personal Digital Assistants) 및 이동통신 단말 등의 모바일 단말을 포함할 수 있으며, 이뿐만 아니라, 컴퓨팅(Computing) 가능한 모든 기기로 해석되어야 할 것이다.
이상에서, 본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성 요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 저장매체 (Computer Readable Storage Medium)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 컴퓨터 프로그램의 저장매체로서는 자기 기록매체, 광 기록매체, 등이 포함될 수 있다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (11)

  1. 실행 모듈에 의해 대화형 3차원 컴퓨터 그래픽스 응용프로그램인 타겟 응용프로그램에 API(Application Program Interface)를 가로채는 DLL(Dynamic Linking Library) 모듈을 침투시키는 단계;
    깊이맵을 추출하는 단계;
    상기 추출한 깊이맵을 상기 DLL 모듈을 침투시킨 상기 실행모듈로 전송하는 단계;
    상기 전송된 깊이맵으로 햅틱 렌더링을 실행하는 단계;
    햅틱 장치 입력 위치를 타겟 프로그램 화면에 시각화하거나 마우스 입력으로 모의하는 단계를 포함하는, 햅틱 플러그인 방법.
  2. 제 1 항에 있어서,
    상기 깊이맵을 추출하는 단계는, 일차적인 장면 렌더링이 끝난 후 후처리를 목적으로 렌더타겟을 교체하는 시점에 상기 깊이맵을 추출하는, 햅틱 플러그인 방법.
  3. 제 1 항에 있어서,
    상기 깊이맵을 추출하는 단계는, 일차적인 장면 렌더링이 끝난 후 후처리를 목적으로 렌더타겟을 교체하면서 그 전에 명시적으로 렌더타겟을 클리어하는 시점에 깊이맵을 추출하는, 햅틱 플러그인 방법.
  4. 제 1 항에 있어서,
    상기 추출한 깊이맵을 상기 DLL 모듈을 침투시킨 상기 실행모듈로 전송하는 단계는, 상기 실행 모듈과 상기 DLL 모듈에 깊이맵 크기의 버퍼를 두 개씩 두고 매번 역할을 교대하여 비동기적으로 깊이맵을 전송하는, 햅틱 플러그인 방법.
  5. 제 4 항에 있어서,
    상기 DLL 모듈에서는 두 개의 버퍼가 각각 깊이맵 추출과 전송 역할을 교대하여 수행하고,
    상기 실행 모듈에서는 두 개의 버퍼가 각각 전송된 깊이맵 수신과 햅틱 렌더링 역할을 교대하여 수행하는, 햅틱 플러그인 방법.
  6. 제 1 항 내지 제 5 항 중 어느 한 항에 따른 햅틱 플러그인 방법을 구현하기 위한 프로그램 명령어를 기록한 컴퓨터 판독가능 기록매체.
  7. 햅틱 플러그인 시스템으로서,
    API(Application Program Interface)를 가로채는 DLL(Dynamic Linking Library) 모듈; 및
    기존에 개발된 대화형 3차원 컴퓨터 그래픽스 응용프로그램인 타겟 응용프로그램에 상기 DLL 모듈을 침투시키는 실행 모듈을 포함하고,
    상기 DLL 모듈은, 깊이맵을 추출하고 상기 추출한 깊이맵을 상기 실행모듈로 전송하고,
    상기 실행 모듈은 상기 전송된 깊이맵으로 햅틱 렌더링을 실행하고,
    햅틱 장치 입력 위치가 상기 타겟 응용프로그램 화면에 시각화하거나 마우스 입력으로 모의되는, 햅틱 플러그인 시스템.
  8. 제 7 항에 있어서,
    상기 DLL 모듈은, 일차적인 장면 렌더링이 끝난 후 후처리를 목적으로 렌더타겟을 교체하는 시점에 상기 깊이맵을 추출하는, 햅틱 플러그인 시스템.
  9. 제 7 항에 있어서,
    상기 DLL 모듈은, 일차적인 장면 렌더링이 끝난 후 후처리를 목적으로 렌더타겟을 교체하면서 그 전에 명시적으로 렌더타겟을 클리어하는 시점에 깊이맵을 추출하는, 햅틱 플러그인 시스템.
  10. 제 7 항에 있어서,
    상기 실행 모듈과 상기 DLL 모듈에 깊이맵 크기의 버퍼가 두 개씩 할당되고, 매번 역할을 교대하여 비동기적으로 깊이맵이 전송되는, 햅틱 플러그인 시스템.
  11. 제 10 항에 있어서,
    상기 DLL 모듈에서는 두 개의 버퍼가 각각 깊이맵 추출과 전송 역할을 교대하여 수행하고,
    상기 실행 모듈에서는 두 개의 버퍼가 각각 전송된 깊이맵 수신과 햅틱 렌더링 역할을 교대하여 수행하는, 햅틱 플러그인 시스템.
KR1020140184564A 2014-12-19 2014-12-19 기존 대화형 3d 컴퓨터 그래픽 응용프로그램에 햅틱 입출력 기능을 부가하기 위한 햅틱 플러그인 시스템 및 방법 KR101651023B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140184564A KR101651023B1 (ko) 2014-12-19 2014-12-19 기존 대화형 3d 컴퓨터 그래픽 응용프로그램에 햅틱 입출력 기능을 부가하기 위한 햅틱 플러그인 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140184564A KR101651023B1 (ko) 2014-12-19 2014-12-19 기존 대화형 3d 컴퓨터 그래픽 응용프로그램에 햅틱 입출력 기능을 부가하기 위한 햅틱 플러그인 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20160075066A true KR20160075066A (ko) 2016-06-29
KR101651023B1 KR101651023B1 (ko) 2016-09-05

Family

ID=56365621

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140184564A KR101651023B1 (ko) 2014-12-19 2014-12-19 기존 대화형 3d 컴퓨터 그래픽 응용프로그램에 햅틱 입출력 기능을 부가하기 위한 햅틱 플러그인 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR101651023B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110021755A (ko) * 2008-05-12 2011-03-04 마이크로소프트 코포레이션 가상 데스크톱 뷰 스크롤
KR20130057200A (ko) * 2011-11-23 2013-05-31 삼성전자주식회사 햅틱 피드백 방법 및 장치, 기계로 읽을 수 있는 저장 매체 및 휴대용 통신 단말

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110021755A (ko) * 2008-05-12 2011-03-04 마이크로소프트 코포레이션 가상 데스크톱 뷰 스크롤
KR20130057200A (ko) * 2011-11-23 2013-05-31 삼성전자주식회사 햅틱 피드백 방법 및 장치, 기계로 읽을 수 있는 저장 매체 및 휴대용 통신 단말

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
[문헌1] Brandon D. ItkoWitz, Loren C. Shih, Marc Douglass Midura, Joshua E. Handley, William Alexander Goodwin, "US Patent 7990374: Apparatus and Methods for Haptic Rendering Using Data in a Graphics Pipeline", SensABLE Technologies, Inc., 2005
[문헌2] Galen Hunt and Doug Brubacher, "Detours: Binary Interception of Win32 Functions", in Third USENIX Windows NT Symposium, USENIX, July 1999
[문헌3] Shahzad Rasool, Alexei Sourin, "Haptic Interaction with 2D Images", VRCAI, 2011

Also Published As

Publication number Publication date
KR101651023B1 (ko) 2016-09-05

Similar Documents

Publication Publication Date Title
US10061552B2 (en) Identifying the positioning in a multiple display grid
US9971406B2 (en) Visually enhanced tactile feedback
US10552521B2 (en) Analyzing a click path in a spherical landscape viewport
US9460561B1 (en) Hypermodel-based panorama augmentation
CN103679792A (zh) 一种三维模型的渲染方法和系统
KR20180058895A (ko) 스마트 기기와 연동하는 증강현실 시스템 및 이를 이용한 증간현실 구현 방법
CN108595284B (zh) 一种纹理共享方法、计算机设备和存储介质
CN104133942A (zh) 智能3d生活数据云服务系统
KR101190456B1 (ko) 3차원 디지털 만화 뷰어 제공 시스템 및 그 방법
KR101651023B1 (ko) 기존 대화형 3d 컴퓨터 그래픽 응용프로그램에 햅틱 입출력 기능을 부가하기 위한 햅틱 플러그인 시스템 및 방법
KR101630257B1 (ko) 3d 이미지 제공 시스템 및 그 제공방법
CN104765680A (zh) 一种用于软件自动测试的方法及装置
Li et al. Modeling and visualization of underground structures
CN107291834A (zh) 一种基于可读码的信息输入方法、设备和终端
US10657705B2 (en) System and method for rendering shadows for a virtual environment
CN114020390A (zh) Bim模型显示方法、装置、计算机设备和存储介质
Huang et al. A binocular parallel rendering method for VR globes
Potts et al. Enhanced augmented/mixed reality and process safety applications
Sakurai et al. A middleware for seamless use of multiple displays
Huy et al. Virtual Reality Technology and Simulation Technology to Development of Smart Travelling in the Time of Industrial Revolution 4.0
CN103646427A (zh) 一种采集图像数据的方法及装置
CN114187408B (zh) 三维人脸模型重建方法、装置、电子设备及存储介质
CN110489083B (zh) 一种纹理共享的方法、计算机设备和存储介质
Zilizi et al. Challenges of developing mobile versions for high performance desktop VR applications
Croft et al. An Augmented Reality Command and Control Sand Table Visualization of the User Interface Prototyping Toolkit (UIPT)

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190725

Year of fee payment: 4