KR100308457B1 - Rendering method of the 3D-object programmed with OpenGL interface - Google Patents

Rendering method of the 3D-object programmed with OpenGL interface Download PDF

Info

Publication number
KR100308457B1
KR100308457B1 KR1019990041912A KR19990041912A KR100308457B1 KR 100308457 B1 KR100308457 B1 KR 100308457B1 KR 1019990041912 A KR1019990041912 A KR 1019990041912A KR 19990041912 A KR19990041912 A KR 19990041912A KR 100308457 B1 KR100308457 B1 KR 100308457B1
Authority
KR
South Korea
Prior art keywords
opengl
program
renderman
rendering
renderer
Prior art date
Application number
KR1019990041912A
Other languages
Korean (ko)
Other versions
KR20010029212A (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 KR1019990041912A priority Critical patent/KR100308457B1/en
Publication of KR20010029212A publication Critical patent/KR20010029212A/en
Application granted granted Critical
Publication of KR100308457B1 publication Critical patent/KR100308457B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts

Abstract

본 발명은 오픈지엘 인터페이스에 렌더맨 라이브러리를 연계하여 오픈지엘 인터페이스로 프로그램된 3차원 물체를 고화질의 이미지로 렌더링하는 오픈지엘 인터페이스로 프로그램된 3차원 물체의 렌더링방법에 관한 것이다. 이러한 렌더링방법은, 3차원 물체를 렌더링하여 2차원 이미지로 출력하는 렌더링방법에 있어서, 오픈지엘 인터페이스를 이용하여 3차원 물체를 렌더링하기 위한 프로그램을 만드는 제 1 단계와; 상기 3차원 물체를 렌더링하기 위해 전처리하는 제 2 단계; 상기 3차원 물체를 렌더링하는 렌더러의 종류를 선택하는 제 3 단계; 상기 제 3 단계에서 오픈지엘 렌더러가 선택되면, 상기 오픈지엘 프로그램을 구동하여 상기 3차원 물체를 렌더링하는 제 4 단계; 및 상기 제 3 단계에서 렌더맨 렌더러가 선택되면, 상기 오픈지엘 프로그램을 렌더맨 라이브러리에 적용하여 변환하고, 상기 렌더맨 렌더러가 상기 변환된 프로그램을 구동하여 상기 3차원 물체를 렌더링하는 제 5 단계를 포함한다.The present invention relates to a rendering method of a 3D object programmed with an OpenGL interface that renders a 3D object programmed with the OpenGL interface as a high quality image by linking a renderman library to the OpenGL interface. Such a rendering method includes: a rendering method of rendering a 3D object and outputting it as a 2D image, the method comprising: a first step of creating a program for rendering a 3D object using an OpenGL interface; A second step of preprocessing to render the three-dimensional object; A third step of selecting a type of renderer for rendering the 3D object; A fourth step of rendering the 3D object by driving the OpenGL program when the OpenGL renderer is selected in the third step; And a fifth step of applying the OpenGL program to a renderman library and converting the renderer renderer when the renderer renderer is selected in the third step, and rendering the 3D object by driving the converted program.

Description

오픈지엘 인터페이스로 프로그램된 3차원 물체의 렌더링방법 { Rendering method of the 3D-object programmed with OpenGL interface }Rendering method of the 3D-object programmed with OpenGL interface}

본 발명은 오픈지엘과 렌더맨의 연계를 이용한 렌더링방법에 관한 것으로서, 보다 상세하게 설명하면 오픈지엘 인터페이스에 렌더맨 라이브러리를 연계하여 오픈지엘 프로그램된 3차원 물체를 고화질의 이미지로 렌더링하는 오픈지엘 인터페이스로 프로그램된 3차원 물체의 렌더링방법에 관한 것이다.The present invention relates to a rendering method using the linkage between OpenGL and Renderman, and more specifically, to the OpenGL interface, which renders a 3D object of OpenGL programmed in high definition by linking the RenderMan library to the OpenGL interface. It relates to a rendering method of a three-dimensional object.

컴퓨터에서 삼차원 공간으로부터 화면에 나타날 이미지를 만드는 과정은, 먼저 물체를 설계하고, 가상의 삼차원 공간에 물체와 광원을 배치하고, 관찰자의 시점을 결정한 후 최종적으로 이차원 이미지를 만드는 일련의 과정으로서, 많은 시간과 비용이 소요되는 작업이다. 특히, 삼차원 공간의 전경으로부터 이차원 이미지를 만드는 렌더링 과정은 얻고자 하는 이차원 이미지의 화질에 따라 소요되는 시간의 차가 매우 크다.The process of creating an image to appear on the screen from three-dimensional space in a computer is a series of processes that first design an object, place objects and light sources in a virtual three-dimensional space, determine the viewpoint of an observer, and finally create a two-dimensional image. This is a time and costly task. In particular, the rendering process for creating a two-dimensional image from the foreground of the three-dimensional space is very large time difference depending on the quality of the two-dimensional image to be obtained.

현재 사용되고 있는 가장 대표적인 렌더링 방법으로는, 오픈지엘 인터페이스(OpenGL interface : Open Graphics Library interface)를 이용하는 오픈지엘 렌더러와 렌더맨 인터페이스(RenderMan interface)를 사용하는 렌더맨 렌더러가 있다. 이 두 가지 방법들은 그 사용목적이 뚜렷하게 구별되는 렌더링 방법으로서 장단점을 가지고 있다. 즉, 오픈지엘 렌더러는 주로 실시간으로 이미지를 얻고자 하는 목적으로 쓰이는 렌더링 방법으로서, 이미지의 질은 떨어지지만 빠른 시간 안에 어느 정도의 화질을 가지는 이미지를 얻고자 할 때 사용한다. 반면에 렌더맨 렌더러는 사진과 같은 고화질의 이미지를 얻고자 하는 목적으로 사용되는 바, 비교적 많은 시간이 소요되는 단점을 가진다.The most representative rendering methods currently used include the OpenGL renderer using the OpenGL interface (OpenGL interface) and the renderman renderer using the RenderMan interface. These two methods have advantages and disadvantages as a rendering method in which their purpose is clearly distinguished. In other words, the OpenGL renderer is a rendering method mainly used to obtain an image in real time, and is used to obtain an image having a certain quality within a short time although the image quality is poor. On the other hand, the renderman renderer is used for the purpose of obtaining a high-quality image such as a photograph, and thus has a disadvantage in that it takes a relatively long time.

종래에 이 두 가지 렌더러들은 사용자의 목적에 따라 구별되어 이용되었으며, 상호간의 호환이 불가능하여 다른 목적으로 사용하고자 할 때는 각각의 인터페이스에 맞게 프로그램을 다시 해야 하는 등 부가적인 작업이 필수적이었다.In the past, these two renderers were distinguished and used according to the user's purpose, and since they were incompatible with each other, additional work was necessary, such as re-programming for each interface when using them for other purposes.

따라서, 본 발명은 상기한 종래기술의 문제점을 해결하기 위하여 안출된 것으로서, 본 발명의 목적은 오픈지엘 인터페이스를 이용하여 구현된 프로그램이 렌더맨 라이브러리를 사용할 수 있도록 연계함으로써, 오픈지엘 인터페이스를 이용하여 구현된 프로그램을 렌더맨 렌더러가 렌더링할 수 있도록 하는 오픈지엘 인터페이스로 프로그램된 3차원 물체의 렌더링방법을 제공하기 위한 것이다.Accordingly, the present invention has been made to solve the above-mentioned problems of the prior art, an object of the present invention is implemented by using the OpenGL interface by integrating a program implemented using the OpenGL interface to use the renderman library. It is to provide a rendering method of a 3D object programmed with an OpenGL interface that allows a renderman renderer to render a programmed program.

도 1은 일반적인 오픈지엘 인터페이스를 이용한 렌더링방법을 도시한 흐름도,1 is a flowchart illustrating a rendering method using a general OpenGL interface;

도 2는 일반적인 렌더맨 인터페이스를 이용한 렌더링방법을 도시한 흐름도,2 is a flowchart illustrating a rendering method using a general renderman interface;

도 3은 본 발명의 한 실시예에 따른 오픈지엘 인터페이스로 프로그램된 3차원 물체의 렌더링방법을 도시한 흐름도,3 is a flowchart illustrating a rendering method of a 3D object programmed with an OpenGL interface according to an embodiment of the present invention;

도 4a 내지 도 4b는 본 발명에 따른 오픈지엘 인터페이스로 프로그램된 3차원 물체의 렌더링방법의 효과를 설명하기 위하여 도시한 도면이다.4A to 4B are diagrams for explaining the effect of a rendering method of a 3D object programmed with an OpenGL interface according to the present invention.

상기한 목적을 달성하기 위한 본 발명에 따른 오픈지엘 인터페이스에 렌더맨 라이브러리를 연계한 3차원 물체의 렌더링방법은, 3차원 물체를 렌더링하여 2차원 이미지로 출력하는 렌더링방법에 있어서, 오픈지엘 인터페이스를 이용하여 3차원 물체를 렌더링하기 위한 프로그램을 만드는 제 1 단계와; 상기 3차원 물체를 렌더링하기 위해 전처리하는 제 2 단계; 상기 오픈지엘 프로그램을 렌더맨 라이브러리에 적용하여 렌더맨 렌더러가 상기 3차원 물체를 렌더링할 수 있도록 상기 오픈지엘 프로그램을 변환하는 제 3 단계; 및 상기 렌더맨 렌더러가 상기 변환된 프로그램을 구동하여 상기 3차원 물체를 렌더링하는 제 4 단계를 포함한 것을 특징으로 한다.In order to achieve the above object, a rendering method of a 3D object in which a renderman library is linked to an OpenGL interface according to the present invention is a rendering method of rendering a 3D object and outputting it as a 2D image. A first step of creating a program for rendering a three-dimensional object; A second step of preprocessing to render the three-dimensional object; A third step of applying the OpenGL program to a renderman library and converting the OpenGL program so that a renderman renderer renders the 3D object; And a fourth step in which the renderer renderer drives the converted program to render the three-dimensional object.

양호하게는, 상기 렌더링을 위해 전처리하는 제 2 단계는, 광원의 색, 위치, 앵글, 감쇠정도, 빛의 세기를 설정하고, 광원의 앰비언트의 색상과 비추는 방향이 단방향/양방향 등의 광원의 상태를 설정하는 제 1 소단계와, 렌더링 대상인 상기 3차원 물체의 표면 특성과 색상과 좌표, 및 텍스쳐 특성과 좌표를 설정하는 제 2 소단계, 및 관찰자의 시점과 범위를 설정하는 제 3 소단계를 포함한다.Preferably, the second step of preprocessing for the rendering, the color, position, angle, degree of attenuation, the intensity of light of the light source, the color of the ambient light source and the direction of the light source such as unidirectional / bidirectional A first sub-step of setting a, a second sub-step of setting a surface characteristic and color and coordinates of the three-dimensional object to be rendered, and a texture characteristic and a coordinate, and a third sub-step of setting a viewpoint and a range of an observer. Include.

양호하게는, 상기 렌더맨 렌더링을 위해 오픈지엘 프로그램을 변환하는 제 3 단계는, 오픈지엘 프로그램의 좌표계를 왼손 좌표계로 변환하는 제 1 소단계와, 오픈지엘 프로그램의 행렬표현을 행우선방식으로 변환하는 제 2 소단계, 오픈지엘 프로그램에서 렌더맨이 지원할 수 없는 광원과, 투영법 변환, 물체, 동영상 등을 제외시키는 제 3 소단계, 오픈지엘 프로그램에 사용되는 함수들과 일대일 대응되는 렌더맨 함수들을 호출하는 제 4 소단계, 오픈지엘 프로그램에 사용되는 하나의 함수와 같은 동작을 수행하는 일련의 렌더맨 함수들을 호출하는 제 5 소단계, 및 렌더맨 렌더러가 지원하는 외부 색상계산함수를 사용할 수 있도록 오픈지엘 프로그램에서 추가 함수를 선언하여 사용하는 제 6 소단계를 포함한다.Preferably, the third step of converting the OpenGL program for rendering the renderman comprises: a first sub-step of converting the OpenGL program's coordinate system into a left-handed coordinate system; and converting the matrix representation of the OpenGL program in a row-first manner. The second sub-step, which calls the renderman functions one-to-one correspondence with the functions used in the Open-GE program, excludes light sources that the render man cannot support in the OpenGL program, and the third sub-step, which excludes projection transformations, objects, videos, etc. 4 substep, a fifth substep that calls a series of renderman functions that perform the same actions as one function used in the OpenGL program, and an addition to the OpenGL program so that the renderman renderer can use external color calculation functions. Include the sixth substep of declaring and using functions.

또한, 본 발명에 따르면, 3차원 물체를 렌더링하여 2차원 이미지로 출력하는 렌더링방법에 있어서, 오픈지엘 인터페이스를 이용하여 3차원 물체를 렌더링하기 위한 프로그램을 만드는 제 1 단계와; 상기 3차원 물체를 렌더링하기 위해 전처리하는 제 2 단계; 상기 3차원 물체를 렌더링하는 렌더러의 종류를 선택하는 제 3 단계; 상기 제 3 단계에서 오픈지엘 렌더러가 선택되면, 상기 오픈지엘 프로그램을 구동하여 상기 3차원 물체를 렌더링하는 제 4 단계; 및 상기 제 3 단계에서 렌더맨 렌더러가 선택되면, 상기 오픈지엘 프로그램을 렌더맨 라이브러리에 적용하여 변환하고 렌더맨 렌더러가 상기 변환된 프로그램을 구동하여 상기 3차원 물체를 렌더링하는 제 5 단계를 포함한 것을 특징으로 하는 오픈지엘 인터페이스로 프로그램된 3차원 물체의 렌더링방법이 제공된다.According to the present invention, there is provided a rendering method for rendering a three-dimensional object and outputting it as a two-dimensional image, comprising: a first step of creating a program for rendering a three-dimensional object using an OpenGL interface; A second step of preprocessing to render the three-dimensional object; A third step of selecting a type of renderer for rendering the 3D object; A fourth step of rendering the 3D object by driving the OpenGL program when the OpenGL renderer is selected in the third step; And a fifth step of applying the OpenGL program to a renderman library and converting the renderer renderer when the renderer renderer is selected in the third step, and rendering the 3D object by driving the converted program. A rendering method of a three-dimensional object programmed with an OpenGL interface is provided.

또한, 본 발명에 따른 위에서 언급하였던 오픈지엘과 렌더맨의 연계를 이용한 렌더링방법을 실현하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체가 제공된다.In addition, there is provided a computer-readable recording medium having recorded thereon a program for realizing a rendering method using the linkage between OpenGL and Renderman according to the present invention.

이하, 첨부된 도면을 참조하면서 본 발명에 따른 '오픈지엘 인터페이스로 프로그램된 3차원 물체의 렌더링방법'을 보다 상세하게 설명하면 다음과 같다.Hereinafter, referring to the accompanying drawings, a method of rendering a 3D object programmed with an OpenGL interface according to the present invention will be described in detail.

일반적으로 오픈지엘 인터페이스를 이용한 렌더링방법은 도 1에 도시된 바와 같이, 먼저, 광원과, 물체 표면특성, 관찰자 시점 및 범위를 설정하는 등 전처리과정이 수행된다. 그 후, 3차원 공간에서 렌더링 대상인 물체의 위치를 설정하고, 오픈지엘 렌더러가 상기 물체를 렌더링함으로써, 2차원 이미지가 생성된다.In general, in the rendering method using the OpenGL interface, as shown in FIG. 1, first, a preprocessing process such as setting a light source, an object surface characteristic, an observer viewpoint, and a range is performed. After that, the position of the object to be rendered in the three-dimensional space is set, and the OpenGL renderer renders the object, thereby generating a two-dimensional image.

이에 반해, 렌더맨 인터페이스를 이용한 렌더링방법은 도 2에 도시된 바와 같이, 먼저 관찰자의 시점 및 범위를 설정하고, 광원 및 3차원 공간에서의 물체위치를 설정한 후, 렌더맨 렌더러가 물체를 렌더링함으로써, 2차원 이미지가 생성된다. 위에서 살펴본 바와 같이 오픈지엘과 렌더맨에서, 3차원 물체를 렌더링하기 위해서는 광원, 물체 표면특성, 관찰자의 시점 및 범위, 3차원 공간에서의 물체의 위치 등에 대한 설정은 필수적으로 수행되어야 한다.In contrast, in the rendering method using the renderman interface, as shown in FIG. 2, first, the viewpoint and the range of the observer are set, the light source and the object position are set in the three-dimensional space, and then the renderman renderer renders the object. Two-dimensional image is generated. As described above, in OpenGL and Renderman, in order to render a 3D object, setting of a light source, an object surface characteristic, an observer's viewpoint and range, and an object's position in 3D space must be performed.

도 3은 본 발명의 한 실시예에 따른 오픈지엘 인터페이스로 프로그램된 3차원 물체의 렌더링방법을 도시한 흐름도이다.3 is a flowchart illustrating a method of rendering a 3D object programmed with an OpenGL interface according to an embodiment of the present invention.

먼저, 오픈지엘 인터페이스를 이용하여 3차원 물체를 렌더링하기 위한 프로그램을 만든다(S31). 그 다음, 렌더링을 하기 위해서 전처리 단계를수행한다(S32). 이 전처리 단계에서는, 광원의 색, 위치, 각, 감쇠정도, 빛의 세기를 설정하고, 광원의 앰비언트(ambient) 색상과 비추는 방향이 단방향/양방향인 지를 설정한다. 또한, 물체 표면특성, 텍스처 특성을 설정하는데, 물체의 표면 색상값과 물체의 좌표, 법선벡터, 색상, 텍스처좌표 등을 설정하고, 텍스처 특성과 좌표를 설정한다.First, a program for rendering a 3D object using the OpenGL interface is created (S31). Then, a preprocessing step is performed to render (S32). In this preprocessing step, the color, position, angle, attenuation degree, and light intensity of the light source are set, and whether the ambient color of the light source and the reflecting direction are unidirectional or bidirectional. In addition, the object surface characteristics and texture characteristics are set. The surface color value of the object, the coordinates of the object, the normal vector, the color, the texture coordinate, and the like are set, and the texture characteristics and the coordinates are set.

다음, 사용자가 렌더러의 종류를 선택하는데(S33), 오픈지엘 렌더러가 선택되면 단계 S34로 진행하여 오픈지엘 렌더러에게 오픈지엘 프로그램을 전달하여 렌더링하게 함으로써, 일반적인 오픈지엘 렌더링과정이 수행되도록 한다.Next, when the user selects the type of renderer (S33), when the OpenGL renderer is selected, the process proceeds to step S34 to deliver the OpenGL program to the OpenGL renderer so that the general OpenGL rendering process is performed.

한편, 단계 S33에서 렌더맨 렌더러가 선택되면, 렌더맨 렌더러에게 오픈지엘 프로그램을 전달하여 렌더링하게 하는데, 이를 위한 전처리과정을 수행한다(S35). 이 전처리 과정은 오픈지엘과 렌더맨 사이의 서로 다른 내부 그래픽 상태에 대해 미리 정의된 과정을 따라 변화시키는 과정이다.On the other hand, when the renderer renderer is selected in step S33, the renderer delivers the OpenGL program to the renderer renderer to render, and performs a preprocessing process for this (S35). This preprocessing process follows a predefined process for different internal graphics states between OpenGL and Renderman.

즉, 오픈지엘과 렌더맨은 사용하는 좌표와 행렬 처리방식 등이 서로 다르고, 지원 가능한 함수들도 모두 다르기 때문에, 오픈지엘 프로그램을 렌더맨 라이브러리에 적용하기 위해서는 상기와 같은 두 렌더러들 사이의 차이점들을 바꾸어야 한다.In other words, OpenGL and Renderman use different coordinates and matrix processing methods, and all the functions that can be supported are different. Therefore, in order to apply OpenGL program to the Renderman library, the differences between the two renderers must be changed. .

먼저, 두 렌더러들은 상이한 좌표계를 사용하고 있기 때문에 오픈지엘 프로그램을 그대로 렌더맨 라이어브러에 적용시키면 원하는 이미지를 얻을 수 없다. 즉, 오픈지엘 프로그램은 오른손 좌표계를 이용하는 데 반해, 렌더맨 렌더러는 왼손 좌표계를 사용하기 때문에, 오픈지엘 프로그램에서의 오른손 좌표계를 왼손 좌표계로 바꾸어 렌더맨 라이브러리에 적용하여야 한다.First, the two renderers use different coordinate systems, so if you apply the OpenGL program to Renderman Libraries, you will not get the desired image. That is, the OpenGL program uses the right hand coordinate system, whereas the renderman renderer uses the left hand coordinate system, so the right hand coordinate system in the OpenGL program must be changed to the left hand coordinate system and applied to the renderman library.

또한, 두 렌더러들이 사용하는 행렬 처리방식이 다른데, 오픈지엘은 행렬을 열우선으로 처리하는 반면에, 렌더맨은 행우선으로 처리한다. 따라서, 올바른 최종 렌더링 이미지를 얻기 위해서는 오픈지엘에서 사용하는 행렬을 행우선으로 변환시킨 다음 렌더맨 라이브러리에 적용해야 한다.In addition, the matrix processing method used by the two renderers is different. OpenGL processes the matrix as column priority, while renderman processes the row first. Therefore, to get the correct final rendered image, we need to convert the matrix used in OpenGL to row first and then apply it to the RenderMan library.

또한, 오픈지엘에서만 지원하고 렌더맨 렌더러에서는 지원할 수 없는 것들이 있다. 즉, 오픈지엘의 경우 프로그램 어떤 곳에서도 광원을 정의할 수 있지만, 렌더맨의 경우 시작부분에서만 가능하다. 또한, 오픈지엘에서만 지원 가능하고 렌더맨에서 지원할 수 없는 투영법 변환, 물체, 및 동영상 등은 오픈지엘 프로그램에서 제외하고 렌더맨 라이브러리에 적용한다. 즉, 오픈지엘은 내부적으로 시점과 투영을 위해 두 개의 행렬을 가지고 있지만 렌더맨은 이를 위해 하나의 모델뷰(Model View) 행렬만을 가지기 때문에 두 행렬들을 하나로 변환한다. 오픈지엘에서 사용되는 이차원적인 점이나 선은 렌더맨에서는 지원하지 않기 때문에 렌더링 물체에서 제외한다. 또한, 오픈지엘에서 동영상을 지원하기 위해 사용되는 입체버퍼나 합성버퍼는 렌더맨에서는 지원하지 않기 때문에 이 동영상을 제외한다.Also, there are some that are only supported by OpenGL and not by the Renderman renderer. In other words, in OpenGL, you can define the light source anywhere in the program, but in the case of RenderMan, it is only possible at the beginning. In addition, projection transforms, objects, and videos that are only supported in OpenGL and not supported in Renderman are applied to the Renderman library except in the OpenGL program. In other words, OpenGL has two matrices internally for view and projection, but since Renderman has only one model view matrix for this purpose, it converts the two matrices into one. Two-dimensional points or lines used in OpenGL are not supported by RenderMan and are therefore excluded from rendering objects. Also, the three-dimensional buffer or composite buffer used to support video in OpenGL is excluded from this video because Renderman does not support it.

또한, 렌더맨은 외부 색상계산함수를 사용하여 물체의 그림자를 지원할 수 있는데, 오픈지엘은 이를 지원하지 않는다. 따라서, 오픈지엘 프로그램에서 추가 함수를 선언하여, 렌더맨 라이브러리가 지원하는 외부 색상계산함수를 사용할 수 있도록 한다.In addition, Renderman can use an external color calculation function to support shadows on objects, which OpenGL does not support. Therefore, we declare an additional function in the OpenGL program so that we can use the external color calculation functions supported by the Renderman library.

상술했던 내용 중 렌더맨 렌더링을 위한 전처리과정의 내용은 표 1과 같고,렌더맨 렌더링을 위한 오픈지엘 프로그램의 제한사항은 표 2와 같다.Among the above-mentioned contents, the contents of the preprocessing for renderman rendering are shown in Table 1, and the limitations of the OpenGL program for renderman rendering are shown in Table 2.

항목Item 전처리 내용Preprocessing Content 좌표계Coordinate system 오픈지엘은 오른손 좌표계를 사용하는 반면 렌더맨은 왼손 좌표계를 사용한다. 따라서 오픈지엘 프로그램의 좌표계를 바꿔준다.OpenGL uses the right hand coordinate system, while Renderman uses the left hand coordinate system. Therefore, it changes the coordinate system of OpenGL program. 행렬procession 오픈지엘은 열우선 방식으로 행렬 저장하는 반면 렌더맨은 행우선 방식으로 행렬을 저장한다. 따라서 오픈지엘 프로그램의 행렬표현을 적절히 행우선 방식으로 바꿔준다.OpenGL stores the matrix in a column-first manner, while RenderMan stores the matrix in a row-first manner. Thus, the matrix representation of OpenGL programs is changed to the row-first mode as appropriate. 오픈지엘에서만 지원하는 내부 그래픽 상태Internal Graphics State Only Supported by OpenGL 제한을 두어 렌더맨 구조상 지원할 수 없는 광원, 투영법 변환, 사용가능한 물체, 동영상 지원은 제외한다.Limitations exclude light sources, projection transformations, usable objects, and video support that are not supported by the Renderman structure. 렌더맨에서만 지원하는 효과Effects Only Supported by Renderman 오픈지엘 프로그램에 추가 함수(glShader)를 선언하여 렌더맨에서 지원하는 외부 색상계산함수를 사용할 수 있도록 한다.Declare an additional function (glShader) in your OpenGL program so that you can use the external color calculation functions supported by RenderMan.

항목Item 내용Contents 광원Light source 광원의 선언은 프로그램 시작부분에서 해야 한다. 즉 glEnable(LIGHTi) 이전에 선언되어야 한다.The declaration of the light source must be done at the beginning of the program. That is, it must be declared before glEnable (LIGHTi). 시점, 투영법 변환Viewpoint, projection transformation 시점과 투영법 변환은 모델뷰(Model View) 행렬만 사용한다.View and projection transformations use only the Model View matrix. 모델링modelling 점이나 선은 렌더링 물체에서 제외한다.Points or lines are excluded from the rendering object. 동영상video 애니메이션에서의 다양한 효과를 위해 사용하는 입체버퍼, 합성버퍼는 사용할 수 없다.Stereoscopic and composite buffers used for various effects in animation cannot be used.

오픈지엘 프로그램에서 렌더맨 렌더러를 효과적으로 사용하기 위해서는 추가 함수가 부가되어야 한다. 이 함수를 glShader 함수로 명명하는 바, 이는 물체표면, 물체표면의 변형, 물체 외부, 물체 내부에서의 색상계산을 위해 렌더맨에서 제공하는 함수를 지원한다.In order to use the Renderman renderer effectively in OpenGL programs, additional functions must be added. This function is called the glShader function, which supports the functions provided by Renderman for calculating the color of the object surface, the deformation of the object surface, the exterior of the object, and the interior of the object.

이와 같이 렌더맨 렌더링을 위한 전처리과정을 수행한 후 렌더맨 렌더러는 오픈지엘 프로그램으로 작성된 3차원 물체를 렌더링하여(S36), 2차원 이미지를 출력한다(S37).After performing the preprocessing process for rendering the renderman as described above, the renderman renderer renders a 3D object created by the OpenGL program (S36) and outputs a 2D image (S37).

도 4a 내지 도 4b는 본 발명에 따른 렌더링방법의 효과를 설명하기 위하여 도시한 도면이다. 도 4a는 오픈지엘 프로그램을 오픈지엘 렌더러를 이용하여 렌더링하였을 경우에 출력되는 2차원 이미지를 도시한 도면이고, 도 4b는 렌더맨 라이브러리에 적용하여 변환된 프로그램을 렌더맨 렌더러를 이용하여 렌더링하였을 경우에 출력되는 2차원 이미지를 도시한 도면이다.4A to 4B are diagrams for explaining the effect of the rendering method according to the present invention. 4A is a diagram illustrating a two-dimensional image output when an OpenGL program is rendered using an OpenGL renderer, and FIG. 4B is an output when a program converted and applied to a renderman library is rendered using a renderman renderer. It is a figure which shows the two-dimensional image which becomes.

위에서 양호한 실시예에 근거하여 이 발명을 설명하였지만, 이러한 실시예는 이 발명을 제한하려는 것이 아니라 예시하려는 것이다. 이 발명이 속하는 분야의 숙련자에게는 이 발명의 기술사상을 벗어남이 없이 위 실시예에 대한 다양한 변화나 변경 또는 조절이 가능함이 자명할 것이다. 그러므로, 이 발명의 보호범위는 첨부된 청구범위에 의해서만 한정될 것이며, 위와 같은 변화예나 변경예 또는 조절예를 모두 포함하는 것으로 해석되어야 할 것이다.While the invention has been described above based on the preferred embodiments thereof, these embodiments are intended to illustrate rather than limit the invention. It will be apparent to those skilled in the art that various changes, modifications, or adjustments to the above embodiments can be made without departing from the spirit of the invention. Therefore, the protection scope of the present invention will be limited only by the appended claims, and should be construed as including all such changes, modifications or adjustments.

이상과 같이 본 발명에 따르면, 오픈지엘 인터페이스를 이용하여 작성된 렌더링 프로그램을 오픈지엘 렌더러와 렌더맨 렌더러로 렌더링할 수 있기 때문에, 사용자 측면에서는 보다 익히기 쉬운 오픈지엘 인터페이스를 이용하여 보다 정밀하게 렌더링할 수 있는 잇점이 있으며, 프로그램의 재사용성을 증대시킬 수 있는 잇점이 있다.As described above, since the rendering program written using the OpenGL interface can be rendered by the OpenGL renderer and the renderman renderer, the user can render more precisely using the OpenGL interface that is easier to learn from the user's perspective. This has the benefit of increasing the reusability of the program.

또한, 고화질의 이미지를 얻고자 렌더링하는 과정은 상당한 시간을 요구하는 작업이다. 특히, 사용자가 원하는 이미지를 얻기 위해서는 몇 번의 시행착오를 거쳐야 하기 때문에 그 시간은 매우 증대될 수밖에 없다. 본 발명에 따르면, 상대적으로 빠른 시간안에 렌더링하는 오픈지엘을 이용하여 대강의 이미지를 확인하면서 전경을 수정하고, 최종적으로 렌더맨 렌더러로 렌더링함으로써 고화질의 이미지를 얻을 수 있기 때문에 고화질의 이미지를 얻는 데 걸리는 시간을 줄일 수 있는 잇점이 있다.In addition, the process of rendering to obtain a high quality image is a time-consuming task. In particular, since the user has to go through several trials and errors to obtain the desired image, the time is inevitably increased. According to the present invention, it is necessary to obtain a high-quality image because it is possible to obtain a high-quality image by correcting the foreground while finally checking a rough image by using OpenGL rendering in a relatively fast time, and finally rendering the image with a renderer renderer. There is an advantage to save time.

Claims (8)

3차원 물체를 렌더링하여 2차원 이미지로 출력하는 렌더링방법에 있어서,In the rendering method for rendering a three-dimensional object to output a two-dimensional image, 오픈지엘 인터페이스를 이용하여 3차원 물체를 렌더링하기 위한 프로그램을 만드는 제 1 단계와;A first step of creating a program for rendering a three-dimensional object using the OpenGL interface; 상기 3차원 물체를 렌더링하기 위해 전처리하는 제 2 단계;A second step of preprocessing to render the three-dimensional object; 상기 오픈지엘 프로그램을 렌더맨 라이브러리에 적용하여 렌더맨 렌더러가 상기 3차원 물체를 렌더링할 수 있도록 상기 오픈지엘 프로그램을 변환하는 제 3 단계; 및A third step of applying the OpenGL program to a renderman library and converting the OpenGL program so that a renderman renderer renders the 3D object; And 상기 렌더맨 렌더러가 상기 변환된 프로그램을 구동하여 상기 3차원 물체를 렌더링하는 제 4 단계를 포함한 것을 특징으로 하는 오픈지엘 인터페이스에 렌더맨 라이브러리를 연계한 3차원 물체의 렌더링방법.And a fourth step of the renderer renderer driving the converted program to render the 3D object. 제 1 항에 있어서, 상기 렌더링을 위해 전처리하는 제 2 단계는,The method of claim 1, wherein the second step of preprocessing for rendering, 광원의 색, 위치, 앵글, 감쇠정도, 빛의 세기를 설정하고, 광원의 앰비언트의 색상과 비추는 방향이 단방향/양방향 등의 광원의 상태를 설정하는 제 1 소단계와,A first sub-step of setting the color, position, angle, attenuation degree, intensity of light of the light source, and setting the state of the light source such that the color of the ambient light of the light source and the direction in which the light is reflected are unidirectional / bidirectional, 렌더링 대상인 상기 3차원 물체의 표면 특성과 색상과 좌표, 및 텍스쳐 특성과 좌표를 설정하는 제 2 소단계, 및A second substep of setting surface characteristics and colors and coordinates, and texture characteristics and coordinates of the three-dimensional object to be rendered; and 관찰자의 시점과 범위를 설정하는 제 3 소단계를 포함한 것을 특징으로 하는 오픈지엘 인터페이스에 렌더맨 라이브러리를 연계한 3차원 물체의 렌더링방법.And a third substep of setting a viewpoint and a range of an observer. 제 1 항 또는 제 2 항에 있어서, 상기 렌더맨 렌더링을 위해 오픈지엘 프로그램을 변환하는 제 3 단계는,The method of claim 1 or 2, wherein the third step of converting the OpenGL program for rendering the renderman, 오픈지엘 프로그램의 좌표계를 왼손 좌표계로 변환하는 제 1 소단계와,A first substep of converting the coordinate system of the OpenGL program to the left-hand coordinate system; 오픈지엘 프로그램의 행렬표현을 행우선방식으로 변환하는 제 2 소단계,The second substep of converting the matrix representation of the OpenGL program to the row first method, 오픈지엘 프로그램에서 렌더맨이 지원할 수 없는 광원과, 투영법 변환, 물체, 동영상 등을 제외시키는 제 3 소단계,The third substep of excluding light sources, projection transformations, objects, movies, etc. that renderman cannot support in the OpenGL program, 오픈지엘 프로그램에 사용되는 함수들과 일대일 대응되는 렌더맨 함수들을 호출하는 제 4 소단계,The fourth substep of calling renderman functions that correspond one-to-one with the functions used in the OpenGL program, 오픈지엘 프로그램에 사용되는 하나의 함수와 같은 동작을 수행하는 일련의 렌더맨 함수들을 호출하는 제 5 소단계, 및A fifth substep of calling a series of renderman functions that perform the same operation as one function used in an OpenGL program, and 렌더맨 렌더러가 지원하는 외부 색상계산함수를 사용할 수 있도록 오픈지엘 프로그램에서 추가 함수를 선언하여 사용하는 제 6 소단계를 포함한 것을 특징으로 하는 오픈지엘 인터페이스에 렌더맨 라이브러리를 연계한 3차원 물체의 렌더링방법.A rendering method of a 3D object incorporating a RenderMan library in an OpenGL interface, comprising a sixth step of declaring and using an additional function in an OpenGL program to use an external color calculation function supported by a RenderMan renderer. 3차원 물체를 렌더링하여 2차원 이미지로 출력하는 렌더링방법에 있어서,In the rendering method for rendering a three-dimensional object to output a two-dimensional image, 오픈지엘 인터페이스를 이용하여 3차원 물체를 렌더링하기 위한 프로그램을 만드는 제 1 단계와;A first step of creating a program for rendering a three-dimensional object using the OpenGL interface; 상기 3차원 물체를 렌더링하기 위해 전처리하는 제 2 단계;A second step of preprocessing to render the three-dimensional object; 상기 3차원 물체를 렌더링하는 렌더러의 종류를 선택하는 제 3 단계;A third step of selecting a type of renderer for rendering the 3D object; 상기 제 3 단계에서 오픈지엘 렌더러가 선택되면, 상기 오픈지엘 프로그램을 구동하여 상기 3차원 물체를 렌더링하는 제 4 단계; 및A fourth step of rendering the 3D object by driving the OpenGL program when the OpenGL renderer is selected in the third step; And 상기 제 3 단계에서 렌더맨 렌더러가 선택되면, 상기 오픈지엘 프로그램을 렌더맨 라이브러리에 적용하여 변환하고, 상기 렌더맨 렌더러가 상기 변환된 프로그램을 구동하여 상기 3차원 물체를 렌더링하는 제 5 단계를 포함한 것을 특징으로 하는 오픈지엘 인터페이스로 프로그램된 3차원 물체의 렌더링방법.If a renderer renderer is selected in the third step, the OpenGL program is applied to a renderman library and converted, and the renderman renderer includes a fifth step of driving the converted program to render the 3D object. Rendering method of 3D object programmed with OpenGL interface. 제 4 항에 있어서, 상기 렌더링을 위해 전처리하는 제 2 단계는,The method of claim 4, wherein the second step of preprocessing for rendering, 광원의 색, 위치, 앵글, 감쇠정도, 빛의 세기를 설정하고, 광원의 앰비언트의 색상과 비추는 방향이 단방향/양방향 등의 광원의 상태를 설정하는 제 1 소단계와,A first sub-step of setting the color, position, angle, attenuation degree, intensity of light of the light source, and setting the state of the light source such that the color of the ambient light of the light source and the direction in which the light is reflected are unidirectional / bidirectional, 렌더링 대상인 상기 3차원 물체의 표면 특성과 색상과 좌표, 및 텍스쳐 특성과 좌표를 설정하는 제 2 소단계, 및A second substep of setting surface characteristics and colors and coordinates, and texture characteristics and coordinates of the three-dimensional object to be rendered; and 관찰자의 시점과 범위를 설정하는 제 3 소단계를 포함한 것을 특징으로 하는오픈지엘 프로그램을 렌더맨 라이브러리에 적용하여 렌더링하는 방법.A rendering method by applying an OpenGL program to the renderman library, the method comprising a third substep of setting an observer's viewpoint and range. 제 4 항 또는 제 5 항에 있어서, 상기 제 5 단계에서, 렌더맨 렌더링을 위해 오픈지엘 프로그램을 변환하는 단계는,The method of claim 4 or 5, wherein in the fifth step, converting the OpenGL program for renderman rendering, 오픈지엘 프로그램의 좌표계를 왼손 좌표계로 변환하는 제 1 소단계와,A first substep of converting the coordinate system of the OpenGL program to the left-hand coordinate system; 오픈지엘 프로그램의 행렬표현을 행우선방식으로 변환하는 제 2 소단계,The second substep of converting the matrix representation of the OpenGL program to the row first method, 오픈지엘 프로그램에서 렌더맨이 지원할 수 없는 광원과, 투영법 변환, 물체, 동영상 등을 제외시키는 제 3 소단계,The third substep of excluding light sources, projection transformations, objects, movies, etc. that renderman cannot support in the OpenGL program, 오픈지엘 프로그램에 사용되는 함수들과 일대일 대응되는 렌더맨 함수들을 호출하는 제 4 소단계,The fourth substep of calling renderman functions that correspond one-to-one with the functions used in the OpenGL program, 오픈지엘 프로그램에 사용되는 하나의 함수와 같은 동작을 수행하는 일련의 렌더맨 함수들을 호출하는 제 5 소단계, 및A fifth substep of calling a series of renderman functions that perform the same operation as one function used in an OpenGL program, and 렌더맨 렌더러가 지원하는 외부 색상계산함수를 사용할 수 있도록 오픈지엘 프로그램에서 추가 함수를 선언하여 사용하는 제 6 소단계를 포함한 것을 특징으로 하는 오픈지엘 프로그램을 렌더맨 라이브러리에 적용하여 렌더링하는 방법.A method of rendering an OpenGL program applied to the Renderman library, including a sixth sub-step of declaring and using an additional function in the OpenGL program so that an external color calculation function supported by the Renderman renderer can be used. 컴퓨터에,On your computer, 오픈지엘 인터페이스를 이용하여 3차원 물체를 렌더링하기 위한 프로그램을만드는 제 1 단계와;A first step of creating a program for rendering a three-dimensional object using the OpenGL interface; 상기 3차원 물체를 렌더링하기 위해 전처리하는 제 2 단계;A second step of preprocessing to render the three-dimensional object; 상기 오픈지엘 프로그램을 렌더맨 라이브러리에 적용하여 렌더맨 렌더러가 상기 3차원 물체를 렌더링할 수 있도록 상기 오픈지엘 프로그램을 변환하는 제 3 단계; 및A third step of applying the OpenGL program to a renderman library and converting the OpenGL program so that a renderman renderer renders the 3D object; And 상기 렌더맨 렌더러가 상기 변환된 프로그램을 구동하여 상기 3차원 물체를 렌더링하는 제 4 단계를 포함하는 오픈지엘 인터페이스에 렌더맨 라이브러리를 연계한 3차원 물체의 렌더링방법을 실현하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.A computer-readable program that records a program for realizing a rendering method of a 3D object linked to a renderman library on an OpenGL interface including a fourth step in which the renderman renderer drives the converted program to render the 3D object. Record carrier. 컴퓨터에,On your computer, 오픈지엘 인터페이스를 이용하여 3차원 물체를 렌더링하기 위한 프로그램을 만드는 제 1 단계와;A first step of creating a program for rendering a three-dimensional object using the OpenGL interface; 상기 3차원 물체를 렌더링하기 위해 전처리하는 제 2 단계;A second step of preprocessing to render the three-dimensional object; 상기 3차원 물체를 렌더링하는 렌더러의 종류를 선택하는 제 3 단계;A third step of selecting a type of renderer for rendering the 3D object; 상기 제 3 단계에서 오픈지엘 렌더러가 선택되면, 상기 오픈지엘 프로그램을 구동하여 상기 3차원 물체를 렌더링하는 제 4 단계; 및A fourth step of rendering the 3D object by driving the OpenGL program when the OpenGL renderer is selected in the third step; And 상기 제 3 단계에서 렌더맨 렌더러가 선택되면, 상기 오픈지엘 프로그램을 렌더맨 라이브러리에 적용하여 변환하고, 상기 렌더맨 렌더러가 상기 변환된 프로그램을 구동하여 상기 3차원 물체를 렌더링하는 제 5 단계를 포함하는 오픈지엘 인터페이스로 프로그램된 3차원 물체의 렌더링방법을 실현하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.If the renderman renderer is selected in the third step, the openGL program is applied to the renderman library and converted, and the renderman renderer includes a fifth step of driving the converted program to render the 3D object. A computer-readable recording medium storing a program for realizing a rendering method of a three-dimensional object programmed by an interface.
KR1019990041912A 1999-09-30 1999-09-30 Rendering method of the 3D-object programmed with OpenGL interface KR100308457B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019990041912A KR100308457B1 (en) 1999-09-30 1999-09-30 Rendering method of the 3D-object programmed with OpenGL interface

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019990041912A KR100308457B1 (en) 1999-09-30 1999-09-30 Rendering method of the 3D-object programmed with OpenGL interface

Publications (2)

Publication Number Publication Date
KR20010029212A KR20010029212A (en) 2001-04-06
KR100308457B1 true KR100308457B1 (en) 2001-11-02

Family

ID=19613324

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990041912A KR100308457B1 (en) 1999-09-30 1999-09-30 Rendering method of the 3D-object programmed with OpenGL interface

Country Status (1)

Country Link
KR (1) KR100308457B1 (en)

Also Published As

Publication number Publication date
KR20010029212A (en) 2001-04-06

Similar Documents

Publication Publication Date Title
JP3478568B2 (en) Image data processing method and apparatus
US6362822B1 (en) Lighting and shadowing methods and arrangements for use in computer graphic simulations
EP0590981B1 (en) Method for Processing Data Representing Three-Dimensional Graphic Objects
US7142709B2 (en) Generating image data
US5561746A (en) Image synthesizing system with surface data perspective transformation
US5694533A (en) 3-Dimensional model composed against textured midground image and perspective enhancing hemispherically mapped backdrop image for visual realism
JP3359119B2 (en) Image data processing method and apparatus
Bimber et al. Occlusion shadows: Using projected light to generate realistic occlusion effects for view-dependent optical see-through displays
JP4864972B2 (en) 2D editing metaphor for 3D graphics (METAPHOR)
US20020158872A1 (en) Lighting and shadowing methods and arrangements for use in computer graphic simulations
EP1218854A1 (en) Method and apparatus for 3d model creation based on 2d images
KR20010023290A (en) Filter for transforming 3D data in a hardware accelerated rendering architecture
JPH01265374A (en) Electron image processor
KR20230007358A (en) Multilayer Reprojection Techniques for Augmented Reality
US6396502B1 (en) System and method for implementing accumulation buffer operations in texture mapping hardware
US4899295A (en) Video signal processing
MXPA02002373A (en) Method and apparatus for rendering images with refractions.
JPH10111953A (en) Image processing method, device therefor and recording medium
GB2267007A (en) Video special effect apparatus and method
JP2003510703A (en) Depth-based blending for 3D graphic systems
US7116333B1 (en) Data retrieval method and system
KR100308457B1 (en) Rendering method of the 3D-object programmed with OpenGL interface
KR102336156B1 (en) Method and system for realizing ultra-high quality images
Stephenson Essential RenderMan®
JPH0345427B2 (en)

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

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee