KR100624455B1 - Lightmap processing method in 3 dimensional graphics environment and apparatus therefor - Google Patents

Lightmap processing method in 3 dimensional graphics environment and apparatus therefor Download PDF

Info

Publication number
KR100624455B1
KR100624455B1 KR1020040112233A KR20040112233A KR100624455B1 KR 100624455 B1 KR100624455 B1 KR 100624455B1 KR 1020040112233 A KR1020040112233 A KR 1020040112233A KR 20040112233 A KR20040112233 A KR 20040112233A KR 100624455 B1 KR100624455 B1 KR 100624455B1
Authority
KR
South Korea
Prior art keywords
light map
bounding box
light
generated
lightmap
Prior art date
Application number
KR1020040112233A
Other languages
Korean (ko)
Other versions
KR20060073814A (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 KR1020040112233A priority Critical patent/KR100624455B1/en
Publication of KR20060073814A publication Critical patent/KR20060073814A/en
Application granted granted Critical
Publication of KR100624455B1 publication Critical patent/KR100624455B1/en

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/506Illumination models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading
    • G06T15/87Gouraud shading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/005Tree description, e.g. octree, quadtree
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/003Navigation within 3D models or images

Abstract

3차원 그래픽스 환경에서의 라이트맵 처리 방법 및 장치가 개시된다. 본 발명에 따른 라이트맵 처리 방법은, 3차원 그래픽스 환경에 배치된 광원과 오브젝트에 대한 정보를 얻는 단계, 이러한 정보를 기초로 하여 오브젝트에 대한 라이트맵을 생성하는 단계, 및 생성된 라이트맵을 화면 상에 매핑하는 단계를 포함한다. 3차원 환경 상의 네비게이션이 수행되기 전에 오브젝트의 각 면에 대응하는 텍스쳐의 모음인 라이트맵을 미리 생성하여 두고 실시간의 네비게이션 수행시에는 라이트맵을 화면에 매핑하도록 함으로써, 고화질의 실시간 3차원 그래픽스 화면을 얻을 수 있다.Disclosed are a light map processing method and apparatus in a three-dimensional graphics environment. A light map processing method according to the present invention comprises the steps of obtaining information about a light source and an object disposed in a three-dimensional graphics environment, generating a light map for an object based on such information, and displaying the generated light map. Mapping to the phase. Before navigation on the 3D environment, the lightmap, which is a collection of textures corresponding to each side of the object, is created in advance, and when the navigation is performed in real time, the lightmap is mapped to the screen, thereby creating a high quality real-time 3D graphics screen. You can get it.

Description

3차원 그래픽스 환경에서의 라이트맵 처리 방법 및 장치{Lightmap processing method in 3 dimensional graphics environment and apparatus therefor} Lightmap processing method in 3 dimensional graphics environment and apparatus therefor}

도 1은 광선 추적(ray tracing)을 나타낸 도면이다.1 is a diagram illustrating ray tracing.

도 2는 동적인 라이트맵의 처리 과정을 나타낸 도면이다.2 is a diagram illustrating a process of processing a dynamic light map.

도 3은 정적인 라이트맵의 처리 과정을 나타낸 도면이다.3 is a diagram illustrating a process of processing a static light map.

도 4는 라이트맵을 생성하는 방법의 각 단계를 나타낸 도면이다.4 is a diagram illustrating each step of a method of generating a light map.

도 5는 라이트맵 삼각형의 패킹을 나타낸 도면이다.5 is a diagram illustrating packing of a light map triangle.

도 6은 바운딩 박스를 나타낸 도면이다.6 is a diagram illustrating a bounding box.

도 7은 바운딩 박스의 텍셀 구성을 나타낸 도면이다.7 is a diagram illustrating a texel configuration of a bounding box.

도 8a 및 도 8b는 바운딩 박스를 패킹하는 방법을 나타낸 도면이다.8A and 8B illustrate a method of packing a bounding box.

본 발명은 화상 데이터의 처리에 관한 것으로서, 특히 3차원 그래픽스 환경에서 오브젝트에 대한 라이트맵을 처리하는 방법 및 장치에 관한 것이다.TECHNICAL FIELD The present invention relates to the processing of image data, and more particularly, to a method and apparatus for processing a light map for an object in a three-dimensional graphics environment.

일반적인 컴퓨팅 환경에서 고화질의 3차원 그래픽스 데이터를 재생하기 위해 서는, 빛의 효과를 표현하는 여러가지 기술들이 필요하다. 광원에서 나오는 빛이 오브젝트(object)의 면에 어떻게 입사되고 반사되어 어떤 모습으로 보이게 되는지는 빛의 효과를 표현하는 기술에 따라 달라지게 된다.In order to reproduce high quality 3D graphics data in a general computing environment, various techniques for expressing the effects of light are required. How the light from the light source enters, reflects and looks in the plane of the object depends on the technique of expressing the effect of the light.

빛의 효과를 표현하는 그래픽스 기술, 즉 라이팅(lighting) 연산에는 구로 셰이딩(Gouraud shading), 퐁 셰이딩(Phong shading), 광선 추적(ray tracing), 조도 계산(radiosity) 등이 있다. Graphics techniques that represent the effects of light, ie lighting operations, include Gouraud shading, Phong shading, ray tracing, and radiosity.

도 1에 라이팅 연산의 하나인 광선 추적에 대하여 도시하였다. 도 1을 참조하면, 퐁 셰이딩, 광선 추적, 조도 계산 등의 일반적인 라이팅 연산은 화면상의 모든 픽셀에 대하여 컬러값을 계산하는 방식이어서 알고리즘이 복잡하고 시간이 많이 걸린다. 이들은 빛의 효과를 잘 표현하기는 하지만 폴리곤의 수가 늘어남에 따라 필요한 연산의 수가 기하급수적으로 늘어난다. 따라서, 실시간으로 3차원 그래픽스 환경을 구현하기 위해서는 사용하기 어렵고 애니메이션 영화와 같은 비 실시간 애플리케이션에 이용되고 있다.1 shows ray tracing as one of the lighting operations. Referring to FIG. 1, general lighting operations such as pong shading, ray tracing, and illuminance calculation are methods of calculating color values for all pixels on a screen, which is complicated and time-consuming. Although they express the effects of light well, the number of operations required increases exponentially as the number of polygons increases. Therefore, it is difficult to use a 3D graphics environment in real time and is used for non real time applications such as animated movies.

