KR100990531B1 - A method for embodying class offering multi input interaction - Google Patents
A method for embodying class offering multi input interaction Download PDFInfo
- Publication number
- KR100990531B1 KR100990531B1 KR1020090055855A KR20090055855A KR100990531B1 KR 100990531 B1 KR100990531 B1 KR 100990531B1 KR 1020090055855 A KR1020090055855 A KR 1020090055855A KR 20090055855 A KR20090055855 A KR 20090055855A KR 100990531 B1 KR100990531 B1 KR 100990531B1
- Authority
- KR
- South Korea
- Prior art keywords
- class
- input
- input device
- software engine
- motion
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 20
- 230000003993 interaction Effects 0.000 title description 2
- 230000008878 coupling Effects 0.000 claims description 2
- 238000010168 coupling process Methods 0.000 claims description 2
- 238000005859 coupling reaction Methods 0.000 claims description 2
- 238000004088 simulation Methods 0.000 abstract description 5
- 230000002708 enhancing effect Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 239000002131 composite material Substances 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/038—Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/038—Indexing scheme relating to G06F3/038
- G06F2203/0381—Multimodal input, i.e. interface arrangements enabling the user to issue commands by simultaneous use of input devices of different nature, e.g. voice plus gesture on digitizer
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Software Systems (AREA)
- Tourism & Hospitality (AREA)
- Health & Medical Sciences (AREA)
- Economics (AREA)
- General Health & Medical Sciences (AREA)
- Human Resources & Organizations (AREA)
- Marketing (AREA)
- Primary Health Care (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Human Computer Interaction (AREA)
- Processing Or Creating Images (AREA)
Abstract
Description
본 발명은 다중입력장치 호환성을 제공하는 클래스 구현 방법에 관한 것으로, 구체적으로는 조이스틱, USB 캠 등의 다중입력장치와 소프트웨어 엔진 간의 호환을 지원하는 클래스 구현 방법에 관한 것이다. The present invention relates to a class implementation method for providing multi-input device compatibility, and more particularly, to a class implementation method for supporting compatibility between a multi-input device such as a joystick, a USB cam, and a software engine.
컴퓨터 그래픽 기술과 하드웨어 장치의 발달로 컴퓨터를 이용해 가상의 환경을 실제와 같이 느끼고자 하는 가상현실에 대한 연구가 다방면으로 진행되어 왔다. 과거에는 가상현실이 주로 군사 시뮬레이션 위주로 사용되었지만 현재는 시뮬레이션, 원격 통신, 교육, 산업, 국방, 쇼핑, 문화 등 거의 모든 분야에서 가상현실기법을 사용하고 있다. 그러나 컴퓨터 안에서 가상환경을 만들고 실제와 같은 다양한 호환이 가능하도록 하는 것은 어려운 작업과정을 거쳐야만 하므로 기술적인 개발에 많은 어려움이 있는 것이 현실이다. With the development of computer graphics technology and hardware devices, researches on virtual reality, which attempts to feel the virtual environment as if using a computer, have been conducted in various fields. In the past, virtual reality was mainly used for military simulation, but now virtual reality is used in almost all fields such as simulation, telecommunications, education, industry, defense, shopping, and culture. However, creating a virtual environment in a computer and making it compatible with a variety of real worlds has to go through a difficult process, so there are many difficulties in technical development.
가상현실 시뮬레이션을 디스플레이 장치에 디스플레이하는 과정에 있어서 다 양한 입력장치가 사용될 수 있다. 그러나, 종래 기술에 따르면 실감형 가상현실을 구현하기 위한 외부장치와의 접속이 용이하지 않으며, 이를 충족시키기 위해서는 고가의 부가적인 툴을 구비해야 한다는 문제점이 있고, 소프트웨어 엔진의 다양한 입력 장치에 대한 호환이 잘 이루어지지 않아, 별도의 프로그램을 설치하거나 다운로드하여야 하는 불편함이 있다.Various input devices may be used in the process of displaying the virtual reality simulation on the display device. However, according to the related art, there is a problem in that it is not easy to connect with an external device for implementing a realistic virtual reality, and in order to satisfy it, an expensive additional tool must be provided. This is not well done, there is the inconvenience of having to install or download a separate program.
또한, 대부분의 소프트웨어 엔진은 일부 입력장치에 대해서만 제한적인 지원이 이루어지기 때문에 개발자가 원하는 입력장치를 사용하지 못하는 불편함이 있다. In addition, since most software engines have limited support for only some input devices, it is inconvenient to use the input devices desired by the developer.
본 발명은 전술한 종래의 문제점을 해결하기 위하여 안출된 것으로서, 실감형 가상현실을 구현하기 위해 별도의 프로그램을 설치하거나 고가의 툴을 부가적으로 구입할 필요없이, 소프트웨어 엔진의 다양한 입력 장치와 소프트웨어 엔진 간의 호환을 지원하는 클래스 구현 방법을 제공하고자 한다. SUMMARY OF THE INVENTION The present invention has been made to solve the above-mentioned conventional problems, and various input devices and software engines of a software engine are required without installing a separate program or additionally purchasing expensive tools to implement a realistic virtual reality. To provide a class implementation that supports interoperability.
또한, 일부 입력장치에 대해서만 제한적인 지원이 이루어지는 소프트웨어의 자유로운 사용에 있어서도 사용자 편의를 향상시키고자 한다. In addition, it is intended to improve user convenience in free use of software in which limited support is provided for only some input devices.
전술한 기술적 과제의 해결을 위하여 본 발명의 일 실시예에 따른 클래스 구현 방법은, 콘텐츠를 제작함에 있어서 입력장치와 소프트웨어 엔진과의 호환을 위한 클래스 구현 방법으로서, 상기 입력장치가 캡쳐 윈도우를 생성하는 단계; 상기 캡쳐 윈도우와 드라이버를 연결하는 단계; 상기 캡쳐 윈도우의 캡쳐속도를 설정하는 단계; 디스플레이 모드를 설정하는 단계; 상기 입력장치로부터 획득한 영상을 버퍼에 저장하는 단계; 상기 버퍼의 주소를 클래스에 저장하는 단계; 및 상기 주소를 입력받아, 상기 입력장치로부터 획득한 영상을 디스플레이하는 단계를 포함하는 것을 특징으로 한다. In order to solve the above technical problem, a class implementation method according to an embodiment of the present invention is a class implementation method for compatibility between an input device and a software engine in producing content, wherein the input device generates a capture window. step; Coupling a driver with the capture window; Setting a capture rate of the capture window; Setting a display mode; Storing the image obtained from the input device in a buffer; Storing the address of the buffer in a class; And receiving the address and displaying an image obtained from the input device.
또한, 본 발명의 다른 실시예에 따른 클래스 구현 방법은, 콘텐츠를 제작함 에 있어서 입력장치와 소프트웨어 엔진과의 호환을 위한 클래스 구현 방법으로서, 임의의 모션 타입을 레퍼런스하는 모션객체를 생성하는 단계; 상기 입력장치로부터 데이터를 추출하기 위한 클래스를 생성하는 단계; 상기 데이터를 추출하여 상기 클래스에 저장하는 단계; 및 상기 저장된 데이터를 상기 모션 객체에 적용하기 위한 함수를 계산하는 단계를 포함하는 것을 특징으로 한다. In addition, the class implementation method according to another embodiment of the present invention, a class implementation method for compatibility between the input device and the software engine in the production of content, comprising the steps of: generating a motion object referencing any motion type; Generating a class for extracting data from the input device; Extracting the data and storing the data in the class; And calculating a function for applying the stored data to the motion object.
본 발명에 의하면 별도의 프로그램을 설치하거나 다운로드할 필요없이, 다양한 입력 장치에 대한 소프트웨어 엔진의 호환성을 확장시켜 가상현실과 관련된 시뮬레이션 등을 수행하고자 하는 사용자의 이용상의 편의를 도모할 수 있다. According to the present invention Without the need to install or download a program, the compatibility of the software engine for various input devices can be extended to facilitate the user's convenience in performing simulations related to virtual reality.
또한, 실감형 가상현실을 구현하기 위해 고가의 툴을 부가적으로 구입할 필요없이, 소프트웨어 엔진의 다양한 입력 장치에 대한 호환을 가능하게 하여 다중입력장치와 소프트웨어 엔진 간의 호환을 지원하는 클래스 구현 방법을 제공하고자 한다. In addition, it provides a class implementation method that supports compatibility between multiple input devices and software engines by enabling compatibility with various input devices of the software engine without additionally purchasing expensive tools to implement realistic virtual reality. I would like to.
또한, 일부 입력장치에 대해서만 제한적인 지원이 이루어지는 소프트웨어의 자유로운 사용에 있어서도 사용자 편의를 향상시키고자 한다. In addition, it is intended to improve user convenience in free use of software in which limited support is provided for only some input devices.
이하 도면을 참조하여 본 발명에 관하여 살펴보기로 하며, 본 발명을 설명함에 있어서 관련된 공지기술 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략할 것이다. Hereinafter, the present invention will be described with reference to the accompanying drawings. In describing the present invention, when it is determined that the detailed description of the related well-known technology or configuration may unnecessarily obscure the gist of the present invention, the detailed description thereof will be omitted. will be.
그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있으므로 그 정의는 본 발명을 설명하는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.The terms to be described below are terms defined in consideration of functions in the present invention, and may be changed according to intentions or customs of users or operators, and the definitions should be made based on the contents throughout the specification for describing the present invention.
이하의 도 1 은 본 발명에 따른 소프트웨어 엔진의 시스템 구성도이고, 도 2 는 모션 클래스의 베이스 및 자(子) 클래스 다이어그램이고, 도 3 은 입력 클래스의 베이스 및 자(子) 클래스 다이어그램이고, 도 4 는 본 발명에 따라 구현한 클래스를 추가한 시스템 구성도이다. 1 is a system configuration diagram of a software engine according to the present invention, FIG. 2 is a base and child class diagram of a motion class, FIG. 3 is a base and child class diagram of an input class, and FIG. 4 is a system configuration diagram adding a class implemented according to the present invention.
컴퓨터 안에서 가상환경을 만들고 실제와 같은 다양한 인터랙션(interaction) 이 가능하도록 하는 것은 복잡하고 어려운 작업과정을 요하고, 실시간적인 요소들이 충분히 만족되어야 한다. Creating a virtual environment in a computer and enabling various interactions as if they were real requires a complicated and difficult process, and real-time elements must be sufficiently satisfied.
본 발명에서는 상기와 같은 요구를 충족시키기 위해 확장성이 뛰어난 실행환경을 제공할 수 있는 소프트웨어 엔진을 사용한다. 상기 소프트웨어 엔진은 간단한 환경이나 객체를 모델링할 수 있는 크리에이터 툴 (creator tool)을 제공한다. 상기 크리에이터 툴은 3D-Max 에서 모델링된 데이터를 로드해서 사용할 수 있는 기능을 제공하고, 실시간성을 위해 정보량을 최적화하는 기능 또한 제공할 수 있다. The present invention uses a software engine that can provide a highly scalable execution environment to meet the above demands. The software engine provides a creator tool that can model a simple environment or an object. The creator tool may provide a function of loading and using data modeled in 3D-Max, and may also provide a function of optimizing information amount for real time.
다음으로, 상기 소프트웨어 엔진은 날씨나 기후등과 같은 환경적인 요인들을 간단한 세팅을 통해서 구현할 수 있도록 하는 프라임 툴 (prime tool) 을 제공한다. 이러한 프라임 툴의 사용으로 인해 가상환경을 쉽게 구성하고 다양한 네비게이션 방법들을 통해 보다 인터랙티브한 가상현실을 구현할 수 있다.Next, the software engine provides a prime tool for implementing environmental factors such as weather or climate through simple settings. The use of these prime tools makes it easy to construct a virtual environment and implement more interactive virtual reality through various navigation methods.
또한, 상기 소프트웨어 엔진은 API (application programming interface) 를 통해 확장성 있는 프로그램 개발을 지원할 수 있다. 상기 API 는 운영체제와 응용프로그램 사이의 통신에 사용되는 메시지 형식으로, 운영체제나 C, C++, Pascal 등과 같은 언어로 응용 프로그램을 만들 때, 윈도우를 만들고 파일을 여는 것과 같은 처리를 할 수 있도록 1000여 개 이상의 함수로 구성되어 있다. 한편, 상기 API는 프로그래머를 위한 운영체제나 프로그램의 인터페이스이므로 사용자와 직접 대하게 되는 그래픽 사용자 인터페이스나 명령형 인터페이스와는 구별된다. In addition, the software engine is an extensible program through an application programming interface (API). Can support development The API is a message format used for communication between the operating system and the application. When creating an application in the operating system or a language such as C, C ++, Pascal, etc., it is possible to process more than 1000 items such as creating a window and opening a file. Consists of the above functions. On the other hand, since the API is an interface of an operating system or a program for a programmer, it is distinguished from a graphic user interface or an imperative interface that is directly faced with a user.
한편, 상기 API는 응용 프로그램이 운영체제나 데이터베이스 관리 시스템과 같은 시스템 프로그램과 통신할 때 사용되는 언어나 메시지 형식을 가지며, 프로그램 내에서 실행을 위해 특정 서브루틴에 연결을 제공하는 함수를 호출하는 것으로 구현될 수 있다. On the other hand, the API has a language or message format used when an application communicates with a system program such as an operating system or a database management system, and is implemented by calling a function that provides a connection to a specific subroutine for execution in the program. Can be.
본 발명에서는 상기 소프트웨어 엔진을 사용하여 실감형 가상현실을 효과적, 경제적으로 구현하기 위해 외부입력장치와 상기 소프트웨어 엔진을 호환시키는 클래스를 구현한다. In the present invention, to implement the realistic virtual reality effectively and economically using the software engine implements a class that makes the external engine compatible with the software engine.
예를 들어, 외부입력장치와 소프트웨어 엔진을 호환시키는 클래스로는 상기 소프트웨어 엔진에서 조이스틱을 제어하기 위해 DirectX 와 연동하여 데이터 값을 전달하는 조이스틱 클래스와 VFW(Video for windows) 를 사용하여 USB 캠의 영상을 버퍼에 저장한 후 소프트웨어 엔진의 디스플레이 버퍼에 그 값을 넘겨서 캠의 영상을 소프트웨어 엔진에서 처리할 수 있는 USB 캠 클래스가 있다. For example, a class that makes the software engine compatible with an external input device includes a joystick class that delivers data values in conjunction with DirectX and a video for windows (VFW) to control the joystick in the software engine. There is a USB cam class that can store the image in the buffer and pass the value to the software engine's display buffer to process the cam's image in the software engine.
여기서, VFW 는 동영상 압축 관리자로서, 마이크로소프트 윈도우가 디지털 비디오를 재생하게끔 하는 마이크로소프트가 개발한 멀티미디어 프레임워크이다.Here, VFW is a video compression manager, a multimedia framework developed by Microsoft that allows Microsoft Windows to play digital video.
도 1 은 본 발명에 따른 소프트웨어 엔진의 시스템 구성을 나타내는 블록도이다. 상기 소프트웨어 엔진 (110) 은 UNIX(130)와 Windows(140) 를 운영체제로 하여 오픈지엘 (OpenGL; Open Graphics Library, 120) 을 기반으로 하여 구성된다. 1 is a block diagram showing a system configuration of a software engine according to the present invention. The
OpenGL 은 그래픽 API 로, 프로그래머에게 단일한 API를 제공함으로써 서로 다른 3차원 가속기간의 복잡성을 감추고, 모든 구현이 완전한 OpenGL 기능 집합을 지원하도록 요구함으로서 하드웨어 플랫폼마다 다른 기능들을 감추는 기능을 제공한다. 여기서, 필요하다면 소프트웨어 시뮬레이션을 통하여 하드웨어 플랫폼마 다 다른 기능들을 감추어 모든 구현이 완전한 OpenGL 기능 집합을 지원하도록 할 수 있다. OpenGL is a graphics API that provides programmers with a single API that hides the complexity of different three-dimensional acceleration periods and hides features from hardware platform by requiring all implementations to support the full OpenGL feature set. Here, if necessary, software simulation can be used to hide different features on different hardware platforms so that all implementations support the full OpenGL feature set.
상기 소프트웨어 엔진은 확장성이 뛰어난 실행환경을 제공하기 때문에 시스템을 최대한 활용하여 최대의 생산성을 구현할 수 있다.Since the software engine provides a highly scalable execution environment, it is possible to realize maximum productivity by making the most of the system.
본 발명의 일 실시형태에 따르면, 소프트웨어 엔진과 호환되는 다중 입력장치의 하나로서 조이스틱을 예시한다. According to one embodiment of the invention, the joystick is illustrated as one of multiple input devices compatible with the software engine.
즉, 소프트웨어 엔진은 조이스틱을 통하여 객체와 인터랙션할 수 있으며, 이를 위해 조이스틱 클래스를 구현한다. 조이스틱 클래스 구현에는 모션 클래스와 입력 클래스를 사용한다. In other words, the software engine can interact with the object through the joystick, and implements the joystick class for this purpose. The joystick class implementation uses motion classes and input classes.
모션 클래스는 프라임 툴에서 만들어진 모션을 소프트웨어 엔진 API 에서 조작하기 위해 모션 객체를 레퍼런스하는 클래스이다. 이는 객체들의 모션을 정의하며, 입력장치 (예를 들어, 조이스틱) 각각의 값을 받아서 모션 객체에 적용시킨다. The motion class is a class that references a motion object to manipulate the motion created in the prime tool in the software engine API. This defines the motion of the objects and takes the value of each input device (eg joystick) and applies it to the motion object.
도 2 는 예시적인 모션 클래스(200)의 베이스 및 자(子) 클래스 다이어그램이다. 모션 클래스의 자(子) 클래스로는 예를 들어, 모션드라이브(MotionDrive) 클래스(210), 모션플라이(MotionFly) 클래스(220), 모션스 핀(MotionSpin) 클래스(230), 모션워크(MotionWalk) 클래스(240), 모션 와프(MotionWarp) 클래스(250), 모션게임(MotionGame) 클래스, 모션UFO 클래스 등이 있을 수 있다. 다만, 이들은 예시적인 것일 뿐이므로, 모션 클래스의 자 클래스가 이들로 한정되는 것은 아니다. 2 is a base and child class diagram of an
이 중 모션드라이브 클래스를 설명하면, 이는 자동차의 이동효과를 주기 위한 모션 타입 클래스이다. 모션드라이브 클래스의 멤버 변수에는 예를 들어 복수 개의 열거형 데이터가 있을 수 있는데, 이들 열거형 데이터는 속도와 관련된 변수, 핸들 움직임을 표현하는 변수등을 포함할 수 있다. 여기서, 속도와 관련된 변수는 예를 들어 속도의 증가, 감소, 정지의 경우를 지정할 수 있으며, 핸들 움직임을 표현하는 변수는 예를 들어 핸들 움직임 벡터의 X 축에 해당하는 헤딩값을 다루는 값을 정의할 수 있다.If the motion drive class is described, it is a motion type class to give a moving effect of the car. Member variables of the motion drive class may include, for example, a plurality of enumerated data, and these enumerated data may include variables related to speed and variables representing handle movements. Here, the speed-related variable can specify, for example, the case of speed increase, decrease, and stop, and the variable representing the handle movement defines a value that deals with a heading value corresponding to the X axis of the handle movement vector, for example. can do.
다음으로, 도 3 은 예시적인 입력 클래스(300)의 베이스 및 자(子) 클래스 다이어그램이다. 상기 소프트웨어 엔진의 입력 클래스는 입력장치를 나타내는 기본적인 클래스로서, 입력장치로부터 입력받은 데이터를 저장하는 벡터를 포함한다. Next, FIG. 3 is a base and child class diagram of an
입력 클래스의 자(子) 클래스로는 예를 들어, 입력컴포지트(InputComposite;310), 입력컨트롤러(InputController;320), 입력키보 드(InputKeyboard;330), 입력마우스(InputMouse;340), 입력트래커(InputTracker;350), 입력조이스틱(InputJoystick; 360), 입력핀치글러브(InputPinchGloves; 380) 등이 있을 수 있다. 다만, 이들도 상기 모션 클래스와 마찬가지로 예시적인 것일 뿐이므로, 입력 클래스의 자 클래스가 이들로 한정되는 것은 아니다. As the child class of the input class, for example, an input composite (InputComposite; 310), an input controller (InputController; 320), an input keyboard (InputKeyboard; 330), an input mouse (InputMouse; 340), an input tracker ( An InputTracker 350, an Input Joystick 360, an InputPinchGloves 380, and the like. However, these are just examples as well as the motion class, and the child class of the input class is not limited thereto.
다음으로, 입력조이스틱 클래스의 구현과정에 대해 설명한다. 입력조이스틱 클래스는 입력클래스를 상속받아 구현할 수 있다. Next, the implementation process of the input joystick class will be described. Input joystick class can be implemented by inheriting input class.
즉, 입력조이스틱 클래스는 조이스틱을 입력장치로 사용하기 위해 입력 클래스로부터 유도된 임의의 클래스이다. 즉, 입력조이스틱 클래스는 조이스틱을 입력장치로 사용하기 위해 입력 클래스로부터 유도된 임의의 클래스이다. DirectX 를 사용하여 조이스틱 값을 입력조이스틱 클래스로 가져올 수 있다. DirectX 를 초기화하고, 조이스틱의 조작 데이터를 가져오기 위한 클래스로 입력조이스틱데이터 클래스를 만들고 입력조이스틱의 멤버 변수로 가진다.That is, the input joystick class is any class derived from the input class to use the joystick as an input device. That is, the input joystick class is any class derived from the input class to use the joystick as an input device. You can use DirectX to import joystick values into the input joystick class. Initialize DirectX, create an input joystick data class as a class to get the joystick's operation data, and have it as a member variable of the input joystick.
예시적인 조이스틱 클래스의 구현 방법은 다음과 같다.An example joystick class is implemented as follows.
임의의 모션 타입을 레퍼런스하기 위해 API 에서 모션객체를 생성하고, 입력장치로부터 데이터를 추출하기 위한 입력조이스틱 클래스를 생성하고, DirectX 를 이용하여 조이스틱의 데이터를 저장한다. Create a motion object in the API to reference an arbitrary motion type, create an input joystick class for extracting data from the input device, and store the joystick data using DirectX.
그리고, 입력 조이스틱 클래스로 들어온 데이터를 모션 클래스에 삽입하기 위해 입력컴포지트에 넣은 뒤 모션 클래스의 멤버함수를 이용하여 모션벡터에 조이스틱의 데이터를 적용한다. Then, to insert the data from the input joystick class to the motion class, it is put in the input composite and the joystick data is applied to the motion vector using the member function of the motion class.
다음으로 VFW (Video for window) 를 사용하여 소프트웨어 엔진에서 지원하지 않는 외부입력장치인 USB 캐에 관한 클래스를 설명한다. Next, we will use VFW (Video for window) to explain the class about USB caching, which is not supported by the software engine.
먼저 VFW 를 사용하여 먼저 캠을 셋업하여 영상을 획득한다. 영상을 획득하여 출력하는 방법은 다음과 같다. VFW 를 이용하여 캡쳐 윈도우를 생성하고, 캡쳐 윈도우와 드라이버를 연결한다. 그리고, 캡쳐속도, 즉, 초당 캡쳐되는 프레임 수를 설정하고, 화면에 디스플레이 모드를 설정한다. First set up the cam using VFW to acquire the image. The method of acquiring and outputting an image is as follows. Create a capture window using VFW and connect the capture window to the driver. Then, set the capture rate, that is, the number of frames captured per second, and set the display mode on the screen.
이러한 과정을 거쳐 캠으로부터 획득한 영상을 버퍼에 저장하는데, 획득한 영상을 소프트웨어 엔진으로 가져와 화면에 디스플레이하기 위해서 버퍼의 주소를 저장한다. 즉, 추후에 캠을 통하여 획득한 이미지를 저장한 버퍼의 주소를 넘겨받음으로써, 캠의 영상을 소프트웨어 엔진에서 디스플레이 할 수 있다. Through this process, the image obtained from the cam is stored in the buffer, and the address of the buffer is stored in order to bring the acquired image to the software engine and display it on the screen. That is, the image of the cam can be displayed in the software engine by receiving the address of the buffer which stores the image acquired through the cam later.
도 4 는 구현된 클래스를 추가한 본 발명의 전체 시스템 (400) 구성도이다. 이는 상기에서 설명한 본 발명의 전체 시스템을 요약하여 개시한다. 4 is a schematic diagram of an
이상 본 발명의 설명을 위하여 도시된 실시예는 본 발명이 구체화되는 하나의 실시예에 불과하며, 도면에 도시된 바와 같이 본 발명의 요지가 실현되기 위하 여 다양한 형태의 조합이 가능함을 알 수 있다. Embodiments shown for the purpose of the present invention described above are only one embodiment in which the present invention is embodied, and as shown in the drawings, it can be seen that various forms of combinations are possible to realize the gist of the present invention. .
따라서 본 발명은 상기한 실시예에 한정되지 않고, 이하의 특허청구범위에서 청구하는 바와 같이 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변경실시가 가능한 범위까지 본 발명의 기술적 정신이 있다고 할 것이다. Therefore, the present invention is not limited to the above-described embodiments, and various changes can be made by any person having ordinary skill in the art without departing from the gist of the present invention as claimed in the following claims. It will be said that the technical spirit of this invention is to the extent possible.
도 1 은 소프트웨어 엔진의 시스템 구성도.1 is a system configuration diagram of a software engine.
도 2 는 모션 클래스의 베이스 및 자(子) 클래스 다이어그램.2 is a base and child class diagram of a motion class.
도 3 은 입력 클래스의 베이스 및 자(子) 클래스 다이어그램.3 is a base and child class diagram of an input class.
도 4 는 본 발명에 따라 구현한 클래스를 추가한 시스템 구성도.4 is a system configuration diagram adding a class implemented according to the present invention.
<도면의 주요 참조부호에 대한 설명>DESCRIPTION OF THE REFERENCE NUMERALS OF THE DRAWINGS
100 : 소프트웨어 엔진100: software engine
200 : 모션 클래스200: motion class
300 : 입력 클래스300: input class
Claims (2)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090055855A KR100990531B1 (en) | 2009-06-23 | 2009-06-23 | A method for embodying class offering multi input interaction |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090055855A KR100990531B1 (en) | 2009-06-23 | 2009-06-23 | A method for embodying class offering multi input interaction |
Publications (1)
Publication Number | Publication Date |
---|---|
KR100990531B1 true KR100990531B1 (en) | 2010-10-29 |
Family
ID=43135952
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090055855A KR100990531B1 (en) | 2009-06-23 | 2009-06-23 | A method for embodying class offering multi input interaction |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100990531B1 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100509505B1 (en) | 2002-08-26 | 2005-08-22 | 삼성전자주식회사 | apparatus for reproducing AV data in interactive mode, method for handling user input and information storage medium therefor |
US20060107222A1 (en) | 2004-09-10 | 2006-05-18 | Bea Systems, Inc. | Dynamic generation of wrapper classes to implement call-by-value semantics |
-
2009
- 2009-06-23 KR KR1020090055855A patent/KR100990531B1/en active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100509505B1 (en) | 2002-08-26 | 2005-08-22 | 삼성전자주식회사 | apparatus for reproducing AV data in interactive mode, method for handling user input and information storage medium therefor |
US20060107222A1 (en) | 2004-09-10 | 2006-05-18 | Bea Systems, Inc. | Dynamic generation of wrapper classes to implement call-by-value semantics |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Matsuda et al. | WebGL programming guide: interactive 3D graphics programming with WebGL | |
US20190065028A1 (en) | Agent-based platform for the development of multi-user virtual reality environments | |
US8350862B2 (en) | Shared graphics infrastructure | |
KR20080002847A (en) | Interface and system for manipulating thumbnails of live windows in a window manager | |
MXPA06003282A (en) | System and method for a unified composition engine in a graphics processing system. | |
US9396001B2 (en) | Window management for an embedded system | |
O'leary et al. | Enhancements to VTK enabling scientific visualization in immersive environments | |
US20130127849A1 (en) | Common Rendering Framework and Common Event Model for Video, 2D, and 3D Content | |
Pratama et al. | Workflow in virtual reality tool development for AEC industry | |
US20180357812A1 (en) | Optimizing processing time of a simulation engine | |
US11951390B2 (en) | Method and system for incremental topological update within a data flow graph in gaming | |
CN113168312A (en) | Method for generating binding between C/C + + library and interpreted language, and executing the method to convert three-dimensional (3D) model | |
Reidsma et al. | AsapRealizer in practice–A modular and extensible architecture for a BML Realizer | |
CN111752384A (en) | Computer implemented method, transmission system, program product and data structure | |
Andujar et al. | A cost-effective approach for developing application-control GUIs for virtual environments | |
US20090259951A1 (en) | Light-weight managed composite control hosting | |
Zielinski et al. | Enabling closed-source applications for virtual reality via opengl intercept-based techniques | |
Borycki | Programming for Mixed Reality with Windows 10, Unity, Vuforia, and UrhoSharp | |
KR100990531B1 (en) | A method for embodying class offering multi input interaction | |
Valkov et al. | Viargo-a generic virtual reality interaction library | |
Jung et al. | Interactive textures as spatial user interfaces in X3D | |
Wolfe et al. | Fiia: A model-based approach to engineering collaborative augmented reality | |
Molina et al. | An interaction model for the TRES-D framework | |
Kammer et al. | A component-oriented framework for experimental computer graphics | |
Rivera et al. | User interface features for tiled display environments |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20130628 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20140627 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20150623 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20160928 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20181001 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20191001 Year of fee payment: 10 |