KR100610690B1 - 3차원 화면에 플래시 동영상 삽입 방법 및 이를 위한 기록매체 - Google Patents

3차원 화면에 플래시 동영상 삽입 방법 및 이를 위한 기록매체 Download PDF

Info

Publication number
KR100610690B1
KR100610690B1 KR1020050056775A KR20050056775A KR100610690B1 KR 100610690 B1 KR100610690 B1 KR 100610690B1 KR 1020050056775 A KR1020050056775 A KR 1020050056775A KR 20050056775 A KR20050056775 A KR 20050056775A KR 100610690 B1 KR100610690 B1 KR 100610690B1
Authority
KR
South Korea
Prior art keywords
flash
area
video
texture
image
Prior art date
Application number
KR1020050056775A
Other languages
English (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 KR1020050056775A priority Critical patent/KR100610690B1/ko
Priority to PCT/KR2006/002525 priority patent/WO2007001161A1/en
Application granted granted Critical
Publication of KR100610690B1 publication Critical patent/KR100610690B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping

Abstract

본 발명은 3차원 화면에 플래시 동영상 삽입 방법에 관한 것으로서, 본 발명에 의한 방법은 서버로부터 플래시 동영상 데이터를 수신하는 단계(a); 상기 수신된 플래시 동영상 데이터를 재생할 플래시 플레이어를 호출하는 단계(b); 상기 플래시 플레이어에 의해 재생되는 플래시 동영상의 초기 프레임 캡쳐 이미지를 미리 설정된 동영상 드로잉 메모리 영역에 드로잉하는 단계(c); 상기 동영상 드로잉 메모리 영역에 저장된 이미지 데이터에 대한 텍스쳐를 설정하고 3D 화면에 렌더링하는 단계(d)-상기 설정되는 텍스쳐 정보는 텍스쳐가 삽입될 3D 화면에서의 좌표 정보를 포함함-; 상기 플래시 플레이어에 플래시 동영상 변화 영역 정보를 요청하여 수신하는 단계(e); 미리 설정된 시간 간격으로 상기 수신된 적어도 하나의 변화 영역을 최적화하는 단계(f); 및 상기 적어도 하나의 최적화된 변화 영역에 대한 이미지 드로잉을 상기 플래시 플레이어에 요청하여 상기 동영상 드로잉 메모리 영역에 드로잉된 플래시 동영상 이미지를 갱신하는 단계(g)를 포함한다. 본 발명에 의하면, 서버에서 특별한 전처리 작업을 수행하지 않고 플래시 동영상 파일을 전송하더라도 빠른 속도로 전송된 플래시 동영상을 3D 화면에 삽입할 수 있는 장점이 있다.
플래시, 3D, 게임, 동영상

Description

3차원 화면에 플래시 동영상 삽입 방법 및 이를 위한 기록 매체{Method for Inserting Flash Moving Picture into 3 Dimensional Screen and Record Medium for the Same}
도 1은 본 발명의 바람직한 일 실시예에 따른 3D 화면에 플래시 동영상을 삽입하기 위한 모듈 구성을 도시한 도면.
도 2는 본 발명의 바람직한 일 실시예에 따른 3차원 화면에 플래시 동영상을 삽입하는 방법의 전체적인 흐름을 도시한 순서도.
도 3은 본 발명의 바람직한 일 실시예에 따른 3D 엔진의 상세 구성을 도시한 블록도.
도 4는 본 발명의 바람직한 일 실시예에 따른 동영상 삽입 모듈의 상세한 모듈 구성을 도시한 블록도.
도 5는 본 발명의 바람직한 일 실시예에 따른 변화 영역을 최적화하는 과정을 도시한 순서도.
도 6은 변화 영역을 최적화하는 예들을 도시한 도면.
도 7은 본 발명의 바람직한 일 실시에에 따른 텍스쳐 설정 과정을 도시한 순서도.
도 8은 본 발명의 바람직한 일 실시에에 따른 텍스쳐 렌더링 과정을 도시한 순서도.
도 9 및 도 10은 플래시 동영상 이미지가 3D 화면에 렌더링되는 일례를 도시한 도면.
본 발명은 3D 화면에 플래시 동영상 삽입 방법 및 이를 위한 기록 매체에 관한 것으로서, 더욱 상세하게는 3D 게임과 같은 3D로 구현되는 화면에 광고 등의 플래시 동영상을 디스플레이하거나 사용자 인터페이스를 플래시 동영상으로 구현하는 방법에 관한 것이다.
종래에 있어서, 게임에서의 3D 그래픽은 비행 시뮬레이션 게임 등 극히 제한된 분야에서만 시도되었고 단지 와이어 프레임 정도만을 이용하여 3D 형상을 구현하는 정도였으나, 근래에는 3D 엔진이 발전하고 프로세서의 처리 능력이 향상됨에 따라 화려한 쉐이딩, 텍스쳐링 및 라이트닝이 가능해지고 많은 게임이 3D 그래픽으로 구현되고 있다. 또한, 게임뿐만 아니라 3D 엔진의 발전으로 그래픽을 제공하는 다른 종류의 소프트웨어들도 3차원 그래픽에 의해 구현되는 것이 일반화되고 있다.
3D 그래픽은 2차원 이미지에 질감 등을 부여함으로써 입체적인 그래픽을 제 공할 수 있을 뿐만 아니라 사용자의 시야에 따라 다른 장면이 연출될 수 있도록 함으로써 사용자가 현실 세계에서 사물을 보는 것과 같은 효과를 제공할 수 있다.
최근 들어, 게임을 즐기는 사용자들이 급증하면서 게임 내에 광고 또는 기타의 유용한 정보를 삽입하는 시도가 이루어지고 있다. 이와 같은 광고 또는 기타 정보는 텍스트 또는 단순한 이미지 형태로 게임 내에서 제공되기는 하였으나 동영상의 형태로는 제공되지 않았다.
동영상 중 플래시 동영상은 간단한 플래시 프로그래밍으로 구현이 가능하며, 화려한 그래픽 이미지 제공이 가능할 뿐만 아니라 사용자와의 상호 작용이 가능하여 인터페이스로도 활용될 수 있는 장점이 있기는 하나, 3D 그래픽의 근본적인 문제점인 3D 오브젝트 이외의 다른 이미지 오브젝트들을 유연하게 삽입하기 어렵다는 문제점으로 인해 플래시 동영상을 게임 내에 삽입하는 시도는 이루어지지 않았다.
특히, 플래시 동영상을 3D 화면에 삽입하고자 하는 경우, 플래시 동영상을 3D 그래픽의 일부로 표현하기 위한 전처리 작업이 이루어져야 하는데, 이와 같은 전처리 작업은 상당히 번거롭고 많은 시간이 소요되는 바, 플래시 동영상을 실시간으로 3D 화면에 삽입하는 것은 더욱 어려운 문제점이 있었다.
본 발명에서는 상기한 바와 같은 종래 기술의 문제점을 해결하기 위해, 서버에서 특별한 전처리 작업을 수행하지 않고 플래시 동영상 파일을 전송하더라도 전송된 플래시 동영상을 3D 화면에 삽입하여 디스플레이할 수 있는 방법 및 이를 위 한 기록 매체를 제안하고자 한다.
본 발명의 다른 목적은 다양한 종류의 플래시 동영상 광고 데이터를 실시간으로 3D 게임의 특정 영역에 삽입할 수 있는 방법 및 이를 위한 기록 매체를 제안하는 것이다.
본 발명의 또 다른 목적은 3D 그래픽 화면의 사용자 인터페이스가 플래시 동영상에 의해 구현될 수 있는 방법 및 이를 위한 기록 매체를 제안하는 것이다.
본 발명의 또 다른 목적은 빠른 속도로 플래시 동영상에 대한 텍스쳐를 설정하여 프로세서의 큰 부하 없이 플래시 동영상을 3D 화면에 삽입할 수 있는 방법 및 기록 매체를 제안하는 것이다.
상기한 바와 같은 목적을 달성하기 위하여, 본 발명의 일 측면에 따르면, 서버로부터 플래시 동영상 데이터를 수신하는 단계(a); 상기 수신된 플래시 동영상 데이터를 재생할 플래시 플레이어를 호출하는 단계(b); 상기 플래시 플레이어에 의해 재생되는 플래시 동영상의 초기 프레임 캡쳐 이미지를 미리 설정된 동영상 드로잉 메모리 영역에 드로잉하는 단계(c); 상기 동영상 드로잉 메모리 영역에 드로잉된 이미지 데이터에 대한 텍스쳐를 설정하고 3D 화면에 렌더링하는 단계(d)-상기 설정되는 텍스쳐 정보는 텍스쳐가 삽입될 3D 화면에서의 좌표 정보를 포함함-; 상기 플래시 플레이어에 플래시 동영상 변화 영역 정보를 요청하여 수신하는 단계(e); 미리 설정된 시간 간격으로 상기 수신된 적어도 하나의 변화 영역을 최적화 하는 단계(f); 및 상기 적어도 하나의 최적화된 변화 영역에 대한 이미지 드로잉을 상기 플래시 플레이어에 요청하여 상기 동영상 드로잉 메모리 영역에 드로잉된 플래시 동영상 이미지를 갱신하는 단계(g)를 포함하는 3D 화면에 플래시 동영상 삽입 방법이 제공된다.
또한, 본 발명은 상기 단계(g)에서 갱신된 이미지에 대한 텍스쳐를 설정하고 3D 화면에 렌더링하는 단계를 더 포함할 수 있다.
상기 플래시 동영상 데이터는 광고 데이터 또는 사용자 인터페이스에 삽입될 동영상 데이터를 포함하며, 상기 광고 데이터는 미리 설정된 스케줄링 알고리즘에 따라 서버로부터 전송되는 광고 데이터일 수 있다.
상기 단계(c)는, 상기 플래시 플레이어에 초기 프레임의 캡쳐 이미지 드로잉을 요청하는 단계; 및 상기 플래시 플레이어가 상기 동영상 드로잉 메모리 영역에 요청된 캡쳐 이미지 데이터를 드로잉하는 단계를 포함할 수 있다.
상기 미리 설정된 시간 간격은 3D 화면이 갱신되는 시간 간격인 것이 바람직하다.
상기 단계(d)에서 텍스쳐를 설정하는 단계는, 텍스쳐 좌표를 설정하는 단계; 3D 화면에 삽입될 텍스쳐를 로드하는 단계; 텍스쳐 스테이지를 생성하는 단계; 및 정점 버퍼를 생성하고 생성된 정점 버퍼를 채우는 단계를 포함할 수 있다.
상기 텍스쳐는 플래시 동영상의 초기 프레임 이미지가 드로잉되는 메모리 영역을 지정함으로써 로드되는 것이 바람직하다.
상기 단계(e)는 상기 미리 설정된 시간 간격까지 플래시 플레이어로부터 수 신된 변화 영역 정보들을 누적하여 저장하는 것이 바람직하다.
상기 단계(f)는, 상기 단계(e)에서 수신되는 적어도 하나의 변화 영역을 미리 설정된 사이즈 이하의 크기를 가지는 최적화 영역으로 통합하는 단계를 포함하며, 복수의 변화 영역을 하나의 최적화 영역으로 통합할 때, 최적화되는 영역의 사이즈 및 최적화되는 영역의 무효 영역과 유효 영역의 비를 임계 변수로 하여 최적화 영역으로 통합할지 여부를 결정하는 것이 바람직하다.
상기 단계(g)에서 최적화 영역이 복수일 경우, 각각의 최적화 영역에 대한 이미지 드로잉을 최적화 영역의 개수에 상응하는 횟수로 상기 플래시 플레이어에 요청한다.
또한, 본 발명은 상기 렌더링된 플래시 동영상의 특정 영역에 사용자 이벤트가 발생할 경우, 사용자 이벤트가 발생한 좌표 정보를 플래시 플레이어에서의 플래시 동영상 좌표 정보로 변환하는 단계를 더 포함하며, 상기 플래시 플레이어는 상기 동영상 좌표 정보를 수신하여, 해당 좌표에 사용자 이벤트 발생 시의 미리 설정된 프로세스를 수행한다.
본 발명의 다른 측면에 따르면, 플래시 플레이어 및 3D 엔진과 연동하여 플래시 동영상을 3D 화면에 삽입하기 위한 프로그램이 유형적으로 구현되어 있으며, 전자 정보 처리 장치 장치에 의해 판독될 수 있는 프로그램을 기록한 기록 매체에 있어서,
서버로부터 플래시 동영상이 전송될 경우, 상기 플래시 플레이어를 호출하여 전송된 플래시 동영상의 재생을 요청하는 단계(a);
상기 재생되는 플래시 동영상의 변화 영역 정보를 수신하는 단계(b);
상기 수신된 변화 영역 정보를 이용하여 적어도 하나의 변화 영역을 미리 설정된 시간 간격으로 미리 설정된 사이즈 이하의 최적화 영역으로 통합하는 단계(c)- 최적화 영역 통합 시 최적화되는 영역의 사이즈 및 최적화되는 영역의 무효 영역 및 유효 영역의 비를 임계 변수로 하여 복수의 영역을 하나의 최적화 영역으로 통합함-; 및
상기 최적화된 영역에 대한 이미지를 미리 설정된 동영상 드로잉 메모리 영역에 드로잉할 것을 상기 플래시 플레이어에 요청하는 단계(d)를 수행하는 프로그램을 기록한 기록 매체가 제공된다.
이하에서, 첨부된 도면을 참조하여 본 발명에 의한 3D 화면에 플래시 동영상 삽입 방법의 바람직한 실시예를 상세하게 설명한다.
도 1은 본 발명의 바람직한 일 실시예에 따른 3D 화면에 플래시 동영상을 삽입하기 위한 모듈 구성을 도시한 도면이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 플래시 동영상 삽입을 위한 모듈 구성은 플래시 플레이어(100), 동영상 드로잉 메모리(102), 동영상 삽입 모듈(104), 3D 엔진(106) 및 3D 월드(108)를 포함할 수 있다.
본 발명은 3D 게임과 같은 3D 화면의 미리 설정된 영역에 플래시 동영상 데이터를 삽입하는 방법에 관한 것으로서, 이를 구현하기 위한 도 1에 도시된 각각의 모듈은 소프트웨어에 의해 구현될 수도 있고, 카드 또는 칩과 같이 하드웨어로 구 현될 수도 있을 것이며, 도 1의 모듈은 사용자 클라이언트에 설치될 수 있을 것이다.
도 1에서, 플래시 플레이어(100)는 서버(미도시)로부터 제공되는 플래시 동영상 파일을 재생하는 기능을 한다. 본 발명에 의하면, 서버는 3D 화면에 삽입될 플래시 동영상 데이터를 사용자 클라이언트로 전송하며, 플래시 플레이어(100)는 서버로부터 전송되는 플래시 파일을 재생한다. 일반적으로 플래시 동영상의 파일 타입은 SWF이다. 서버는 미리 설정된 이벤트 발생 시 실시간으로 플래시 파일을 전송하여 3D 화면에 삽입되도록 하거나, 미리 플래시 파일을 전송하여 사용자 클라이언트에 저장된 파일을 이벤트 발생 시 플래시 플레이어가 재생하여 3D 화면에 삽입되도록 동작할 수도 있을 것이다. 플래시 플레이어(100)로는 flash.ocx와 같은 매크로미디어사의 플래시 플레이어가 사용될 수 있을 것이며, 기타 다른 플래시 플레이어가 사용될 수도 있을 것이다.
플래시 플레이어(100)는 재생된 플래시 동영상을 클라이언트의 미리 설정된 메모리 영역에 재생하며, 본 발명의 일 실시예에 따르면, 플래시 플레이어가 재생되는 플래시 동영상의 초기 프레임의 캡쳐 이미지를 동영상 드로잉 메모리에 저장한다. 이와 달리, 동영상 플레이어는 초기 프레임 캡쳐 동작을 수행하지 않고 동영상 삽입 모듈(104)이 재생되는 플래시 동영상의 초기 프레임을 캡쳐하여 동영상 드로잉 메모리(102)에 저장할 수도 있을 것이다. 본 발명의 일 실시예에 따르면, 동영상 드로잉 메모리(102)는 메모리 DC(Device Context)일 수 있다.
동영상 삽입 모듈(104)은 서버로부터 제공되는 플래시 동영상 데이터에 대한 플래시 플레이어(100)의 재생 동작을 제어하며 재생된 데이터가 3D 화면에 디스플레이되도록 3D 월드(108)에 제공하는 기능을 한다.
동영상 삽입 모듈(104)은 3D 게임 또는 다른 3D 그래픽 어플리케이션에 포함되는 프로그램 모듈일 수도 있으며, 3D 게임 또는 다른 3D 그래픽 어플리케이션에 플래시 동영상 데이터 삽입 동작을 수행하기 위한 별도의 어플리케이션 프로그램일 수도 있다.
동영상 삽입 모듈(104)에 의해 삽입되는 플래시 동영상 데이터는, 일례로, 플래시 광고일 수 있다. 정지 화상 광고가 아닌 동영상 플래시 광고가 3D 게임의 전광판 등과 같이 미리 설정된 영역에 삽입되어 재생됨으로써 게임 내에서의 광고 효과가 극대화될 수 있을 것이다.
또 다른 예로, 동영상 삽입 모듈에 의해 삽입되는 플래시 동영상 데이터는 3D 게임 등에서의 사용자 인터페이스로 삽입될 수 있다. 3D 게임 등에서 사용자 인터페이스는 아이콘 등의 2D 그래픽으로 표현되나, 본 발명에 의하면, 플래시로 제작된 플래시 동영상을 사용자 인터페이스 부분에 삽입함으로써 보다 동적이고 화려한 사용자 인터페이스가 제공될 수 있다. 특히, 플래시 동영상은 사용자와의 상호작용이 가능하므로 사용자 인터페이스로 활용하는데 효과적이다.
동영상 삽입 모듈(104)은 플래시 플레이어와의 통신을 통해 플래시 동영상 초기 프레임 이미지를 캡쳐하며, 초기 프레임 이미지의 캡쳐 후에는 플래시 동영상의 변화 정보를 플래시 플레이어로부터 수신하여 변화된 영역의 이미지를 갱신하여 3D 월드(108)에 제공한다.
본 발명의 일 실시예에 따르면, 플래시 동영상의 초기 프레임 캡쳐를 위해, 동영상 삽입 모듈(104)은 플래시 플레이어(100)에 초기 프레임의 캡쳐 이미지를 동영상 드로잉 메모리(102)에 드로잉할 것을 요청하며, 동영상 드로잉 메모리(102)에는 플래시 플레이어(100)가 드로잉한 캡쳐 이미지가 저장된다.
본 발명의 다른 실시예에 따르면, 플래시 플레이어는 수신된 플래시 파일의 재생만을 수행하며, 초기 프레임의 캡쳐는 동영상 삽입 모듈(104)에 의해 수행될 수도 있다. 이 경우, 동영상 삽입 모듈(104)은 캡쳐한 초기 프레임 이미지를 동영상 드로잉 메모리(102)에 저장한다.
이와 같이, 동영상 삽입 모듈(104)과 플래시 플레이어(100)의 통신을 통해 특정 프레임의 캡쳐 이미지를 3D 월드에 제공하여 삽입함으로써 3D 화면의 특정 영역에 플래시 플레이어가 재생하는 플래시 동영상의 프레임 이미지를 삽입하는 것이 가능하다.
플래시 동영상은 대부분의 경우 배경 등은 변하지 않고 전체 화면의 일부 영역만이 시간에 따라 변화하는 것이 일반적이다. 따라서, 프레임 전체 이미지를 항상 캡쳐하는 것은 프로세서에 과도한 부하만을 일으키고 비효율적이다.
본 발명에서는 프로세서의 부하를 줄이고 빠른 속도로 플래시 동영상의 프레임 이미지가 3D 월드에 제공될 수 있도록 초기 프레임의 이미지 캡쳐 후에는 변화 된 영역에 대해서만 이미지 캡쳐를 수행하는 방법을 제안한다.
이를 위해, 동영상 삽입 모듈(104)은 플래시 플레이어(100)에 변화되는 플래시 동영상의 영역 정보 제공을 요청하며, 제공되는 정보를 통해 플래시 동영상의 전체 화면 중 어떠한 영역이 변화되었는지 여부를 판단하고, 해당 영역의 이미지만을 플래시 플레이어가 드로잉 하도록 요청한다.
이 경우, 플래시 플레이어가 플래시 동영상 변화 정보를 동영상 삽입 모듈(104)에 제공하는 주기는 3D 월드(108)가 갱신되는 경우보다 빠를 수 있다. 3D 월드(108)는 일반적으로 1초에 30번 정도의 주기로 갱신이 되나 플래시 동영상이 빠른 속도로 변화할 경우 플래시 플레이어가 플래시 동영상 변화 영역 정보를 제공하는 속도는 1초에 60번을 초과할 수 있다.
따라서, 동영상 삽입 모듈(104)은 플래시 동영상 변화 영역 정보를 플래시 플레이어로부터 수신하고 있다가 3D 월드 갱신 시점에 수신된 변화 영역 정보를 최적화하여 최적화된 영역에 대한 이미지를 드로잉하도록 플래시 플레이어(100)에 요청하는 것이 바람직하다. 변화 영역의 최적화 방법은 별도의 도면을 통해 상세히 설명하기로 한다.
이와 같이, 실질적으로 변화는 영역의 이미지만을 갱신하여 3D 월드에 제공함으로써 빠른 속도로 변화하는 플래시 동영상의 캡쳐 이미지를 3D 월드에 제공하는 것이 가능하며, 프로세서의 부하를 줄이고 삽입 속도를 향상시키는 것이 가능하다.
물론, 장면 전환이 발생하는 등 플래시 동영상 화면 전체가 갱신되는 경우에는 새로운 이미지 캡쳐 작업이 수행되어야 할 것이다.
동영상 삽입 모듈(104)은 동영상 드로잉 메모리(102)에 드로잉되는 플래시 동영상의 특정 프레임의 이미지 데이터를 텍스쳐(Texture) 형태로 3D 월드(108)에 제공하여 플래시 플레이어에 의해 재생되는 플래시 동영상이 3D 화면의 특정 영역에 삽입될 수 있도록 한다. 동영상 삽입 모듈(104)이 플래시 동영상에 대한 텍스쳐를 설정하여 3D 월드에 삽입하는 과정은 별도의 도면을 통해 상세히 설명하기로 한다.
텍스쳐는 3D 화면의 지오메트리상에 매핑되는 2차원 이미지이다. 전술한 바와 같이, 플래시 동영상 데이터를 이차원 이미지화하기 위해 플래시 플레이어가 캡쳐된 프레임 이미지를 제공할 수도 있으며, 재생되는 플래시 동영상에 대해 동영상 삽입 모듈(104)이 캡쳐 동작을 수행할 수도 있을 것이다.
3D 엔진(106)은 3D 게임과 같은 3D 그래픽 관련 어플리케이션을 구동하고 어플리케이션과 데이터를 관리하며, 효율적인 어플리케이션 제작 및 어플리케이션 구동을 돕는 엔진을 의미한다.
3D 게임의 경우, 3D 엔진은 게임 엔진에 포함될 수 있을 것이다. 3D 엔진은 어플리케이션과의 통신을 통해 3D 그래픽의 렌더링 및 3D 환경에 따른 오브젝트의 물리적인 움직임이 이루어지도록 제어한다.
도 1에는 도시되어 있지 않으나, 효율적인 3D 그래픽 구현을 위해 3D 그래픽 API(Application Program Interface)인 다이렉트엑스(DirectX) 또는 오픈 지엘(openGL) 등이 이용될 수도 있을 것이다.
3D 월드(108)는 3D 엔진 및 3D 엔진과 관련된 3D 어플리케이션에 의해 구현되는 3D 화면이 디스플레이되는 메모리 영역을 의미한다. 3D 월드(108)는 미리 설정된 시간 간격으로 갱신되며, 3D 엔진(106)은 3D 월드에 구현된 3차원 그래픽 화 면을 사용자 디스플레이장치에 렌더링한다. 전술한 바와 같이, 3D 월드의 미리 설정된 영역에는 텍스쳐로 변환된 플래시 동영상 프레임 이미지가 삽입된다.
일반적으로 3D 월드(108)에는 전체적인 3D 화면이 모두 구현되며, 3D 엔진은 구현된 3D 월드 화면 중 사용자의 시야와 관련된 화면만을 사용자 디스플레이 장치에 디스플레이한다.
상술한 모듈 구성에 의해, 서버에서 특별한 처리 작업이 없이 플래시 동영상 광고 데이터를 클라이언트에 전송하는 것만으로 플래시 동영상 광고가 실시간으로 3D 게임의 특정 영역에 디스플레이될 수 있다. 또한, 보다 동적이고 현실감 있는 사용자 인터페이스가 플래시에 의해 구현될 수 있으며, 사용자 인터페이스 그래픽은 별도의 패치 작업 등이 없어도 용이하게 교체될 수 있다.
도 2는 본 발명의 바람직한 일 실시예에 따른 3차원 화면에 플래시 동영상을 삽입하는 방법의 전체적인 흐름을 도시한 순서도이다.
도 2를 참조하면, 우선 서버로부터 플래시 동영상 파일을 수신하는 과정이 수행된다(단계 200). 동영상 데이터가 광고일 경우, 서버는 미리 설정된 스케줄링 알고리즘에 따라 다양한 광고 데이터를 전송할 수 있을 것이다.
플래시 동영상 파일 수신 정보는 도 1의 동영상 삽입 모듈(104)에 제공되며, 동영상 삽입 모듈(104)은 수신된 플래시 동영상 파일에 대한 재생을 플래시 플레이어(100)에 요청한다(단계 202). 동영상 삽입 모듈(104)은 플래시 동영상 재생 요청 시 플래시 동영상을 재생할 메모리 영역 정보를 플래시 플레이어(100)에 제공하며, 플래시 플레이어는 해당 메모리 영역에 플래시 동영상 파일을 재생한다.
플래시 동영상이 재생되면, 플래시 동영상의 초기 프레임 이미지를 캡쳐한다(단계 204). 전술한 바와 같이, 본 발명의 일 실시예에 따르면, 플래시 플레이어가 초기 프레임에 대한 캡쳐 데이터를 동영상 드로잉 메모리 영역에 저장한다. 본 발명의 다른 실시예에 따르면, 동영상 삽입 모듈이 재생되는 플래시 동영상의 초기 프레임을 직접 캡쳐하여 동영상 드로잉 메모리 영역에 저장할 수도 있다.
초기 프레임의 이미지가 캡쳐되고 동영상 드로잉 메모리 영역에 이미지 데이터가 저장될 경우, 동영상 삽입 모듈(104)은 캡쳐된 이미지에 대해 텍스쳐를 설정하는 과정을 수행한다(단계 206). 동영상 삽입 모듈(104)은 텍스쳐의 좌표를 갖는 정점을 설정하고 텍스쳐에 대한 스테이지 설정과 같은 텍스쳐 설정 작업을 수행한다. 예를 들어, 동영상 삽입 모듈(104)은 3D 화면의 방에 구비된 TV에서 플래시 동영상이 재생되도록 하고자 하는 경우, TV를 지오메트리로 하여 텍스쳐가 입혀질 좌표 및 텍스쳐의 색상 등을 설정하는 과정을 수행한다.
초기 프레임 캡쳐 이미지에 상응하는 텍스쳐의 설정이 완료되면, 텍스쳐를 미리 설정된 지오메트리에 렌더링하는 절차가 진행된다(단계 208). 상술한 텍스쳐 설정 절차에서 설정된 정보에 따라 지오메트리에 텍스쳐가 렌더링되며, 렌더링 시 TCI(Texture Coordinate Index) 좌표를 텍스쳐 좌표로 변환하는 과정이 수행된다. 플래시 동영상 캡쳐 이미지는 지오메트리의 형태에 상응하여 렌더링 되며, 예를 들어, TV와 같은 평면일 경우 평면의 이미지로 렌더링되나, 경기장의 휘어진 트랙이 지오메트리일 경우 트랙과 같이 휘어진 형태로 렌더링될 것이다.
도 9 및 도 10은 플래시 동영상 이미지가 3D 화면에 렌더링되는 일례를 도시 한 도면이다.
도 9 및 도 10에 도시된 바와 같이, 플래시 동영상은 TV 또는 트랙과 같이 3D 화면의 특정 영역에 삽입되며, 삽입되는 지오메트리의 형태에 상응하여 평면 또는 곡면의 형태를 가지게 된다.
플래시 동영상의 삽입을 위해서는 초기 프레임뿐만 아니라 이후 프레임에 대한 이미지 역시 계속적으로 3D 월드에 삽입되어야 한다. 전술한 바와 같이, 프레임 이미지 캡쳐 및 삽입을 위한 프로세서의 부하를 줄이고 속도를 향상시키기 위해, 본 발명은 차후 프레임의 이미지 전체를 캡쳐하지 않고 이미지의 일부 영역만을 플래시 플레이어가 드로잉하도록 한다.
이를 위해, 동영상 삽입 모듈(104)은 플래시 플레이어(100)에 플래시 동영상이 변화되는 영역 정보를 요청하고 플래시 플레이어(100)로부터 해당 정보를 수신한다(단계 210). 일반적인 플래시 플레이어는 플래시 동영상이 갱신되는 영역 정보를 제공하므로 이 기능을 이용하여 플래시 동영상 변화 영역 정보를 수신할 수 있다. 예를 들어, 동영상 삽입 모듈은 InvalidateRect 함수를 이용하여 플래시 동영상의 변화 영역 정보를 플래시 플레이어(100)에 요청할 수 있다.
플래시 플레이어(100)는 3D 월드의 갱신 시간과 무관하게 플래시 동영상이 변화할 때마다 변화 영역 정보를 제공한다. 플래시 동영상의 프레임 이미지 삽입은 3D 월드 갱신 시간 주기에 맞추는 것이 바람직하므로, 동영상 삽입 모듈(104)은 3D 월드 갱신 주기 사이에 여러 번의 변화 영역 정보를 수신할 경우, 해당 정보를 누적한다(단계 212).
3D 월드 갱신 주기가 될 경우, 동영상 삽입 모듈(104)은 누적된 변화 영역을 최적화한다(단계 214). 예를 들어, 동영상 삽입 모듈(104)은 여러 개의 변화 영역을 하나의 영역으로 통합함으로써 변화 영역 최적화를 수행한다. 또한, 변화 영역의 수가 많고 변화 영역들 사이의 거리가 멀어 하나의 영역으로 통합할 수 없는 경우 일부 변화 영역들끼리 통합을 하여 복수의 최적화 영역을 생성하는 방법으로 변화 영역 최적화를 수행할 수도 있을 것이다. 변화 영역을 최적화하는 구체적인 방법은 도 5 및 도 6을 참조하여 설명하기로 한다.
변화 영역에 대한 최적화가 이루어지면, 이미지 삽입 모듈(104)은 플래시 플레이어에 최적화된 변화 영역에 대한 이미지 드로잉을 요청한다(단계216). 플래시 플레이어는 동영상 드로잉 메모리 영역에 저장되어 있는 초기 프레임 이미지에 최적화된 변화 영역에 해당되는 이미지를 덮어서 드로잉한다.
변화 영역에 대한 이미지가 다시 드로잉되면, 갱신된 이미지에 대한 텍스터 설정 및 텍스쳐 렌더링 과정이 진행된다(단계 218).
도 2에는 도시되어 있지 않으나, 단계 218에 의해 플래시 동영상이 3D 화면에 재생될 경우, 사용자와의 상호작용이 가능하다. 플래시 동영상은 액션 스크립트를 포함하고 있으므로, 마우스 이벤트와 같은 특정 사용자 이벤트에 응답하여 미리 설정된 프로세스를 수행한다. 본 발명에 의하면, 이와 같은 플래시 동영상과 사용자와의 상호작용이 3D 게임과 같은 3D 화면 내에서 이루어질 수 있도록 한다.
이를 위해, 3D 엔진 또는 다른 어플리케이션 구동 엔진은 3D 화면에 디스플레이되는 플래시 동영상의 특정 영역에 마우스 이벤트와 같은 사용자 이벤트가 발 생할 경우, 해당 영역의 좌표를 플래시 플레이어에서의 좌표로 변화하고 변환된 좌표 정보를 플래시 플레이어에 제공한다.
플래시 플레이어는 수신한 좌표에 사용자 이벤트가 발생할 경우의 미리 설정된 프로세스를 수행하며, 수행되는 프로세스에 의해 달라지는 플래시 동영상은 도 2와 같은 절차에 의해 3D 화면에 디스플레이된다.
도 3은 본 발명의 바람직한 일 실시예에 따른 3D 엔진의 상세 구성을 도시한 블록도이다.
도 3을 참조하면, 본 발명에 사용되는 3D 엔진은 물리 엔진(300), 인공 지능 엔진(302), 네트워크 엔진(304) 및 렌더링 엔진(306)을 포함할 수 있다.
물리 엔진(300)은 3D 화면에 구현되는 오브젝트(Object)들의 충돌 감지, 특수 효과 등을 표현하는 기능을 하는 엔진이다. 예를 들어, 벽에 부딪혔을 때 더 이상 이동이 불가능하거나 공이 벽에 맞았을 때 탄성력에 의해 튕기는 현상 등은 물리 엔진에 의해 구현되며, 총을 쏘거나 칼을 휘둘렀을 때의 특수 효과 등도 물리 엔진에 의해 구현된다. 물리 엔진은 물리학에 기초하여 제작되며, 가장 기본적으로 이용되는 법칙은 뉴턴의 역학 법칙이다. 3D 게임 등에서 플레이어가 이동할 때에 디스플레이되는 사실적인 움직임은 물리 엔진에 의해 가능해진다.
인공 지능 엔진(302)은 캐릭터 또는 기타의 오브젝트가 미리 설정된 알고리즘에 따라 지능적인 동작을 수행하도록 하는 알고리즘이다. 인공 지능 엔진의 구현을 위해서는 DT(Decison Tree) 기술, FuSM(Fuzzy State Machine) 기술, FSM(Finite State Machine) 기술, 스크립트 랭귀지 또는 규칙 기반 시스템 등이 이용될 수 있 을 것이다. 오브젝트가 자동적으로 가장 빠른 경로로 이동하는 동작 또는 게임 내 NPC(Non-Player Character)의 규칙적인 동작 등은 인공 지능 엔진(302)에 의해 구현된다.
네트워크 엔진(304)은 온라인 3D 게임의 경우 주로 이용되며, 네트워크에 접속하지 않고 클라이언트 내에서 3D 화면이 구현되는 경우에는 구비되지 않아도 무방하다. 네트워크 엔진(304)은 온라인 3D 게임에서 많은 수의 동시 접속자들에 대한 정보를 전달하는 기능을 한다. 동시 접속자들에 대한 정보 전달을 위해 P2P(Peer to Peer), 클라이언트-서버 시스템, 하이브리드 시스템 또는 대용량 분산 서버 시스템 등이 사용된다.
렌더링 엔진(306)은 3차원으로 구성된 오브젝트에 대한 기하학적인 정보를 2차원의 스크린 상의 이미지로 변환하여 사용자 디스플레이 장치에 디스플레이하는 기능을 한다. 본 발명에서 플래시 동영상 데이터를 특정 지오메트리에 삽입한 후 디스플레이하는 기능은 렌더링 엔진(306)에 의해 수행된다. 3D 화면의 데이터는 오브젝트의 정점 좌표, 텍스쳐 정점 좌표, 디퓨즈 값 등을 포함하고 있는 바, 렌더링 엔진(306)은 이러한 다양한 정보를 화면에 뿌리는 기능을 수행한다.
렌더링 엔진(306)은 독립적으로 렌더링을 수행할 수도 있으나, 도 3에 도시된 바와 같이, 다이렉트엑스(DirectX), 오픈 지엘(openGL) 등과 같은 3D 그래픽 API(Application Program Interface)(350)와 연동하여 렌더링을 수행할 수도 있다. 3D 그래픽 API를 이용함으로써 보다 빠른 3차원 화면 데이터 처리가 가능하다.
도 4는 본 발명의 바람직한 일 실시예에 따른 동영상 삽입 모듈의 상세한 모 듈 구성을 도시한 블록도이다.
도 4를 참조하면, 본 발명의 일 실시예에 따른 동영상 삽입 모듈(400)은 플레이어 호출 모듈(400), 이미지 캡쳐 제어 모듈(402), 변화 영역 수신 모듈(404), 변화 영역 최적화 모듈(406), 이미지 갱신 제어 모듈(408) 및 텍스쳐 설정 모듈(410)을 포함할 수 있다.
도 4에서, 플레이어 호출 모듈(400)은 플래시 동영상 파일이 서버로부터 수신될 경우 플래시 플레이어를 호출하는 기능을 한다. 플레이어 호출 모듈(400)은 플래시 플레이어 호출 시 재생할 플래시 파일명 정보를 플래시 플레이어에 전달한다.
이미지 캡쳐 제어 모듈(402)은 재생되는 플래시 동영상의 초기 프레임 캡쳐를 제어하는 기능을 한다. 전술한 바와 같이, 이미지 캡쳐 제어 모듈(402)은 초기 프레임의 이미지 드로잉을 플래시 플레이어에 요청할 수도 있으며, 재생되는 초기 프레임 이미지를 직접 캡쳐할 수도 있다. 초기 프레임 이외에도, 플래시 동영상의 장면 전환 등으로 인해 플래시 동영상 변화 정보의 양이 많아지는 경우, 이미지 캡쳐 제어 모듈(402)은 장면 전환이 이루어지는 프레임의 이미지 캡쳐를 제어할 수도 있다.
변화 영역 수신 모듈(404)은 플래시 플레이어에 플래시 동영상이 변화되는 영역 정보를 요청하고 해당 정보를 수신하여 다음 3D 월드 갱신 시기까지 누적하는 기능을 한다. 전술한 바와 같이, 변화 영역 수신 모듈(404)은 InvalidateRect 함수 등을 이용하여 플래시 플레이어에 변화 영역 정보를 요청할 수 있다.
변화 영역 최적화 모듈(406)은 3D 월드 갱신 시기까지 변화 영역 수신 모듈(404)이 누적한 변화 영역 정보를 이용하여 최적화된 변화 영역을 연산하는 기능을 한다. 변화 영역 최적화 모듈(406)은 복수의 변화 영역을 통합된 최적화 영역으로 합치는 연산을 수행하며, 최적화 영역은 경우에 따라 복수개가 형성될 수 있다.
이미지 갱신 제어 모듈(408)은 상기 변화 영역 최적화 모듈(406)에 의해 연산된 최적화 영역에 대한 이미지 드로잉을 플래시 플레이어에 요청하여 변화된 플래시 동영상 프레임 이미지가 동영상 드로잉 메모리에 저장되도록 한다. 전술한 바와 같이, 플래시 플레이어는 동영상 드로잉 메모리에 최적화 영역에 대한 이미지를 덮어서 드로잉하는 방식으로 이미지를 갱신한다.
본 발명의 일 실시예에 따르면, 이미지 갱신 제어 모듈(408)은 다이렉트엑스 또는 오픈 지엘과 같은 3D 그래픽 API에 DC(Device Context) 정보의 생성을 요청하고 생성된 DC 정보를 플래시 플레이어에 제공하면서 이미지 드로잉을 요청한다. DC 정보에는 이미지를 드로잉할 메모리 영역 정보, 최적화 영역 정보 및 이미지 드로잉을 위해 사용할 함수 정보가 포함된다.
텍스쳐 설정 모듈(410)은 이미지 드로잉 메모리에 저장된 이미지가 3D 화면의 특정 영역에 삽입되도록 텍스쳐 설정을 수행한다. 텍스쳐 설정 모듈(410)은 텍스쳐가 입혀질 지오메트리 및 텍스쳐의 좌표 등을 설정하여 설정 정보에 따라 텍스쳐 렌더링이 이루어질 수 있도록 한다. 보다 상세한 텍스쳐 설정 절차는 도 7을 참조하여 설명하기로 한다.
도 5는 본 발명의 바람직한 일 실시예에 따른 변화 영역을 최적화하는 과정 을 도시한 순서도이며, 도 6은 변화 영역을 최적화하는 예들을 도시한 도면이다.
도 5를 참조하면, 플래시 동영상이 변화하는 영역 정보가 플래시 플레이어로부터 제공되며(단계 500), 변화 영역 정보는 3D 월드가 갱신되는 시기까지 계속적으로 누적된다(단계 502).
수신된 변화 영역을 참조하여, 플래시 동영상의 장면 전환이 이루어졌는지 여부를 판단한다(단계 504). 장면 전환이 이루어질 경우, 전체 영역이 모두 변화되므로 이 경우에는 변화 영역 최적화 절차를 수행하지 않고 해당 프레임의 전체 이미지를 캡쳐하는 과정을 진행한다(단계 506).
장면 전환이 이루어지지 않은 경우 3D 월드 갱신 시기가 되면, 누적된 변화 영역들을 미리 설정된 사이즈 이하의 최적화 영역으로 통합한다(단계 508).
예를 들어, 도 6의 (a)와 같이 변화 영역이 서로 평행하게 겹칠 경우, 평행하게 겹치는 두 영역을 하나의 직사각형으로 통합한다.
또 다른 예로, 도 6의 (b)와 같이 평행하게 겹치지 않는 경우에는 두 영역의 왼쪽 상단 모서리 좌표와 오른쪽 하단의 모서리 좌표를 연결한 직사각형으로 두 영역을 하나의 영역으로 통합한다. 두 영역이 서로 겹치지 않는 경우에도 도 6의 (b)와 같은 방식으로 둘 이상의 영역을 하나의 영역으로 통합하며, 통합된 영역이 최적화 영역이 된다.
도 6의 (b)와 같은 형태로 통합이 되는 경우, 통합된 최적화 영역은 실제로 변화가 일어나는 영역과 변화가 일어나지 않는 영역으로 구분될 수 있는데, 본 명세서에서는 변화가 일어나는 영역을 유효 영역, 변화가 일어나지 않는 영역을 무효 영역이라고 정의하기로 한다.
복수의 영역을 최적화 영역으로 통합할 때에는 최적화되는 영역의 사이즈 및 상술한 유효 영역과 무효 영역 사이의 비율이 임계 변수로 작용하며, 최적화 영역이 설정될 수 있는 영역의 사이즈 및 유효 영역과 무효 영역의 비는 미리 설정된다.
예를 들어, 도 6의 (c)와 같이 변화 영역이 세 개(600, 602, 604)이고 도 6의 (b)와 같은 방식으로 최적화 영역을 형성할 경우 실질적으로 플래시 동영상 화면의 대부분이 최적화 영역이 된다.
이 경우, 최적화 영역의 사이즈가 클 뿐만 아니라 무효 영역의 비율이 유효 영역의 비율보다 높게 된다. 따라서, 이와 같은 경우 최적화 영역의 사이즈 및 무효 영역과 유효 영역의 비율이 임계 변수로 작용할 경우, 제1 영역(600), 제2 영역(602) 및 제3 영역(604) 모두를 하나의 영역으로 통합하는 것은 허용되지 않으며, 이 경우에는 도 6에 도시된 바와 같이, 최적화 영역의 사이즈 및 무효 영역과 유효 영역의 비율을 만족하는 제2 영역(602) 및 제3 영역(604)에 대해서만 영역 통합 작업이 이루어진다.
따라서, 도 6의 (c)와 같이 영역 최적화 작업이 이루어질 경우, 최적화 영역은 2개 이상이 형성될 수 있다.
최적화 영역이 확정되면, 각각의 최적화 영역에 대해 번호 정보가 부여되며, 첫 번째 최적화 영역에 대한 이미지 드로잉을 플래시 플레이어에 요청한다(단계 510). 전술한 바와 같이, 최적화 영역 정보, 최적화 영역을 드로잉할 메모리 영역 정보 및 이미지 드로잉에 사용될 함수 정보를 포함하는 DC(Device Context) 정보를 플래시 플레이어에 제공함으로써 최적화 영역에 대한 이미지 드로잉을 요청하며, 플래시 플레이어는 지정된 메모리 영역에 첫 번째 최적화 영역 이미지를 덮어서 드로잉하며, 이로 인해 메모리에 저장된 이미지의 갱신이 이루어진다(단계 512).
첫 번째 최적화 영역에 대한 이미지 갱신이 이루어진 후 다음 최적화 영역에 대한 이미지 갱신 작업이 반복된다. 도 5에 도시된 바와 같이, 임의의 변수 i가 최적화 영역의 개수와 일치하는지 여부를 판단하고(단계 514), 일치하지 않을 경우 (i+1)번째 최적화 영역에 대해 이미지 갱신 작업이 반복되며, 모든 최적화 영역에 대한 이미지 갱신이 이루어지면, 갱신된 이미지에 대해 텍스쳐가 설정되고 3D 월드에 삽입되는 과정이 진행된다.
도 5에는 도시되어 있지 않으나, 최적화 영역의 개수를 제한하는 방법이 사용될 수도 있다. 예를 들어, 미리 설정된 최적화 영역의 사이즈 및 유효 영역과 무효 영역에 비에 따라 최적화 영역을 설정할 경우 임계치 이상의 최적화 영역이 생성되면, 상기 미리 설정한 최적화 영역의 사이즈 및 유효 영역과 무효 영역의 비율을 완화하여 최적화 영역의 수를 임계치 이하로 줄이는 방법이 사용될 수도 있다.
이와 같은 방식은, 최적화 영역의 숫자에 상응하는 횟수만큼 이미지 갱신이 이루어지기 때문에, 이미지 갱신의 횟수가 많을 경우 최적화 작업을 거치지 않고 이미지를 캡쳐하는 경우보다 처리 시간이 지연되는 문제점을 해결하기 위한 것이다.
도 7은 본 발명의 바람직한 일 실시에에 따른 텍스쳐 설정 과정을 도시한 순 서도이다.
도 7를 참조하면, 우선 텍스쳐의 인터페이스를 설정하는 과정이 수행된다(단계 700). 텍스쳐 인터페이스 설정 과정은 텍스쳐 변수를 선언하는 과정으로서 3D 그래픽 API로 다이렉트엑스가 사용될 경우 C++ 언어에서는 다음과 같이 설정될 수 있을 것이다.
LPDIRECT3DTEXTURE9 texture = NULL
텍스쳐 인터페이스가 설정된 후에는 텍스쳐의 좌표를 설정하는 과정이 수행된다(단계 702). 이때 설정되는 좌표는 텍스쳐가 삽입될 영역의 3차원 좌표 및 텍스쳐 자체의 2차원 좌표가 포함될 수 있다. 이와 같은 좌표는 C++ 언어의 구조체 형식으로 설정될 수 있을 것이며 그 예는 다음과 같다.
struct CUSTOMVERTEX
{
D3DXVECTOR3 position;
D3DCPLPR color;
FLOAT tu, tv;
}
좌표가 설정된 후, 텍스트가 입혀질 지오메트리를 초기화하는 과정이 진행된다(단계 704).
지오메트리 초기화 후 지오메트리에 입혀질 실질적인 텍스쳐를 로드한다(단계 706). 텍스쳐는 파일의 경로를 지정하는 방식 등을 통해 로드될 수 있으나, 본 발명에서는 동영상 드로잉 메모리 영역에 플래시 동영상의 프레임 이미지가 계속적으로 갱신되는 바, 이미지가 드로잉되는 메모리 영역을 지정함으로써 텍스쳐를 로드하는 것이 바람직하다. 텍스쳐 로드에는 일반적인 D3DXCreateTexture 함수 등이 이용될 수 있을 것이다.
텍스쳐가 로드된 후 텍스쳐 스테이지를 설정하는 과정이 수행된다(단계 708). 텍스쳐 스테이지에서는 텍스쳐 색상의 밝기, 주변 배경과의 밝기 조절 정보 등을 설정한다. 스테이지 설정 시 주변 배경과 플래시 동영상 텍스쳐의 색상을 조합하는 모듈레이트(Modulate) 기능이 이용될 수 있다.
스테이지 설정 후, 텍스트가 입혀질 지오메트리에 대한 정점 버퍼를 생성한다(단계 710). 정점 버퍼는 CreateVertexBuffer 함수 등을 이용하여 생성할 수 있을 것이다. 생성된 정점 버퍼에는 텍스쳐의 2차원 u,v 좌표값이 채워진다(단계 712).
도 8은 본 발명의 바람직한 일 실시에에 따른 텍스쳐 렌더링 과정을 도시한 순서도이다.
도 8을 참조하면, 2차원의 텍스쳐를 렌더링하기 위해 후면 버퍼와 Z 버퍼를 클리어하는 과정이 진행된다(단계 800).
후면 버퍼와 Z 버퍼가 클리어되면, 텍스쳐 변환에 사용될 매트릭스를 설정한다(단계 802). 텍스쳐 변환에 사용되는 매트릭스에는 월드 매트릭스, 프로젝션 매트릭스 및 뷰(view) 매트릭스 등이 있다.
변환에 사용될 매트릭스가 설정된 후, 스테이지 설정 정보에 따라 모듈레이 트 연산을 통해 색상을 조합하는 과정이 수행된다(단계 804). 일반적으로 텍스쳐에 대해 지정된 색상과 정점에 대해 지정된 색상에 대한 조합이 이루어질 수 있을 것이다.
상기 단계 802에서 설정된 매트릭스를 텍스쳐 좌표 인덱스(TCI) 전달 인자로 사용해서 3차원의 TCI 좌표를 u, v 텍스쳐 좌표로 변환한다(단계 806). 좌표가 변환되면, 정점 버퍼의 내용을 드로잉하는 과정을 수행함으로써 렌더링 작업이 완료된다(단계 808).
3D 월드의 갱신 시기에 맞추어 동영상 드로잉 메모리에 갱신되는 플래시 동영상의 프레임 이미지는 도 7 및 도 8과 같은 텍스쳐 설정 및 텍스쳐 렌더링에 의해 3D 화면의 미리 설정된 영역에 삽입됨으로써, 사용자는 3D 화면 내에서 재생되는 플래시 동영상을 감상할 수 있게 된다.
이상에서 설명한 바와 같이, 본 발명에 의한 3D 화면에 플래시 동영상 삽입 방법 및 이를 위한 기록 매체에 의하면, 서버에서 특별한 전처리 작업을 수행하지 않고 플래시 동영상 파일을 전송하더라도 전송된 플래시 동영상을 3D 화면에 삽입하여 디스플레이할 수 있는 장점이 있다.
또한, 본 발명에 의하면, 다양한 종류의 플래시 동영상 광고 데이터를 실시간으로 3D 게임의 특정 영역에 삽입할 수 있으며, 3D 그래픽 화면의 사용자 인터페이스가 플래시 동영상에 의해 구현될 수 있는 장점이 있다.
아울러, 본 발명에 의하면, 빠른 속도로 플래시 동영상에 대한 텍스쳐를 설정하여 프로세서의 큰 부하 없이 플래시 동영상을 3D 화면에 삽입할 수 있는 장점이 있다.

Claims (19)

  1. 서버로부터 플래시 동영상 데이터를 수신하는 단계(a);
    상기 수신된 플래시 동영상 데이터를 재생할 플래시 플레이어를 호출하는 단계(b);
    상기 플래시 플레이어에 의해 재생되는 플래시 동영상의 초기 프레임 캡쳐 이미지를 미리 설정된 동영상 드로잉 메모리 영역에 드로잉하는 단계(c);
    상기 동영상 드로잉 메모리 영역에 드로잉된 이미지 데이터에 대한 텍스쳐를 설정하고 3D 화면에 렌더링하는 단계(d)-상기 설정되는 텍스쳐 정보는 텍스쳐가 삽입될 3D 화면에서의 좌표 정보를 포함함-;
    상기 플래시 플레이어에 플래시 동영상 변화 영역 정보를 요청하여 수신하는 단계(e);
    미리 설정된 시간 간격으로 상기 수신된 적어도 하나의 변화 영역을 최적화하는 단계(f); 및
    상기 적어도 하나의 최적화된 변화 영역에 대한 이미지 드로잉을 상기 플래시 플레이어에 요청하여 상기 동영상 드로잉 메모리 영역에 드로잉된 플래시 동영상 이미지를 갱신하는 단계(g)를 포함하는 것을 특징으로 하는 3D 화면에 플래시 동영상 삽입 방법.
  2. 제1항에 있어서,
    상기 단계(g)에서 갱신된 이미지에 대한 텍스쳐를 설정하고 3D 화면에 렌더링하는 단계를 더 포함하는 것을 특징으로 하는 3D 화면에 플래시 동영상 삽입 방법.
  3. 제1항에 있어서,
    상기 플래시 동영상 데이터는 광고 데이터 또는 사용자 인터페이스에 삽입될 동영상 데이터를 포함하며, 상기 광고 데이터는 미리 설정된 스케줄링 알고리즘에 따라 서버로부터 전송되는 것을 특징으로 하는 3D 화면에 플래시 동영상 삽입 방법.
  4. 제1항에 있어서,
    상기 단계(c)는,
    상기 플래시 플레이어에 초기 프레임의 캡쳐 이미지 드로잉을 요청하는 단계; 및
    상기 플래시 플레이어가 상기 동영상 드로잉 메모리 영역에 요청된 캡쳐 이미지 데이터를 드로잉하는 단계를 포함하는 것을 특징으로 하는 3D 화면에 플래시 동영상 삽입 방법.
  5. 제1항에 있어서,
    상기 미리 설정된 시간 간격은 3D 화면이 갱신되는 시간 간격인 것을 특징으 로 하는 3D 화면에 플래시 동영상 삽입 방법.
  6. 제1항에 있어서,
    상기 단계(d)에서 텍스쳐를 설정하는 단계는,
    텍스쳐 좌표를 설정하는 단계;
    3D 화면에 삽입될 텍스쳐를 로드하는 단계;
    텍스쳐 스테이지를 생성하는 단계; 및
    정점 버퍼를 생성하고 생성된 정점 버퍼를 채우는 단계를 포함하는 것을 특징으로 하는 3D 화면에 플래시 동영상 삽입 방법.
  7. 제6항에 있어서,
    상기 텍스쳐는 플래시 동영상의 초기 프레임 이미지가 드로잉되는 메모리 영역을 지정함으로써 로드되는 것을 특징으로 하는 3D 화면에 플래시 동영상 삽입 방법.
  8. 제1항에 있어서,
    상기 단계(e)는 상기 미리 설정된 시간 간격까지 플래시 플레이어로부터 수신된 변화 영역 정보들을 누적하여 저장하는 것을 특징으로 하는 3D 화면에 플래시 동영상 삽입 방법.
  9. 제1항에 있어서,
    상기 단계(f)는,
    상기 단계(e)에서 수신되는 적어도 하나의 변화 영역을 미리 설정된 사이즈 이하의 크기를 가지는 최적화 영역으로 통합하는 단계를 포함하며, 복수의 변화 영역을 하나의 최적화 영역으로 통합할 때, 최적화되는 영역의 사이즈 및 최적화되는 영역의 무효 영역과 유효 영역의 비를 임계 변수로 하여 최적화 영역으로 통합할지 여부를 결정하는 것을 특징으로 하는 3D 화면에 플래시 동영상 삽입 방법.
  10. 제1항에 있어서,
    상기 단계(g)에서 최적화 영역이 복수일 경우,
    각각의 최적화 영역에 대한 이미지 드로잉을 최적화 영역의 개수에 상응하는 횟수로 상기 플래시 플레이어에 요청하는 것임을 특징으로 하는 3D 화면에 플래시 동영상 삽입 방법.
  11. 제1항에 있어서,
    상기 렌더링된 플래시 동영상의 특정 영역에 사용자 이벤트가 발생할 경우, 사용자 이벤트가 발생한 좌표 정보를 플래시 플레이어에서의 플래시 동영상 좌표 정보로 변환하는 단계를 더 포함하며,
    상기 플래시 플레이어는 상기 플래시 동영상 좌표 정보를 수신하여, 해당 좌표에 사용자 이벤트 발생 시의 미리 설정된 프로세스를 수행하는 것을 특징으로 하 는 3D 화면에 플래시 동영상 삽입 방법.
  12. 플래시 플레이어 및 3D 엔진과 연동하여 플래시 동영상을 3D 화면에 삽입하기 위한 프로그램이 유형적으로 구현되어 있으며, 전자 정보 처리 장치 장치에 의해 판독될 수 있는 프로그램을 기록한 기록 매체에 있어서,
    서버로부터 플래시 동영상이 전송될 경우, 상기 플래시 플레이어를 호출하여 전송된 플래시 동영상의 재생을 요청하는 단계(a);
    상기 재생되는 플래시 동영상의 변화 영역 정보를 수신하는 단계(b);
    상기 수신된 변화 영역 정보를 이용하여 적어도 하나의 변화 영역을 미리 설정된 시간 간격으로 미리 설정된 사이즈 이하의 최적화 영역으로 통합하는 단계(c)- 최적화 영역 통합 시 최적화되는 영역의 사이즈 및 최적화되는 영역의 무효 영역 및 유효 영역의 비를 임계 변수로 하여 복수의 영역을 하나의 최적화 영역으로 통합함-; 및
    상기 최적화된 영역에 대한 이미지를 미리 설정된 동영상 드로잉 메모리 영역에 드로잉할 것을 상기 플래시 플레이어에 요청하는 단계(d)를 수행하는 것을 특징으로 하는 프로그램을 기록한 기록 매체.
  13. 제12항에 있어서,
    상기 플래시 동영상 데이터는 광고 데이터 또는 사용자 인터페이스에 삽입될 동영상 데이터를 포함하며, 상기 광고 데이터는 미리 설정된 스케줄링 알고리즘에 따라 상기 서버로부터 전송되는 것을 특징으로 하는 프로그램을 기록한 기록 매체.
  14. 제12항에 있어서,
    상기 단계(b)는 상기 미리 설정된 시간 간격까지 수신되는 변화 영역들에 대한 정보를 누적하여 저장하는 것을 특징으로 하는 프로그램을 기록한 기록 매체.
  15. 제14항에 있어서,
    상기 단계(c)는 상기 최적화 영역 통합 시 최적화되는 영역의 사이즈 및 최적화되는 영역의 무효 영역과 유효 영역의 비를 임계 변수로 하여 최적화 영역으로 통합할지 여부를 결정하는 것을 특징으로 하는 프로그램을 기록한 기록 매체.
  16. 제12항에 있어서,
    상기 단계(d)는 각각의 최적화 영역에 대한 이미지 드로잉을 최적화 영역의 개수에 상응하는 횟수로 요청하는 것을 특징으로 하는 프로그램을 기록한 기록 매체.
  17. 제12항에 있어서,
    갱신된 이미지에 대한 텍스쳐를 설정하고 3D 화면에 렌더링하는 단계를 더 수행하는 것을 특징으로 하는 프로그램을 기록한 기록 매체.
  18. 제17항에 있어서,
    상기 텍스쳐 설정 시 플래시 동영상의 특정 프레임 이미지가 드로잉되는 메모리 영역을 지정함으로써 텍스쳐를 로드하는 것을 특징으로 하는 프로그램을 기록한 기록 매체.
  19. 제17항에 있어서,
    상기 렌더링된 동영상의 특정 영역에 사용자 이벤트가 발생할 경우, 사용자 이벤트가 발생한 좌표 정보를 동영상 플레이어에서의 동영상 좌표 정보로 변환하는 단계를 더 포함하며,
    상기 플래시 플레이어는 상기 동영상 좌표 정보를 수신하여, 해당 좌표에 사용자 이벤트 발생 시의 미리 설정된 프로세스를 수행하는 것을 특징으로 하는 프로그램을 기록한 기록 매체.
KR1020050056775A 2005-06-29 2005-06-29 3차원 화면에 플래시 동영상 삽입 방법 및 이를 위한 기록매체 KR100610690B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020050056775A KR100610690B1 (ko) 2005-06-29 2005-06-29 3차원 화면에 플래시 동영상 삽입 방법 및 이를 위한 기록매체
PCT/KR2006/002525 WO2007001161A1 (en) 2005-06-29 2006-06-28 Method for inserting flash moving picture into 3 dimensional screen and record medium for the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050056775A KR100610690B1 (ko) 2005-06-29 2005-06-29 3차원 화면에 플래시 동영상 삽입 방법 및 이를 위한 기록매체

Publications (1)

Publication Number Publication Date
KR100610690B1 true KR100610690B1 (ko) 2006-08-09

Family

ID=37185228

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050056775A KR100610690B1 (ko) 2005-06-29 2005-06-29 3차원 화면에 플래시 동영상 삽입 방법 및 이를 위한 기록매체

Country Status (2)

Country Link
KR (1) KR100610690B1 (ko)
WO (1) WO2007001161A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190137924A (ko) * 2017-12-08 2019-12-11 구글 엘엘씨 디지털 비디오 컨텐츠 수정

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000006946A (ko) * 1999-11-15 2000-02-07 송유철 인터넷을 이용한 광고 표시방법
KR20000059204A (ko) * 2000-07-21 2000-10-05 노종면 인터넷 동영상 광고 게임
KR20020007892A (ko) * 2000-07-19 2002-01-29 최형욱 3차원 머드게임에서 정보제공, 광고 및 전자상거래가가능한 3차원 가상공간을 제공하는 방법과 시스템 및 이방법을 기록한 컴퓨터로 읽을 수 있는 기록 매체
US20050030309A1 (en) 2003-07-25 2005-02-10 David Gettman Information display

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3534368B2 (ja) * 1996-04-03 2004-06-07 株式会社東芝 動画像処理方法及び動画像処理装置
WO2001037565A1 (en) * 1999-11-12 2001-05-25 Matsushita Electric Industrial Co., Ltd. Method and apparatus for controlling moving picture synthesis

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000006946A (ko) * 1999-11-15 2000-02-07 송유철 인터넷을 이용한 광고 표시방법
KR20020007892A (ko) * 2000-07-19 2002-01-29 최형욱 3차원 머드게임에서 정보제공, 광고 및 전자상거래가가능한 3차원 가상공간을 제공하는 방법과 시스템 및 이방법을 기록한 컴퓨터로 읽을 수 있는 기록 매체
KR20000059204A (ko) * 2000-07-21 2000-10-05 노종면 인터넷 동영상 광고 게임
US20050030309A1 (en) 2003-07-25 2005-02-10 David Gettman Information display

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190137924A (ko) * 2017-12-08 2019-12-11 구글 엘엘씨 디지털 비디오 컨텐츠 수정
KR102200317B1 (ko) 2017-12-08 2021-01-08 구글 엘엘씨 디지털 비디오 컨텐츠 수정

Also Published As

Publication number Publication date
WO2007001161A1 (en) 2007-01-04

Similar Documents

Publication Publication Date Title
KR100610689B1 (ko) 3차원 화면에 동영상을 삽입하는 방법 및 이를 위한 기록매체
US8672753B2 (en) Video game including effects for providing different experiences of the same video game world and a storage medium storing software for the video game
US20090179892A1 (en) Image viewer, image displaying method and information storage medium
KR101101090B1 (ko) 게임기반 장면 생성
US8411092B2 (en) 2D imposters for simplifying processing of plural animation objects in computer graphics generation
US8817023B2 (en) Method, medium, and system rendering 3D graphic objects with selective object extraction or culling
US11724184B2 (en) 2.5D graphics rendering system
CN110679152A (zh) 基于虚拟对象且基于不同视频数据流中从不同有利点表示的现实世界对象生成融合现实场景的方法和系统
US20120313960A1 (en) Image processing device, image data generation device, image processing method, image data generation method, and data structure of image file
AU2082800A (en) A system and method for generating and playback of three- dimensional movies
JP2009064356A (ja) プログラム、情報記憶媒体及び画像生成システム
JP3454914B2 (ja) 画像生成方法および画像生成装置
EP2065854A1 (en) Image processing device, control method for image processing device and information recording medium
US20010024201A1 (en) Image drawing method, image drawing apparatus, recording medium, and program
KR100610690B1 (ko) 3차원 화면에 플래시 동영상 삽입 방법 및 이를 위한 기록매체
Wimmer et al. Fast walkthroughs with image caches and ray casting
US6639600B2 (en) Image drawing method, image drawing apparatus, recording medium, and program
JP2011134101A (ja) 画像処理装置、画像データ生成装置、画像処理方法、画像データ生成方法、および画像ファイルのデータ構造
JP2007087425A (ja) 画像生成システム、プログラム及び情報記憶媒体
JP2009064355A (ja) プログラム、情報記憶媒体及び画像生成システム
KR19980023727A (ko) 파노라믹 이미지를 디스플레이하기 위한 가상 현실시스템
JP5061177B2 (ja) 画像処理装置、画像データ生成装置、画像処理方法、画像データ生成方法、および画像ファイルのデータ構造
JP2010231364A (ja) 画像生成システム、プログラム及び情報記憶媒体
JP2024061779A (ja) グラフィック処理のためのアセット認識コンピューティングアーキテクチャ
CN116603235A (zh) 模型的信息处理方法、装置、可读存储介质和电子装置

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: 20130626

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140703

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150626

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160628

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20170628

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20180626

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20190624

Year of fee payment: 14