KR20080050284A - Method and device for real-time wrinkle expression of skin when character animation - Google Patents
Method and device for real-time wrinkle expression of skin when character animation Download PDFInfo
- Publication number
- KR20080050284A KR20080050284A KR1020070091685A KR20070091685A KR20080050284A KR 20080050284 A KR20080050284 A KR 20080050284A KR 1020070091685 A KR1020070091685 A KR 1020070091685A KR 20070091685 A KR20070091685 A KR 20070091685A KR 20080050284 A KR20080050284 A KR 20080050284A
- Authority
- KR
- South Korea
- Prior art keywords
- map
- wrinkles
- skin
- bump
- normal map
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
- G06T13/40—3D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Processing Or Creating Images (AREA)
Abstract
본 발명은 캐릭터 애니메이션시 피부 주름을 렌더링 함에 있어서 최적의 속도를 제공하고 사실적인 표현을 함으로써 실시간성을 보장하기 위한 방법에 관한 것이다. The present invention relates to a method for ensuring real time by providing an optimal speed and realistic expression in rendering skin wrinkles during character animation.
본 발명은 각 표정별 피부의 주름을 노멀맵(Normal Map)과 범프맵(Bump map)으로 표현하고 이들 맵을 무표정일때의 노멀맵,범프맵과 차이를 계산하여 일반화된 피부 주름 데이터 및 가중치 데이터를 생성하고 원하는 캐릭터의 피부주름 데이터를 표정별 일반화된 주름 데이터를 이용하여 생성하고 현재 애니메이션 시간(t)에서의 표정별 가중치를 이용하여 최종 피부주름을 나타내는 노멀맵, 범프맵을 계산한 후 이를 화면에 렌더링한다.According to the present invention, the skin wrinkles of each facial expression are expressed as a normal map and a bump map, and the normalized skin wrinkle data and weight data are calculated by calculating the difference from the normal map and the bump map when these maps are in no expression. After generating the skin wrinkle data of the desired character using the generalized wrinkle data for each facial expression, calculate the normal map and bump map representing the final skin wrinkle using the weight of each facial expression at the current animation time (t) Render to the screen.
Description
본 발명은 캐릭터 애니메이션 시 피부의 주름 실시간 표현 방법 및 장치에 관한 것으로서, 더욱 상세하게는 실시간 3차원 그래픽 캐릭터 렌더링 분야에서 시뮬레이션, 게임, 교육 등에서 캐릭터 표현에 사용되어 캐릭터의 피부 주름을 자연스럽게 표현하는 수 있는 캐릭터 애니메이션 시 피부의 주름 실시간 표현 방법 및 장치에 관한 것이다. The present invention relates to a method and apparatus for real-time expression of skin wrinkles during character animation. More specifically, the present invention relates to a method of expressing skin wrinkles of a character by being used for character expression in simulation, games, and education in the field of real-time three-dimensional graphic character rendering. The present invention relates to a method and apparatus for real-time expression of wrinkles on skin during character animation.
본 발명은 정보통신부 및 정보통신연구진흥원의 IT신성장동력핵심기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2006-S-044-01, 과제명: 멀티코아 CPU 및 MPU기반 크롯플랫폼 게임기술].The present invention is derived from the research conducted as part of the IT new growth engine core technology development project of the Ministry of Information and Communication and the Ministry of Information and Communication Research and Development. [Task Management Number: 2006-S-044-01, Title: Multicore CPU and MPU-based Croat Platform Game Technology].
현재 실시간 3차원 그래픽 분야는 하드웨어의 개선과 활용의 증가에 따라서 매우 빠른 속도로 발전하고 있다. 이 중 캐릭터 피부 렌더링은 시뮬레이션 뿐만 아니라 게임, 교육용으로도 많이 사용되고 있다. 이러한 캐릭터 피부를 렌더링함에 있어서 빠르고 사실감 있는 표현을 하기 위한 여러가지 시도가 있어 왔다. Currently, the real-time three-dimensional graphics field is developing at a very fast pace with the improvement of hardware and the increase of utilization. Character skin rendering is used not only for simulation but also for games and education. Various attempts have been made to render fast and realistic expressions in rendering such character skins.
종래 기술로는 해부학적인 관점에서 본 근육 모델 기반 주름 표현, 예제 모 델에 기반을 둔 얼굴 애니메이션, 표면 내측(Subsurface)을 이용한 피부 표현 및 파라미터(Parameter) 기반 얼굴 애니메이션 등이 있었다.Conventional technologies include muscle model based wrinkle expression from an anatomical perspective, facial animation based on an example model, skin expression using subsurface, and parameter based facial animation.
이중 가장 단순한 방법은 피부 표현에 필요한 만큼의 폴리곤 메쉬를 생성한 후 이들 메쉬의 정점을 세부 조정해 주는 것이다. 하지만 이러한 방법은 세부적인 표현을 위하여 전적으로 폴리곤(정점 3개로 이루어진 삼각형들의 집합)을 사용하기 때문에 아주 많은 숫자의 폴리곤이 필요하고 또한 3D 렌더링시 아주 많은 시간이 걸리며, 모델링하기도 어렵다. The simplest way is to create as many polygon meshes as necessary to represent the skin and then fine-tune the vertices of those meshes. However, this method uses a large number of polygons (a set of three vertices) for the details, and requires a very large number of polygons, and it takes a lot of time to render 3D and is difficult to model.
다른 방법은 노멀맵(Normal Map)과 범프맵(Bump Map) 등을 사용하는 것이다.Another way is to use normal maps and bump maps.
노멀맵은 캐릭터 모델의 법선(Normal)벡터를 텍스쳐로 표현한 것으로 캐릭터에 퍼진 색상 텍스쳐(Diffuse Color Texture)를 입혀서 표현하듯이 빛(Light), 환경맵 등을 계산할 때 노멀맵을 이용하는 것이다. The normal map is a texture representing the normal vector of the character model. The normal map is used to calculate light, environment map, etc. as if the character is coated with a diffuse color texture.
범프맵은 캐릭터 모델의 높낮이를 회색(Gray Scale)으로 표현한 것으로 얼굴의 미세한 높낮이를 표현함으로써 얼굴의 자세한 표현이 가능하다.The bump map expresses the height and height of the character model in gray scale, and detailed expression of the face is possible by expressing the fine height of the face.
이러한 노멀맵과 범프맵은 피부의 미세한 굴곡을 텍스쳐(Texture)를 이용함으로써 쉽고 빠르게 렌더링할 수 있도록 도와준다.These normal maps and bump maps help to render fine curves of the skin easily and quickly by using texture.
얼굴 애니메이션 시 피부의 주름을 표현하기 위하여 해부학적인 근육 모델을 기반으로 한 피부 주름 방식이 사용되어 왔다. 하지만 이 방법은 매우 많은 계산을 필요로 하고 정점 기반 모델을 사용하기 때문에 실시간 3D 캐릭터 애니메이션에 사용하기에는 어렵다.Skin wrinkles based on anatomical muscle models have been used to express the wrinkles of the skin in facial animation. However, this method requires a lot of computation and uses a vertex-based model, making it difficult to use for real-time 3D character animation.
한편, 해부학인 관점에서 본 근육 모델 기반 주름 표현 방법에 대해서는 본 출원인이 2004년 12월 14일자로 출원한 대한민국 출원번호 제10-2004-106837호로 그 제목이 "해부 데이터를 이용한 얼굴 애니메이션 생성 시스템 및 그 방법"에 다음과 같은 내용으로 개시되어 있다. On the other hand, with respect to the muscle model-based wrinkle expression method from an anatomical perspective, the present applicant filed December 14, 2004, Republic of Korea Application No. 10-2004-106837 entitled "Face animation generation system using anatomical data and "Method" is disclosed as follows.
상기 종래의 기술에서, 다수의 얼굴 모델에 해당하는 두개골, 두개골 기하정보 및 근육 정보를 저장하고 있는 해부 데이터 저장 수단; 얼굴 애니메이션을 생성하기 위하여 외부로부터 얼굴 모델을 입력받음에 따라 상기 입력받은 얼굴 모델과 가장 유사한 두개골을 상기 해부 데이터 저장 수단으로부터 검색하고, 상기 검색한 두개골에 소정개수의 근육을 배치하기 위한 근육 배치 수단; 상기 근육 배치 수단에서 근육이 배치된 두개골에 피하지방층 및 피부를 결합시켜 얼굴 메쉬를 생성하고, 근육의 움직임에 따른 피부의 움직임을 정의하기 위한 피부 생성수단; 및 외부로부터 입력받은 근육 조절 신호에 따라 상기 생성한 얼굴 메쉬에서 해당 근육과 그와 연결된 피하지방층 및 피부를 수축 또는 이완시켜 특정 표정을 가진 얼굴 메쉬를 생성하여 저장하기 위한 표정 생성 수단을 포함한다. Anatomical data storage means for storing skull, skull geometry and muscle information corresponding to multiple face models in the prior art; Muscle placement means for retrieving a skull most similar to the received face model from the anatomical data storage means according to an input of a face model from outside to generate a face animation, and placing a predetermined number of muscles in the retrieved skull ; Skin generation means for combining the subcutaneous fat layer and skin to the skull where the muscle is disposed in the muscle placement means to generate a face mesh, and defining the movement of the skin according to the movement of the muscle; And an expression generating means for generating and storing a facial mesh having a specific expression by contracting or relaxing the corresponding muscle, the subcutaneous fat layer and the skin in response to the muscle control signal received from the outside.
그러나, 이와 같은 종래기술은 그 얼굴 표정의 표현에 있어서 탁월한 효과를 발휘하지만, 실시간으로 표현하기에는 그 처리할 데이터가 방대하고, 또한, 처리한 데이터에 의해 표현된 캐릭터의 표현에 있어서 자연스러움을 표현할 수 있다. 하지만, 캐릭터 애니메이션에 있어서는 과장된 표현이 필요한 데 과장된 표현을 할 수 없는 등의 문제점이 있다. However, such a prior art exerts an excellent effect in the expression of the facial expression, but the data to be processed is enormous for real time expression, and naturalness in the expression of the character represented by the processed data. Can be. However, in character animation, an exaggerated expression is required, but there is a problem such that an exaggerated expression cannot be performed.
본 발명은 노멀맵과 범프맵에 해당 주름에 대응하는 가중치를 합성하여 얼굴 애니메이션 시 피부의 주름을 효과적으로 표현할 수 있는 방법과 한 개의 피부 주름 예제 캐릭터 모델에서 추출된 피부 주름 데이터를 일반 캐릭터 모델에 적용할 수 있는 캐릭터 애니메이션 시 피부의 주름 실시간 표현 방법 및 장치를 제공하는 데에 있는 것이다. The present invention synthesizes weights corresponding to the corresponding wrinkles on the normal map and the bump map to effectively express the skin wrinkles during facial animation, and applies skin wrinkle data extracted from one skin wrinkle example character model to the general character model. It is to provide a method and apparatus for real-time expression of skin wrinkles when character animation is possible.
본 발명의 캐릭터 애니메이션 시 피부의 주름 실시간 표현 방법은, 현재 시간에서 노멀맵 합성하기 위하여 캐릭터의 표정을 뽑아내고 이들 표정들의 주름이 표현된 노멀맵에 피부 주름의 가중치를 계산하는 제1 계산단계와, 계산단계에서 계산된 가중치를 부여하여 최종 노멀맵을 계산하는 제2 계산단계와, 제2 계산단계에서 계산된 최종 노멀맵을 이용하여 피부 주름 렌더링하여 피부의 주름을 표현하는 렌더링단계로 구성되는 것을 특징으로 한다. The method of expressing the wrinkles of the skin in the character animation of the present invention comprises the first calculation step of extracting the facial expressions of the characters in order to synthesize the normal map at the current time and calculating the weight of the skin wrinkles on the normal map in which the wrinkles of these expressions are expressed; And a second calculation step of calculating the final normal map by giving weights calculated in the calculation step, and a rendering step of rendering the skin wrinkles by rendering the skin wrinkles using the final normal map calculated in the second calculation step. It is characterized by.
또한, 본 발명의 캐릭터 애니메이션 시 피부의 주름 실시간 표현 방법은, 현재 시간에서 범프맵 합성하기 위하여 캐릭터의 표정을 뽑아내고 이들 표정들의 주름이 표현된 범프맵에 피부 주름의 가중치를 계산하는 제1 계산단계와, 계산단계에서 계산된 가중치를 부여하여 최종 범프맵을 계산하는 제2 계산단계와, 제2 계산단계에서 계산된 최종 범프맵을 이용하여 피부 주름 렌더링하여 피부의 주름을 표현하는 표현단계로 구성되는 것을 특징으로 한다. In addition, in the character animation of the present invention, the skin wrinkles real-time expression method, the first calculation to extract the facial expression of the character in order to synthesize the bump map at the current time and calculate the weight of the skin wrinkles on the bump map in which the wrinkles of these expressions are expressed And a second calculation step of calculating a final bump map by giving weights calculated in the calculation step, and an expression step of expressing wrinkles of the skin by rendering the skin wrinkles using the final bump map calculated in the second calculation step. It is characterized in that the configuration.
본 발명의 캐릭터 애니메이션 시 피부의 주름 실시간 표현 장치는, 필요한 표정들의 예제를 미리 모델링해 둔 후 이들을 보간하는 방식으로 노멀맵화하는 노멀맵모듈과, 필요한 표정들의 예제를 미리 모델링해 둔 후 이들을 보간하는 방식으로 범프맵화하는 범프맵모듈과, 노멀맵 및 범프맵에 가중치를 합성하기 위한 표정들에 대응하는 가중치를 부여하여 합성함으로써 최종 노멀맵 또는 최종 범프맵을 구하는 계산모듈과, 가중치가 채용된 노멀맵 및 범프맵을 이용하여 렌더링하여 캐릭터의 주름을 표현하는 렌더링모듈로 구성되는 것을 특징으로 한다. The apparatus for expressing wrinkles of the skin in the character animation according to the present invention includes a normal map module that normalizes an example of required expressions by interpolating them after pre-modeling an example of necessary expressions, and pre-models an example of necessary expressions and interpolates them. A bump map module for bump mapping by a method, a calculation module for obtaining a final normal map or a final bump map by assigning a weight to a normal map and a bump map corresponding to expressions for synthesis of weights, and a weighted normal Characterized by consisting of a rendering module that represents the wrinkles of the character by rendering using the map and bump map.
이상에서 설명한 바와 같이 본 발명은 캐릭터 애니메이션에 있어서 피부 주름을 근육기반 표현보다 가중치에 의해 쉽게 계산하므로 빠르고 값싸고 자연스럽게 표현할 수 있는 효과가 있다.As described above, the present invention has the effect of expressing skin wrinkles easily by weight rather than muscle-based expression in character animation, which can be quickly, cheaply and naturally expressed.
또한, 본 발명은 일반화된 피부 주름 노멀맵 데이터를 이용하면 모든 캐릭터에 쉽게 적용하여 피부 주름을 표현할 수 있는 효과가 있다. In addition, the present invention has an effect that can be easily applied to all characters by using the normalized skin wrinkle normal map data to express the skin wrinkles.
또한, 본 발명은 어떤 모델을 사용하였는가에 따라서 주름의 표현이 달리할 수 있으므로 젊은 사람의 얼굴에 늙은 사람의 얼굴 모델을 적용하면 무표정일 때에는 상관없다가 표정이 변하면 늙은 사람처럼 주름이 보이게 설정할 수 있는 효과가 있다. In addition, according to the present invention, since the expression of the wrinkles may vary depending on which model is used, applying the face model of the old person to the face of the young person does not matter when it is expressionless, but when the facial expression changes, the wrinkles may be set to look like the old person. It has an effect.
위의 방식을 모두 GPU의 H/W Shader에서 처리함으로써 실시간 렌더링이 가능하다.All of the above methods are handled by the GPU's H / W Shader to enable real-time rendering.
따라서 3차원 게임이나 시뮬레이션, 교육 등 사실적인 캐릭터 피부를 다루어야 하는 분야에서 예전보다 더욱 빠르고 사실감 있는 피부 주름을 표현할 수 있게 된다.Therefore, it is possible to express skin wrinkles faster and more realistic than ever before in the field that needs to deal with realistic character skin such as 3D game, simulation and education.
이하, 첨부된 도면을 참조하여 본 발명의 구성에 대하여 보다 상세하게 설명하기로 한다. Hereinafter, with reference to the accompanying drawings will be described in more detail with respect to the configuration of the present invention.
도 1은 본 발명의 일실시예에 따른 캐릭터 애니메이션 시 피부의 주름을 실시간으로 표현하기 위한 시스템 구성을 나타낸 블록도이다. 1 is a block diagram showing a system configuration for expressing the wrinkles of the skin in real time during the character animation according to an embodiment of the present invention.
도 1을 참조하여 보면, 먼저 본 발명의 GPU(Graphics Processing Unit)(10)는 노멀맵 모듈(12), 범프맴 모듈(14), 계산모듈(16) 및 렌더링 모듈(18)을 포함한다. Referring to FIG. 1, first, a graphics processing unit (GPU) 10 of the present invention includes a
GPU(10)는 데이터를 받아 그래픽을 처리하는 처리 장치이다. 그래픽의 트랜스폼(Transform)과 라이트닝(Lighting)을 처리한다. The
노멀맵모듈(12)은 인터페이스 장치 등을 통해 입력된 그래픽 데이터를 노멀맵화한다. 노멀맵모듈(12)은 입력된 그래픽 데이터에 예제 기반 모델을 사용하여 노멀맵화한다. 즉, 필요한 표정들의 예제를 미리 모델링(폴리곤 및 노멀맵, 범프맵)해 둔 후 이들을 보간하는 방식으로 노멀맵화한다. The
그리고, 범프맵모듈(14)도 노멀맵모듈(12)과 같은 방식으로 인터페이스 장치 등을 통해 수신한 그래픽 데이터를 예제 기반 모델을 사용하여 범프맵화한다. The
계산모듈(16)은 현재 시간 t에서 대응하는 가중치를 합성하기 위한 표정들을 뽑아내고 노멀맵(Normal Map) 또는 범프맵(Bump Map)에 대응하는 표정에 대응하는 가중치를 부여하여(Weighted) 합성함으로써 최종 노멀맵 또는 최종 범프맵을 구한다. 즉, 노멀맵들을 보간할 때 각 표정에는 부위별로 가중치(Weight)를 두어 가중치에 따라서 보간하는 작업을 수행한다. The
이러한 노멀맵 합성 및 범프맵 합성에 GPU(10)의 쉐이더(Shader)를 사용하여 텍스처의 픽셀값을 처리하여 주름 합성 효과를 더 사실적으로 낼 수 있다. 즉, 쉐이더를 사용하여 더욱 효과적으로 합성할 수 있다. In the normal map synthesis and the bump map synthesis, the shader of the
만약 GPU(10)의 최대 동시 텍스쳐 개수가 현재 합성하려는 표정 개수보다 작을 경우 여러 번 나누어 계산함으로써 수정 가능하다. 이럴 경우 이전 단계에서 계산된 합성 노멀맵과 가중치의 합이 현재단계의 입력으로 들어가고 추가적인 표정과 합성하여 수정한다. If the maximum number of simultaneous textures of the
그리고 렌더링모듈(18)은 이와 같은 알고리듬을 적용하여 가중치가 채용된 노멀맵 및 범프맵을 이용하여 렌더링하여 캐릭터의 주름을 표현하고 이와 같이 주름을 실시간으로 표현한 캐릭터 애니메이션을 디스플레이(20)를 통해 디스플레이시킨다. In addition, the
도 2는 본 발명의 일실시예에 따른 캐릭터 애니메이션 시 피부의 주름을 실시간으로 표현하는 과정을 순차적으로 나타낸 흐름도이며, 도 3a 및 도 3b는 본 발명의 일실시예에 따른 캐릭터의 얼굴을 렌더링하는 데에 사용되는 각각의 범프맵 및 칼라맵이고, 도 4a 및 도4b는 본 발명의 일실시예에 따른 캐릭터가 웃는 표정을 렌더링 하는 데에 사용되는 범프맵과 가중치맵이다. 2 is a flowchart sequentially illustrating a process of expressing the wrinkles of the skin in real time when the character animation according to an embodiment of the present invention, Figures 3a and 3b is a rendering of the character's face in accordance with an embodiment of the present invention Each bump map and color map used in the present invention are illustrated. FIGS. 4A and 4B are bump maps and weight maps used to render a smiling face of a character according to an embodiment of the present invention.
도 2 내지 도 4b를 참조하여 보면, 상기와 같은 목적을 달성하기 위한 캐릭터 애니메이션 피부 주름 렌더링 방법은 도 2에서와 같이 현재 시간(t)에서 합성하기 위하여 캐릭터의 표정을 뽑아내고 이들 표정들의 주름이 표현된 노멀맵(Normal Map) 또는 범프맵(Bump Map)에 도 4b와 같이 가중치가 부여된(Weighted) 가중치맵을 합성함으로써, 즉 가중치를 계산하고 이를 적용함으로써 최종 노멀맵 또는 최종 범프맵을 구하고 이를 이용하여 피부 주름 렌더링하여 피부의 주름을 표현한다. 이때 도 4b는 웃는 얼굴에 사용되는 가중치맵이므로 도 4b를 채용하여 가중치를 적용하면 웃는 얼굴의 캐릭터를 얻을 수 있다. 2 to 4B, the character animation skin wrinkle rendering method for achieving the above object is to extract the facial expression of the character to synthesize at the current time (t) as shown in FIG. The final normal map or final bump map is obtained by synthesizing the weighted weight map to the expressed normal map or bump map as shown in FIG. The wrinkles of the skin are expressed by rendering the skin wrinkles. In this case, since FIG. 4B is a weight map used for the smiling face, the weighted character may be obtained by applying the weight using FIG. 4B.
먼저, 본 발명은 얼굴 피부를 기준으로 설명한다. 하지만 본 발명은 얼굴뿐만 아니라 캐릭터의 모든 부분의 표면 주름을 표현할 수 있는 방법이다. First, the present invention will be described based on facial skin. However, the present invention is a method that can express the surface wrinkles of all parts of the character as well as the face.
또한, 본 발명에서 노멀맵과 범프맵은 적용하는 방식이 같으므로 노멀맵을 기준으로 설명하기로 한다. 본 발명에서 피부 주름 합성에 필요한 노멀맵, 범프맵 데이터는 예제 기반 모델을 사용하며, 예제 기반 모델을 이용하여 노멀맵모듈(12)은 노멀맵을 제작한다. 마찬가지로 범프맵모듈(14)도 예제 기반 모델을 이용하여 범프맵을 제작한다(S10). 다시 말하면, 노멀맵 및 범프맵을 제작하는 방식은 필요한 표정들의 예제를 미리 모델링(폴리곤 및 노멀맵, 범프맵)해 둔 후 이들을 보간하는 방식이다.In addition, in the present invention, since the normal map and the bump map are applied in the same manner, the normal map will be described based on the normal map. In the present invention, the normal map and bump map data required for skin wrinkle synthesis use an example-based model, and using the example-based model, the
생성된 각각 노멀맵모듈(12) 및 범프맵모듈(14)에 의해 제작된 각각의 노멀맵 및 범프맵은 각 표정 예제 모델의 주름 데이터는 3D 스캐너 장비를 이용하거나 2D 이미지를 보고 직접 디자이너가 제작할 수도 있고, 기타 자동화된 도구를 이용하여 제작할 수 있다. 각 표정의 예제 모델의 주름 데이터는 각 표정별 피부 주름이 포함된 노멀맵들을 보간할 때 각 표정에는 부위별로 가중치(Weight)를 계산한다(S20). Each normal map and bump map generated by the
가중치는 0∼1 사이의 값이다. 0에 가까울 수록 그 부위가 표정에 미치는 영향이 작은 것이고, 1에 가까울 수록 부위가 표정에 미치는 영향이 큰 것이다.The weight is a value between 0 and 1. The closer to 0, the smaller the effect of the part on the expression, and the closer to 1, the greater the effect of the part on the expression.
현재 표정에서의 가중치 데이터는 (무표정 노멀맵 - 현재표정 노멀맵)을 초기 데이터로 이용한다. 그리고 범프맵을 사용하는 경우면 도 3a의 범프맵을 초기 데이터로 사용한다. 초기 데이터에서 수작업을 통하여 원하지 않는 곳에서의 주름 데이터가 있거나 표현하고 싶은 부분이 있는데 너무 미세한 경우를 위하여 후처리를 한다.The weight data in the current facial expression uses (unexpression normal map-current expression normal map) as initial data. When the bump map is used, the bump map of FIG. 3A is used as initial data. The initial data manually contains wrinkles data where you don't want it, or there is a part you want to express.
가중치 데이터는 노멀맵의 알파 부분에 저장할 수 있다. 최근 텍스쳐는 실수(float)값을 표현할 수 있으므로 이를 활용하면 더욱 효과적이다. The weight data may be stored in the alpha portion of the normal map. Recent textures can represent float values, which makes them more effective.
각 표정에 따른 피부 주름이 표현된 노멀맵, 범프맵 예제 모델을 만들고 이들 모델을 가중치을 채용하여 보간에 의해서 합성한다(S30). 도 4b에는 웃는 모습에 사용되는 가중치맵이 도시되어 있다. 피부주름 노멀맵의 합성은 다음의 수학식 1에 의해서 표현된다.A normal map and a bump map example model in which skin wrinkles are expressed according to each expression are made, and these models are synthesized by interpolation using weights (S30). 4B shows a weight map used for laughing. Synthesis of the skin wrinkle normal map is represented by the following equation (1).
SumSum ( ( NormalNormal (( exprexpr , x, y) * , x, y) * WeightWeight (( exprexpr , x, y)) / , x, y)) / SumSum (( WeightWeight (( exprexpr , x, y)), x, y))
수학식 1에서, expr는 합성에 필요한 표정을 1...n까지 나열했을 때의 인덱스를 나타낸다. 예컨대, 웃는 얼굴, 화난 얼굴, 우는 얼굴 등의 다수의 모델링 된 예제들 일 수 있다. In Equation 1, expr represents an index when the expressions required for synthesis are listed up to 1 ... n. For example, there may be a number of modeled examples of smiley faces, angry faces, crying faces, and the like.
그리고, Normal(x, y)는 최종 결과인 피부주름 노멀맵에 대한 (x,y)좌표에서의 가중치가 채용된 노멀값이다. In addition, Normal (x, y) is a normal value employing a weight in the (x, y) coordinate with respect to the final wrinkled skin normal map.
Normal(expr, x, y)는 현재 합성할 표정 expr의 피부 주름 표현인 노멀맵(x, y) 좌표에서의 노멀 값을 나타낸다. Weight(expr, x, y)는 현재 합성할 표정 expr의 (x, y)좌표에서의 가중치이다.Normal (expr, x, y) represents a normal value in normal map (x, y) coordinates, which is a skin wrinkle expression of the expression expr to be synthesized. Weight (expr, x, y) is the weight at the (x, y) coordinate of the expression expr to be synthesized at present.
얼굴 애니메이션과 같이 표현될 경우 현재 얼굴 애니메이션이 시간(t)에서의 피부 주름 노멀맵 합성은 다음 식에 의해서 표현이 된다.When expressed as a facial animation, the skin wrinkle normal map synthesis at the time t is represented by the following equation.
Sum( Sum ( NormalNormal (( exprexpr , x, y) * , x, y) * WeightWeight (( exprexpr , x, y) * TimedWeight(t, expr)) / , x, y) * TimedWeight (t, expr)) / SumSum (( WeightWeight (( exprexpr , x, y) * , x, y) * TimedWeightTimedweight (t, (t, exprexpr )) ))
Normal(t, x, y)는 현재 시간(t)에서 최종 결과인 피부 주름 노멀맵에 대한 (x, y)좌표에서의 노멀값이다.Normal (t, x, y) is the normal value in the (x, y) coordinates for the skin wrinkle normal map that is the final result at the current time (t).
TimedWeight(t, expr)는 현재 시간(t)에서 해당 주름 표정 표현(expression)의 합성 가중치이다. 이러한 노멀맵 합성은 GPU(10)의 하드웨어(H/W)인 쉐이더를 사용하면 더욱 효과적이다.TimedWeight (t, expr) is a composite weight of the corresponding wrinkle expression expression at the current time t. Such normal map synthesis is more effective using a shader that is hardware (H / W) of the
쉐이더의 입력으로 각 표정의 피부주름 노멀맵 텍스쳐와 각 표정별 가중치가 들어가고 출력으로는 위의 합성식인 수학식 1 및 수학식 2를 이용하여 각 픽셀별로 합성된 결과 가중치가 적용된 노멀맵이 나온다.As the input of the shader, the skin wrinkle normal map texture of each facial expression and the weight of each facial expression are input, and as the output, a normal map to which the weight is applied is obtained as a result of synthesis of each pixel using the above formulas (1) and (2).
만약 GPU(10)의 최대 동시 텍스쳐 개수가 현재 합성하려는 표정 개수보다 작을 경우 여러 번 나누어 계산함으로써 애니메이션 프레임에 맞게 표현 가능하다. 이럴 경우 이전 단계에서 계산된 합성 노멀맵과 가중치의 합이 현재단계의 입력으로 들어가고 추가적인 표정과 합성하게 되어 애니메이션시에 보다 부드러운 영상을 얻을 수 있다. If the maximum number of simultaneous textures of the
하나의 예제 표정 노멀맵 데이터를 이용하여 다른 캐릭터의 노멀맵에 적용하여 주름에 가중치를 준 표정을 생성하기 위해서는 일반화된 표정 노멀맵 차이 데이터와 가중치가 필요하다. 일반화된 표정 노멀맵 차이 데이터(일반NormalMapDiff(expr, x, y))는 현재 예제의 노멀맵 데이터로부터 계산되며, 그 식은 다음의 수학식 3과 같다. In order to generate a weighted expression of wrinkles by applying one example facial expression normal map data to another character's normal map, generalized facial expression normal map difference data and weights are needed. The generalized facial expression normal map difference data (general NormalMapDiff (expr, x, y)) is calculated from the normal map data of the current example, and the equation is as in Equation 3 below.
위의 수학식 3을 이용하여 각 표정에서의 노멀맵 차이데이터와 가중치(Weight)를 계산한다. 이렇게 추출된 노멀맵 차이 데이터는 다른 캐릭터의 표정에도 적용할 수 있게 된다. 다른 캐릭터의 표정에 적용되는 경우의 수학식은 다음 의 수학식 4와 같다. By using Equation 3 above, the normal map difference data and the weight in each expression are calculated. The normal map difference data extracted in this way can be applied to expressions of other characters. Equation when applied to the expression of other characters is as shown in Equation 4 below.
= 다른캐릭터Normal(무표정, x, y) + 일반NormalMapDiff(expr, x, y) = Other character Normal (x, y) + normal NormalMapDiff (expr, x, y)
이처럼 다른 캐릭터의 표정시에는 무표정일 때의 노멀맵만으로 다양한 표정의 노멀맵을 만들어 낼 수 있다. 도 4a의 범프맵은 가중치를 적용하여 웃는 표정을 생성해낸 범프맵이다. 이때, 폴리곤이 참조하는 텍스쳐의 기하구조가 도 3a 내지 도 4b에 나타나 있는 바와 같이 동일해야 한다. 즉, 일반 예제모델에서의 텍스쳐상에 눈 부위가 다른 캐릭터의 텍스쳐상의 눈 부위와 일치하도록 만들어야 한다. 그리고 이와 같이 표정이 입혀진 캐릭터의 얼굴에 도 3b와 같이 컬러를 입혀 주름이 형성된 캐릭터를 완성한다. Like this, when the expressions of other characters are expressed, normal maps of various expressions can be generated only by the normal maps when no expression is present. The bump map of FIG. 4A is a bump map that generates a smiling expression by applying a weight. At this time, the geometry of the texture referenced by the polygon should be the same as shown in Figs. 3a to 4b. That is, make sure that the eye area on the texture in the general example model matches the eye area on the texture of another character. In addition, the character is coated with a color as shown in FIG. 3B to complete the character with wrinkles.
앞에서는 노멀맵을 위주로 설명하였지만, 범프맵에서도 같은 알고리듬이 적용된다. 그리고 이와 같은 알고리듬을 적용하여 가중치가 채용된 노멀맵 및 범프맵을 이용하여 렌더링모듈(18)에서 렌더링한다(S40). 렌더링된 데이터는 디스플레이(20)를 통해 디스플레이된다. In the above, the normal map is mainly described, but the same algorithm is applied to the bump map. The algorithm is applied to render the
이렇게 함으로써 어떠한 얼굴에도 표정 애니메이션 시 피부의 주름을 표현할 수 있게 된다.In this way, the facial wrinkles can be expressed in any facial expression animation.
얼굴 부위가 아닌 다른 부위도 동일한 방식으로 사용이 가능하다. 각각 동작에 따른 노멀맵을 일반화시켜 이들을 합성함으로써 피부 주름을 표현할 수 있게 되는 것이다. Other parts of the face can be used in the same way. By normalizing the normal maps according to the respective motions and synthesizing them, the skin wrinkles can be expressed.
도 1은 본 발명의 일실시예에 따른 캐릭터 애니메이션 시 피부의 주름을 실시간으로 표현하기 위한 장치 구성을 나타낸 블록도. 1 is a block diagram showing a device configuration for expressing the wrinkles of the skin in real time during the character animation according to an embodiment of the present invention.
도 2는 발명의 일실시예에 따른 캐릭터 애니메이션 시 피부의 주름을 실시간으로 표현하는 과정을 순차적으로 나타낸 흐름도. 2 is a flowchart sequentially illustrating a process of expressing wrinkles of the skin in real time during character animation according to an embodiment of the present invention.
도 3a 및 도 3b는 본 발명의 일실시예에 따른 캐릭터의 얼굴에 사용되는 각각의 범프맵 및 칼라맵(Albedo). 3A and 3B are bump maps and color maps (Albedo) respectively used for a character's face according to an embodiment of the present invention.
도 4a 및 도4b는 본 발명의 일실시예에 따른 캐릭터가 웃는 표정을 나타낸 각각의 범프맵과 가중치(Weight)맵. 4A and 4B are bump maps and weight maps each showing a smiling face of a character according to an exemplary embodiment of the present invention.
<도면의 주요부분에 대한 부호의 간단한 설명><Brief description of symbols for the main parts of the drawings>
10 : GPU 12 : 노멀맵 모듈10: GPU 12: normal map module
14 : 범프맴 모듈 16 : 계산모듈14: bump member module 16: calculation module
18 : 렌더링 모듈 20 : 디스플레이 18: rendering module 20: display
Claims (8)
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2007296764A JP4842242B2 (en) | 2006-12-02 | 2007-11-15 | Method and apparatus for real-time expression of skin wrinkles during character animation |
| US11/948,931 US20080129738A1 (en) | 2006-12-02 | 2007-11-30 | Method and apparatus for rendering efficient real-time wrinkled skin in character animation |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020060121089 | 2006-12-02 | ||
| KR20060121089 | 2006-12-02 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR20080050284A true KR20080050284A (en) | 2008-06-05 |
| KR100900823B1 KR100900823B1 (en) | 2009-06-04 |
Family
ID=39805777
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020070091685A Expired - Fee Related KR100900823B1 (en) | 2006-12-02 | 2007-09-10 | An efficient real-time skin wrinkle rendering method and apparatus in character animation |
Country Status (1)
| Country | Link |
|---|---|
| KR (1) | KR100900823B1 (en) |
Cited By (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20120006610A (en) * | 2010-07-13 | 2012-01-19 | 삼성전자주식회사 | Facial animation system and method |
| KR20140127601A (en) * | 2013-04-25 | 2014-11-04 | 삼성전자주식회사 | Device and method for processing 3d lighting |
| KR101634461B1 (en) * | 2014-12-31 | 2016-06-28 | 세종대학교산학협력단 | Apparatus and Method for generating facial wrinkles generation using sketch |
| WO2016137080A1 (en) * | 2015-02-27 | 2016-09-01 | 허윤주 | Three-dimensional character rendering system using general purpose graphic processing unit, and processing method thereof |
| KR101715266B1 (en) * | 2016-04-19 | 2017-03-14 | 배재대학교 산학협력단 | Line drawing method for 3d model using graphic accelerator and computer-readable recording medium storing for processing program using the same |
| WO2017115937A1 (en) * | 2015-12-30 | 2017-07-06 | 단국대학교 산학협력단 | Device and method synthesizing facial expression by using weighted value interpolation map |
| KR20200078858A (en) * | 2018-12-24 | 2020-07-02 | 전자부품연구원 | Method for Calculating Skinning Weight of 3D Character Based on Musculoskeletal Structure |
| CN113920236A (en) * | 2021-10-09 | 2022-01-11 | 网易(杭州)网络有限公司 | Face customization method and device, electronic equipment and readable medium |
| CN114494560A (en) * | 2022-02-17 | 2022-05-13 | 网易(杭州)网络有限公司 | Graphic rendering method and device, electronic equipment and storage medium |
| CN114972587A (en) * | 2022-05-17 | 2022-08-30 | 咪咕文化科技有限公司 | Expression-driven method, device, electronic device, and readable storage medium |
| KR102462947B1 (en) * | 2022-01-12 | 2022-11-04 | (주)이브이알스튜디오 | Method for changing skin texture according to facial expression change of digital human and three dimensional graphic interface device therefor |
| CN115487494A (en) * | 2022-10-09 | 2022-12-20 | 网易(杭州)网络有限公司 | Information processing method, device and electronic device for virtual game character |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6950104B1 (en) | 2000-08-30 | 2005-09-27 | Microsoft Corporation | Methods and systems for animating facial features, and methods and systems for expression transformation |
| KR20010044586A (en) * | 2001-03-09 | 2001-06-05 | 조양일 | System for providing an auto facial animation and method therefor |
| JP2003196677A (en) | 2001-12-25 | 2003-07-11 | Minolta Co Ltd | Three-dimensional model transformation method and computer program |
| KR20050046877A (en) * | 2003-11-14 | 2005-05-19 | 리얼루션 인코포레이티드 | Image-adjusting system and method |
-
2007
- 2007-09-10 KR KR1020070091685A patent/KR100900823B1/en not_active Expired - Fee Related
Cited By (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20120006610A (en) * | 2010-07-13 | 2012-01-19 | 삼성전자주식회사 | Facial animation system and method |
| KR20140127601A (en) * | 2013-04-25 | 2014-11-04 | 삼성전자주식회사 | Device and method for processing 3d lighting |
| KR101634461B1 (en) * | 2014-12-31 | 2016-06-28 | 세종대학교산학협력단 | Apparatus and Method for generating facial wrinkles generation using sketch |
| WO2016137080A1 (en) * | 2015-02-27 | 2016-09-01 | 허윤주 | Three-dimensional character rendering system using general purpose graphic processing unit, and processing method thereof |
| US10403023B2 (en) | 2015-02-27 | 2019-09-03 | Yoon Ju HEO | Three-dimensional character rendering system using general purpose graphic processing unit, and processing method thereof |
| KR20170079680A (en) * | 2015-12-30 | 2017-07-10 | 단국대학교 산학협력단 | Apparatus and method for synthesizing facial expression using weighted interpolation map |
| WO2017115937A1 (en) * | 2015-12-30 | 2017-07-06 | 단국대학교 산학협력단 | Device and method synthesizing facial expression by using weighted value interpolation map |
| KR101715266B1 (en) * | 2016-04-19 | 2017-03-14 | 배재대학교 산학협력단 | Line drawing method for 3d model using graphic accelerator and computer-readable recording medium storing for processing program using the same |
| KR20200078858A (en) * | 2018-12-24 | 2020-07-02 | 전자부품연구원 | Method for Calculating Skinning Weight of 3D Character Based on Musculoskeletal Structure |
| CN113920236A (en) * | 2021-10-09 | 2022-01-11 | 网易(杭州)网络有限公司 | Face customization method and device, electronic equipment and readable medium |
| KR102462947B1 (en) * | 2022-01-12 | 2022-11-04 | (주)이브이알스튜디오 | Method for changing skin texture according to facial expression change of digital human and three dimensional graphic interface device therefor |
| CN114494560A (en) * | 2022-02-17 | 2022-05-13 | 网易(杭州)网络有限公司 | Graphic rendering method and device, electronic equipment and storage medium |
| CN114972587A (en) * | 2022-05-17 | 2022-08-30 | 咪咕文化科技有限公司 | Expression-driven method, device, electronic device, and readable storage medium |
| CN115487494A (en) * | 2022-10-09 | 2022-12-20 | 网易(杭州)网络有限公司 | Information processing method, device and electronic device for virtual game character |
Also Published As
| Publication number | Publication date |
|---|---|
| KR100900823B1 (en) | 2009-06-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR100900823B1 (en) | An efficient real-time skin wrinkle rendering method and apparatus in character animation | |
| KR100720309B1 (en) | Automatic 3D Modeling System and Method | |
| JP4842242B2 (en) | Method and apparatus for real-time expression of skin wrinkles during character animation | |
| CN113838176A (en) | Model training method, three-dimensional face image generation method and equipment | |
| KR101819535B1 (en) | Method and apparatus for expressing rigid area based on expression control points | |
| CN108447111B (en) | Normal map processing method and device, storage medium, processor and terminal | |
| JP2011159329A (en) | Automatic 3d modeling system and method | |
| CN112970046A (en) | Digital character mixing and generating system and method | |
| US20240331330A1 (en) | System and Method for Dynamically Improving the Performance of Real-Time Rendering Systems via an Optimized Data Set | |
| Orvalho et al. | Transferring the rig and animations from a character to different face models | |
| CN118115642A (en) | Three-dimensional digital person generation method, three-dimensional digital person generation device, electronic device, storage medium, and program product | |
| Marques et al. | Deep spherical harmonics light probe estimator for mixed reality games | |
| US8009171B2 (en) | Image processing apparatus and method, and program | |
| KR100792704B1 (en) | Reapply 3D face animation based on wire curve and example facial expression model | |
| US12293466B2 (en) | Systems and methods for generating a model database with blendshape representation | |
| CN117649477B (en) | Image processing method, device, equipment and storage medium | |
| EP4610935A1 (en) | Systems and methods for enhanced image generation | |
| KR20250057625A (en) | Training and inference method for generating stylized 3d mesh and device for the same | |
| CN120219633A (en) | A method for generating new viewpoint images based on depth estimation and diffusion model | |
| CN120912737A (en) | Training of clothing generation models, methods and hardware for clothing generation in digital humans | |
| CN111111199A (en) | Role three-dimensional modeling system and method based on picture extraction | |
| YU et al. | Animating Water in Chinese Painting Using Autoregressive Model | |
| Orvalho | A System to Reuse Facial Rigs and Animations | |
| AU2002323162A1 (en) | Automatic 3D modeling system and method |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A201 | Request for examination | ||
| PA0109 | Patent application |
St.27 status event code: A-0-1-A10-A12-nap-PA0109 |
|
| PA0201 | Request for examination |
St.27 status event code: A-1-2-D10-D11-exm-PA0201 |
|
| PG1501 | Laying open of application |
St.27 status event code: A-1-1-Q10-Q12-nap-PG1501 |
|
| D13-X000 | Search requested |
St.27 status event code: A-1-2-D10-D13-srh-X000 |
|
| D14-X000 | Search report completed |
St.27 status event code: A-1-2-D10-D14-srh-X000 |
|
| E902 | Notification of reason for refusal | ||
| PE0902 | Notice of grounds for rejection |
St.27 status event code: A-1-2-D10-D21-exm-PE0902 |
|
| E13-X000 | Pre-grant limitation requested |
St.27 status event code: A-2-3-E10-E13-lim-X000 |
|
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration |
St.27 status event code: A-1-2-D10-D22-exm-PE0701 |
|
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment |
St.27 status event code: A-2-4-F10-F11-exm-PR0701 |
|
| PR1002 | Payment of registration fee |
St.27 status event code: A-2-2-U10-U11-oth-PR1002 Fee payment year number: 1 |
|
| PG1601 | Publication of registration |
St.27 status event code: A-4-4-Q10-Q13-nap-PG1601 |
|
| PN2301 | Change of applicant |
St.27 status event code: A-5-5-R10-R13-asn-PN2301 St.27 status event code: A-5-5-R10-R11-asn-PN2301 |
|
| LAPS | Lapse due to unpaid annual fee | ||
| PC1903 | Unpaid annual fee |
St.27 status event code: A-4-4-U10-U13-oth-PC1903 Not in force date: 20120528 Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE |
|
| PC1903 | Unpaid annual fee |
St.27 status event code: N-4-6-H10-H13-oth-PC1903 Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE Not in force date: 20120528 |
|
| PN2301 | Change of applicant |
St.27 status event code: A-5-5-R10-R13-asn-PN2301 St.27 status event code: A-5-5-R10-R11-asn-PN2301 |
|
| P22-X000 | Classification modified |
St.27 status event code: A-4-4-P10-P22-nap-X000 |