KR101651023B1 - A haptic plug-in system and method for implementing haptic plug-in for existing interactive 3d computer graphics applications - Google Patents

A haptic plug-in system and method for implementing haptic plug-in for existing interactive 3d computer graphics applications Download PDF

Info

Publication number
KR101651023B1
KR101651023B1 KR1020140184564A KR20140184564A KR101651023B1 KR 101651023 B1 KR101651023 B1 KR 101651023B1 KR 1020140184564 A KR1020140184564 A KR 1020140184564A KR 20140184564 A KR20140184564 A KR 20140184564A KR 101651023 B1 KR101651023 B1 KR 101651023B1
Authority
KR
South Korea
Prior art keywords
haptic
depth map
module
plug
dll
Prior art date
Application number
KR1020140184564A
Other languages
Korean (ko)
Other versions
KR20160075066A (en
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/en
Publication of KR20160075066A publication Critical patent/KR20160075066A/en
Application granted granted Critical
Publication of KR101651023B1 publication Critical patent/KR101651023B1/en

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 의 햅틱 렌더링을 구현할 수 있도록 해 준다.The present invention makes it possible to use feedback force rendering using a haptic device without additional source code operation in an existing interactive 3D computer graphics application program. The present invention includes a technique for extracting a depth map using an internal structure of real-time three-dimensional computer graphics based on OpenGL or Direct3D which is established today. Therefore, depth information required for haptic rendering algorithm implementation can be extracted and used in various graphics rendering environments. The present invention includes techniques for seamlessly transferring a depth map between two different software modules. This technique allows a module that performs a haptic rendering algorithm to implement a 1000 Hz haptic rendering that provides enough tactile feedback to the user without further consideration of data input / output problems.

Description

기존 대화형 3D 컴퓨터 그래픽 응용프로그램에 햅틱 입출력 기능을 부가하기 위한 햅틱 플러그인 시스템 및 방법{A HAPTIC PLUG-IN SYSTEM AND METHOD FOR IMPLEMENTING HAPTIC PLUG-IN FOR EXISTING INTERACTIVE 3D COMPUTER GRAPHICS APPLICATIONS}[0001] The present invention relates to a haptic plug-in system and method for adding a haptic input / output function to an existing interactive 3D computer graphics application,

본 발명은 기존 대화형 3D 컴퓨터 그래픽 응용프로그램에 햅틱 입출력 기능을 부가하기 위한 방법에 관한 것으로, 보다 상세하게는, 기존에 개발된 OpenGL 또는 Direct3D 기반의 실시간 대화형 3차원 컴퓨터 그래픽스 응용프로그램에서 깊이맵을 추출하고 다른 프로세스에 전송하여 소스코드 작업 없이도 햅틱 렌더링 구현을 가능하게 하는 방법에 대한 것이다.The present invention relates to a method for adding a haptic input / output function to a conventional interactive 3D computer graphics application program, and more particularly, to a method and a program for implementing a depth map in a real-time interactive 3D computer graphics application program based on OpenGL or Direct3D And transferring it to another process, thereby enabling a haptic rendering implementation without source code operation.

햅틱 피드백을 제공하는 가상환경을 구축하고자 하는 경우 일반적으로 그래픽 렌더링은 직접 구현하거나 혹은 그래픽 렌더링 기능을 제공하는 미들웨어(엔진)를 기반으로 햅틱 렌더링 기능을 추가하는 형태를 띄게 된다. 그래픽 렌더링 엔진에 햅틱 렌더링 기능을 추가할 때에는 햅틱 렌더링 알고리즘은 직접 구현하거나 혹은 기존에 존재하는 햅틱 라이브러리를 사용하여 이를 그래픽 렌더링 엔진에 통합하게 된다. 이 때 소스코드가 제공되지 않는 그래픽 렌더링 엔진이라면 작업 자체가 불가능하게 되어 버린다. 또한 소스코드 작업이 가능한 경우라 하더라도 사용하고자 하는 그래픽 렌더링 엔진의 코드 구조에 따라서 실질적인 기능 구현의 난이도가 증가하거나 혹은 코드 버전 관리의 복잡도를 증가시키게 될 소지가 있다. 그러나 햅틱 렌더링에 필요한 데이터 자체는 이미 그래픽 렌더링 프로그램의 렌더링 파이프라인상에 존재하고 있으므로 이것을 사용하여 특별한 프로그래밍 작업 없이 간단하게 햅틱 렌더링 기능을 사용할 수 있도록 하여야 한다.In order to construct a virtual environment for providing haptic feedback, graphic rendering is generally implemented directly or by adding a haptic rendering function based on a middleware (engine) that provides a graphic rendering function. When adding the haptic rendering function to the graphics rendering engine, the haptic rendering algorithm can be implemented directly or integrated into the graphics rendering engine using an existing haptic library. At this time, if the graphics rendering engine does not provide the source code, the operation itself becomes impossible. Even if source code operation is possible, there is a possibility that the difficulty of actual function implementation increases or the complexity of code version management increases depending on the code structure of the graphic rendering engine to be used. However, since the data itself required for haptic rendering already exists in the rendering pipeline of the graphics rendering program, it is necessary to use the haptic rendering function simply without special programming work.

다른 그래픽 렌더링 프로그램의 데이터를 추출해서 햅틱 렌더링에 사용하기 위해서는 해당 프로그램의 공통적인 구조를 파악하여 필요한 데이터가 있는 지점을 잘 선정할 수 있어야 하며 또한 분리된 프로세스 간에 끊어짐이 없는 데이터 전송이 가능하도록 해야 한다.In order to extract data from other graphics rendering programs and use it in haptic rendering, it is necessary to identify the common structure of the program and select the point where necessary data is to be available. do.

한편, 본 발명에 관한 선행기술문헌 목록은 다음과 같다.On the other hand, a list of the prior art documents related to the present invention is as follows.

[문헌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[Patent Document 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[Patent Document 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[Document 3] Shahzad Rasool, Alexei Sourin, "Haptic Interaction with 2D Images", VRCAI, 2011

본 발명에 따른 기존 대화형 3D 컴퓨터 그래픽 응용프로그램에 햅틱 입출력 기능을 부가하기 위한 방법은, 다수의 OpenGL 또는 Direct3D 기반 실시간 3D 그래픽 응용프로그램에서 깊이맵 추출이 가능하게 하고, 이를 추가적인 성능 저하 없이 햅틱 렌더링을 실행하는 모듈로 전송할 수 있는 햅틱 플러그인 시스템 및 방법을 제공하는 것을 그 목적으로 한다.The method for adding a haptic input / output function to a conventional interactive 3D computer graphics application program according to the present invention enables depth map extraction in a plurality of OpenGL or Direct3D based real-time 3D graphic application programs, To a module for executing a haptic plug-in.

전술한 목적을 달성하기 위한 본 발명의 일 실시예에 따른 햅틱 플러그인 방법은, 실행 모듈에 의해 대화형 3차원 컴퓨터 그래픽스 응용프로그램인 타겟 응용프로그램에 API(Application Program Interface)를 가로채는 DLL(Dynamic Linking Library) 모듈을 침투시키는 단계, 깊이맵을 추출하는 단계, 추출한 깊이맵을 DLL 모듈을 침투시킨 실행모듈로 전송하는 단계, 전송된 깊이맵으로 햅틱 렌더링을 실행하는 단계, 햅틱 장치 입력 위치를 타겟 프로그램 화면에 시각화하거나 마우스 입력으로 모의하는 단계를 포함할 수 있다.According to an aspect of the present invention, there is provided a haptic plug-in method of a dynamic linking library (DLL) intercepting an application program interface (API) to a target application program, which is an interactive three-dimensional computer graphics application program, ) Module, extracting a depth map, transmitting the extracted depth map to an execution module penetrating the DLL module, executing haptic rendering with the transmitted depth map, inputting the haptic device input position as a target program screen Or simulating with mouse input.

또한, 본 발명의 일 실시예에 따른 햅틱 플러그인 방법에서, 깊이맵을 추출하는 단계는, 일차적인 장면 렌더링이 끝난 후 후처리를 목적으로 렌더타겟을 교체하는 시점에 깊이맵을 추출할 수도 있고, 일차적인 장면 렌더링이 끝난 후 후처리를 목적으로 렌더타겟을 교체하면서 그 전에 명시적으로 렌더타겟을 클리어하는 시점에 깊이맵을 추출할 수도 있다.In the haptic plug-in method according to an embodiment of the present invention, the step of extracting the depth map may extract a depth map at a time of replacing the render target for post-processing after the primary scene rendering is finished, After rendering the primary scene, you can replace the render target for post-processing purposes and extract the depth map at the point where you explicitly clear the render target.

그리고, 본 발명의 일 실시예에 따른 햅틱 플러그인 방법에서, 추출한 깊이맵을 DLL 모듈을 침투시킨 실행모듈로 전송하는 단계는, 실행 모듈과 DLL 모듈에 깊이맵 크기의 버퍼를 두 개씩 두고 매번 역할을 교대하여 비동기적으로 깊이맵을 전송할 수 있으며, 이 경우, DLL 모듈에서는 두 개의 버퍼가 각각 깊이맵 추출과 전송 역할을 교대하여 수행할 수 있고, 실행 모듈에서는 두 개의 버퍼가 각각 전송된 깊이맵 수신과 햅틱 렌더링 역할을 교대하여 수행할 수 있다.In the haptic plug-in method according to an embodiment of the present invention, the step of transmitting the extracted depth map to the execution module infiltrating the DLL module includes the steps of: In the DLL module, two buffers can be alternately used for depth map extraction and transmission, respectively. In the execution module, two buffers are transmitted to the depth map And the haptic rendering function can be alternately performed.

한편, 본 발명의 다른 실시예에 따른 햅틱 플러그인 시스템은, API(Application Program Interface)를 가로채는 DLL(Dynamic Linking Library) 모듈, 및 기존에 개발된 대화형 3차원 컴퓨터 그래픽스 응용프로그램인 타겟 응용프로그램에 DLL 모듈을 침투시키는 실행 모듈을 포함할 수 있고, 여기서, DLL 모듈은, 깊이맵을 추출하고 추출한 깊이맵을 실행모듈로 전송할 수 있고, 실행 모듈은 전송된 깊이맵으로 햅틱 렌더링을 실행할 수 있으며, 햅틱 장치 입력 위치가 타겟 응용프로그램 화면에 시각화하거나 마우스 입력으로 모의될 수 있다.Meanwhile, the haptic plug-in system according to another embodiment of the present invention includes a dynamic linking library (DLL) module intercepting an API (Application Program Interface), and a DLL Module, wherein the DLL module can extract the depth map, transfer the extracted depth map to the execution module, and the execution module can perform the haptic rendering with the transmitted depth map, Device input locations can be visualized on the target application screen or simulated as mouse input.

또한, 본 발명의 다른 실시예에 따른 햅틱 플러그인 시스템에서, DLL 모듈은, 일차적인 장면 렌더링이 끝난 후 후처리를 목적으로 렌더타겟을 교체하는 시점에 상기 깊이맵을 추출할 수도 있고, 일차적인 장면 렌더링이 끝난 후 후처리를 목적으로 렌더타겟을 교체하면서 그 전에 명시적으로 렌더타겟을 클리어하는 시점에 깊이맵을 추출할 수도 있다.In the haptic plug-in system according to another embodiment of the present invention, the DLL module may extract the depth map at the time of replacing the render target for post-processing after the primary scene rendering is completed, After rendering is finished, you can replace the render target for post-processing purposes and extract the depth map at the point where you explicitly clear the render target.

그리고, 본 발명의 다른 실시예에 따른 햅틱 플러그인 시스템에서, 실행 모듈과 DLL 모듈에 깊이맵 크기의 버퍼가 두 개씩 할당되고, 매번 역할을 교대하여 비동기적으로 깊이맵이 전송될 수 있고, 이 경우, DLL 모듈에서는 두 개의 버퍼가 각각 깊이맵 추출과 전송 역할을 교대하여 수행할 수 있고, 실행 모듈에서는 두 개의 버퍼가 각각 전송된 깊이맵 수신과 햅틱 렌더링 역할을 교대하여 수행할 수 있다.In the haptic plug-in system according to another embodiment of the present invention, two depth map size buffers are allocated to the execution module and the DLL module, and the depth map can be transmitted asynchronously alternately every time. In this case, In the DLL module, two buffers can perform the depth map extraction and transfer functions alternately. In the execution module, the two buffers can alternately perform the depth map reception and the haptic rendering functions, respectively.

본 발명에서 개시된 기술은 다음과 같은 효과를 가질 수 있다. 다만, 특정 실시예가 다음의 효과를 전부 포함하여야 한다거나 다음의 효과만을 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.The technique disclosed in the present invention can have the following effects. It is to be understood, however, that the scope of the disclosed technology is not to be construed as limited thereby, as it is not meant to imply that a particular embodiment should include all of the following effects or only the following effects.

본 발명에 따른 햅틱 플러그인 방법 및 시스템은, 다수의 OpenGL 또는 Direct3D 기반 실시간 3D 그래픽 응용프로그램에서 깊이맵 추출이 가능하게 하고, 또한, 이를 추가적인 성능 저하 없이 햅틱 렌더링을 실행하는 모듈로 전송할 수 있다. 결과적으로, 이렇게 전송받은 깊이맵을 기존에 개발된 깊이맵 기반 햅틱 렌더링 알고리즘에 적용하면 1000 Hz의 안정적인 햅틱 피드백 반응을 이끌어낼 수 있다.The haptic plug-in method and system according to the present invention enable depth map extraction in a plurality of OpenGL or Direct3D-based real-time 3D graphics application programs and transmit it to a module that executes haptic rendering without further performance degradation. As a result, if the depth map is applied to the depth map-based haptic rendering algorithm, 1000 Hz stable haptic feedback can be obtained.

도 1은 본 발명의 일 실시예에 따른 햅틱 플러그인 시스템과 타겟 3D 응용 프로그램을 포함하는 전체 시스템의 개략도이다.
도 2는 도 1의 전체 시스템을 단순화하여 나타낸 것이다.
도 3은 OpenGL API를 중심으로 깊이맵 추출 가능 시점을 나타낸 것이다.
도 4는 DLL 모듈로부터 실행 모듈로의 비동기 더블-버퍼 깊이맵 전송을 나타낸 것이다.
도 5는 본 발명의 일 실시예에 따른 햅틱 플러그인 시스템의 구동 화면을 나타낸 것이다.
1 is a schematic diagram of an overall system including a haptic plug-in system and a target 3D application program in accordance with an embodiment of the invention.
Figure 2 is a simplified representation of the overall system of Figure 1;
FIG. 3 shows a point at which a depth map can be extracted based on the OpenGL API.
Figure 4 shows an asynchronous double-buffer depth map transfer from the DLL module to the execution module.
5 illustrates a driving screen of a haptic plug-in system according to an embodiment of the present invention.

본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.For the embodiments of the invention disclosed herein, specific structural and functional descriptions are set forth for the purpose of describing an embodiment of the invention only, and it is to be understood that the embodiments of the invention may be practiced in various forms, The present invention should not be construed as limited to the embodiments described in Figs.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.The present invention is capable of various modifications and various forms, and specific embodiments are illustrated in the drawings and described in detail in the text. It is to be understood, however, that the invention is not intended to be limited to the particular forms disclosed, but on the contrary, is intended to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the invention.

제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.The terms first, second, etc. may be used to describe various components, but the components should not be limited by the terms. The terms may be used for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between. Other expressions that describe the relationship between components, such as "between" and "between" or "neighboring to" and "directly adjacent to" should be interpreted as well.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used in this application is used only to describe a specific embodiment and is not intended to limit the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In the present application, the terms "comprise", "having", and the like are intended to specify the presence of stated features, integers, steps, operations, elements, components, or combinations thereof, , Steps, operations, components, parts, or combinations thereof, as a matter of principle.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries should be construed as meaning consistent with meaning in the context of the relevant art and are not to be construed as ideal or overly formal in meaning unless expressly defined in the present application .

이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. The same reference numerals are used for the same constituent elements in the drawings and redundant explanations for the same constituent elements are omitted.

도 1은 본 발명의 일 실시예에 따른 햅틱 플러그인 시스템과 타겟 3D 응용 프로그램을 포함하는 전체 시스템의 개략도이며, 도 2는 이를 간략화하여 나타낸 것이다. 도 1 및 도 2를 참조하면, 본 발명의 일 실시예에 따른 햅틱 플러그인 시스템은 실행 모듈과 DLL 모듈을 포함하며, 실행 모듈에 의해 DLL 모듈이 타겟 3D 응용프로그램으로 침투된다(DLL injection). 즉, 본 발명의 일 실시예에 따른 햅틱 플러그인 시스템은 독립적인 실행 모듈과 타겟 응용 프로그램에 침투시키는 DLL 모듈의 양 자가 서로 통신을 하며 작동하는 환경을 기반으로 한다. 또한, 여기에 DLL 모듈을 침투시키는 목적지인 OpenGL 또는 Direct3D 기반 3D 그래픽스 응용프그램이 있어야 전체적인 시스템이 동작하게 된다. 다만, 본 발명은 OpenGL API와 Direct3D API의 경우 모두에 적용될 수 있으나, 이하의 실시예에서는 OpenGL API인 경우를 중심으로 서술하도록 한다.FIG. 1 is a schematic diagram of an entire system including a haptic plug-in system and a target 3D application program according to an embodiment of the present invention, and FIG. 2 is a simplified view thereof. 1 and 2, a haptic plug-in system according to an embodiment of the present invention includes an execution module and a DLL module, and the DLL module is infiltrated into a target 3D application program (DLL injection). That is, the haptic plug-in system according to an embodiment of the present invention is based on an environment in which an independent execution module and a DLL module penetrating a target application communicate with each other. In addition, there is a 3D graphics application based on OpenGL or Direct3D, which is a destination to infiltrate the DLL module, so that the whole system operates. However, the present invention can be applied to both the OpenGL API and the Direct3D API, but in the following embodiments, the OpenGL API will be mainly described.

도 3은 OpenGL API를 중심으로 깊이맵 추출 가능 시점을 나타낸 것으로, 이를 참조하면, 타겟 3D 응용프로그램에 침투한 DLL 모듈은 깊이맵을 추출해 내기 위해 OpenGL의 그래픽스 파이프라인 혹은 그래픽스 렌더링 상의 특정 지점에서 깊이맵을 추출해 내는 OpenGL 함수를 호출한다.FIG. 3 illustrates a point at which a depth map can be extracted based on the OpenGL API. Referring to FIG. 3, a DLL module infiltrating a target 3D application program extracts a depth map from an OpenGL graphics pipeline or a specific point Call the OpenGL function to extract the map.

구체적으로, 본 발명의 일 실시예에 따른 햅틱 플러그인 시스템에서, 깊이맵의 추출이 가능한 시점은 다음과 같다.In detail, in the haptic plug-in system according to an embodiment of the present invention, the depth map can be extracted as follows.

첫째, 프레임 종료 시점으로서, 기본적인 그래픽스 렌더링 구조에서는 프레임 렌더링을 완료하고 후면 버퍼를 교체함과 동시에 디스플레이 장치에 결과를 보이는 것을 명시하는 시점에서 깊이버퍼에 그려진 깊이맵을 추출할 수 있다.First, as a frame end point, in a basic graphics rendering structure, a depth map drawn in the depth buffer can be extracted at the time of completing the frame rendering and replacing the rear buffer, and at the same time specifying that the result is displayed on the display device.

둘째, 렌더타겟을 교체하는 시점으로서, 일차적으로 렌더링이 완료된 이미지를 사용해서 이미지 프로세싱을 하거나 혹은 지연 렌더링 같은 렌더링 구조를 사용하는 경우 도중에 화면 크기의 사각형을 그리면서 깊이값이 덮어씌워질 수 있다. 이런 동작은 렌더타겟을 교체하면서 시작되므로 렌더타겟을 교체하는 시점에 깊이맵 추출을 시도할 수 있다. 단, 이때에 몇 번째 교체 시점에 추출할 것인가 하는 것은 사용자가 지정할 수 있다.Second, as the time to replace the render target, the depth value can be overwritten by drawing the screen size rectangle while using the rendering structure such as delay processing or image processing using the rendered image first. This is done by replacing the render target, so you can try to extract the depth map at the point of replacing the render target. However, it is possible for the user to designate at what point the replacement is to be performed at this time.

셋째, 렌더타겟 텍스쳐를 클리어하는 시점으로서, 전술한 렌더타겟을 교체하는 시점과 마찬가지 구조에서 렌더타겟을 교체할 때에 명시적으로 깊이버퍼를 클리어 하게 될 수 있다. 만일 렌더타겟 교체 직전에 깊이버퍼를 클리어 한다면 교체 시점에 깊이맵을 추출해도 소용이 없고 클리어 시점에 깊이맵 추출을 시도해야 한다. 이때에도 마찬가지로 몇 번째 교체 시점에 추출할 것인가 하는 것은 사용자가 지정할 수 있다.Third, as the point at which the render target texture is cleared, the depth buffer can be cleared explicitly when the render target is replaced in the structure similar to the point of replacing the render target. If you clear the depth buffer immediately before replacing the render target, extraction of the depth map at the point of replacement is useless and you should attempt to extract the depth map at the clear point. At this time, it is also user-definable to determine at which point the replacement is to be performed.

본 발명의 일 실시예에 따른 햅틱 플러그인 시스템에서는 전술한 3가지의 깊이맵 추출 시점을 사용자가 선택할 수 있도록 하였다. 이는 단일 응용프로그램 안에서는 일정하거나 혹은 크게 변함이 없을 것이므로 응용프로그램 별로 설정될 수 있다.In the haptic plug-in system according to an embodiment of the present invention, the user can select three depth map extraction points. This can be set for each application, since it will not be constant or significant within a single application.

한편, 본 발명의 일 실시예에 따른 햅틱 플러그인 시스템에서, 실행 모듈과 DLL 모듈에 깊이맵 크기의 버퍼가 두 개씩 할당되고, 매번 역할을 교대하여 비동기적으로 깊이맵이 전송될 수 있고, 이 경우, DLL 모듈에서는 두 개의 버퍼가 각각 깊이맵 추출과 전송 역할을 교대하여 수행할 수 있고, 실행 모듈에서는 두 개의 버퍼가 각각 전송된 깊이맵 수신과 햅틱 렌더링 역할을 교대하여 수행할 수 있는데, 도 4는 이러한 DLL 모듈로부터 실행 모듈로의 비동기 더블-버퍼 깊이맵 전송을 나타낸 것이다.Meanwhile, in the haptic plug-in system according to the embodiment of the present invention, two depth map size buffers are allocated to the execution module and the DLL module, and the depth map can be transmitted asynchronously alternately every time. In the DLL module, two buffers can be alternately performed for depth map extraction and transmission, respectively. In the execution module, two buffers can be alternately performed for receiving depth maps and transmitting haptic images. Shows the asynchronous double-buffer depth map transfer from this DLL module to the execution module.

DLL 모듈로부터 추출해 낸 깊이맵을 실행모듈로 끊어짐없이 전송하기 위해 양쪽 모듈에 같은 크기의 버퍼를 각각 두 개씩 두고 비동기적인 전송을 실행한다. DLL 모듈에서는 두 개의 버퍼가 각각 깊이맵 추출과 전송 역할을 교대하며 수행하고 실행 모듈에서는 두 개의 버퍼가 각각 전송된 깊이맵 수신과 햅틱 렌더링 역할을 번갈아가며 수행한다. 이로써, DLL 모듈로부터 추출해 낸 깊이맵을 실행모듈로 끊어짐없이 전송할 수 있다.In order to transmit the depth map extracted from the DLL module to the execution module without interruption, two asynchronous transfers are performed with two buffers of the same size in both modules. In the DLL module, two buffers alternately perform depth map extraction and transmission, respectively. In the execution module, the two buffers perform the depth map reception and the haptic rendering alternately. In this way, the depth map extracted from the DLL module can be transmitted seamlessly to the execution module.

한편, 본 발명의 다른 실시예에 따른 햅틱 플러그인 방법은, 실행 모듈에 의해 대화형 3차원 컴퓨터 그래픽스 응용프로그램인 타겟 응용프로그램에 API(Application Program Interface)를 가로채는 DLL(Dynamic Linking Library) 모듈을 침투시키는 단계, 깊이맵을 추출하는 단계, 추출한 깊이맵을 DLL 모듈을 침투시킨 실행모듈로 전송하는 단계, 전송된 깊이맵으로 햅틱 렌더링을 실행하는 단계, 햅틱 장치 입력 위치를 타겟 프로그램 화면에 시각화하거나 마우스 입력으로 모의하는 단계를 포함할 수 있으며, 여기에서, 깊이맵을 추출하는 단계는, 일차적인 장면 렌더링이 끝난 후 후처리를 목적으로 렌더타겟을 교체하는 시점에 깊이맵을 추출할 수도 있고, 일차적인 장면 렌더링이 끝난 후 후처리를 목적으로 렌더타겟을 교체하면서 그 전에 명시적으로 렌더타겟을 클리어하는 시점에 깊이맵을 추출할 수도 있다. 그리고, 본 발명의 다른 실시예에 따른 햅틱 플러그인 방법에서, 추출한 깊이맵을 DLL 모듈을 침투시킨 실행모듈로 전송하는 단계는, 실행 모듈과 DLL 모듈에 깊이맵 크기의 버퍼를 두 개씩 두고 매번 역할을 교대하여 비동기적으로 깊이맵을 전송할 수 있으며, 이 경우, DLL 모듈에서는 두 개의 버퍼가 각각 깊이맵 추출과 전송 역할을 교대하여 수행할 수 있고, 실행 모듈에서는 두 개의 버퍼가 각각 전송된 깊이맵 수신과 햅틱 렌더링 역할을 교대하여 수행할 수 있다.Meanwhile, a haptic plug-in method according to another embodiment of the present invention includes: injecting a Dynamic Linking Library (DLL) module intercepting an application program interface (API) into a target application program, which is an interactive three-dimensional computer graphics application program, A step of extracting a depth map, a step of transmitting the extracted depth map to an execution module penetrating the DLL module, a step of executing haptic rendering using a transmitted depth map, a step of visualizing a haptic device input position on a target program screen, Extracting the depth map may include extracting a depth map at a time of replacing the render target for post processing after the primary scene rendering is completed, After rendering the scene, replace the render target for post-processing purposes, and then explicitly modify the render target It may extract depth maps at the time of. In the haptic plug-in method according to another embodiment of the present invention, the step of transmitting the extracted depth map to the execution module infiltrating the DLL module may include the steps of: In the DLL module, two buffers can be alternately used for depth map extraction and transmission, respectively. In the execution module, two buffers are transmitted to the depth map And the haptic rendering function can be alternately performed.

이상 설명한 실시예에서는 OpenGL 기반 실시간 3D 그래픽 응용프로그램을 위주로 설명하였으나, 본 발명에 따른 햅틱 플러그인 방법 및 시스템은 Direct3D 기반 실시간 3D 그래픽 응용프로그램에서도 적용이 가능하다.Although the embodiments described above focus on the OpenGL-based real-time 3D graphics application program, the haptic plug-in method and system according to the present invention can be applied to the Direct3D-based real-time 3D graphics application program.

상술한 바와 같은 본 발명에 따른 햅틱 플러그인 방법 및 시스템은, 다수의 OpenGL 또는 Direct3D 기반 실시간 3D 그래픽 응용프로그램에서 깊이맵 추출이 가능하게 하고, 또한, 이를 추가적인 성능 저하 없이 햅틱 렌더링을 실행하는 모듈로 전송할 수 있다. 결과적으로, 이렇게 전송받은 깊이맵을 기존에 개발된 깊이맵 기반 햅틱 렌더링 알고리즘에 적용하면 1000 Hz의 안정적인 햅틱 피드백 반응을 이끌어낼 수 있다.The haptic plug-in method and system according to the present invention as described above enables depth map extraction in a plurality of OpenGL or Direct3D-based real-time 3D graphics application programs and transmits it to a module for executing haptic rendering without further performance degradation . As a result, if the depth map is applied to the depth map-based haptic rendering algorithm, 1000 Hz stable haptic feedback can be obtained.

햅틱 장치의 입출력을 활용하는 가상현실을 구축할 때에 시각적인 현실성까지 보강할 필요가 대두된다면 그래픽스 렌더링을 직접 구현하는 것은 어려운 일이 될 수 있다. 이 때에 본 발명에 따른 햅틱 플러그인 방법 및 시스템은, 소스코드가 제공되지 않는 경우, 혹은 제공이 되더라도 미처 내부 구조를 파악할 여유가 없는 상태에서 기존 렌더링 엔진을 활용할 수 있는 가능성을 제시해 준다. 본 발명에 따른 햅틱 플러그인 방법 및 시스템에서는 햅틱 렌더링 출력을 도출하는 과정만을 서술하였지만 마찬가지 구조를 사용하여 타겟 프로그램의 마우스 입력 등을 햅틱 디바이스를 통해 모의하여 입력 또한 어렵지 않게 사용할 수 있다.It is difficult to implement graphics rendering directly if it becomes necessary to reinforce the visual reality when constructing a virtual reality utilizing input / output of the haptic device. At this time, the haptic plug-in method and system according to the present invention suggests the possibility of utilizing the existing rendering engine in a state where the source code is not provided, or even if the source code is provided, in a state in which there is no room to grasp the internal structure. In the haptic plug-in method and system according to the present invention, only the process of deriving the haptic rendering output is described, but the mouse input of the target program can be simulated through the haptic device using the same structure.

현 시점에서 가장 현실적인 이용가능성 하나는 기존에 개발된 게임이나 시뮬레이션 등에 햅틱 렌더링 기능을 추가하고자 할 때에 사전 평가를 위한 빠른 프로토타이핑이다. 실질적으로 햅틱 장치를 활용한 상세 기능 구상에 따라 소스코드 작업이 필요하다 하더라도 그러한 기능 구현의 가치나 가능성 등을 타진하기 위한 사전 평가는 중요하게 행해지고 있는 부분이며 본 발명은 그러한 상황에서 빠른 의사결정에 도움을 줄 수 있다.One of the most realistic usability at this point is rapid prototyping for pre-evaluation when we want to add haptic rendering capabilities to existing games and simulations. Even if the source code work is required according to the detailed functional concept utilizing the haptic device, the preliminary evaluation for evaluating the value or the possibility of the implementation of the function is an important part. You can help.

이상에서 전술한 바와 같은 햅틱 플러그인 방법은 이를 구현하기 위한 프로그램 명령어로서 구현될 수 있으며, 이러한 프로그램 명령어를 기록한 컴퓨터로 읽힐 수 있는 기록매체는, 일 예로, ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 미디어 저장장치 등이 있다. The haptic plug-in method described above can be implemented as a program command for implementing the program. The computer-readable recording medium on which the program command is recorded includes, for example, a ROM, a RAM, a CD- Floppy disks, and optical media storage devices.

또한 전술한 바와 같은 프로그램을 기록한 컴퓨터로 읽힐 수 있는 기록매체는 네트워크로 커넥션된 컴퓨터 장치에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 이 경우, 다수의 분산된 컴퓨터 중 어느 하나 이상의 컴퓨터는 상기에 제시된 기능들 중 일부를 실행하고, 그 결과를 다른 분산된 컴퓨터들 중 하나 이상에 그 실행 결과를 전송할 수 있으며, 그 결과를 전송받은 컴퓨터 역시 상기에 제시된 기능들 중 일부를 실행하여, 그 결과를 역시 다른 분산된 컴퓨터들에 제공할 수 있다.The computer-readable recording medium on which the above-described program is recorded may be distributed to a computer apparatus connected via a network so that computer-readable codes can be stored and executed in a distributed manner. In this case, one or more of the plurality of distributed computers may execute some of the functions presented above and send the results of the execution to one or more of the other distributed computers, The computer may also perform some of the functions described above and provide the results to other distributed computers as well.

본 발명의 각 실시예에 따른 장치 및 방법을 구동시키기 위한 프로그램인 애플리케이션을 기록한 기록매체를 읽을 수 있는 컴퓨터는, 일반적인 데스크 탑이나 노트북 등의 일반 PC뿐 만 아니라, 스마트 폰, 태블릿 PC, PDA(Personal Digital Assistants) 및 이동통신 단말 등의 모바일 단말을 포함할 수 있으며, 이뿐만 아니라, 컴퓨팅(Computing) 가능한 모든 기기로 해석되어야 할 것이다. A computer capable of reading a recording medium on which an application as a program for driving the apparatus and method according to each embodiment of the present invention is read can be used not only in a general PC such as a general desktop or a notebook computer but also in a smart phone, Personal digital assistants (PDAs), mobile communication terminals, and the like, and it should be interpreted as all devices capable of computing.

이상에서, 본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성 요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 저장매체 (Computer Readable Storage Medium)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 컴퓨터 프로그램의 저장매체로서는 자기 기록매체, 광 기록매체, 등이 포함될 수 있다.While the present invention has been described in connection with what is presently considered to be the most practical and preferred embodiments, it is to be understood that the invention is not limited to the disclosed embodiments. That is, within the scope of the present invention, all of the components may be selectively coupled to one or more of them. In addition, although all of the components may be implemented as one independent hardware, some or all of the components may be selectively combined to perform a part or all of the functions in one or a plurality of hardware. As shown in FIG. The codes and code segments constituting the computer program may be easily deduced by those skilled in the art. Such a computer program is stored in a computer readable storage medium, readable and executed by a computer, thereby realizing an embodiment of the present invention. As a storage medium of the computer program, a magnetic recording medium, an optical recording medium, or the like can be included.

이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The foregoing description is merely illustrative of the technical idea of the present invention, and various changes and modifications may be made by those skilled in the art without departing from the essential characteristics of the present invention. Therefore, the embodiments disclosed in the present invention are intended to illustrate rather than limit the scope of the present invention, and the scope of the technical idea of the present invention is not limited by these embodiments. The scope of protection of the present invention should be construed according to the following claims, and all technical ideas within the scope of equivalents should be construed as falling within the scope of the present invention.

Claims (11)

프로그래밍 완료된 대화형 3D 컴퓨터 그래픽 응용프로그램에 햅틱 입출력 기능을 부가하는 햅틱 플러그인 시스템의 햅틱 플러그인 방법에 있어서,
상기 햅틱 플러그인 시스템의 실행 모듈을 통해 API(Application Program Interface) 가로채기 기능을 가지는 DLL(Dynamic Linking Library) 모듈을 상기 대화형 3D 컴퓨터 그래픽 응용프로그램에 침투시키는 단계;
상기 침투된 DLL 모듈의 API 가로채기 기능을 통해 상기 대화형 3D 컴퓨터 그래픽 응용프로그램이 생성하는 깊이맵을 추출하는 단계;
상기 실행모듈을 통해 상기 침투된 DLL 모듈이 추출한 깊이맵을 기반으로 햅틱 렌더링을 실행하는 단계; 및
햅틱 장치 입력 위치를 타겟 응용 프로그램의 화면에 시각화하거나 마우스 입력으로 모의하는 단계를 포함하는, 햅틱 플러그인 방법.
A haptic plug-in method of a haptic plug-in system that adds a haptic input / output function to a programmed interactive 3D computer graphics application,
Infiltrating a dynamic linking library (DLL) module having an API (Application Program Interface) interception function into the interactive 3D computer graphic application program through an execution module of the haptic plug-in system;
Extracting a depth map generated by the interactive 3D computer graphics application program through API interception of the infiltrated DLL module;
Performing haptic rendering based on a depth map extracted by the penetrated DLL module through the execution module; And
And visualizing the haptic device input position on the screen of the target application or simulating the haptic device input position with the mouse input.
제 1 항에 있어서,
상기 깊이맵을 추출하는 단계는, 일차적인 장면 렌더링이 끝난 후 후처리를 목적으로 렌더타겟을 교체하는 시점에 상기 깊이맵을 추출하는, 햅틱 플러그인 방법.
The method according to claim 1,
Wherein the step of extracting the depth map extracts the depth map at a time of replacing the render target for the purpose of post-processing after the primary scene rendering is completed.
제 1 항에 있어서,
상기 깊이맵을 추출하는 단계는, 일차적인 장면 렌더링이 끝난 후 후처리를 목적으로 렌더타겟을 교체하면서 그 전에 명시적으로 렌더타겟을 클리어하는 시점에 깊이맵을 추출하는, 햅틱 플러그인 방법.
The method according to claim 1,
Wherein the step of extracting the depth map extracts a depth map at a time of explicitly clearing a render target before replacing a render target for post processing after the primary scene rendering is completed.
제 1 항에 있어서,
상기 추출한 깊이맵을 상기 DLL 모듈을 침투시킨 상기 실행모듈로 전송하는 단계는, 상기 실행 모듈과 상기 DLL 모듈에 깊이맵 크기의 버퍼를 두 개씩 두고 매번 역할을 교대하여 비동기적으로 깊이맵을 전송하는, 햅틱 플러그인 방법.
The method according to claim 1,
The step of transmitting the extracted depth map to the execution module that has infiltrated the DLL module includes transmitting two depth maps asynchronously to the execution module and the DLL module, , Haptic plug-in method.
제 4 항에 있어서,
상기 DLL 모듈에서는 두 개의 버퍼가 각각 깊이맵 추출과 전송 역할을 교대하여 수행하고,
상기 실행 모듈에서는 두 개의 버퍼가 각각 전송된 깊이맵 수신과 햅틱 렌더링 역할을 교대하여 수행하는, 햅틱 플러그인 방법.
5. The method of claim 4,
In the DLL module, the two buffers alternately perform extraction and transmission of depth maps,
Wherein the execution module alternately performs the depth map reception and the haptic rendering operations in which the two buffers are respectively transmitted.
제 1 항 내지 제 5 항 중 어느 한 항에 따른 햅틱 플러그인 방법을 구현하기 위한 프로그램 명령어를 기록한 컴퓨터 판독가능 기록매체.A computer-readable recording medium recording program instructions for implementing the haptic plug-in method according to any one of claims 1 to 5. 프로그래밍 완료된 대화형 3D 컴퓨터 그래픽 응용프로그램에 햅틱 입출력 기능을 부가하는 햅틱 플러그인 시스템으로서,
API(Application Program Interface) 가로채기 기능을 가지는 DLL(Dynamic Linking Library) 모듈; 및
대화형 3D 컴퓨터 그래픽 응용프로그램에 상기 DLL 모듈을 침투시키는 실행 모듈을 포함하고,
상기 DLL 모듈은, 상기 API 가로채기 기능을 통해 상기 대화형 3D 컴퓨터 그래픽 응용프로그램이 생성하는 깊이맵을 추출한 후, 상기 추출한 깊이맵을 상기 실행모듈로 전송하고,
상기 실행 모듈은 상기 전송된 깊이맵을 기반으로 햅틱 렌더링을 실행하고,
햅틱 장치 입력 위치가 타겟 응용 프로그램의 화면에 시각화하거나 마우스 입력으로 모의되는, 햅틱 플러그인 시스템.
A haptic plug-in system that adds a haptic input / output function to a programmed interactive 3D computer graphics application,
A DLL (Dynamic Linking Library) module having an application program interface (API) interception function; And
An execution module for infiltrating said DLL module into an interactive 3D computer graphics application,
The DLL module extracts a depth map generated by the interactive 3D computer graphic application program through the API intercept function and transmits the extracted depth map to the execution module,
Wherein the execution module executes haptic rendering based on the transmitted depth map,
Wherein the haptic device input location is visualized on the screen of the target application or simulated as a mouse input.
제 7 항에 있어서,
상기 DLL 모듈은, 일차적인 장면 렌더링이 끝난 후 후처리를 목적으로 렌더타겟을 교체하는 시점에 상기 깊이맵을 추출하는, 햅틱 플러그인 시스템.
8. The method of claim 7,
Wherein the DLL module extracts the depth map at a time of replacing a render target for post-processing after the primary scene rendering is completed.
제 7 항에 있어서,
상기 DLL 모듈은, 일차적인 장면 렌더링이 끝난 후 후처리를 목적으로 렌더타겟을 교체하면서 그 전에 명시적으로 렌더타겟을 클리어하는 시점에 깊이맵을 추출하는, 햅틱 플러그인 시스템.
8. The method of claim 7,
Wherein the DLL module extracts a depth map at a time of explicitly clearing a render target before replacing a render target for post-processing purposes after a primary scene rendering is completed.
제 7 항에 있어서,
상기 실행 모듈과 상기 DLL 모듈에 깊이맵 크기의 버퍼가 두 개씩 할당되고, 매번 역할을 교대하여 비동기적으로 깊이맵이 전송되는, 햅틱 플러그인 시스템.
8. The method of claim 7,
Wherein two depth map size buffers are allocated to the execution module and the DLL module, and the depth map is transmitted asynchronously alternately every time.
제 10 항에 있어서,
상기 DLL 모듈에서는 두 개의 버퍼가 각각 깊이맵 추출과 전송 역할을 교대하여 수행하고,
상기 실행 모듈에서는 두 개의 버퍼가 각각 전송된 깊이맵 수신과 햅틱 렌더링 역할을 교대하여 수행하는, 햅틱 플러그인 시스템.
11. The method of claim 10,
In the DLL module, the two buffers alternately perform extraction and transmission of depth maps,
Wherein the execution module alternately performs a depth map reception and a haptic rendering operation in which two buffers are respectively transmitted.
KR1020140184564A 2014-12-19 2014-12-19 A haptic plug-in system and method for implementing haptic plug-in for existing interactive 3d computer graphics applications KR101651023B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140184564A KR101651023B1 (en) 2014-12-19 2014-12-19 A haptic plug-in system and method for implementing haptic plug-in for existing interactive 3d computer graphics applications

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140184564A KR101651023B1 (en) 2014-12-19 2014-12-19 A haptic plug-in system and method for implementing haptic plug-in for existing interactive 3d computer graphics applications

Publications (2)

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

Family

ID=56365621

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140184564A KR101651023B1 (en) 2014-12-19 2014-12-19 A haptic plug-in system and method for implementing haptic plug-in for existing interactive 3d computer graphics applications

Country Status (1)

Country Link
KR (1) KR101651023B1 (en)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8176434B2 (en) * 2008-05-12 2012-05-08 Microsoft Corporation Virtual desktop view scrolling
KR102054370B1 (en) * 2011-11-23 2019-12-12 삼성전자주식회사 Haptic feedback method and apparatus, machine-readable storage medium and portable communication terminal

Also Published As

Publication number Publication date
KR20160075066A (en) 2016-06-29

Similar Documents

Publication Publication Date Title
US10061552B2 (en) Identifying the positioning in a multiple display grid
US9460561B1 (en) Hypermodel-based panorama augmentation
US20160162023A1 (en) Visually enhanced tactile feedback
US9710129B2 (en) Displaying user activity in real-time collaborative editing systems
EP2652585A2 (en) Reverse engineering user interface mockups from working software
US20120114200A1 (en) Addition of immersive interaction capabilities to otherwise unmodified 3d graphics applications
KR20160140903A (en) Content display with dynamic zoom focus
US10210143B2 (en) Analyzing a click path in a spherical landscape viewport
CN103679792A (en) Rendering method and system for three-dimensional models
CN108595284B (en) Texture sharing method, computer equipment and storage medium
JP2009536404A (en) Text editing in 3D graphics
US20170255475A1 (en) Automatic execution of objects in a user interface
KR101190456B1 (en) System for providing of three-dimensional digital comic viewer and method thereof
KR101651023B1 (en) A haptic plug-in system and method for implementing haptic plug-in for existing interactive 3d computer graphics applications
KR101630257B1 (en) 3D image providing system and providing method thereof
CN104765680A (en) Method and device for automatically testing software
EP3285143A1 (en) Ar/vr device virtualisation
Li et al. Modeling and visualization of underground structures
US10657705B2 (en) System and method for rendering shadows for a virtual environment
Potts et al. Enhanced augmented/mixed reality and process safety applications
KR101202164B1 (en) System for providing of three-dimensional digital comic viewer and method thereof
Wen et al. PaperWork: Exploring the Potential of Electronic Paper on Office Work
US20240020892A1 (en) Systems and Methods for Annotating a Scene to include Digital Objects
Boonyasaknanon et al. Geologic Modelling Using Augmented Reality
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