KR20080055581A - 3D 오브젝트의 셀프 셰도우(self-shadow)를만들기 위해 데이터를 미리-저장할 수 있는 장치, 방법,응용프로그램 및 컴퓨터 판독가능한 매체 - Google Patents

3D 오브젝트의 셀프 셰도우(self-shadow)를만들기 위해 데이터를 미리-저장할 수 있는 장치, 방법,응용프로그램 및 컴퓨터 판독가능한 매체 Download PDF

Info

Publication number
KR20080055581A
KR20080055581A KR1020070035714A KR20070035714A KR20080055581A KR 20080055581 A KR20080055581 A KR 20080055581A KR 1020070035714 A KR1020070035714 A KR 1020070035714A KR 20070035714 A KR20070035714 A KR 20070035714A KR 20080055581 A KR20080055581 A KR 20080055581A
Authority
KR
South Korea
Prior art keywords
sphere
texture
spheres
module
vertex
Prior art date
Application number
KR1020070035714A
Other languages
English (en)
Other versions
KR100888528B1 (ko
Inventor
유-쉬오 리오우
중 홍 추앙
유-중 쳉
Original Assignee
인스티튜트 포 인포메이션 인더스트리
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인스티튜트 포 인포메이션 인더스트리 filed Critical 인스티튜트 포 인포메이션 인더스트리
Publication of KR20080055581A publication Critical patent/KR20080055581A/ko
Application granted granted Critical
Publication of KR100888528B1 publication Critical patent/KR100888528B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/60Shadow generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/001Texturing; Colouring; Generation of texture or colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings

Abstract

하나의 스피어 트리를 먼저 생성하고, 상기 구조를 근거로 3D 오브젝트의 각 정점의 접근성 값(accessibility value) 및 어쿨루전 각도(occlusion angle)를 계산한 후, 2D 텍스쳐 또는 3D 텍스쳐를 형성한다. 3D 오브젝트의 셀프 셰도우 음영을 만들고자 할 때, 먼저 스피어 트리에서 각 스피어의 위치를 업데이트한 다음, 상기 업데이트된 스피어 트리에 따라 2D 텍스쳐 및 3D 텍스쳐의 데이터를 불러와 3D 영상을 만든다. 2D 테스쳐 및 3D 텍스쳐가 미리 저장되기 때문에, 움직이는 오브젝트의 셀프 셰도우를 생성시켜야 할 때, 실시간 연산량을 대폭 줄일 수 있다.
스피어 트리, 3D 영상, 계산모듈, 갱신모듈, 생성모듈

Description

3D 오브젝트의 셀프 셰도우(self-shadow)를 만들기 위해 데이터를 미리-저장할 수 있는 장치, 방법, 응용프로그램 및 컴퓨터 판독가능한 매체{Apparatus, method, application program and computer readable medium thereof capable of pre-storing data for generating self-shadow of a 3D object}
도 1은 본 발명의 제 1실시예에서 제 1단계를 실행할 때의 흐름도이다.
도 2는 접근성 값 및 어쿨루전 각도 값 설명도이다.
도 3은 2D 텍스쳐의 설명도이다.
도 4a는 두 개의 스피어가 동시에 하나의 정점에 대하여 조성하는 어쿨런스인플루언스(occlusion influence)를 고려한 설명도이다.
도 4b는 두개의 스피어를 하나의 큰 스피어로 표시한 설명도이다.
도 5는 3D 텍스쳐의 설명도이다.
도 6은 본 발명의 제 1실시예에서 제 2단계를 실행할 때의 흐름도이다.
도 7은 본 발명의 제 2실시예도이다.
<도면의 주요 부분에 대한 부호의 설명>
21: 스피어 22: 노멀 벡터
23: 스피어
24: 정점P로부터 스피어(23) 중심에 이르는 벡터
25: 음영구역 27: 수평면
29: 면적 31: 2D 텍스쳐
41: 스피어
42: 정점P로부터 스피어(45) 중심에 이르는 벡터
43: 스피어 45: 큰 스피어
51: 2D 텍스쳐 71: 사전처리모듈
73: 실시간 처리모듈 75: 메모리
701: 스피어 트리 생성모듈 705: 제 1계산모듈
707: 제 2계산모듈 709: 제 3계산모듈
711: 제 4계산모듈 713: 제 1 텍스쳐 생성모듈
715: 제 5계산모듈 717: 제 6계산모듈
719: 제 2 텍스쳐 생성모듈 721: 업데이트모듈
723: 메모리 725: 합성모듈
727: 영상생성모듈
본 발명은 3D 영상의 셀프 셰도우(Self-Shadow)를 형성하는데 필요한 데이터를 미리 계산하고 저장하는 장치, 방법, 컴퓨터 판독가능한 매체에 관한 것으로, 3D 영상을 만들 때 이러한 데이터를 불러옴으로써 실시간 연산 시간을 절약한다.
멀티미디어 및 영상처리기술의 발전에 따라, 동영상 산업은 이미 전통의 평면식 영상을 3D 영상으로 처리하는 데에 이르러, 동영상이 시각적으로 더욱 사실적으로 표현되고 있다. 사실적인 효과를 얻기 위해서는 그림자(shadow)의 형성이 대단히 중요한 부분이다.
동영상을 만들 때, 물체는 자체의 어떤 부분이 가려지면서 그림자가 만들어지는데, 글로벌 조명(global illumination) 알고리즘 처리 등과 같은 종래의 여러 가지 해결 방식으로는 실시간(real-time) 연산을 얻을 수 없다.
앰비언트 어클루전(ambient occlusion) 기술은 셀프-어쿨루전(self-occlusion) 데이터를 제공하여, 모형 표면에 한 번의 레이 트레이싱(ray tracing)을 한다. 더 자세히 설명하면, 앰비언트 어클루전은 물체의 각 정점들을 대상으로, 환경에 대한 그것들의 평균 가시도를 계산하고, 가시도 데이터를 통하여 물체 표면에 부드러운 자체 음영 효과를 생성하는 것이다. 비록 앰비언트 어클루전 기술의 개념은 간단하지만, 물체상의 모든 정점에 대해 각 방향에서 가시도를 계산하여야 하고, 필요로 하는 계산량 또한 매우 크기 때문에 마찬가지로 실시간 효과를 얻기가 어렵다.
움직이는 물체의 각 부분들의 상대 위치가 시간에 따라 끊임없이 변화하기 때문에, 생성되는 그림자 역시 끊임없이 변한다. 상술한 종래의 셀프 셰도우 생성 기술은 모두 실시간 처리가 어려운 문제점이 있기 때문에, 움직이는 물체의 그림자를 생성하는 데는 부적합하다. 따라서 3D 동영상 중 움직이는 물체의 셀프 셰도우 가 만들어내는 그림자를 어떻게 생성시킬 것인가 하는 것이 본 업계가 시급히 해결하고자 하는 과제이다.
본 발명은 움직이는 오브젝트의 셀프 셰도우를 만드는 해결 방법을 제공한다. 본 방법에서는 다수의 스피어를 이용하여, 움직이는 오브젝트의 외관을 합성함으로써 접근성(accessibility) 및 어쿨루전 각도(occlusion angle)의 계산을 단순화하였다. 이뿐만 아니라, 이 방법은 접근성 및 어쿨루전 각도에 필요한 데이터를 미리 계산하고, 스피어가 중첩되면서 그림자 계산 착오를 일으키는 데이터가 텍스쳐 데이터에 저장되는 것을 배제시킴으로써, 실시간 계산 작업을 가속화시킬 수 있다.
본 발명은 더 나아가 움직이는 오브젝트가 원래 지니고 있는 피골(skin-bone) 구조 데이터와 결합하여, 역동적으로 각 스피어의 상대 위치와 관계를 조정함으로써, 스피어 트리(sphere tree)가 수시로 움직이는 오브젝트의 실시간 동작에 대응될 수 있도록 하였다.
앞에서 언급한 접근성에 필요한 데이터를 먼저 계산한다는 내용은, 상기 움직이는 오브젝트의 어떤 정점이 공간에서 다른 각도와 다른 위치에 있을 때, 상기 점의 상반구 공간에 만들어지는 접근성을 계산하는 것일 수 있다. 이 데이터 및 어쿨루전 각도 값은 2D 텍스쳐로 저장되고, 이를를「2D 텍스쳐」라고 정의한다.
앞에서 언급한 스피어가 중첩되면서 그림자 계산 착오를 일으키는 데이터를 배제하는 것은, 하나의 큰 스피어를 이용하여 중첩되는 두 개의 스피어를 포함시키 고, 상기 큰 스피어의 토탈 어쿨루드 영역 값(total occluded area value) 및 끼인각을 3D 텍스쳐로 저장하며, 이를 「3D 텍스쳐」라고 칭한다.
상기 「2D 텍스쳐」과 「3D 텍스쳐」은 미리 저장되므로, 움직이는 오브젝트의 셀프 셰도우 그림자를 생성하고자 할 때, 먼저 스피어 트리중 각 스피어들의 위치를 업데이트한 다음, 텍스트의 데이터를 불러와 상기 움직이는 오브젝트의 각 정점들의 전체적인 어쿨루전 효과를 계산하고, 마지막으로 계산된 그림자 효과를 3D 영상에 맵핑할 수 있다.
본 발명의 해결 방안이, 움직이는 오브젝트의 셀프 셰도우를 생성할 때 「2D 텍스쳐」와 「3D 텍스쳐」을 미리 만들어 불러와 사용하는 것이기 때문에 실시간 연산량을 대폭 줄일 수 있으며, 따라서 종래 기술이 실시간 처리가 어려웠던 문제를 해결할 수 있다.
도면 및 다음에 설명되는 실시방식을 참조한 후, 본 기술 분야에서 통상적인 지식을 갖추고 있는 사람이라면 본 발명의 기타 목적, 및 본 발명의 기술 수단 및 실시형태를 더욱 확실히 이해할 수 있을 것이다.
[실시예]
본 발명의 제 1 실시예는 3D 움직이는 오브젝트의 3D 영상을 만드는 방법으로서, 이 방법은 움직이는 오브젝트의 셀프 세도우에 의해 만들어지는 그림자를 생성할 수 있다. 이는 두 단계의 플로우로 나눌 수 있으며, 제 1단계는 상기 움직이는 오브젝트의 셀프 셰도우 효과를 생성하기 전 먼저 실행되는 단계이고, 제 2단계 는 상기 움직이는 오브젝트의 셀프 셰도우 효과 생성을 실시간으로 진행하는 단계이다. 제 1단계의 단계는 도 1에 도시된 바와 같다.
먼저 단계(101)를 실행하여, 하나의 스피어 트리를 생성한다. 상기 스피어 트리는 복수개의 스피어를 포함하며, 이러한 스피어들이 트리 형식으로 배열되도록 함으로써, 상기 움직이는 오브젝트의 각 부분들의 대응 관계를 시뮬레이션한다. 종래에는 스피어 트리를 생성하는 여러 기술이 있는데, 옥트리(Octree) 알고리즘을 예로 들면, 먼저 하나의 입방체를 구축하여, 움직이는 오브젝트가 입방체 안에 포함되면, 이 입방체는 이어서 X, Y, Z축을 따라 8개의 서브-입방체로 분할된다. 이러한 서브-입방체는 작은 입방체들이 하나의 노드(node)와 유사하게 될 때까지 분할된다. 각각의 노드는 상기 움직이는 오브젝트의 일부분을 나타낸다. 이어, 각 노드에 대하여 하나의 스피어를 생성시킴으로써 상기 노드를 포함시킨다. 이러한 스피어는 어떤 입방체가 분할되었는지에 따라 스피어 트리의 위치 및 상하층 종속 관계가 결정될 수 있다. 옥트리 알고리즘은 시작부터 상기 움직이는 오브젝트를 8개의 서브-입방체로 분할하기 때문에, 이러한 스피어 트리로 상기 움직이는 오브젝트를 나타낼 때 스피어 트리의 최상층에는 8개의 큰 스피어가 존재할 수 있다.
옥트리 알고리즘 이외에, 스피어 트리를 생성하기 위한 많은 기술이 있다. 예를 들어 후바드(Hubbard) 알고리즘, 그리드(Grid) 알고리즘, 병합(Merge) 알고리즘, 버스트(Burst) 알고리즘, 확장(Expand) 알고리즘, 파생(Spawn) 알고리즘 및 연합(Combined) 알고리즘 등이 있다. 본 발명은 스피어 트리를 생성시키기 위한 알고리즘의 종류에 제한을 두지 않는다.
일반적으로, 상기 움직이는 오브젝트의 외관은 한 세트의 피골(skin-bone) 구조 데이터로 한정된다. 본 실시예에서는 상기 움직이는 오브젝트의 피골 구조 데이터를 이용하여, 스피어 트리에서 스피어의 상대 위치를 조정함으로써, 상기 움직이는 오브젝트의 모든 부분에 더욱 정확하게 대응되도록 하였다.
따라서 단계(103)에서는 메모리로부터 상기 움직이는 오브젝트의 피골 구조 데이터를 불러온다.
이어서 단계(105)를 실행하여, 상기 피골 구조 데이터를 근거로 각 스피어의 원심 s의 피골 중량을 계산한다. 어느 한 스피어에 의해 덮여진 정점이 N개(N≥1)라고 가정하면, 이러한 정점과 상관된 본(bone) 파라미터는 b1~bm이고, bi에 대응하는 정점의 중량은 wij이며, 상기에서, i는 i번째의 본 파라미터를 나타내고, j는 j번째 정점을 나타낸다. 예를 들어, b4에 대응하는 3번째 정점의 중량은 w43이고, b8에 대응하는 6번째 중량은 w86이다. 원심 s의 피골 중량은 다음 식으로 구할 수 있다:
Figure 112007027834959-PAT00001
......................(1)
상깅에서, Wsi는 bi에 대응하는 원심 s의 피골 중량이며,
Figure 112007027834959-PAT00002
......................(2)
상기 방식 이외에, 원심 s의 피골 중량은 무게중심 좌표(barycentric coordinate)를 이용하여 표시할 수도 있다. 그 공식은 다음과 같다:
Figure 112007027834959-PAT00003
.....................(3)
Figure 112007027834959-PAT00004
.....................(4)
상기에서, βj는 j번째 정점에 대한 원심 s의 무게중심 좌표 값이다.
이어서 각 정점에 대한 각 스피어의 접근성(accessibility) 값 및 어쿨루전 각도(occlusion angle) 값을 계산한다. 도 2는 접근성 값 및 어쿨루전 각도 값을 설명하기 위한 것이다. 도 2에 도시된 바와 같이, 상기 움직이는 오브젝트의 어느 한 정점 P는 하나의 스피어(21)에 포함되며, 정점P가 상기 움직이는 오브젝트의 어느 한 부분에 의해 가려지면서 발생되는 그림자를 고려할 때, 상기 부분이 하나의 스피어(23)에 포함된다고 가정하면(스피어(21 및 23)는 앞에서 설명한 스피어 트리 중의 스피어임), 즉 스피어(23)는 스피어(21)의 표면에 하나의 음영구역(25)을 만드는데, 여기서 이 음영구역의 면적을 θ로 정의하면, θ가 스피어(21)의 수평면(27)에 맵핑되는 면적(29)이 바로 접근성 값이다. 그리고 어쿨루전 각도 값은 어쿨루전 방향과 스피어(21)의 노멀 벡터(22)를 평균 낸 끼인각으로서, 만약 스피어(23)가 완전히 수평면(27) 위에 위치할 경우, 어쿨루전 각도 값은 Φ과 같다.
주의해야 할 점은, 이 단계에서 스피어(23)의 크기 또는 거리 정점P의 원근은 그다지 중요하지 않다는 것이다. 왜냐하면 정점P와 스피어(23) 사이의 두 접선 내(입체 공간 중에서는 하나의 원추형)에 위치한 스피어라면, 모두 동일한 어쿨루 전 효과가 조성될 수 있기 때문이다. 바꿔 말하면, 면적θ과 끼인각Φ이 같기만 하다면, 접근성 값 및 어쿨루전 각도 값이 동일하다. 그러므로, 다음 단계들은 다른 각도Φ 및 면적 θ 값에서 접근성 값 및 어쿨루전 각도 값을 구하기 위해 실행한다.
단계(107)에서는 다른 각도Φ를 근거로 스피어(21)에 대한 모든 스피어의 θ 값을 계산한다. 도 2에 도시된 바와 같이, 각도Φ는 스피어(21)의 노멀 벡터(22)와 정점P부터 스피어(23) 중심에 이르는 벡터(24)의 끼인각이다. θ 값을 계산하는 방식은 종래의 기하연산을 이용하면 된다.
이어서 단계(109)를 실행하여, 다른 각도Φ 및 θ 값을 바탕으로 접근성 값을 구한다. 접근성 값을 구하는 방식은 몬테카를로(Monte Carlo)법을 이용하여 다음 식을 계산할 수 있다:
Figure 112007027834959-PAT00005
..................(5)
상기에서, A는 접근성 값이고, V(α,β)는 가시도 함수(visibility function)로서, 구의 좌표α 및 β를 이용하여 정점 P 상방에 있는 반구의 가시도를 결정한다. 더 자세히 설명하면, Φ 및 θ는 텍스쳐의 두 좌표 방향이므로, Φ가 나타내는 것은 스피어(23)의 원심과 정점 P의 연결방향, 및 정점 P의 노멀 벡터(22)이고, θ가 대표하는 것은 스피어(23)가 정점P 상방의 단위 반구에 투영될 때, 단위 반구상에서 차지하는 호도(radian)(즉 점유 면적)이다. 이 양자와 제(5)식의 관계는 다음과 같다: θ의 크기가 V(α,β)의 적분결과에 영향을 줄 수 있으 며, θ가 클수록 V(α,β)의 적분 결과가 커진다(왜냐하면 접근성이 점점 더 커지기 때문이다); Φ는 COS(α)의 적분결과에 영향을 줄 수 있으며, Φ가 클수록 COS(α)의 적분 결과가 작아진다(왜냐하면 스피어가 점점 더 수평 방향에 근접하여 평면에 투영되는 면적이 점점 더 작아지기 때문이다). 상기 실시예에서, 텍스쳐 좌표의 범위가 (0.1)이기 때문에, Φ 및 θ의 범위를 각각 (0,π) 및 (0.2π)라고 가정하면, 텍스트 상의(Φ,θ) 좌표가 나타내는 Φ 및 θ는 바로 (Φ*π, θ*2π)이다. 만약, 좌표(α,β) 방향이 스피어(23)에 의해 가려지게 되면(occluded), 즉 V(α,β) = 1이고, 그렇지 않으면 V(α,β) = 0이다.
또는 확률밀도함수(probability density function)를 이용하여 접근성 값을 구할 수 있다:
Figure 112007027834959-PAT00006
........................(6)
상기에서, S는 몬테카를로법을 이용하여 얻은 샘플링 수이고, (αii)는 i번째의 샘플링 방향이며, p(αii)는 확률밀도함수이다.
이어서 단계(111)를 실행하여, 다른 각도Φ 및 θ 값을 바탕으로 어쿨루전 각도 값을 구한다. 마찬가지로, 어쿨루전 각도 값을 구하는 방식은 몬테카를로법을 이용하여 다음과 같은 식을 계산할 수 있다:
Figure 112007027834959-PAT00007
...........................(7)
상기에서, OA는 어쿨루전 각도 값이고, Φ 및 θ 값과 제(7)식의 관계는 앞의 설명과 같다. 또한 확률밀도함수를 이용하여 어쿨루전 각도 값을 구할 수 있다.
Figure 112007027834959-PAT00008
............................(8)
이어서, 단계(113)를 실행하며, 다른 각도 Φ 및 θ 값을 바탕으로 하나의 2D 텍스쳐를 생성한다. 더욱 자세히 말하면, 단계(109) 및 (111)에서는 이미 다른 Φ 및 θ 값에 대하여 대응되는 접근성 값 및 어쿨루전 각도 값을 계산해 놓은 상태이며, 본 단계에서는 이러한 대응 값을 하나의 2차원 대응표에 저장하는 단계로서, 이 대응표가 바로 2D 텍스쳐이다. 스피어의 체적이 아무리 크다 해도, θ 값은 2π(즉 정점 P 상반구의 범위)를 넘지 않으며, 또한 Φ 및 θ 값의 범위 역시 (0,π)사이이기 때문에, (0,2π)와 (0,π) 이 두 범위 내의 텍스트만 처리하면 된다. 도 3에 도시된 바와 같이, 2D 텍스쳐(31)는 2차원 공간을 갖추고 있으며, 이는 Φ 및 θ 값으로 정의된다. 2D 텍스쳐(31)은 하나의 특정한 Φ 및 θ 값에 대하여 두 개의 값, 즉 접근성 값 및 어쿨루전 각도 값을 가진다. 따라서 2D 텍스쳐는 단일스피어가 정점P에 조성하는 어쿨루전 영향을 기록한다.
단일 스피어가 조성하는 어쿨루전 영향을 고려하는 이외에, 본 발명은 더 나아가 다수개의 스피어가 서로 중첩되는 문제, 다시 말해 다수개의 스피어가 동시에 어느 한 정점에 대해 조성하는 어쿨루전 현상을 해결할 수 있다. 도 4a에 도시된 바와 같이, 두 개의 스피어(41 및 43)가 정점 P를 동시에 가린다고 가정할 경우, 그 θ 값은 각각 θ1 및 θ2이고, 두 개의 스피어(41 및 43)의 끼인각은 δ이다. 이 두개의 스피어(41 및 43)가 동시에 정점P에 대해 조성하는 어쿨루전 영향을 고려할 때, 도 4b에 도시된 바와 같이, 하나의 큰 스피어(45)가 도입될 수 있으며, 투영 범위는 θ3(=θ12)이고, 스피어(21)의 노멀 벡터(22)와 정점 P로부터 스피어(45) 중심에 이르는 벡터(42)의 끼인각은 Φ가 된다. 따라서 본 발명에서는 정점 P에 대한 스피어(45)의 영향만을 고려하여, 스피어(41 및 43)가 동시에 정점 P에 주는 영향에만 대응시키면 된다. 마찬가지로 이 단계에서는 큰 스피어(45)의 크기 또는 거리 정점 P의 원근이 그다지 중요하지 않은데, 이는 정점 P와 큰 스피어(45) 사이의 두 접선 내(입체 공간에서는 하나의 원추형)에 위치한 다수개의 중첩된 스피어라면 모두 동일한 어쿨루전 효과를 조성하기 때문이다. 바꿔 말하면 각도 θ1, θ2 및 δ 값이 동일하기만 하면, 토탈 어쿨루드 영역(total occluded area) 값 θ3 및 끼인각Φ은 같다. 그러므로, 다른 각도 θ1, θ2 및 δ 값 아래의 토탈 어쿨루드 영역 값θ3 및 끼인각Φ을 구하기 위해 다음 단계들을 실행한다.
단계(115)에서는 다른 각도 θ1, θ2 및 δ 값을 바탕으로 토탈 어쿨루드 영역 값θ3을 구한다. 토탈 어쿨리드 영역 값θ3를 구하는 방식은 몬테카를로법을 이용하여 다음 식을 계산할 수 있다:
Figure 112007027834959-PAT00009
.....................(9)
상기에서, TOA는 토탈 어쿨리드 영역 값 θ3이며, θ1, θ2 값이 크면 클수 록, 전체 투영되는(projected) 면적이 커짐을 표시한다. 즉 적분 결과가 클수록 δ 값은 작아지며, 스피어(41 및 43)가 중첩되는 부분이 많아지게 됨을 나타낸다. 따라서 적분결과가 점점 더 작아질 수 있는데, 물론 스피어(41 및 43)가 중첩되지 않는 상황에서는 δ는 크기를 막론하고 적분결과는 변하지 않는다. 다르게는, 확률밀도함수를 이용하여 토탈 어쿨리드 영역 값θ3을 구할 수도 있다:
Figure 112007027834959-PAT00010
....................(10)
이어서 단계(117)를 실행하며, 다른 각도 θ1, θ2 및 δ 값을 바탕으로 끼인각Φ을 구한다. 끼인각Φ을 구하는 방식은 몬테카를로법을 이용하여 다음 식을 계산할 수 있다:
Figure 112007027834959-PAT00011
...................(11)
상기에서, 각(α,β)는 (α,β)방향과 스피어(41)의 끼인각이고, θ1, θ2 및 δ 값과 제(11)식의 관계는 앞에서 설명한 바와 동일하다. 다르게는, 확률밀도함수를 이용하여 끼인각Φ을 계산할 수 있다:
Figure 112007027834959-PAT00012
......................(12)
주의해야 할 점은, 단계(109), (111), (115) 및 (117)에서, 만약 확률밀도함수 방식을 이용하여 면적 값 및 각도 값을 구할 경우, 확률밀도함수가 다음 계산식 에 부합되어야만 적당하다.
Figure 112007027834959-PAT00013
.........................(13)
이어서 단계(119)를 실행하며, 다른 θ1, θ2 및 δ 값을 바탕으로 하나의 3D 텍스쳐를 생성한다. 더욱 자세히 말하면, 단계(115) 및 (117)에서 이미 다른 θ1, θ2 및 δ 값에 대해 대응되는 θ3 값 및 Φ 값을 계산한 상태이고, 본 단계에서는 이러한 대응 값을 하나의 3차원 대응표에 저장하는 단계로서, 이 대응표가 바로 3D 텍스쳐이다. 도 5에 도시된 바와 같이, 3D 텍스쳐(51)는 3차원 공간을 가지고 있으며, 이는 θ1, θ2 및 δ 값에 의해 정의된다. 3D 텍스쳐(51)는 하나의 특정한 θ1, θ2 및 δ 값에 대하여 2개의 값, 즉 θ3 값 및 Φ 값을 지닌다. 따라서 3D 텍스쳐는 다수개의 스피어가 정점 P에 대하여 조성하는 어쿨루전 영향을 기록한다.
여기까지, 제 1단계의 플로우가 이미 완성되었다. 이어서 상기 움직이는 오브젝트의 3D 영상을 생성하고자 할 때, 2D 텍스쳐(31)와 3D 텍스쳐(51) 및 스피어 트리를 운용하여 오브젝트의 셀프 셰도우 효과를 실시간으로 생성시키는 방법, 즉 두 번째 단계를 진행한다. 두 번째 단계의 과정은 도 6에 도시된 바와 같다.
단계(601)에서는 상기 움직이는 오브젝트의 현재 동작을 근거로 스피어 트리 중 스피어의 상대 위치를 업데이트한다. 다시 말해 픽셀 셰이더(pixel shader)를 이용함과 아울러 피골의 관계(즉 단계(105)에서 얻은 피골 중량)를 근거로 하여 오 브젝트 정점과 스피어의 현재 위치를 계산하고, 결과를 스피어 트리 구조 텍스트로 저장한다.
이어서 단계(603)를 실행하여, 스피어 트리 구조 텍스트를 근거로 적당한 2D 텍스쳐 및 3D 텍스쳐의 값을 불러옴으로써 상기 움직이는 오브젝트의 셀프 셰도우에 의해 만들어지는 음영을 합성한다. 스피어 트리 중 더 높은 층에 있는 스피어의 체적이 더욱 크기 때문에, 비교적 적은 스피어를 이용하여 움직이는 오브젝트 전체를 덮을 수 있으며, 더욱 하층에 있는 스피어일수록 그 체적은 더욱 작아지지만, 움직이는 오브젝트의 세부는 유지된다. 셀프 셰도우를 계산할 때, 계산해야 할 각각의 셀프 셰도우 정점에 대하여 스피어 트리 중에서 일정 개수의 스피어를 찾아낸다. 일정한 개수의 스피어를 찾는 방식은 다음과 같다: 각 트리마다 상기 정점과 가장 근접한 4개의 스피어를 찾는다. 최상층의 4개의 스피어는 오브젝트 전체를 덮을 수 있기 때문에, 이를 이용하여 셀프 셰도우 중 비교적 거시적인 영상을 만들 수 있으며, 세세한 부분은 비교적 하층에 있는 스피어를 이용하여 만든다. 모든 스피어가 만드는 음영 효과는 반드시 2D 텍스쳐와 3D 텍스쳐 중에 대응 값을 가지기 때문에, 이 단계에서 해야 할 것은 음영 스피어의 θ 값과/또는 두 음영 스피어의 δ 값을 근거로 인터폴레이션을 진행하여 대응되는 접근성 및 어쿨루전 각도 값을 구하는 것뿐이다.
더욱 자세히 말하면, 먼저 화면 크기에 대응하는 사변형을 만들고, 각각의 정점을 근거로 계산된 셀프 셰도우 값을 화면의 어느 한 화소에 대응시킨다. 이어서 픽셀 셰이더를 이용하여 각 정점에 대하여 스피어 트리 구조 텍스쳐 및 미리 저 장된 2D 텍스쳐와 3D 텍스쳐를 바탕으로 음영 면적을 계산하고, 아울러 스피어가 서로 중첩되는 문제를 처리한 다음, 마지막으로 계산 결과를 앰비언트 오클루전 텍스쳐로 저장한다.
이어서 단계(605)를 실행하여, 상기 앰비언트 오클루전 텍스쳐를 근거로 상기 움직이는 오브젝트의 음영 시각 효과를 생성하고, 상기 오브젝트의 3D 영상을 디스플레이한다.
본 발명의 제 2 실시예는 도 7에 도시된 바와 같이,움직이는 오브젝트의 3D 영상 형성 장치로서, 상기 장치는 움직이는 오브젝트의 셀프 셰도우가 만드는 음영을 생성시키도록 도 1 및 도 6에 도시된 방법을 실행시킬 수 있다. 상기 장치는 사전처리모듈(71), 실시간 처리모듈(73) 및 메모리(75)를 포함하며, 사전처리모듈(71)은 스피어 트리 생성모듈(701), 제 1계산모듈(705), 제 2계산모듈(707), 제 3계산모듈(709), 제 4계산모듈(711), 제 1 텍스쳐 생성모듈(713), 제 5계산모듈(715), 제 6계산모듈(717) 및 제 2 텍스쳐 생성모듈(719)을 포함하며, 상기 움직이는 오브젝트의 셀프 셰도우 효과가 만들어지기 전의 사전 동작을 생성한다. 다시 말해 도 1의 단계를 실행한다. 실시간 처리모듈(73)은 업데이트모듈(721), 메모리(723), 합성모듈(725) 및 영상생성모듈(727)을 포함하며, 상기 움직이는 오브젝트의 셀프 셰도우 효과가 만들어질 때 실시간 동작을 생성한다. 즉 도 6의 단계를 진행한다.
먼저 스피어 생성모듈(701)은 하나의 스피어 트리를 생성하며, 이 스피어 트리는 복수개의 스피어를 포함한다. 이러한 스피어는 트리 형식으로 배열되어, 상기 움직이는 오브젝트의 각 부분의 상대적인 관계를 시뮬레이션하는데 이용된다(단계(101)에 대응됨). 스피어 트리 생성모듈(701)은 종래의 스피어 트리 생성기술, 예를 들어 옥트리 알고리즘, 후바드 알고리즘, 그리드 알고리즘, 병합 알고리즘, 버스트 알고리즘, 확장 알고리즘, 파생 알고리즘 및 연합 알고리즘 중의 하나를 실행한다. 이 스피어 트리는 메모리(75)에 저장된다.
이어서 제 1계산모듈(705)은 메모리(75)로부터 상기 움직이는 오브젝트의 피골 구조 데이터 및 스피어 트리를 불러와(단계(103)에 대응됨), 각 스피어의 원심s의 피골 중량을 계산한다(단계(105)에 해당함). 마찬가지로, 어느 한 스피어에 의해 덮여진 정점이 N개(N≥1)라고 가정하면, 이러한 정점과 상관된 본 파라미터는 b1~bm이고, bi에 대한 정점의 중량은 wij이며, 상기에서 i는 i번째의 본 파라미터를 나태내고, j는 j번째 정점을 나타낸다. 제 1계산모듈(705)은 상기 제(1)식 및 제(2)식을 이용하여 원심s의 피골 중량을 계산하거나, 또는 상기 제(3)식 및 제(4)식을 이용하여 원심s의 피골 중량을 계산할 수 있다. 이러한 피골 중량은 메모리(75)에 저장된다.
이어서 제 2계산모듈(707)은 다른 각도Φ를 근거로 도 2의 스피어(21)에 대한 모든 스피어의 θ 값을 계산한다(단계(107)에 대응됨). 도 2에 도시된 바와 같이, 각도Φ는 스피어(21)의 노멀 벡터(22)와 정점(P)에서 스피어(23) 중심에 이르는 벡터(24)의 끼인각이다. θ 값을 계산하는 방식은 종래의 기하연산을 이용하면 된다.
이어서 제 3계산모듈(709)은 제 2계산모듈(707)로부터 θ 값을 캡쳐하고, 상기 제(5)식 또는 제(6)식을 이용하여 접근성 값을 계산하며(단계(109)에 대응됨), 아울러 접근성 값을 메모리(75)에 저장한다.
이어서 제 4계산모듈(711)은 다른 각도Φ 및 제 2계산모듈(707)로부터 불러온 θ 값을 근거로, 상기 제(7)식 또는 제(8)식을 이용하여 어쿨루전 각도 값을 계산하고(단계(111)에 대응됨), 어쿨루전 각도 값을 메모리(75)에 저장한다.
따라서 제 3계산모듈(709) 및 제 4계산모듈(711)(여기서는 단일 스피어 계산모듈로 합칭한다)로 각 스피어의 접근성 값 및 어쿨루전 각도 값을 계산한다.
이어서 제 1 텍스쳐 생성모듈(713)은 다른 각도Φ 및 메모리(75)로부터 불러온 접근성 값, 어쿨루전 각도 값 및 제 2계산모듈(707)로부터 불러온 θ 값을 근거로 하나의 2D 텍스쳐를 생성한다(단계(113)에 대응됨). 2D 텍스쳐는 단일 스피어가 정점 P에 대해 조성하는 어쿨루전 영향을 기록하는 것으로서, 그 중 Φ 및 θ 값과 접근성 값 및 어쿨루전 각도 값의 대응관계는 도 3에 도시된 바와 같으므로 설명을 생략한다. 상기 2D 텍스쳐는 메모리(75)에 저장한다.
단일 스피어가 조성하는 어쿨루전 현상을 고려하는 이외에, 본 발명은 더 나아가 다수개의 스피어가 서로 중첩되는 문제, 다시 말해 다수개의 스피어가 동시에 어느 한 정점에 대하여 조성하는 어쿨루전 현상을 해결할 수 있다. 도 4a에 도시된 바와 같이, 두 개의 스피어(41 및 43)가 정점 P를 동시에 가린다고 가정할 경우, 그 θ 값은 각각 θ1 및 θ2이고, 두 개의 스피어(41 및 43)의 끼인각은 δ이다. 이 두개의 스피어(41 및 43)가 동시에 정점P에 대해 조성하는 어쿨루전 영향을 고려할 때, 도 4b에 도시된 바와 같이, 하나의 큰 스피어(45)가 도입될 수 있으며, 그 음영 범위는 θ3(=θ12)이고, 스피어(21)의 노멀 벡터(22)와 정점 P로부터 스피어(45) 중심까지의 벡터(42)의 끼인각은 Φ가 된다. 따라서 본 발명에서는 정점 P에 대한 스피어(45)의 영향만을 고려하여, 스피어(41 및 43)가 동시에 정점 P에 주는 영향에만 대응시키면 된다. 마찬가지로 이 단계에서는 큰 스피어(45)의 크기 또는 거리 정점 P의 원근이 그다지 중요하지 않은데, 이는 정점 P와 큰 스피어(45) 사이의 두 접선 내(입체 공간에서는 하나의 원추형)에 위치한 다수개의 중첩된 스피어라면 모두 동일한 차폐 상황을 조성하기 때문이다. 바꿔 말하면, 각도 θ1, θ2 및 δ 값이 동일하기만 하면, 토탈 어쿨리드 영역(total occluded area) 값 θ3 및 끼인각 Φ은 같다. 다른 각도 θ1, θ2 및 δ 값 아래의 토탈 어쿨리드 영역 값θ3 및 끼인각Φ을 구하기 위해 다음 단계를 실행한다.
제 5 계산모듈(715)은 메모리(75)로부터 어쿨루전 각도 값을 불러오고, 제 2 계산모듈(707)로부터 θ 값을 불러와, 상기 제(9)식 또는 제(10)식을 이용하여 토탈 어쿨리드 영역 값 θ3를 계산한다(단계(115)에 대응됨). 토탈 어쿨리드 영역 값 θ3는 메모리(75)에 저장한다.
이어서 제 6계산모듈(717)은 메모리(75)로부터 어쿨루전 각도 값을 불러오고, 제 2계산모듈(707)로부터 θ 값을 불러오며, 상기 제(11)식 또는 제(12)식을 이용하여 끼인각Φ을 계산한다(단계(117)에 대응됨). 끼인각 Φ은 메모리(75)에 저장한다.
따라서 제 5 계산모듈(715) 및 제 6 계산모듈(717)(여기서는 멀티-스피어 계산모듈이라 칭한다)은 임의의 두 스피어의 토탈 어쿨리드 영역 값 및 끼인각을 계산한다.
마찬가지로, 만약 제 3 계산모듈(709), 제 4 계산모듈(711), 제 5 계산모듈(715) 및 제 6 계산모듈(717)이 확률밀도함수의 방식을 이용하여 면적 값 및 각도 값을 얻는 경우, 즉 확률밀도함수는 상기 제(13)식에 부합되어야만 적당하다.
이어서 제 2 텍스트생성모듈(719)은 메모리(75)로부터 토탈 어쿨리드 영역 값 θ3 및 Φ 값을 불러오고, 제 2 계산모듈(707)로부터 θ 값을 불러오며, 하나의 3D 텍스쳐를 생성한다(단계(119)에 대응됨). 3D 텍스쳐는 다수개의 스피어가 정점 P에 대하여 조성하는 어쿨루전 영향을 기록하고, 그 중 θ1, θ2 및 δ 값과 θ3 및 Φ 값의 대응관계는 도 5에 도시한 바와 같으므로 설명을 생략한다. 3D 텍스쳐는 메모리(75)에 저장한다.
여기까지, 제 1단계의 플로우가 이미 완성되었다. 이어서 상기 움직이는 오브젝트의 3D 영상을 만들어야 할 때, 실시간 처리모듈(73)이 메모리(75)에 저장된 2D 텍스쳐, 3D 텍스쳐 및 스피어 트리를 운용하여 실시간으로 오브젝트의 셀프 셰도우 효과를 만들어내는 방법, 즉 두 번째 단계를 진행한다.
업데이트 모듈(721)은 메모리(75) 중의 스피어 트리를 불러와, 상기 움직이 는 오브젝트의 현재 동작을 근거로 스피어 트리 중의 상대 위치를 업데이트한다. 다시 말해, 픽셀 셰이더를 이용함과 아울러 피골의 관계(즉 제 1계산모듈(705)이 계산하여 얻어낸 피골 중량)를 근거로 오브젝트 정점과 스피어의 현재 위치를 계산하고, 결과를 스피어 트리 구조 텍스쳐로 저장한다(단계(601)에 대응됨).이 스피어 트리 구조 텍스쳐는 메모리(723)에 저장된다.
이어서 합성모듈(725)은 메모리(723) 중의 스피어 트리 구조 텍스쳐를 불러오고, 아울러 이 스피어 트리 구조 텍스쳐를 바탕으로 메모리(75)로부터 적당한 2D 텍스쳐 및 3D 텍스쳐를 불러와 움직이는 오브젝트의 셀프 셰도우가 만들어내는 음영을 합성한다(단계(603)에 대응됨). 스피어 트리 중 더욱 상층에 있는 스피어의 체적이 더 크기 때문에, 비교적 적은 스피어를 이용하여 움직이는 오브젝트 전체를 덮을 수 있으며, 더욱 하층에 있는 스피어는 체적이 더욱 작긴 하지만 움직이는 오브젝트의 세세한 부분은 유지된다. 셀프 셰도우를 계산할 때, 셀프 셰도우를 계산해야 하는 각각의 정점에 대하여 스피어 트리 중에서 일정한 개수의 스피어를 찾아낸다. 일정 개수의 스피어를 찾는 방식은 다음과 같다: 각 트리마다 상기 정점과 가장 근접한 4개의 스피어를 찾는다. 최상층의 4개의 스피어는 오브젝트 전체를 덮을 수 있기 때문에, 이를 이용하여 셀프 세도우 중 비교적 거시적인 영상을 만들 수 있으며, 세세한 부분은 비교적 하층에 있는 스피어를 이용하여 만든다. 모든 스피어가 만드는 음영 효과는 반드시 2D 텍스쳐와 3D 텍스쳐 중에 대응 값을 가지기 때문에, 합성모듈(725)은 음영 스피어의 θ 값과/또는 두 음영 스피어의 δ 값을 근거로 인터폴레이션을 진행하여 대응되는 접근성 및 어쿨루전 각도 값을 구하 는 것뿐이다.
더욱 자세히 말하면, 합성모듈(725)이 먼저 화면 크기에 대응하는 사변형을 만들고, 각각의 정점을 근거로 계산된 셀프 셰도우 값을 화면의 어느 한 화소에 대응시킨다. 이어서 합성모듈(725)은 픽셀 셰이더를 이용하여 각 정점에 대하여 스피어 트리 구조 텍스쳐 및 미리 저장된 2D 텍스쳐와 3D 텍스쳐를 바탕으로 음영 면적을 계산하고, 아울러 스피어가 서로 중첩되는 문제를 처리한 다음, 마지막으로 계산 결과를 앰비언트 오클루전 텍스쳐로 저장한다. 이 앰비언트 오클루전 텍스쳐는 메모리(723)에 저장된다.
이어서 영상생성모듈(727)은 메모리(723)로부터 앰비언트 오클루전 텍스쳐를 캡쳐하여 상기 움직이는 오브젝트의 음영 시각 효과를 생성하고, 나아가 상기 움직이는 오브젝트의 3D 영상을 디스플레이한다(단계(604)에 대응됨).
상기 방법은 응용프로그램으로 실현할 수 있으며, 다시 말해 하나의 응용프로그램을 이용하여 움직이는 오브젝트 3D 영상생성장치(7)를 구동시킴으로써 상기 방법을 실행할 수 있다. 상기 응용프로그램은 컴퓨터 판독가능한 매체에 저장할 수 있으며, 이 컴퓨터 판독가능한 매체는 플로피디스크, 하드디스크, 레이저디스크, 휴대용 디스크, 자기 테이프, 네트워크로부터 액세스되는 데이터베이스 또는 본 기술을 숙지하고 있는 사람이 쉽게 생각할 수 있으면서 동일한 기능을 갖춘 저장매체 등을 이용할 수 있다.
본 발명은 움직이는 오브젝트의 셀프 셰도우 영상을 생성하기 전에 미리 2D 텍스쳐와 3D 텍스쳐를 생성한 다음, 움직이는 오브젝트의 셀프 셰도우 효과를 생성할 때 2D 텍스쳐와 3D 텍스쳐의 데이터를 불러와 움직이는 오브젝트의 셀프 셰도우 음영을 만들 수 있기 때문에, 실시간 연산량을 대폭 줄일 수 있다. 따라서 종래 기술로는 실시간 처리를 할 수 없었던 문제를 해결할 수 있다.
다만 상기 실시예는 본 발명의 원리 및 효과를 예시적으로 설명하는 것일 뿐, 본 발명을 한정짓는 것이 아니다. 본 기술을 숙지하고 있는 사람이라면 누구나 본 발명의 기술 원리 및 정신에 위배되지 않는 상황에서, 상기 실시예를 수정하거나 변경할 수 있다. 따라서 본 발명의 권리보호범위는 후술하는 특허출원범위와 같다.

Claims (16)

  1. 복수개의 스피어를 포함하며, 하나의 오브젝트에 대응하는 스피어 트리를 생성하는 스피어 트리 생성모듈;
    상기 오브젝트의 모든 정점에 대해 공간에서 각 스피어의 접근성 값 및 어쿨루전 각도를 계산하는 단일 스피어 계산모듈;
    상기 접근성 값 및 어쿨루전 각도를 근거로 하나의 2D 텍스쳐를 생성하는 제 1 텍스쳐 생성모듈;
    상기 오브젝트의 모든 정점에 대해 공간에서 임의의 두 스피어의 토탈 어쿨리드 영역(total occluded area) 값 및 끼인각을 계산하는 멀티-스피어 계산모듈;
    상기 토탈 어쿨리드 영역 값 및 끼인각을 근거로 하나의 3D 텍스쳐를 생성하는데 제 2 텍스쳐 생성모듈;
    상기 오브젝트의 동작을 근거로 상기 스피어 트리에서 상기 스피어들의 상대위치를 업데이트하는 업데이트모듈;
    상기 상대 위치를 근거로, 상기 2D 텍스쳐 및 상기 3D 텍스쳐로부터 적당한 값을 불러와 상기 오브젝트의 셀프 셰도우가 만들어내는 하나의 음영을 합성하는 합성모듈; 및
    상기 음영을 포함하는 3D 영상을 디스플레이하는 영상생성모듈;을 포함하는 움직이는 오브젝트의 3D 이미지 생성장치.
  2. 제 1항에 있어서,
    상기 오브젝트의 피골구조 데이터를 불러와, 상기 피골 구조 데이터를 근거로 각 스피어의 원심의 피골 중량을 계산하는 제 1계산모듈을 더 포함하며;
    상기 업데이트모듈은 상기 피골 중량을 근거로 상기 스피어 트리에서 상기 스피어들의 상대 위치를 업데이트하는 움직이는 오브젝트의 3D 이미지 생성장치.
  3. 제 1항에 있어서,
    상기 멀티-스피어 계산모듈은 또한 하나의 큰 스피어를 설정하고, 상기 오브젝트의 한 정점에 대한 상기 큰 스피어의 접근성 값이 상기 정점에 대한 상기 임의의 두 스피어의 접근성 값의 총합과 같은 움직이는 오브젝트의 3D 이미지 생성장치.
  4. 제 3항에 있어서,
    상기 정점은 상기 스피어들 중의 하나에 포함되며, 상기 끼인각은 상기 정점을 포함하는 스피어의 노멀 벡터와 상기 정점으로부터 상기 큰 스피어 중심에 이르는 벡터의 각인 움직이는 오브젝트의 3D 이미지 생성장치.
  5. 스피어 트리가 복수개의 스피어를 포함하며, 스피어 트리 생성모듈이 하나의 오브젝트에 대응하는 스피어 트리를 생성하는 단계;
    단일 스피어 계산모듈이 상기 오브젝트의 모든 정점에 대해 공간에서 각 스 피어의 접근성 값 및 어쿨루전 각도를 계산하는 단계;
    상기 접근성 값 및 상기 어쿨루전 각도를 근거로 제 1 텍스쳐 생성모듈이 하나의 2D 텍스쳐 생성하는 단계;
    멀티-스피어 계산모듈이 상기 오브젝트의 모든 정점에 대해 공간에서 임의의 두 스피어의 토탈 어쿨리드 영역 값 및 끼인각을 계산하는 단계;
    상기 토탈 어쿨리드 영역 값 및 끼인각을 근거로 제 2 텍스쳐 생성모듈이 하나의 3D 텍스쳐를 생성하는 단계;
    업데이트모듈이 상기 오브젝트의 동작을 근거로 상기 스피어 트리에서 상기 스피어들의 상대 위치를 업데이트하는 단계;
    합성모듈이 상기 상대 위치를 근거로 상기 2D 텍스쳐 및 상기 3D 텍스쳐로부터 적당한 값을 불러와 상기 오브젝트 셀프 셰도우로 만들어지는 하나의 음영을 합성하는 단계; 및
    3D 영상이 상기 음영을 포함하며, 영상생성모듈이 상기 오브젝트의 3D 영상을 디스플레이하는 단계;를 포함하는 움직이는 오브젝트의 3D 이미지 생성방법.
  6. 제 5항에 있어서,
    제 1계산모듈이 상기 오브젝트의 피골 구조 데이터를 불러와, 상기 피골구조 데이터를 근거로 각 스피어들의 원심의 피골 중량을 계산하는 단계가 더 포함하며;
    상기 업데이트단계는 상기 피골 중량을 근거로 상기 스피어 트리에서 상기 스피어들의 상대 위치를 업데이트하는 움직이는 오브젝트의 3D 이미지 생성방법.
  7. 제 5항에 있어서,
    공간에서 임의의 두 스피어의 토탈 어쿨리드 영역 값 및 끼인각을 계산하는 상기 단계는 하나의 큰 스피어를 설정하는 단계를 더 포함하며;
    상기 오브젝트의 한 정점에 대한 상기 큰 스피어의 접근성 값은 상기 정점에 대한 임의의 두 스피어의 접근성 값의 총합과 같은 움직이는 오브젝트의 3D 이미지 생성방법.
  8. 제 7항에 있어서,
    상기 정점은 상기 스피어 중의 하나에 포함되며, 상기 끼인각은 상기 정점을 포함하는 스피어의 노멀 벡터와 상기 정점으로부터 상기 큰 스피어 중심에 이르는 벡터의 각인 움직이는 오브젝트의 3D 이미지 생성방법.
  9. 스피어 트리가 복수개의 스피어를 포함하며, 스피어 트리 생성모듈이 하나의 오브젝트에 대응하는 스피어 트리를 생성하는 단계;
    단일 스피어 계산모듈이 상기 오브젝트의 모든 정점에 대해 공간에서 각 스피어의 접근성 값 및 어쿨루전 각도를 계산하는 단계;
    상기 접근성 값 및 상기 어쿨루전 각도를 근거로 제 1 텍스쳐 생성모듈이 하나의 2D 텍스쳐 생성하는 단계;
    멀티-스피어 계산모듈이 상기 오브젝트의 모든 정점에 대해 공간에서 임의의 두 스피어의 토탈 어쿨리드 영역 값 및 끼인각을 계산하는 단계;
    상기 토탈 어쿨리드 영역 값 및 끼인각을 근거로 제 2 텍스쳐 생성모듈이 하나의 3D 텍스쳐를 생성하는 단계;
    업데이트모듈이 상기 오브젝트의 동작을 근거로 상기 스피어 트리에서 상기 스피어들의 상대 위치를 업데이트하는 단계;
    합성모듈이 상기 상대 위치를 근거로 상기 2D 텍스쳐 및 상기 3D 텍스쳐로부터 적당한 값을 불러와 상기 오브젝트 셀프 셰도우로 만들어지는 하나의 음영을 합성하는 단계; 및
    3D 영상이 상기 음영을 포함하며, 영상생성모듈이 상기 오브젝트의 3D 영상을 디스플레이하는 단계;를 포함하는 움직이는 오브젝트의 3D 이미지 생성방법을 실행하기 위한 응용프로그램.
  10. 제 9항에 있어서,
    제 1계산모듈이 상기 오브젝트의 피골 구조 데이터를 불러와, 상기 피골구조 데이터를 근거로 각 스피어들의 원심의 피골 중량을 계산하는 단계가 더 포함되며,
    상기 업데이트단계는 상기 피골 중량을 근거로 상기 스피어 트리에서 상기 스피어들의 상대 위치를 업데이트하는 응용프로그램.
  11. 제 9항에 있어서,
    공간에서 임의의 두 스피어의 토탈 어쿨리드 영역 값 및 끼인각을 계산하는 상기 단계는 하나의 큰 스피어를 설정하는 단계를 더 포함하며,
    상기 오브젝트의 한 정점에 대한 상기 큰 스피어의 접근성 값은 상기 정점에 대한 임의의 두 스피어의 접근성 값의 총합과 같은 응용프로그램.
  12. 제 11항에 있어서,
    상기 정점은 상기 스피어들 중의 하나에 포함되며, 상기 끼인각은 상기 정점을 포함하는 스피어의 노멀 벡터와 상기 정점으로부터 큰 스피어 중심에 이르는 벡터의 각인 하는 응용프로그램.
  13. 스피어 트리가 복수개의 스피어를 포함하며, 스피어 트리 생성모듈이 하나의 오브젝트에 대응하는 스피어 트리를 생성하는 단계;
    단일 스피어 계산모듈이 상기 오브젝트의 모든 정점에 대해 공간에서 각 스피어의 접근성 값 및 어쿨루전 각도를 계산하는 단계;
    상기 접근성 값 및 상기 어쿨루전 각도를 근거로 제 1 텍스쳐 생성모듈이 하나의 2D 텍스쳐 생성하는 단계;
    멀티-스피어 계산모듈이 상기 오브젝트의 모든 정점에 대해 공간에서 임의의 두 스피어의 토탈 어쿨리드 영역 값 및 끼인각을 계산하는 단계;
    상기 토탈 어쿨리드 영역 값 및 끼인각을 근거로 제 2 텍스쳐 생성모듈이 하나의 3D 텍스쳐를 생성하는 단계;
    업데이트모듈이 상기 오브젝트의 동작을 근거로 상기 스피어 트리에서 상기 스피어들의 상대 위치를 업데이트하는 단계;
    합성모듈이 상기 상대 위치를 근거로 상기 2D 텍스쳐 및 상기 3D 텍스쳐로부터 적당한 값을 불러와 상기 오브젝트 셀프 셰도우로 만들어지는 하나의 음영을 합성하는 단계; 및
    3D 영상이 상기 음영을 포함하며, 영상생성모듈이 상기 오브젝트의 3D 영상을 디스플레이하는 단계;를 포함하는 움직이는 오브젝트의 3D 이미지 생성방법을 실행하기 위한 컴퓨터 프로그램을 저장하는 컴퓨터 판독가능한 기록매체.
  14. 제 13항에 있어서,
    제 1계산모듈이 상기 오브젝트의 피골 구조 데이터를 불러와, 상기 피골구조 데이터를 근거로 각 스피어들의 원심의 피골 중량을 계산하는 단계가 더 포함되며,
    상기 업데이트단계는 상기 피골 중량을 근거로 상기 스피어 트리에서 상기 스피어들의 상대 위치를 업데이트하는 컴퓨터 판독가능한 기록매체.
  15. 제 13항에 있어서,
    공간에서 임의의 두 스피어의 토탈 어쿨리드 영역 값 및 끼인각을 계산하는 상기 단계는 하나의 큰 스피어를 설정하는 단계를 더 포함하며;
    상기 오브젝트의 한 정점에 대한 상기 큰 스피어의 접근성 값은 상기 정점에 대한 임의의 두 스피어의 접근성 값의 총합과 같은 컴퓨터 판독가능한 기록매체.
  16. 제 15항에 있어서,
    상기 정점은 상기 스피어들 중의 하나에 포함되며, 상기 끼인각은 상기 정점을 포함하는 스피어의 노멀 벡터와 상기 정점으로부터 큰 스피어 중심에 이르는 벡터의 각인 컴퓨터 판독가능한 기록매체.
KR1020070035714A 2006-12-14 2007-04-11 3D 오브젝트의 셀프 셰도우(self-shadow)를만들기 위해 데이터를 미리-저장할 수 있는 장치, 방법,응용프로그램 및 컴퓨터 판독가능한 매체 KR100888528B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW095146907 2006-12-14
TW095146907A TWI322392B (en) 2006-12-14 2006-12-14 Apparatus, method, application program, and computer readable medium thereof capable of pre-storing data for generating self-shadow of a 3d object

Publications (2)

Publication Number Publication Date
KR20080055581A true KR20080055581A (ko) 2008-06-19
KR100888528B1 KR100888528B1 (ko) 2009-03-11

Family

ID=39526572

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070035714A KR100888528B1 (ko) 2006-12-14 2007-04-11 3D 오브젝트의 셀프 셰도우(self-shadow)를만들기 위해 데이터를 미리-저장할 수 있는 장치, 방법,응용프로그램 및 컴퓨터 판독가능한 매체

Country Status (4)

Country Link
US (1) US7936351B2 (ko)
JP (1) JP4658993B2 (ko)
KR (1) KR100888528B1 (ko)
TW (1) TWI322392B (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110051315A (ko) * 2009-11-10 2011-05-18 삼성전자주식회사 영상 처리 장치 및 방법
US8896599B2 (en) 2009-08-06 2014-11-25 Samsung Electronics Co., Ltd. Image processing apparatus and method

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010033296A (ja) * 2008-07-28 2010-02-12 Namco Bandai Games Inc プログラム、情報記憶媒体及び画像生成システム
US9483864B2 (en) * 2008-12-05 2016-11-01 International Business Machines Corporation System and method for photorealistic imaging using ambient occlusion
FR2966623A1 (fr) * 2010-10-21 2012-04-27 Thomson Licensing Procede d’estimation de l’occultation dans un environnement virtuel
KR101208826B1 (ko) 2012-07-09 2012-12-06 인하대학교 산학협력단 깊이 텍스처의 등고선을 기반으로 한 실시간 다각형 앰비언트 오클루전 방법
KR101210796B1 (ko) 2012-07-09 2012-12-11 인하대학교 산학협력단 깊이 텍스처를 이용한 실시간 다각형 앰비언트 오클루전 방법
US11020899B2 (en) 2012-08-16 2021-06-01 Stratasys, Inc. Additive manufacturing system with extended printing volume, and methods of use thereof
US10521520B2 (en) * 2013-02-14 2019-12-31 Nocturnal Innovations LLC Highly scalable cluster engine for hosting simulations of objects interacting within a space
US9747680B2 (en) 2013-11-27 2017-08-29 Industrial Technology Research Institute Inspection apparatus, method, and computer program product for machine vision inspection
US9569885B2 (en) * 2014-01-02 2017-02-14 Nvidia Corporation Technique for pre-computing ambient obscurance
US11247387B2 (en) 2018-08-30 2022-02-15 Stratasys, Inc. Additive manufacturing system with platen having vacuum and air bearing
CA3045133C (en) * 2019-06-03 2023-03-21 Eidos Interactive Corp. Systems and methods for augmented reality applications

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5222205A (en) * 1990-03-16 1993-06-22 Hewlett-Packard Company Method for generating addresses to textured graphics primitives stored in rip maps
JP3401897B2 (ja) * 1994-02-16 2003-04-28 株式会社セガ 衝突判定処理システムおよびこれを用いた画像処理装置
JP3724006B2 (ja) * 1995-04-24 2005-12-07 ダイキン工業株式会社 高速レンダリング方法およびその装置
US5870509A (en) * 1995-12-12 1999-02-09 Hewlett-Packard Company Texture coordinate alignment system and method
JPH1021362A (ja) 1996-06-28 1998-01-23 Hitachi Medical Corp 3次元関心領域計測方法及び装置
US6201546B1 (en) * 1998-05-29 2001-03-13 Point Cloud, Inc. Systems and methods for generating three dimensional, textured models
US6559845B1 (en) * 1999-06-11 2003-05-06 Pulse Entertainment Three dimensional animation system and method
JP2001101445A (ja) 1999-10-01 2001-04-13 Tsuneo Ikedo ソフトシャドーキャスティング回路
US7038683B1 (en) * 2000-01-28 2006-05-02 Creative Technology Ltd. Audio driven self-generating objects
EP1209560A1 (en) * 2000-11-21 2002-05-29 Natlantech Naamloze Vennootschap A language modelling system and a fast parsing method
JP4610729B2 (ja) * 2000-12-20 2011-01-12 株式会社バンダイナムコゲームス ゲームシステム、プログラム及び情報記憶媒体
CA2373707A1 (en) * 2001-02-28 2002-08-28 Paul Besl Method and system for processing, compressing, streaming and interactive rendering of 3d color image data
US6741259B2 (en) * 2001-03-30 2004-05-25 Webtv Networks, Inc. Applying multiple texture maps to objects in three-dimensional imaging processes
KR100490670B1 (ko) * 2002-05-13 2005-05-24 조우니테크 주식회사 산악용 입체지도 제작방법
GB2391144A (en) * 2002-07-19 2004-01-28 Kaydara Inc Retrieval of information related to selected displayed object
JP2005071285A (ja) * 2003-08-28 2005-03-17 New Industry Research Organization 空間内のインタラクションに応じて詳細度を変更する衝突検出方法及びその方法を用いた仮想空間生成装置
US7145562B2 (en) * 2004-05-03 2006-12-05 Microsoft Corporation Integration of three dimensional scene hierarchy into two dimensional compositing system
JP4513423B2 (ja) 2004-06-03 2010-07-28 株式会社セガ 仮想三次元座標ポリゴンによるオブジェクト画像の表示制御方法及びこれを用いた画像表示装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8896599B2 (en) 2009-08-06 2014-11-25 Samsung Electronics Co., Ltd. Image processing apparatus and method
KR20110051315A (ko) * 2009-11-10 2011-05-18 삼성전자주식회사 영상 처리 장치 및 방법

Also Published As

Publication number Publication date
JP4658993B2 (ja) 2011-03-23
TW200825983A (en) 2008-06-16
KR100888528B1 (ko) 2009-03-11
US7936351B2 (en) 2011-05-03
TWI322392B (en) 2010-03-21
US20080143721A1 (en) 2008-06-19
JP2008152749A (ja) 2008-07-03

Similar Documents

Publication Publication Date Title
KR100888528B1 (ko) 3D 오브젝트의 셀프 셰도우(self-shadow)를만들기 위해 데이터를 미리-저장할 수 있는 장치, 방법,응용프로그램 및 컴퓨터 판독가능한 매체
US20230053462A1 (en) Image rendering method and apparatus, device, medium, and computer program product
US8411087B2 (en) Non-linear beam tracing for computer graphics
US20050041024A1 (en) Method and apparatus for real-time global illumination incorporating stream processor based hybrid ray tracing
US8791942B2 (en) Computer method and apparatus for rotating 2D cartoons using 2.5D cartoon models
US9508191B2 (en) Optimal point density using camera proximity for point-based global illumination
US20050041023A1 (en) Method and apparatus for self shadowing and self interreflection light capture
WO2007015928A2 (en) Method of generating surface defined by boundary of three-dimensional point cloud
CA2718782A1 (en) System and method for correlating and synchronizing a three-dimensional site model and two-dimensional imagery
JP2008287696A (ja) 画像処理方法と装置
JP2009116856A (ja) 画像処理装置、画像処理方法
JP2012190428A (ja) 立体映像視覚効果処理方法
US9401044B1 (en) Method for conformal visualization
JPH10111953A (ja) 画像処理方法および装置および記憶媒体
Bao et al. Realistic real-time rendering for large-scale forest scenes
Petkov et al. Interactive visibility retargeting in vr using conformal visualization
CN102693065A (zh) 立体影像视觉效果处理方法
CN116664752B (zh) 基于图案化光照实现全景显示的方法、系统及存储介质
EP3748585A1 (en) Method for fast rendering of very large 3d models
US11908063B2 (en) Displacement-centric acceleration for ray tracing
JP2010152870A (ja) 画像処理装置、画像処理方法および画像処理プログラム
JP4717624B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
CA2515017A1 (en) Visual simulation of dynamic moving bodies
Liu A novel Mesa-based OpenGL implementation on an FPGA-based embedded system
JP2009163469A (ja) 大局照明回路

Legal Events

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

Payment date: 20130225

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140224

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150225

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20160223

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20170228

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20180226

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20200225

Year of fee payment: 12