실시간 3차원 그래픽스 환경에서 사용되는 라이팅 연산은 구로 셰이딩(Gouraud shading)이다. 구로 셰이딩은 스무드 셰이딩(smooth shading) 방식의 하나로, 폴리곤의 꼭지점에 대해서만 꼭지점의 법선 벡터(normal vector)를 이용하여 라이팅(lighting) 연산을 직접 수행한 후, 폴리곤 내부의 표면 색깔은 계산된 세 꼭지점의 색깔로부터 색 변화를 보간 하는 방식으로 구한다. 스무드 셰이딩 방식 중 가장 단순하고 빠르기 때문에 작업중인 오브젝트의 형태를 실시간으로 보여주는 셰이딩 방식으로 많이 사용되며 하이엔드 그래픽 워크스테이션에서는 구로 셰이딩 알고리즘을 하드웨어로 구현하여 더욱 속도를 향상시키기도 한다. 하지만 각 폴리곤의 모서리 경계선 모양이 드러나 보인다는 단점을 가지고 있다. 특히 물체 표면의 하이라이트가 맺히는 부분에서 더욱 부드럽지 못하고 어색하다. 따라서 실시간으로 3차원 그래픽스 환경을 구현하면서도 고화질의 화면을 얻을 수 있는 방법이 요구되었다.The lighting operation used in the real-time three-dimensional graphics environment is Gouraud shading. Sphere shading is a method of smooth shading, in which the lighting operation is performed directly on the polygon's vertices using the normal vector of the vertices, and then the surface color inside the polygon is calculated. This is obtained by interpolating the color change from the color of. It's the simplest and fastest of the smooth shading methods, so it's often used as a shading method that shows the shape of the object you're working in. On high-end graphics workstations, the guillo-shading algorithm can be implemented in hardware to improve speed. The disadvantage is that the edge borders of each polygon are visible. It is especially softer and awkward in areas where highlights on the surface of the object form. Therefore, there is a demand for a method that can obtain a high quality screen while realizing a 3D graphics environment in real time.

본 발명이 이루고자 하는 기술적 과제는, 실시간으로 고화질의 3차원 그래픽스 환경을 구현하기 위하여 텍스쳐의 일종인 라이트맵을 처리하는 방법 및 장치를 제공하는 것이다.An object of the present invention is to provide a method and apparatus for processing a light map, which is a kind of texture, in order to realize a high quality 3D graphics environment in real time.

상기 기술적 과제를 이루기 위하여, 본 발명에 의한 3차원 그래픽스 환경에서의 라이트맵 처리 방법은, 3차원 그래픽스 환경에 배치된 광원과 오브젝트에 대한 정보를 얻는 단계; 상기 정보를 기초로 하여 상기 오브젝트에 대한 라이트맵을 생성하는 단계; 및 상기 생성된 라이트맵을 화면 상에 매핑하는 단계를 포함하는 것이 바람직하다.In order to achieve the above technical problem, a light map processing method in a three-dimensional graphics environment according to the present invention comprises the steps of: obtaining information about a light source and an object disposed in the three-dimensional graphics environment; Generating a light map for the object based on the information; And mapping the generated light map onto a screen.

상기 기술적 과제를 이루기 위하여, 본 발명에 의한 3차원 그래픽스 환경에서의 라이트맵 처리 장치는, 3차원 그래픽스 환경에 배치된 광원과 오브젝트에 대한 정보를 얻는 라이트맵생성정보처리부; 상기 정보를 기초로 하여 상기 오브젝트에 대한 라이트맵을 생성하는 라이트맵생성부; 및 상기 생성된 라이트맵을 화면 상에 매핑하는 라이트맵매핑부를 포함하는 것이 바람직하다.In order to achieve the above technical problem, the light map processing apparatus in the three-dimensional graphics environment according to the present invention, the light map generation information processing unit for obtaining information about the light source and the object disposed in the three-dimensional graphics environment; A light map generator configured to generate a light map for the object based on the information; And a light map mapping unit for mapping the generated light map onto the screen.

이하 첨부된 도면들을 참조하여 본 발명에 따른 3차원 그래픽스 환경에서의 라이트맵 처리 방법 및 장치에 대하여 상세히 설명한다.Hereinafter, a light map processing method and apparatus in a 3D graphics environment according to the present invention will be described in detail with reference to the accompanying drawings.

도 2 및 도 3은 본 발명에 따른 라이트맵 처리 과정을 나타낸 도면들이다. 도 2에는 동적인 라이트맵의 처리 과정을 도시하였고, 도 3에는 정적인 라이트맵의 처리 과정을 도시하였다.2 and 3 are views illustrating a light map processing process according to the present invention. FIG. 2 illustrates a process of processing a dynamic light map, and FIG. 3 illustrates a process of processing a static light map.

라이트맵(lightmap)이란 오브젝트를 구성하는 각각의 삼각형에 대하여 라이팅 연산을 수행하여 생성된 텍스쳐(texture)의 모음을 말한다. 본 발명에서는 실시간으로 고화질의 3차원 그래픽스 환경을 구현하기 위하여 각각의 오브젝트에 대하여 라이트맵을 생성하여 두고 실제 3차원 그래픽스 환경에서의 네비게이션 수행시에 라이트맵을 화면에 표시하는 방식을 제공한다.A lightmap is a collection of textures generated by performing a lighting operation on each triangle constituting an object. The present invention provides a method of generating a light map for each object in order to implement a high quality 3D graphics environment in real time and displaying the light map on the screen when the navigation is performed in the actual 3D graphics environment.

동적인 라이트맵이란 이러한 라이트맵을 네비게이션 수행의 준비 과정에서 생성하고 이를 네비게이션 과정에서 화면에 표시하는 것을 말한다. 도 2를 참조하면, 동적인 라이트맵의 처리 과정은, 네비게이션 프로그램의 실행 단계(10), 네비게이션의 대상이 되는 3차원 그래픽스 환경에 대한 정보를 포함하는 씬 파일을 파싱(parsing)하는 단계(20), 3차원 그래픽스 환경에 대한 정보를 기초로 하여 오브젝트에 대한 라이트맵을 생성하는 단계(30), 생성된 라이트맵을 메모리에 저장하는 단계(40), 및 화면 상에 생성된 라이트맵을 매핑하는 단계(50)를 포함한다.The dynamic light map refers to generating such a light map in preparation for navigation and displaying it on the screen during navigation. Referring to FIG. 2, the dynamic light map processing includes executing a navigation program 10, parsing a scene file including information about a three-dimensional graphics environment to be navigated (20). ), Generating a lightmap for the object based on the information about the 3D graphics environment (30), storing the generated lightmap in memory (40), and mapping the generated lightmap on the screen. Step 50 is performed.

정적인 라이트맵이란 실시간의 네비게이션 프로그램 수행 이전에 라이트맵을 생성하여 두고, 실제 네비게이션 프로그램의 수행 시에는 생성된 라이트맵을 화면 상에 표시하기만 하는 것을 말한다. 정적인 라이트맵과 동적인 라이트맵은 라이트 맵의 생성 시점이 네비게이션 프로그램의 수행 이전과 네비게이션 프로그램의 준비 단계라는 시간적 차이가 있기는 하지만, 실제 네비게이션을 수행하기 전에 라이트맵을 미리 생성하여 두고 실시간의 네비게이션 수행 시에는 라이트맵을 화면에 매핑하기만 한다는 점에서 공통적인 기술적 특징을 가진다.The static light map means that the light map is generated before the real-time navigation program is executed, and only the generated light map is displayed on the screen when the actual navigation program is executed. Although static light maps and dynamic light maps have a time difference between when the light map is generated before the execution of the navigation program and the preparation phase of the navigation program, the light map is generated in real time before the actual navigation is performed. When performing navigation, it has a common technical feature in that it only maps a light map to the screen.

도 3을 참조하면, 정적인 라이트맵을 처리하는 과정은, 외부 그래픽스 툴을 이용하여 라이트(light)의 효과를 적용하는 단계(100), 라이트의 효과를 이용하여 오브젝트에 대한 라이트맵을 생성하는 단계(110), 오브젝트와 이에 대응하는 라이트맵에 대한 정보를 포함하는 씬 파일을 생성하는 단계(120), 네비게이션 프로그램을 시작하는 단계(130), 씬 파일을 파싱하여 오브젝트 및 라이트맵에 대한 정보를 얻는 단계(140), 메모리에 저장된 라이트맵을 읽어오는 단계(150), 및 라이트맵을 화면 상에 매핑하는 단계(160)로 이루어진다.Referring to FIG. 3, a process of processing a static lightmap may include applying a light effect using an external graphics tool (100), and generating a lightmap for an object using the light effect. Step 110, generating a scene file including information about the object and the light map corresponding to it (120), starting a navigation program (130), parsing the scene file and information about the object and light map Obtaining 140, reading the lightmap stored in the memory 150, and mapping the lightmap onto the screen 160.

정적인 라이트맵은, 3차원 그래픽스 환경 상에서 광원과 오브젝트의 위치가 변하지 않는 경우, 예를 들어 플레이어가 3차원 환경을 네비게이션하며 미션을 수행하는 게임 등의 경우에 사용되는 방식이다.The static lightmap is a method used when the position of the light source and the object does not change in the 3D graphics environment, for example, when a player navigates the 3D environment and performs a mission.

만일 3차원 환경 상의 오브젝트와 광원과의 상대적 위치가 프로그램이 실행될 때마다 변경되는 경우라면, 동적인 라이트맵을 사용하여야 한다. 동적인 라이트맵을 생성하는 경우, 처음 네비게이션 프로그램이 실행될 때, 즉 오브젝트의 로딩(loading) 시에만 라이트맵을 생성하여 저장해 두고, 이후의 네비게이션 과정에서는 생성된 라이트맵을 이용하여 화면상에 오브젝트를 표시할 수 있기 때문에 실시간으로 고화질의 3차원 그래픽스 화면을 제공할 수 있게 된다.If the relative positions of objects and light sources in the three-dimensional environment change each time the program is run, dynamic lightmaps should be used. When creating a dynamic light map, the light map is generated and stored only when the first navigation program is executed, that is, when the object is loaded. In a subsequent navigation process, the object is created on the screen using the generated light map. Because of the display, it is possible to provide a high quality three-dimensional graphics screen in real time.

이와 같이 오브젝트를 화면 상에 표시할 때마다 라이팅 연산을 반복하는 것이 아니라 씬 파일의 생성 이전 또는 프로그램의 로딩 시에 3차원 그래픽스 환경에 배치된 광원과 오브젝트에 대한 정보를 기초로 하여 한번만 라이팅 연산을 수행하면 되므로, 화면 상의 모든 픽셀에 대하여 빛의 효과를 잘 표현할 수 있는 퐁 셰이딩, 광선 추적, 조도 계산 등의 일반적인 라이팅 연산을 이용할 수 있게 된다.Instead of repeating the lighting operation each time the object is displayed on the screen, the lighting operation is performed only once based on the information about the light source and the object placed in the 3D graphics environment before the scene file is generated or when the program is loaded. Since it is performed, general lighting operations such as pong shading, ray tracing, and illuminance calculation can be used for all the pixels on the screen.

네비게이션 등의 3차원 그래픽스 환경을 정의하는 방법 중에 많이 이용되는 것이 가상 현실 모델링 언어(Virtual Reality Modeling Language: VRML)를 이용하여 씬 파일을 구현하는 것이다. 본 발명에서는 라이트맵을 3차원 그래픽스 환경에서 이용하기 위하여 씬 파일 상에서 라이트맵에 관련된 정보를 정의하는 방법을 제시한다. One of the methods used to define a 3D graphics environment such as navigation is to implement a scene file using the Virtual Reality Modeling Language (VRML). The present invention proposes a method of defining information related to a light map on a scene file in order to use the light map in a 3D graphics environment.

3차원 그래픽스 환경에서 라이트맵을 이용하기 위하여 라이트맵 노드(lightmap node)를 정의한다. 라이트맵 노드를 정의하는 일 실시예를 수학식 1에 나타내었다.In order to use lightmap in 3D graphics environment, we define lightmap node. An embodiment of defining a light map node is shown in Equation 1.

Figure 112004061338986-pat00001
Figure 112004061338986-pat00001

수학식 1을 참조하면, 라이트맵을 정의하기 위해서는, 라이트맵을 생성할 때 사용될 광원(light source)에 대한 정보(affectingLights 필드), 한 오브젝트를 표현하기 위한 라이트맵이 저장될 실제 텍스쳐 메모리의 크기(textureSize 필드), 라이트맵의 한 텍셀이 실제 3차원 그래픽스 공간에서 차지하는 크기(texelSize 필드), 라이트맵 이미지의 최소값(minNumTexels), 및 라이트맵 이미지의 최대값(maxNumTexels) 등의 정보를 포함하는 것이 바람직하다.Referring to Equation 1, in order to define a light map, information about a light source (affectingLights field) to be used when generating the light map, and the size of the actual texture memory in which the light map for representing an object will be stored (textureSize field), the size of a texel in the lightmap in the actual three-dimensional graphics space (texelSize field), the minimum value of the lightmap image (minNumTexels), and the maximum value of the lightmap image (maxNumTexels). desirable.

수학식 1의 실시예에서, affectingLights 필드는 라이트맵을 생성할 때 사용될 광원의 리스트를 정의한다. 만일 이 필드가 수학식 1의 실시예에서와 같이 NULL의 값을 가지는 경우에는 현재 씬 파일에 정의되어 있는 모든 광원이 해당 오브젝트의 라이트맵을 생성할 때 영향을 미치는 것으로 한다.In the embodiment of Equation 1, the affectingLights field defines a list of light sources to be used when generating the light map. If this field has a value of NULL as in the embodiment of Equation 1, all light sources defined in the current scene file affect the generation of the light map of the object.

라이트맵이 저장될 실제 텍스쳐의 크기를 나타내는 textureSize 필드는, 수학식 1에 나타낸 예에서는 8에서 2048 사이의 값을 가지도록 정의되었다. 예를 들어 수학식 1의 예와 같이 그 값이 256인 경우, 256 X 256 픽셀 크기의 텍스쳐에 해당 오브젝트에 대한 라이트맵이 저장된다.The textureSize field indicating the size of the actual texture in which the light map is to be stored is defined to have a value between 8 and 2048 in the example shown in Equation 1. For example, when the value is 256, as in the example of Equation 1, the light map for the object is stored in a texture having a size of 256 X 256 pixels.

라이트맵의 한 텍셀이 3차원 그래픽스 공간에서 차지하는 크기를 나타내는 texelSize 필드는, 수학식 1의 예에서는 미터 단위의 값을 가진다. 수학식 1에서와 같이 0.5의 가지는 경우, 하나의 텍셀이 실제 공간에서 0.5 미터를 점유하게 된다. 이는 라이팅 연산의 정밀도와 관련된다. 즉, 동일한 오브젝트에 대하여 texelSize 필드의 값이 크면 성긴 형태의 작은 라이트맵이 생성되고, texelSize 필드의 값이 작으면 조밀한 형태의 큰 라이트맵이 생성된다. 일반적으로 texelSize 필드의 값이 작을수록 정밀한 라이팅 효과가 적용된 텍스쳐를 얻을 수 있지만, 필요 이상으로 texelSize 필드의 값을 작게 하면 라이팅 개선의 효과는 별로 없이 메모리의 낭비 만이 커질 수 있다. 따라서, texelSize 필드의 값을 적절히 정해주는 것이 요구된다. texelSize 필드는 각 오브젝트마다 설정될 수도 있고, 전체 씬에 대하여 전역적으로 설정될 수도 있다. 만일 각 오브젝트에 대한 texelSize 필드를 별도로 설정해주지 않는다면 전체 씬에 대한 texelSize의 값을 사용하게 된다.A texelSize field indicating a size occupied by a texel of the light map in the 3D graphics space has a value in meters in the example of Equation 1. In the case of 0.5, as in Equation 1, one texel occupies 0.5 meter in the real space. This is related to the precision of the lighting operation. In other words, if the value of the texelSize field is large for the same object, a small light map of sparse shape is generated. If the value of the texelSize field is small, a large light map of dense type is generated. In general, the smaller the value of the texelSize field is, the more accurate texture can be obtained. However, if the value of the texelSize field is smaller than necessary, the waste of memory can be increased. Therefore, it is required to set the value of the texelSize field appropriately. The texelSize field may be set for each object or globally for the entire scene. If the texelSize field for each object is not set separately, the texelSize value for the entire scene is used.

라이트맵 이미지의 최소값을 나타내는 minNumTexels 필드는 라이트맵 계산의 결과로 가장 작은 이미지의 크기를 제한한다. 이에 의해 라이트맵의 계산 결과 생성된 이미지는 적어도 minNumTexels 필드의 값보다 커야한다. 이는 라이트맵의 계산 결과가 너무 작은 텍스쳐 공간을 차지하게 되면 화질을 떨어뜨리게 되므로 이를 방지하기 위한 것이다. 만일 라이트맵의 계산 결과가 이 필드의 값보다 작게 되면, 주어진 한 텍셀이 3차원 그래픽스 공간에서 차지하는 값을 texelSize 필드에서 주어진 값보다 감소시켜서 라이트맵의 크기가 minNumTexels 필드의 값 이상이 되도록 한다. The minNumTexels field, which represents the minimum value of the lightmap image, limits the size of the smallest image as a result of the lightmap calculation. As a result, the image generated as a result of the calculation of the light map should be at least larger than the value of the minNumTexels field. This is to prevent the image quality if the lightmap calculation results in a texture space that is too small. If the calculation result of the lightmap is smaller than the value of this field, the value of one texel occupies in the 3D graphics space is reduced to less than the value given in the texelSize field so that the lightmap is larger than the value of the minNumTexels field.

라이트맵 이미지의 최대값을 나타내는 maxNumTexels 필드는 라이트맵의 계산 결과 생성되는 가장 큰 이미지의 크기를 제한한다. 이에 의해 라이트맵의 계산 결과 생성된 이미지는 적어도 maxNumTexels 필드의 값보다 작아야한다. 이는 라이트맵의 계산 결과가 너무 큰 텍스쳐 공간을 차지하게 되면 화질은 좋아지지만 메모리를 너무 많이 점유하여 메모리의 효율을 떨어뜨리게 되므로 이를 방지하기 위한 것이다. 만일 라이트맵의 계산 결과가 이 필드의 값보다 크게 되면, 주어진 한 텍셀이 3차원 그래픽스 공간에서 차지하는 값을 texelSize 필드에서 주어진 값보다 증가시켜서 라이트맵의 크기가 maxNumTexels 필드의 값 이하가 되도록 한다. The maxNumTexels field, which represents the maximum value of the lightmap image, limits the size of the largest image generated as a result of the lightmap calculation. As a result, the image generated as a result of the calculation of the light map should be at least smaller than the value of the maxNumTexels field. This is to prevent the image quality when the result of calculation of the light map occupies too much texture space, but the memory efficiency is reduced by occupying too much memory. If the calculation result of the lightmap is larger than the value of this field, the value of one given texel in the 3D graphics space is increased by the value given in the texelSize field so that the size of the lightmap is less than or equal to the value of the maxNumTexels field.

도 4는 라이트맵을 생성하는 방법의 각 단계를 나타낸 도면이다.4 is a diagram illustrating each step of a method of generating a light map.

도 4를 참조하면, 라이트맵을 생성하는 방법은, 먼저 오브젝트의 한 면을 구성하는 삼각형을 선택하고(200), 각 면에 대하여 라이트맵 삼각형을 생성한다(210). 생성한 라이트맵 삼각형의 크기가 minNumTexels 필드의 값보다 큰지를 확인하고(220), 또한 maxNumTexels 필드의 값보다 작은지를 확인하여(230), 두 조건을 모두 만족하면 라이트맵 삼각형을 저장한다(250). 만일 라이트맵 삼각형의 크기가 minNumTexels 필드의 값보다 작거나 maxNumTexels 필드의 값보다 크다면, 텍셀이 3차원 그래픽스 공간에서 차지하는 값을 texelSize 필드에서 주어진 값보다 증가시키거나 감소시켜서 주어진 조건을 만족하게 한다(240). 라이트맵 삼각형을 생성하여 저장한 후에는, 이들을 패킹(packing)하는 작업이 필요하다. Referring to FIG. 4, in the method of generating a light map, first, a triangle constituting one side of an object is selected (200), and a light map triangle is generated for each side (210). Check whether the size of the generated lightmap triangle is larger than the value of the minNumTexels field (220), and if the size of the lightmap triangle is smaller than the value of the maxNumTexels field (230). If both conditions are satisfied, the lightmap triangle is stored (250). . If the size of the lightmap triangle is less than the value of the minNumTexels field or greater than the value of the maxNumTexels field, the value that the texel occupies in three-dimensional graphics space is increased or decreased above the value given in the texelSize field to satisfy the given condition. 240). After you have created and saved the lightmap triangles, you need to pack them.

도 5는 라이트맵 삼각형의 패킹을 나타낸 도면이다. 도 5의 A와 같이 라이트맵 삼각형이 메모리상에서 각각 저장되어 있는 상태에서는 메모리를 비효율적으로 사용하고 있다. 따라서 도 5의 B와 같이 라이트맵 삼각형들을 패킹하여 메모리를 효율적으로 사용할 필요가 있다. 5 is a diagram illustrating packing of a light map triangle. In the state where the light map triangles are stored in the memory as shown in FIG. 5A, the memory is inefficiently used. Therefore, it is necessary to efficiently use the memory by packing the light map triangles as shown in B of FIG. 5.

라이트맵 삼각형을 패킹하기 위하여 바운딩 박스를 생성한다(260). 도 6에 라이트맵 삼각형을 패킹하기 위한 바운딩 박스를 도시하였다.A bounding box is created to pack the lightmap triangle (260). 6 shows a bounding box for packing light map triangles.

도 6을 참조하면, 바운딩 박스는 라이트맵 삼각형에 외접하며 가장 작은 면적을 차지하는 직사각형을 말한다. 바운딩 박스를 생성하기 위하여 라이트맵 삼각형의 가장 긴 변을 한 변으로 하는 바운딩 박스를 생성한다. 도 6의 예에서는 원점에서 v 축 방향으로 삼각형의 가장 긴 변이 배치되도록 삼각형을 회전하고 이에 맞 추어 바운딩 박스를 생성한다.Referring to FIG. 6, the bounding box refers to a rectangle that circumscribes the light map triangle and occupies the smallest area. To create a bounding box, create a bounding box with the longest side of the lightmap triangle. In the example of FIG. 6, the triangle is rotated and the bounding box is generated so that the longest side of the triangle is disposed in the v axis direction from the origin.

바운딩 박스를 생성함에 있어서 주의할 점은 실제 라이트맵 삼각형보다 경계선 부분에 2 픽셀 내지 3 픽셀 정도 넓은 영역을 바운딩 박스로 지정해 주어야 한다는 것이다. 바운딩 박스의 텍셀 구성의 일 실시예를 도 7에 나타내었다.Note that when creating a bounding box, the bounding box should be designated as 2 to 3 pixels wider than the actual lightmap triangle. An embodiment of a texel configuration of the bounding box is shown in FIG. 7.

도 7을 참조하면, 라이트맵 삼각형에 대응하는 바운딩 박스는 임시 텍셀(temporary texel) 부분과 유용 텍셀(useful texel) 부분을 포함한다. 임시 텍셀은 라이팅 연산을 하지 않으며 텍스쳐 매핑 시에 사용되지 않는 부분이다. 유용 텍셀은 라이팅 연산을 통하여 컬러 값을 구하는 텍셀을 말한다.Referring to FIG. 7, the bounding box corresponding to the light map triangle includes a temporary texel portion and a useful texel portion. Temporary texels do not perform lighting operations and are not used for texture mapping. A useful texel is a texel that obtains a color value through a writing operation.

실제 라이트맵 삼각형보다 더 넓은 영역에 대해 유용 텍셀을 설정하고 그 컬러 값을 구해주는 것은 텍스쳐를 매핑하는 방식 때문이다. 컬러 값을 연산할 때에는 각 텍셀의 중심 위치에 있는 픽셀에 대해서만 계산하게 된다. 텍스쳐를 매핑할 때 각 텍셀을 구성하는 픽셀들의 컬러 값은 그 픽셀 주위의 텍셀들의 중심 픽셀들의 컬러 값을 보간하는 방식으로 표시하게 된다. 그런데 만일 삼각형의 경계선 외부 영역에 대해 컬러 값이 존재하지 않는다면 이러한 컬러 값의 보간이 불가능하게 된다. 따라서 경계선 부분의 컬러 값을 계산하기 위하여 유용 텍셀을 원래의 삼각형의 경계선보다 더 넓게 지정한다.Setting the useful texel for a wider area than the actual lightmap triangle and getting its color value is due to the way we map textures. When calculating color values, only the pixel at the center of each texel is calculated. When mapping a texture, the color values of the pixels constituting each texel are displayed by interpolating the color values of the center pixels of the texels around the pixel. However, if there is no color value for the area outside the boundary of the triangle, it is impossible to interpolate the color value. Therefore, in order to calculate the color value of the boundary part, the useful texel is designated wider than the boundary of the original triangle.

라이트맵 삼각형을 패킹함에 있어서 바운딩 박스를 이용하는 것은 공간을 직사각형들로 분할하는 알고리즘을 적용하기 위해서이다. 이를 도 8a 및 도 8b에 도시하였다.The use of bounding boxes in packing lightmap triangles is to apply an algorithm that divides the space into rectangles. This is illustrated in FIGS. 8A and 8B.

먼저 도 8a는 바운딩 박스 1을 메모리에 배정하는 것을 나타낸 도면이다. 먼 저 바운딩 박스 1의 세로 변의 길이만큼 상단부를 분할하여 각각의 분할된 부분을 분할선 A의 차일드 노드(child node)로 놓는다. 분할된 부분 중 상단부에 바운딩 박스 1의 가로 변의 길이만큼 좌단부를 분할하여 각각의 분할된 부분을 분할선 B의 차일드 노드로 놓는다. 이때 분할선 B는 분할선 A의 차일드 노드가 된다. 또한 바운딩 박스 1은 분할선 B의 차일드 노드로 놓는다. 각각의 빈 영역은 도 8a에서 점으로 도시한 리프 노드(leaf node)들인데, 이러한 리프 노드들은 대응하는 빈 영역의 가로 변과 세로 변의 길이를 저장한다. 이와 같이 모든 분할 과정을 바이너리 트리(binary tree) 구조로 만들어 두면 다음 바운딩 박스를 패킹할 빈 공간을 찾는 것이 용이하게 된다. 8A is a diagram illustrating the allocation of the bounding box 1 to a memory. First, the upper portion is divided by the length of the vertical side of the bounding box 1, and each divided portion is placed as a child node of the dividing line A. The left end is divided by the length of the horizontal side of the bounding box 1 at the upper end of the divided parts, and each divided part is placed as a child node of the dividing line B. At this time, the dividing line B becomes a child node of the dividing line A. Bounding box 1 is also placed as a child node of the dividing line B. Each blank area is leaf nodes, shown as dots in FIG. 8A, which store the lengths of the horizontal and vertical sides of the corresponding blank area. Having all the partitioning process in a binary tree structure like this makes it easier to find empty space to pack the next bounding box.

도 8b에서는 바운딩 박스 2를 메모리에 패킹하는 것을 나타내고 있다. 도 8a의 패킹 상태에서 바운딩 박스 2가 들어갈 수 있는 빈 영역을 찾는다. 이는 각각의 리프 노드들을 순차로 검색하여 바운딩 박스의 세로 변 및 가로 변의 길이와 각각의 빈 영역의 세로 변 및 가로 변의 길이를 비교함에 의해 용이하게 수행된다. 8B shows packing bounding box 2 to a memory. In the packing state of FIG. 8A, a blank area into which bounding box 2 can be found is found. This is easily done by searching each leaf node sequentially and comparing the length of the longitudinal and transverse sides of the bounding box with the length of the longitudinal and transverse sides of each blank area.

도 8b에서 바운딩 박스 2의 세로 변의 길이가 길어서 분할선 B의 차일드 노드인 상단부의 빈 영역에 들어갈 수 없다. 따라서 분할선 A에 해당하는 리프의 오른쪽 리프 노드인 분할선 A의 하단부의 빈 영역에 바운딩 박스 2를 패킹한다. 먼저 바운딩 박스 2의 가로 변의 길이만큼 빈 영역의 좌단부를 분할하여 각각의 분할된 부분을 분할선 C의 차일드 노드로 놓는다. 분할선 C의 좌측편에 바운딩 박스 2를 배정하고, 분할선 C의 오른쪽 차일드 노드에는 빈 영역을 배정한다. 바운딩 박스 2의 세로 변의 길이만큼 분할선 C의 왼쪽 차일드 노드에 대응하는 영역의 상단부를 분할하여 각각의 분할된 부분을 분할선 D의 차일드 노드로 놓는다.In FIG. 8B, the length of the vertical side of the bounding box 2 is too long to enter the empty area of the upper end of the child node of the dividing line B. Therefore, the bounding box 2 is packed in an empty area of the lower end of the dividing line A, which is the right leaf node of the leaf corresponding to the dividing line A. First, the left end of the empty area is divided by the length of the horizontal side of the bounding box 2, and each divided part is placed as a child node of the dividing line C. Bounding box 2 is assigned to the left side of the dividing line C, and an empty area is allocated to the right child node of the dividing line C. The upper portion of the area corresponding to the left child node of the dividing line C is divided by the length of the vertical side of the bounding box 2, and each divided portion is placed as a child node of the dividing line D.

이와 같이 바운딩 박스를 패킹하는 단계(270)를 반복하면, 패킹된 바운딩 박스에 대응하는 모든 라이트맵 삼각형을 패킹할 수 있게 된다.By repeating the step 270 of packing the bounding box as described above, all light map triangles corresponding to the packed bounding box can be packed.

라이트맵 삼각형을 메모리 상에 패킹하고 나면, 각 텍셀에 대하여 라이팅 연산을 수행하여 라이트맵을 생성한다. 각 텍셀에 대하여 uv 좌표를 계산하고(280), 실제 3차원 환경에서의 좌표(world coordinate)를 계산하여(290), 텍셀 별로 라이팅 연산을 수행하여 텍스쳐를 생성한다(300).After the lightmap triangle is packed in memory, the lighting operation is performed on each texel to generate a lightmap. Uv coordinates are calculated for each texel (280), world coordinates are calculated (290) in an actual 3D environment, and a texture is generated by performing a lighting operation for each texel (300).

이와 같이 생성된 라이트맵을 실시간에 텍스쳐 매핑의 방법을 통하여 화면 상에 표시함으로써 고화질의 3차원 그래픽스 화면을 얻을 수 있다. 이러한 라이트맵의 처리 방법 및 장치는 가상 현실이나 게임, 모바일 그래픽스 등에 응용될 수 있다.The high-quality three-dimensional graphics screen can be obtained by displaying the generated light map on the screen in real time through a texture mapping method. The light map processing method and apparatus may be applied to virtual reality, games, mobile graphics, and the like.

본 발명은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터(정보 처리 기능을 갖는 장치를 모두 포함한다)가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 장치의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장 장치 등이 있다.The present invention can be embodied as code that can be read by a computer (including all devices having an information processing function) in a computer-readable recording medium. The computer-readable recording medium includes all kinds of recording devices in which data that can be read by a computer system is stored. Examples of computer-readable recording devices include ROM, RAM, CD-ROM, magnetic tape, floppy disks, optical data storage devices, and the like.

비록 상기 설명이 다양한 실시예들에 적용되는 본 발명의 신규한 특징들에 초점을 맞추어 설명되었지만, 본 기술 분야에 숙달된 기술을 가진 사람은 본 발명의 범위를 벗어나지 않으면서도 상기 설명된 장치 및 방법의 형태 및 세부 사항에 서 다양한 삭제, 대체, 및 변경이 가능함을 이해할 것이다. 따라서, 본 발명의 범위는 상기 설명에서보다는 첨부된 특허청구범위에 의해 정의된다. 특허청구범위의 균등 범위 안의 모든 변형은 본 발명의 범위에 포섭된다.Although the foregoing description has been focused on the novel features of the invention as applied to various embodiments, those skilled in the art will appreciate that the apparatus and method described above without departing from the scope of the invention. It will be understood that various deletions, substitutions, and changes in form and detail of the invention are possible. Accordingly, the scope of the invention is defined by the appended claims rather than in the foregoing description. All modifications within the scope of equivalents of the claims are to be embraced within the scope of the present invention.

본 발명에 따른 3차원 그래픽스 환경에서의 라이트맵 처리 방법에 의하면, 실제 3차원 환경 상의 네비게이션이 수행되기 전에 오브젝트의 각 면에 대응하는 텍스쳐의 모음인 라이트맵을 미리 생성하여 두고 실시간의 네비게이션 수행시에는 라이트맵을 화면에 매핑하도록 함으로써, 고화질의 실시간 3차원 그래픽스 화면을 얻을 수 있으며 이를 통하여 가상 현실이나 게임, 모바일 그래픽스 등의 고화질 3차원 그래픽스 환경을 구현할 수 있는 효과가 있다.According to the light map processing method in the 3D graphics environment according to the present invention, before performing the navigation on the actual 3D environment, the light map, which is a collection of textures corresponding to each side of the object, is generated in advance and performed in real time. By mapping the light map to the screen, a high-quality real-time three-dimensional graphics screen can be obtained, and through this, the high-quality three-dimensional graphics environment such as virtual reality, games, and mobile graphics can be realized.

Claims (19)

(a) 3차원 그래픽스 환경에 배치된 광원과 오브젝트에 대한 정보를 얻는 단계;(a) obtaining information about the light source and the object disposed in the three-dimensional graphics environment; (b) 상기 정보를 기초로 하여 상기 오브젝트에 대한 라이트맵을 생성하는 단계; 및(b) generating a light map for the object based on the information; And (c) 상기 생성된 라이트맵을 화면 상에 매핑하는 단계를 포함하는 것을 특징으로 하는 3차원 그래픽스 환경에서의 라이트맵 처리 방법.and (c) mapping the generated light map onto a screen. 제1항에 있어서, 상기 (a) 단계는,According to claim 1, wherein the step (a), 상기 3차원 그래픽스 환경에 대한 정보를 포함하는 씬 파일을 파싱하는 단계를 포함하는 것을 특징으로 하는 3차원 그래픽스 환경에서의 라이트맵 처리 방법.And parsing a scene file including information about the three-dimensional graphics environment. 제2항에 있어서, 상기 씬 파일은,The method of claim 2, wherein the scene file, 상기 광원에 대한 정보;Information about the light source; 상기 생성할 라이트맵이 저장될 텍스쳐의 크기;A size of a texture in which the light map to be generated is stored; 상기 생성할 라이트맵의 한 텍셀이 3차원 그래픽스 공간에서 차지하는 크기;A size occupied by a texel of the light map to be generated in a three-dimensional graphics space; 상기 생성할 라이트맵 이미지의 크기의 최소값; 및A minimum value of the size of the lightmap image to be generated; And 상기 생성할 라이트맵 이미지의 크기의 최대값을 포함하는 것을 특징으로 하는 3차원 그래픽스 환경에서의 라이트맵 처리 방법.And a maximum value of a size of the light map image to be generated. 제1항에 있어서, 상기 (b) 단계는,According to claim 1, wherein step (b), (b1) 상기 오브젝트의 각 면에 대하여 라이트맵 삼각형을 생성하여 저장하는 단계;(b1) generating and storing light map triangles for each surface of the object; (b2) 상기 라이트맵 삼각형들에 대한 바운딩 박스를 생성하여 상기 라이트맵 삼각형들을 패킹하는 단계;(b2) generating a bounding box for the lightmap triangles to pack the lightmap triangles; (b3) 상기 라이트맵 삼각형 각각에 대하여 라이팅(lighting) 연산을 수행하여 텍스쳐를 생성하는 단계; 및(b3) generating a texture by performing a lighting operation on each of the light map triangles; And (b4) 상기 생성된 텍스쳐를 상기 라이트맵 삼각형에 저장하는 단계를 포함하는 것을 특징으로 하는 3차원 그래픽스 환경에서의 라이트맵 처리 방법.(b4) storing the generated texture in the light map triangle. 제4항에 있어서, 상기 (b2) 단계는,The method of claim 4, wherein step (b2), 상기 라이트맵 삼각형의 가장 긴 변을 한 변으로 하는 바운딩 박스를 생성하는 단계를 포함하는 것을 특징으로 하는 3차원 그래픽스 환경에서의 라이트맵 처리 방법.And generating a bounding box having the longest side of the lightmap triangle as one side. 제4항에 있어서, 상기 (b2) 단계는,The method of claim 4, wherein step (b2), 상기 라이트맵 삼각형의 경계선 외측으로 2 픽셀 또는 3 픽셀 넓은 영역을 포함하는 바운딩 박스를 생성하는 단계를 포함하는 것을 특징으로 하는 3차원 그래픽스 환경에서의 라이트맵 처리 방법.And generating a bounding box including a 2 pixel or 3 pixel wide area outside the boundary line of the light map triangle. 제4항에 있어서, 상기 (b2) 단계는, The method of claim 4, wherein step (b2), 상기 바운딩 박스가 저장될 메모리 영역 전체에 대응하는 노드를 루트 노드로 하는 바이너리 트리를 생성하는 단계;Generating a binary tree having a node corresponding to the entire memory area in which the bounding box is to be stored as a root node; 상기 바이너리 트리 상에서 상기 바운딩 박스가 저장될 수 있는 크기를 가지는 빈 공간에 대응하는 노드를 검색하는 단계;Searching for a node corresponding to an empty space having a size in which the bounding box can be stored on the binary tree; 상기 빈 공간을 상하 또는 좌우로 분할하여 상기 바운딩 박스를 배정하는 단계; 및Allocating the bounding box by dividing the empty space vertically or horizontally; And 상기 빈 공간의 분할선에 대응하는 노드 및 상기 바운딩 박스를 배정함으로써 새로이 생성된 빈 공간에 대응하는 노드를 생성하여 상기 빈 공간에 대응하는 노드의 차일드 노드로 배정하는 단계를 포함하는 것을 특징으로 하는 3차원 그래픽스 환경에서의 라이트맵 처리 방법.And assigning a node corresponding to the dividing line of the empty space and the bounding box to generate a node corresponding to the newly created empty space and assigning the node to a child node of a node corresponding to the empty space. How to handle lightmaps in 3D graphics environment. 제4항에 있어서, 상기 (b3) 단계는,The method of claim 4, wherein step (b3), 퐁 셰이딩(Phong shading), 광선 추적(ray tracing), 또는 조도 계산(radiosity) 중의 하나를 수행하여 텍스쳐를 생성하는 단계를 포함하는 것을 특징으로 하는 3차원 그래픽스 환경에서의 라이트맵 처리 방법.A method of processing light maps in a three-dimensional graphics environment, comprising: generating a texture by performing one of phong shading, ray tracing, or radiosity. 제1항에 있어서, 상기 (c) 단계는,The method of claim 1, wherein step (c) comprises: 상기 오브젝트 및 이에 대응하는 라이트맵에 대한 정보를 포함하는 파일을 파싱하는 단계를 포함하는 것을 특징으로 하는 3차원 그래픽스 환경에서의 라이트맵 처리 방법.And parsing a file including information on the object and a light map corresponding to the object. 3차원 그래픽스 환경에 배치된 광원과 오브젝트에 대한 정보를 얻는 라이트맵생성정보처리부;A light map generation information processing unit for obtaining information about the light source and the object disposed in the 3D graphics environment; 상기 정보를 기초로 하여 상기 오브젝트에 대한 라이트맵을 생성하는 라이트맵생성부; 및A light map generator configured to generate a light map for the object based on the information; And 상기 생성된 라이트맵을 화면 상에 매핑하는 라이트맵매핑부를 포함하는 것을 특징으로 하는 3차원 그래픽스 환경에서의 라이트맵 처리 장치.And a light map mapping unit for mapping the generated light map onto a screen. 제10항에 있어서, 상기 라이트맵생성정보처리부는,The method of claim 10, wherein the light map generation information processing unit, 상기 3차원 그래픽스 환경에 대한 정보를 포함하는 씬 파일을 파싱하는 씬파일파싱부를 포함하는 것을 특징으로 하는 3차원 그래픽스 환경에서의 라이트맵 처리 장치.And a scene file parser configured to parse a scene file including information about the 3D graphics environment. 제11항에 있어서, 상기 씬 파일은,The method of claim 11, wherein the scene file, 상기 광원에 대한 정보;Information about the light source; 상기 생성할 라이트맵이 저장될 텍스쳐의 크기;A size of a texture in which the light map to be generated is stored; 상기 생성할 라이트맵의 한 텍셀이 3차원 그래픽스 공간에서 차지하는 크기;A size occupied by a texel of the light map to be generated in a three-dimensional graphics space; 상기 생성할 라이트맵 이미지의 크기의 최소값; 및A minimum value of the size of the lightmap image to be generated; And 상기 생성할 라이트맵 이미지의 크기의 최대값을 포함하는 것을 특징으로 하는 3차원 그래픽스 환경에서의 라이트맵 처리 장치.And a maximum value of a size of the lightmap image to be generated. 제10항에 있어서, 상기 라이트맵생성부는,The method of claim 10, wherein the light map generation unit, 상기 오브젝트의 각 면에 대하여 라이트맵 삼각형을 생성하여 저장하는 삼각형생성저장부;A triangle generation storage unit which generates and stores a light map triangle for each surface of the object; 상기 라이트맵 삼각형들에 대한 바운딩 박스를 생성하여 상기 라이트맵 삼각형들을 패킹하는 삼각형패킹부;A triangular packing unit generating a bounding box for the light map triangles to pack the light map triangles; 상기 라이트맵 삼각형 각각에 대하여 라이팅(lighting) 연산을 수행하여 텍스쳐를 생성하는 라이팅연산부; 및A lighting operation unit configured to generate a texture by performing a lighting operation on each of the light map triangles; And 상기 생성된 텍스쳐를 상기 라이트맵 삼각형에 저장하는 라이트맵저장부를 포함하는 것을 특징으로 하는 3차원 그래픽스 환경에서의 라이트맵 처리 장치.And a light map storage unit for storing the generated texture in the light map triangle. 제13항에 있어서, 상기 삼각형패킹부는,The method of claim 13, wherein the triangular packing portion, 상기 라이트맵 삼각형의 가장 긴 변을 한 변으로 하는 바운딩 박스를 생성하는 바운딩박스생성부를 포함하는 것을 특징으로 하는 3차원 그래픽스 환경에서의 라이트맵 처리 장치.And a bounding box generator configured to generate a bounding box having the longest side of the lightmap triangle as one side. 제13항에 있어서, 상기 삼각형패킹부는,The method of claim 13, wherein the triangular packing portion, 상기 라이트맵 삼각형의 경계선 외측으로 2 픽셀 또는 3 픽셀 넓은 영역을 포함하는 바운딩 박스를 생성하는 바운딩박스생성부를 포함하는 것을 특징으로 하는 3차원 그래픽스 환경에서의 라이트맵 처리 장치.And a bounding box generator configured to generate a bounding box including a 2 pixel or 3 pixel wide area outside the boundary line of the light map triangle. 제13항에 있어서, 상기 삼각형패킹부는,The method of claim 13, wherein the triangular packing portion, 상기 바운딩 박스가 저장될 메모리 영역 전체에 대응하는 노드를 루트 노드로 하는 바이너리 트리를 생성하는 바이너리트리생성부;A binary tree generation unit generating a binary tree having a node corresponding to the entire memory area in which the bounding box is to be stored as a root node; 상기 바이너리 트리 상에서 상기 바운딩 박스가 저장될 수 있는 크기를 가지는 빈 공간에 대응하는 노드를 검색하는 노드검색부;A node searching unit searching for a node corresponding to an empty space having a size in which the bounding box can be stored on the binary tree; 상기 빈 공간을 상하 또는 좌우로 분할하여 상기 바운딩 박스를 배정하는 바운딩박스배정부; 및A bounding box arrangement for dividing the empty space vertically or horizontally to allocate the bounding box; And 상기 빈 공간의 분할선에 대응하는 노드 및 상기 바운딩 박스를 배정함으로써 새로이 생성된 빈 공간에 대응하는 노드를 생성하여 상기 빈 공간에 대응하는 노드의 차일드 노드로 배정하는 노드생성부를 포함하는 것을 특징으로 하는 3차원 그래픽스 환경에서의 라이트맵 처리 장치.And a node generator for generating a node corresponding to the newly created empty space by allocating a node corresponding to the dividing line of the empty space and the bounding box and assigning the node to a child node of a node corresponding to the empty space. Light map processing apparatus in a three-dimensional graphics environment. 제13항에 있어서, 상기 라이팅연산부는,The method of claim 13, wherein the writing operation unit, 퐁 셰이딩, 광선 추적, 또는 조도 계산 중의 하나를 수행하여 텍스쳐를 생성하는 고화질연산부를 포함하는 것을 특징으로 하는 3차원 그래픽스 환경에서의 라이트맵 처리 장치.And a high quality computing unit for generating a texture by performing one of Pong shading, ray tracing, or illuminance calculation. 제10항에 있어서, 상기 라이트맵매핑부는,The method of claim 10, wherein the light map mapping unit, 상기 오브젝트 및 이에 대응하는 라이트맵에 대한 정보를 포함하는 파일을 파싱하는 매핑정보파싱부를 포함하는 것을 특징으로 하는 3차원 그래픽스 환경에서의 라이트맵 처리 장치.And a mapping information parser configured to parse a file including information on the object and a light map corresponding thereto. 3차원 그래픽스 환경에 배치된 광원과 오브젝트에 대한 정보를 얻는 단계;Obtaining information about the light source and the object disposed in the three-dimensional graphics environment; 상기 정보를 기초로 하여 상기 오브젝트에 대한 라이트맵을 생성하는 단계; 및Generating a light map for the object based on the information; And 상기 생성된 라이트맵을 화면 상에 매핑하는 단계를 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.A computer-readable recording medium having recorded thereon a program for causing a computer to execute the step of mapping the generated light map onto a screen.
KR1020040112233A 2004-12-24 2004-12-24 Lightmap processing method in 3 dimensional graphics environment and apparatus therefor KR100624455B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040112233A KR100624455B1 (en) 2004-12-24 2004-12-24 Lightmap processing method in 3 dimensional graphics environment and apparatus therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040112233A KR100624455B1 (en) 2004-12-24 2004-12-24 Lightmap processing method in 3 dimensional graphics environment and apparatus therefor

Publications (2)

Publication Number Publication Date
KR20060073814A KR20060073814A (en) 2006-06-29
KR100624455B1 true KR100624455B1 (en) 2006-09-18

Family

ID=37166692

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040112233A KR100624455B1 (en) 2004-12-24 2004-12-24 Lightmap processing method in 3 dimensional graphics environment and apparatus therefor

Country Status (1)

Country Link
KR (1) KR100624455B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102325647B1 (en) 2021-08-04 2021-11-12 파이어슈라이크게임즈 주식회사 Method, device and system for processing 3d object data of mobile game based on lightmap

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101598374B1 (en) 2009-09-21 2016-02-29 삼성전자주식회사 Image processing apparatus and method
KR102296036B1 (en) * 2014-04-28 2021-08-31 한화테크윈 주식회사 Method of performing light mapping
CN112416601A (en) * 2020-12-09 2021-02-26 西安羚控电子科技有限公司 Large scene block loading method based on visual simulation

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102325647B1 (en) 2021-08-04 2021-11-12 파이어슈라이크게임즈 주식회사 Method, device and system for processing 3d object data of mobile game based on lightmap

Also Published As

Publication number Publication date
KR20060073814A (en) 2006-06-29

Similar Documents

Publication Publication Date Title
US8760450B2 (en) Real-time mesh simplification using the graphics processing unit
US8570322B2 (en) Method, system, and computer program product for efficient ray tracing of micropolygon geometry
US7289119B2 (en) Statistical rendering acceleration
US10553013B2 (en) Systems and methods for reducing rendering latency
US8253730B1 (en) System and method for construction of data structures for ray tracing using bounding hierarchies
KR100889602B1 (en) Apparatus and method of ray-triangle collision detection for ray-tracing
US20070018988A1 (en) Method and applications for rasterization of non-simple polygons and curved boundary representations
KR101609266B1 (en) Apparatus and method for rendering tile based
US10553012B2 (en) Systems and methods for rendering foveated effects
US10699467B2 (en) Computer-graphics based on hierarchical ray casting
US20130265298A1 (en) Graphic processing method and apparatus
Schneider et al. Real-time rendering of complex vector data on 3d terrain models
KR20170031479A (en) Method and apparatus for performing a path stroke
US8553041B1 (en) System and method for structuring an A-buffer to support multi-sample anti-aliasing
KR20170025099A (en) Method and apparatus for rendering
CN113034657B (en) Rendering method, device and equipment for illumination information in game scene
KR100624455B1 (en) Lightmap processing method in 3 dimensional graphics environment and apparatus therefor
KR20160068204A (en) Data processing method for mesh geometry and computer readable storage medium of recording the same
JP4047421B2 (en) Efficient rendering method and apparatus using user-defined rooms and windows
JP5864474B2 (en) Image processing apparatus and image processing method for processing graphics by dividing space
US9519997B1 (en) Perfect bounding for optimized evaluation of procedurally-generated scene data
US9007388B1 (en) Caching attributes of surfaces without global parameterizations
JP6802129B2 (en) Information processing equipment, methods and programs
Marrs et al. View-warped Multi-view Soft Shadows for Local Area Lights
Lin et al. A feature-adaptive subdivision method for real-time 3D reconstruction of repeated topology surfaces

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

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20130829

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140828

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150828

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee