WO2016137080A1 - 범용 그래픽 프로세싱 유닛을 이용한 3 차원 캐릭터 렌더링 시스템 및 그의 처리 방법 - Google Patents

범용 그래픽 프로세싱 유닛을 이용한 3 차원 캐릭터 렌더링 시스템 및 그의 처리 방법 Download PDF

Info

Publication number
WO2016137080A1
WO2016137080A1 PCT/KR2015/010872 KR2015010872W WO2016137080A1 WO 2016137080 A1 WO2016137080 A1 WO 2016137080A1 KR 2015010872 W KR2015010872 W KR 2015010872W WO 2016137080 A1 WO2016137080 A1 WO 2016137080A1
Authority
WO
WIPO (PCT)
Prior art keywords
processing
texture
stretch
luminance
final
Prior art date
Application number
PCT/KR2015/010872
Other languages
English (en)
French (fr)
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 US15/550,060 priority Critical patent/US10403023B2/en
Publication of WO2016137080A1 publication Critical patent/WO2016137080A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • 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/55Radiosity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2215/00Indexing scheme for image rendering
    • G06T2215/16Using real world measurements to influence rendering

Definitions

  • the present invention relates to a three-dimensional character rendering system, and more particularly, to a three-dimensional character rendering system for processing photorealistic facial expressions of three-dimensional characters in real time using a general purpose graphic processing unit (GPGPU). And a processing method thereof.
  • GPGPU general purpose graphic processing unit
  • the present invention relates to a three-dimensional character rendering system and a processing method thereof for parallel processing of the photorealistic face expression of a plurality of three-dimensional characters in real time using a general-purpose graphics processing unit (GPGPU).
  • GPGPU general-purpose graphics processing unit
  • the Bidirectional Reflectance Distribution Function (BRDF) is used to express light scattering according to the human skin layer using a three-dimensional engine of computer graphics.
  • This BRDF method is mainly applied to the expression of specular, and then calculates the diffusion effect through the diffusion profile in the lower skin layer.
  • the real human skin 10 is divided into an oil layer 12, an epidermis 14, and a dermis 16.
  • the incident light 20 incident on the skin 10 is reflected from the light source (not shown) to the oil layer 12, that is, the surface of the skin 10 to generate the reflected light 22, or the inside of the skin 10. It is scattered by the epidermal layer 14 and the dermal layer 16.
  • Rendering for the representation of the real skin is to express the physical diffusion and dispersion effects of the light source according to each layer of the skin on a three-dimensional screen.
  • Rendering refers to a process of creating a three-dimensional image by injecting realism into the two-dimensional image in consideration of external information such as light source, position, and color.
  • the oil layer 12 Since the oil layer 12 is finely roughened on the skin surface, the reflection by the oily layer of the epidermis is not a mirror like reflection.
  • the oil layer 12 has one incidence angle and a reflection angle, and to express this, a bidirectional reflection distribution function (BRDF) method is used. This is applied in the shader function in specular form at the end of the renderpass.
  • BRDF bidirectional reflection distribution function
  • the diffusion profile is a method of estimating light scattering when light is diffused below a surface having high translucency scattering.
  • the diffusion profile is a function of the distance and angle at the center of the light, indicating how much light is emitted.
  • This diffusion profile is very color dependent. For example, red scatters farther than green and blue.
  • Scholars have implemented a spectral model that theoretically simulates 150 color gamuts on the skin. However, since this actually passes through many renderpasses, it is not realistic and generally renders through RGB light diffusion.
  • a gaussian filter is applied to realistically express the skin in the form of synthesizing the luminance texture. That is, in the method of applying the physical diffusion profile by dividing the skin layer, a plurality of luminance textures to be expressed are generated, a Gaussian filter is applied, and a linear combination is used. In this process, the luminance-related textures should be created sequentially and linearly. Because of this, a lot of time is invested in creating and modifying the bright texture, which has a limitation in fast rendering, and thus there is a limitation in generating in a parallel process. In addition, this complex processing, especially in the creation of multiple textures and fill the information load occurs.
  • LOD Level Of Detail
  • a method of reducing the luminance processing step is used.
  • this method is also a situation in which the three-dimensional character is expressed in a similar skin rather than a real skin.
  • a problem in processing speed occurs, and a load problem is further highlighted.
  • An object of the present invention is to provide a three-dimensional character rendering system and a processing method thereof, which process a photorealistic skin representation of a three-dimensional character by using a general-purpose graphic processing unit for a very realistic representation of the three-dimensional character.
  • the three-dimensional character rendering system of the present invention is characterized by rendering an image for each layer of the three-dimensional character's facial skin using a general-purpose graphic processing unit.
  • the 3D character rendering system of the present invention renders the 3D character in real time by rendering processing using a general-purpose graphic processing unit, and generates a photorealistic skin representation of a plurality of 3D characters included in the content. Parallel processing is possible.
  • a three-dimensional character rendering system includes: a plurality of luminance processing modules for sequentially generating and blurring a luminance texture according to a skin layer of a three-dimensional character model; A stretch processing module configured to map screen coordinates and image coordinates to generate stretched image data, and to generate a stretch shadow map by preprocessing to blur the luminance texture in each of the luminance processing modules; A final processing module which receives the blurred luminance textures from the luminance processing modules and linearly combines the linearly coupled luminance textures by sequentially processing the blur compositing function, the specular function, and the back texture copy to generate and output the final texture.
  • Each of the luminance processing module, the stretch processing module and the final processing module is provided as a general purpose graphics processing unit module.
  • the brightness processing module A brightness texture unit for generating and storing a brightness texture for the 3D character;
  • An image coordinate mapper unit for mapping the image coordinates to the generated luminance texture coordinates;
  • a luminance processing function for blurring the mapped luminance texture using a Gaussian kernel is included.
  • the stretch processing module In another embodiment, the stretch processing module; A stretch processing function unit which stretches each texture in the U-axis or V-axis direction; A coordinate mapper unit for mapping image coordinates of the screen coordinates, the stretch U image data, and the stretch V image data; A stretch shadow map function for generating stretch U shadow maps and stretch V shadow maps, which are resources of the general-purpose graphics processing unit module.
  • the final processing module A linear combiner for linearly receiving the blurred luminance textures from the luminance processing modules; A final processing function for generating a final back texture by sequentially processing a blur compositing function, a specular function, and a back texture copy from the linearly coupled luminance texture from the linear combining part, and generating and outputting the final texture from the final back texture.
  • a processing method of a three-dimensional character rendering system is provided.
  • a processing method of a three-dimensional character rendering system includes a pre-processing step of stretching a texture from a step-by-step image according to a skin layer of a three-dimensional character using a general-purpose graphic processing unit module; A brightness processing step of generating and processing a brightness texture from the step-by-step image using a general-purpose graphics processing unit module; And a final processing step of generating a final texture expressing live skin from the bright texture by using the general-purpose graphic processing unit module and processing to output in real time.
  • the pretreatment step Rendering the three-dimensional character's face image texture into a stretch buffer of the general purpose graphics processing unit module; Subsequently, the stretch U processing function and the stretch V processing function are repeatedly processed a plurality of times by using the stretch buffer and the temporary buffer of the general-purpose graphic processing unit module to output the stretched texture in the U and V axis directions.
  • the final processing step Receiving and linearly combining stepwise luminance images processed in the luminance processing step from a stretch buffer; Apply Gaussian blur to process the blur compositing function to produce the final back texture;
  • the specular is computed by mapping the final back texture to the coordinates of the light, three-dimensionally, using a specular function; Subsequently, the final texture of the photorealistic skin is generated and output by mapping the specular and image coordinate systems.
  • a three-dimensional character rendering system that parallelizes rendering for a plurality of three-dimensional characters.
  • a three-dimensional character rendering system for parallelizing rendering for a plurality of three-dimensional characters of the present invention uses a general-purpose graphic processing unit to display an image of the skin of each of the plurality of three-dimensional characters included in the content.
  • a plurality of live-action skin processing modules for rendering processing having a thread identifier for recognizing a thread pool thereof, and processing the thread pool;
  • the live-action skin treatment module includes more.
  • a plurality of brightness processing modules for generating a brightness texture step by step according to the skin layer of the 3D character model and sequentially blurring the brightness texture;
  • a stretch processing module configured to map screen coordinates and image coordinates to generate stretched image data, and to generate a stretch shadow map by preprocessing to blur the luminance texture in each of the luminance processing modules;
  • a final processing module which receives the blurred luminance textures from the luminance processing modules and linearly combines the linearly coupled luminance textures by sequentially processing the blur compositing function, the specular function, and the back texture copy to generate and output the final texture. It includes more.
  • the thread pool monitor Detects the response from the general-purpose graphic processing unit function for each character processed by each of the live skin treatment modules, and determines a threshold at which the live skin treatment module can no longer be assigned to the live skin and processes the corresponding live skin treatment. If it determines that the module cannot run, it informs the application.
  • a processing method of a three-dimensional character rendering system that parallelizes rendering for a plurality of three-dimensional characters.
  • a method of processing a 3D character rendering system may include: generating a thread pool for each of a plurality of photorealistic skin treatment modules by activating a thread pool monitor of the 3D character rendering system; Assigning a thread identifier for each of the live-action skin treatment modules; Initializing resources of the live-action skin treatment modules; Informing the thread of the live-action skin treatment modules from the thread full monitor to start output; Monitoring a thread pull signal for each of the live-action skin treatment modules with the thread full monitor; The thread full monitor recognizing an update state of a final texture of each of the live-action skin treatment modules; Determining, by the thread full monitor, whether a thread signal is present from each of the live skin treatment modules to determine a normal operating state of the live skin treatment module; As a result of the determination, if there is a thread signal, processing and outputting the render path of the final content.
  • the method comprises; As a result of the determination, if there is no thread signal, the method may further include informing the application that an error has occurred.
  • the three-dimensional character rendering system of the present invention in order to represent the realistic skin of the three-dimensional character, the diffuse texture for each layer of the skin, without passing the luminance texture through the render pass of the rendering library such as DirectX or OpenGL
  • the rendering library such as DirectX or OpenGL
  • GPGPU general purpose graphics processing unit
  • CUDA Computer Unified Device Architecture
  • the 3D character rendering system of the present invention uses a general-purpose graphics processing unit (GPGPU) to reduce render pass and use a GPGPU function rather than a shader function, so that real-time representation of characters in various character-oriented contents is performed in real time. Can be processed to enable processing.
  • GPGPU general-purpose graphics processing unit
  • the three-dimensional character rendering system of the present invention by processing the photorealistic skin representation of a plurality of characters included in the content in parallel, it is possible to utilize a wide range of content by speeding up the photorealistic skin representation of a plurality of characters, It can have a big impact on the development of character-related industries.
  • 1 is a view showing the reflection and diffusion of light according to the skin layer of a real person
  • FIG. 2 is a block diagram showing the configuration of a three-dimensional character rendering system for rendering processing for the realistic skin representation of the three-dimensional character according to the present invention
  • FIG. 3 is a flowchart showing a process of rendering a photorealistic skin of a three-dimensional character according to the present invention
  • FIG. 4 is a flowchart showing a processing procedure of the preprocessing routine shown in FIG. 3;
  • FIG. 5 is a flowchart showing a processing procedure of the luminance processing routine shown in FIG. 3;
  • FIG. 6 is a flowchart showing a processing procedure of the final processing routine shown in FIG. 3;
  • FIG. 7 is a block diagram showing the configuration of a three-dimensional character rendering system by a parallel processing method according to another embodiment of the present invention.
  • FIG. 8 is a flowchart illustrating a process of performing photorealistic skin rendering of a 3D character by a parallel processing method according to another exemplary embodiment of the present invention.
  • FIG. 2 is a block diagram showing the configuration of a three-dimensional character rendering system for rendering processing for the realistic skin representation of the three-dimensional character according to the present invention.
  • the three-dimensional character rendering system 100 of the present invention displays an image of a three-dimensional character's face skin in order to express the three-dimensional character in real time. : GPGPU) to render.
  • the 3D character rendering system 100 does not pass the radiance texture of the rendering library such as DirectX or OpenGL to render the real skin of the 3D character, and distributes the distributed image of each layer of the skin.
  • a luminance texture is generated and processed using a general purpose graphics processing unit (GPGPU) such as Computer Unified Device Architecture (CUDA).
  • GPGPU general purpose graphics processing unit
  • CUDA Computer Unified Device Architecture
  • the luminance texture should be linked with the general purpose graphics processing unit (GPGPU), and a general purpose graphics processing unit (GPGPU) function for image processing of the luminance texture is required. That is, it has a processing structure in which a general purpose graphics processing unit (GPGPU) function copes with the function of a shader in a render path. At this time, the shader function has an effect that the general-purpose graphics processing unit (GPGPU) function copes with, thereby quickly and accurately expressing a rendering process.
  • GPGPU general purpose graphics processing unit
  • the present invention generates a texture resource, such as texture for the brightness processing to be linked to the general-purpose graphics processing unit (GPGPU), thereby applying a structure for faster real-time processing.
  • a texture resource such as texture for the brightness processing to be linked to the general-purpose graphics processing unit (GPGPU)
  • the luminance processing can be performed in a general-purpose graphics processing unit (GPGPU) without going through a render pass, thereby providing an improved rendering speed in application to games, animations, and various other contents.
  • the three-dimensional character rendering system 100 of the present invention includes a plurality of luminance processing module 110, a stretch processing module 120, and a final processing module 130.
  • Each of the plurality of brightness processing modules 110, the stretch processing module 120, and the final processing modules 130 may be provided as a general-purpose graphics processing unit (GPGPU) module for interworking the brightness texture.
  • GPGPU general-purpose graphics processing unit
  • the luminance GPU module 110 includes a luminance texture unit 116 that generates and stores a luminance texture for a 3D character, and an image coordinate mapper unit 112 that maps image coordinates to generated luminance texture coordinates. And a luminance processing function 114 for blurring the mapped luminance texture.
  • the brightness processing function 114 includes a Gaussian Kernel U blur function for processing U-axis blur and a Gaussian kernel V blur function for processing V-axis blur.
  • the luminance texture is obtained by generating a luminance texture corresponding to each polygon constituting the 3D character from an optimal stretch image, and storing the generated luminance texture in the luminance texture unit 116.
  • the image coordinate mapper 112 maps the image coordinates to the luminance texture coordinates
  • blur is generated in part. Therefore, the brightness processing function 114 blurs the brightness texture mapped through each function.
  • the blurred luminance texture is stored in the luminance texture unit 116 to finally adjust luminance using a Gaussian kernel.
  • the brightness processing module 110 processes the texture acquisition and mapping of the 3D character on the basis of the graphic processing unit (GPU) without generating the texture map. Therefore, the plurality of luminance processing modules 110 processes each of the luminance textures by sequentially processing the above-described processes. At this time, the luminance texture output from each luminance processing module 110 is blurred by the preprocessing module, that is, the stretch processing module 120.
  • Luminance processing module 110 handles U-axis blur for the Gaussian kernel based on the stretch U shadow map, and handles V-axis blur for the Gaussian kernel based on the stretch V shadow map. . Therefore, the brightness processing module 110 generates brightness image data in stages in texture data linked to the general purpose graphics processing unit (GPGPU) module.
  • GPGPU general purpose graphics processing unit
  • Stretch GPU module 120 is a preprocessing module that generates stretch U image data and stretch V image data that have been stretched in the U- and V-axis directions, and the pre-processing stretch U diagram and stretch U new Create a map.
  • the stretch U image data and the stretch V image data are generated by the stretch processing module 120 mapping screen coordinates and image coordinates.
  • the stretch processing module 120 also processes work on stretch U texture and stretch V texture data linked to a general purpose graphics processing unit (GPGPU) module.
  • GPGPU general purpose graphics processing unit
  • the stretch processing module 120 is provided with a stretch U processing module (stretch U GPU module) for stretching in the U axis direction, and a stretch V processing module (stretch V GPU module) for stretching in the V axis direction. .
  • Each stretch processing module 120 includes a stretch processing function 122, a coordinate mapper 124, and a stretch shadow map function 126.
  • the stretch processing function 122 of each stretch processing module 120 includes a stretch U function part or a stretch V function part.
  • the stretch processing function 122 stretches each texture in the U-axis or V-axis direction.
  • the coordinate mapper unit 124 maps the screen coordinates and the image coordinates of the stretch U image data and the stretch V image data.
  • the stretch shadow map function unit 126 generates stretch U shadow maps and stretch V shadow maps, which are resources of the general-purpose graphics processing unit (GPGPU).
  • Each stretch shadow map function unit 126 includes a stretch U shadow map function unit or a stretch V shadow map function unit.
  • Each of the stretch U shadow map function and the stretch V shadow map function separates the stretch U shadow map and the stretch V shadow map, respectively, to deal with the distortion in mapping from texture mapping to three-dimensional space. .
  • the stretch processing module 120 includes a temporary buffer and a stretch buffer although not shown in the figure.
  • Temporary U blur buffer is assigned to the General Purpose Graphics Processing Unit (GPGPU), used as a temporary texture buffer for the blur kernel for U stretch, and V Blur Buffer is allocated to the General Purpose Graphics Processing Unit (GPGPU), blurring for the V stretch Texture buffer for the kernel, used for Gaussian blur of the final pass.
  • GPGPU General Purpose Graphics Processing Unit
  • V Blur Buffer is allocated to the General Purpose Graphics Processing Unit (GPGPU), blurring for the V stretch Texture buffer for the kernel, used for Gaussian blur of the final pass.
  • the stretch processing module 120 preprocesses the blur texture processed by each of the brightness processing modules 110 to blur.
  • the final GPU module 130 includes a linear coupling unit 132 and a final processing function unit 140.
  • the final processing function unit 140 includes a blur synthesis function unit 142 for processing a blur synthesis function, a specular function unit 144 for processing a specular function, a back texture copy unit 146 for copying a back texture,
  • the final back texture unit 148 generates a final back texture, and the final texture unit 149 generates a final texture and outputs it to the screen.
  • the final processing module 130 receives the blurred luminance textures from the luminance processing modules 110 and linearly combines them through the linear coupling unit 132.
  • the final processing function unit 140 sequentially processes the blur combining function, the specular function, and the back texture copy of the linearly coupled luminance texture in the linear combining unit 132 to generate the final back texture, and generates the final texture. To print.
  • This final processing module 130 applies a Gaussian blur to the luminance image data at each stage as a general purpose graphics processing unit (GPGPU) function to produce a diffuse profile effect.
  • the final processing module 130 also maps the effect on the BRDF specular to the final result image.
  • the final processing module 130 processes a job on the final texture data linked to the general purpose graphics processing unit (GPGPU). Accordingly, the final processing module 130 generates a texture on the general graphics processing unit GPGPU expressed in the final final photorealistic skin and outputs it to the screen.
  • the three-dimensional character rendering system 100 of the present invention minimizes the render pass process by using a general-purpose graphics processing unit (GPGPU), and performs the real-time skin expression in real time by processing the brightness, stretching and final processing. Can be processed.
  • GPGPU general-purpose graphics processing unit
  • FIG. 3 is a flowchart illustrating a process of rendering a photorealistic skin of a three-dimensional character according to the present invention
  • FIG. 4 is a flowchart illustrating a processing procedure of a preprocessing routine shown in FIG. 3
  • FIG. 5 is a brightness of FIG. 3.
  • It is a flowchart which shows the processing procedure of a processing routine
  • FIG. 6 is a flowchart which shows the processing procedure of the last processing routine shown in FIG.
  • These procedures are programs that are processed by the 3D character rendering system 100 and are processed using a general-purpose graphics processing unit (GPGPU).
  • GPGPU general-purpose graphics processing unit
  • the 3D character rendering system 100 of the present invention uses a general purpose graphic processing unit (GPGPU) module to stretch the texture in step S200 to render the photorealistic skin of the 3D character.
  • GPGPU general purpose graphic processing unit
  • step S230 the luminance texture is generated and processed using the general-purpose graphics processing unit (GPGPU) module, and then the final texture is processed using the general-purpose graphics processing unit (GPGPU) module in step S250.
  • the stretch processing routine S200 uses the texture of the face three-dimensional model in step S202 as a first stretch buffer (GPGPU) module, that is, the first stretch buffer of the stretch processing module 120.
  • GPGPU first stretch buffer
  • StretchBuffer0 the stretch U processing function and the stretch V processing function S1 are repeatedly processed a plurality of times in steps S204 to S218.
  • rendering to the first stretch buffer (StretchBuffer0) means that three-dimensional coordinates are rendered in two-dimensional coordinates.
  • step S204 the stretch U shadow map function is processed using the first stretch buffer (StretchBuffer0) as a source, and the result is output to the temporary buffer (temporary Buffer).
  • step S206 the texture stretched in the U-axis direction is processed to the second stretch buffer (StretchBuffer1) by using the temporary buffer (temporary Buffer) as a source to process the stretch V shadow map function.
  • step S208 the stretch U shadow map function is processed from the second stretch buffer (StretchBuffer1) and the result is output to the temporary buffer (temporary Buffer).
  • step S210 the texture stretched in the U-axis direction is processed to the third stretch buffer (StretchBuffer2) by processing the stretch V shadow map function using the texture stretched in the U-axis direction using the temporary buffer as a source.
  • step S212 the stretch U shadow map function is processed from the third stretch buffer (StretchBuffer2) and the result is output to the temporary buffer (temporary Buffer).
  • step S214 the texture stretched in the U-axis direction is processed to the fourth stretch buffer (StretchBuffer3) by using the temporary buffer (temporary Buffer) as a source to process the stretch V shadow map function.
  • step S216 the stretch U shadow map function is processed from the fourth stretch buffer (StretchBuffer3) to output the result to the temporary buffer (temporary Buffer), and then in step S218, the temporary buffer (temporary Buffer) is used as a source in the U axis direction.
  • the stretched texture is processed by the stretch V shadow map function to output the stretched texture in the V-axis direction to the fifth stretch buffer (StretchBuffer4) to preprocess the stretch processing function.
  • the stretch processing routine S200 processes a portion of nine renderpasses for stretch preprocessing in the conventional manner, with one renderpass S202 and four general graphics processing unit (GPGPU) functions. That is, by image processing through the stretch processing functions S204 to S218, the load can be reduced.
  • GPGPU general graphics processing unit
  • the brightness processing routine S230 renders the texture of the face three-dimensional model to the screen buffer of the general-purpose graphics processing unit (GPGPU) module, that is, the brightness processing module 110, in step S232.
  • the luminance processing function and the stretch processing function S2 are repeatedly processed a plurality of times.
  • step S234 the stretch U shadow map function is processed using the screen buffer and the first stretch buffer (StretchBuffer0) as a source, and the result is output to the temporary buffer.
  • step S236 the stretch V shadow map function is processed using the temporary buffer and the first stretch buffer (StretchBuffer0) as a source, and is output to the first luminance buffer (luminance buffer 0).
  • the steps S234 and S236 are repeated a plurality of times. In this embodiment, the steps S234 and S236 are repeated five times.
  • step S2308 the stretch U shadow map function is processed using the first brightness buffer (brightness buffer 0) and the second stretch buffer (StretchBuffer1) as a source, and the result is output to the temporary buffer.
  • step S240 the stretch V shadow map function is processed using the temporary buffer and the second stretch buffer (StretchBuffer1) as a source, and the result is output to the second luminance buffer (luminance buffer 1).
  • the stretch U shadow map function and the Stretch V shadow map function are respectively processed by using the second to third luminance buffers and the third to fourth stretch buffers as sources, respectively, to temporarily buffer the temporary buffers. Outputs the result to the third or fourth luminance buffer.
  • step S242 the stretch U shadow map function is processed using the fourth luminance buffer (luminance buffer 3) and the fifth stretch buffer (StretchBuffer4) as a source, and the result is output to the temporary buffer.
  • step S244 the stretch V shadow map function is processed using the temporary buffer and the fifth stretch buffer (StretchBuffer4) as a source, and the result is output to the fifth luminance buffer (luminance buffer 4).
  • the luminance processing routine S230 in this embodiment is a part of processing 11 render passes for luminance processing in the conventional method, that is, one render pass S232 and five general-purpose graphics processing unit (GPGPU) functions, that is, luminance
  • GPGPU general-purpose graphics processing unit
  • the final processing routine S250 processes the blur synthesis function by applying Gaussian blur to the luminance image according to each step (S4), and processes the BRDF specular function (S5). That is, in operation S252, the luminance image processed by the luminance processing routine S230 is received from the first to fifth stretch buffers StretchBuffer0 to StretchBuffer4 and linearly combined, and Gaussian blur is synthesized to generate a final back texture (FinalBackTexture). In step S254, the final back texture (FinalBackTexture) is mapped to light coordinates and three-dimensionally by using the BRDF specular function, and in step S256, the specular for the Fresnel effect is calculated. Subsequently, in step S258, mapping is performed using specular and image coordinate systems to generate a final texture in which the final final photorealistic skin is expressed.
  • the final processing routine S250 of this embodiment processes the work on the final texture data in cooperation with the general purpose graphics processing unit (GPGPU) function. That is, the final processing routine (S250) is a general-purpose graphics processing unit (GPGPU) function to apply the Gaussian blur of the luminance image of each step to show the diffusion profile effect, and also map the effect on the BRDF specular to the final result image Create a texture that represents the skin.
  • GPGPU general-purpose graphics processing unit
  • FIG. 7 is a block diagram showing the configuration of a three-dimensional character rendering system by a parallel processing method according to another embodiment of the present invention.
  • the three-dimensional character rendering system 300 of this embodiment performs general-purpose graphic processing on an image of a face skin of a three-dimensional character in order to perform a photorealistic skin representation of a plurality of three-dimensional characters included in content.
  • a plurality of live-action skin treatment modules 310 for rendering processing using the unit GPGPU are provided and processed in parallel through them.
  • the three-dimensional character rendering system 300 of this embodiment includes a plurality of live-action skin treatment module 310 and a thread pull monitor 330.
  • the photorealistic skin processing module 310 renders the photorealistic skin of each 3D character included in the content by using the general purpose graphic processing unit (GPGPU).
  • This live-action skin treatment module 310 includes the components 312 to 316 of FIG. 2 and a thread identifier 318 for recognizing a thread pool for its own-use live treatment skin 310.
  • the photorealistic skin treatment module 310 may include a plurality of brightness processing modules 312, a stretch processing module 314, a final processing module 316, and a thread recognizer 318 for processing the brightness for the photorealistic skin expression. It includes.
  • each of the bright processing module 312, stretch processing module 314 and final processing module 316 is identical or substantially similar in configuration and function to those shown in FIG. 2 (110, 120, 130). Here, the detailed description thereof will be omitted.
  • a thread is a unit of flow that runs in any program, especially a process, and the use of two or more threads in a process is called a multi-thread.
  • the simplest way to use a thread to process work is to create a thread to process the work and then remove that thread. This method uses only one thread per task and is called thread per request (TPR).
  • TPR thread per request
  • the thread pool method can reduce the overhead of creating and deleting threads by allowing the finished thread to be waited for without being removed and used for the next task.
  • the thread pool method is used when work occurs frequently and the processing time is short. It maintains a specified number of threads to reduce thread creation and deletion, and these threads repeat work execution and wait processing to process work. do.
  • This thread pool approach increases throughput by reducing the overhead of thread creation and deletion compared to the traditional TPR approach using one thread per task, resulting in faster execution times. That is, in the conventional TPR method, as the amount of work increases, the time for creating and removing threads for the processing increases, and the time for performing work is relatively reduced.
  • the live-action skin treatment module 310 processes a thread pool for each Real-Skin unit of the general-purpose graphics processing unit (GPGPU) module. Accordingly, the thread recognizer 318 has an identifier for recognizing a thread pool for each live skin treatment module 310 from the thread pool monitor 330. The live-action skin treatment module 310 sets a flag for an action for processing its own live-action skin expression, and provides a normal operation state to the thread pool monitor 330 in real time.
  • GPGPU general-purpose graphics processing unit
  • a thread pool monitor 330 manages thread pools for the live skin treatment modules 310 to signal from each of the live skin treatment modules 310.
  • the thread pool monitor 330 detects a response from the General Purpose Graphic Processing Unit (GPGPU) function for each character, and when the due diligence skin processing module 310 for the due diligence skin is no longer assigned, the due diligence The skin treatment module 310 determines that it cannot operate because it cannot be applied, and notifies the application of the situation.
  • GPGPU General Purpose Graphic Processing Unit
  • FIG. 8 is a flowchart illustrating a process of performing photorealistic skin rendering of a 3D character by a parallel processing method according to another exemplary embodiment of the present invention. This procedure is processed by the three-dimensional character rendering system 300 of FIG.
  • the 3D character rendering system 300 starts and activates the thread pool monitor 330 in step S400, and generates a thread pool for the live-action skin treatment module 310 in step S402.
  • step S404 a thread identifier for each of the live-action skin treatment modules 310 is assigned.
  • step S406 the resources of the live-action skin treatment modules 310 are initialized.
  • step S408 the thread full monitor 330 notifies the thread of the real skin treatment modules 310 of the start of output.
  • the thread pull signal for each real skin treatment module 310 is monitored by the thread pull monitor 330.
  • the thread full monitor 330 recognizes an update state of the final texture of each live skin treatment module 310.
  • step S414 the thread full monitor 330 determines the presence or absence of a thread signal from each of the live skin treatment modules 310 to determine a normal operating state of the live skin treatment module 310. As a result of the determination, if there is no thread signal, the procedure goes to step S416 to inform the application that an error has occurred. However, if there is a thread signal, it means that the thread is operating normally. This procedure proceeds to step S418 to process the rendering process, that is, the render pass of the final content, and then outputs the final content to the screen in step S420.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Architecture (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Image Generation (AREA)

Abstract

본 발명은 3 차원 캐릭터 렌더링 시스템 및 그 처리방법에 관한 것이다. 3 차원 캐릭터 렌더링 시스템은 범용 그래픽 프로세싱 유닛(GPGPU)을 이용하여 3 차원 캐릭터 모델 예컨대, 사람의 얼굴과 같은 다층 구조의 피부에 대한 빛의 반사와산란에 따라 실사 피부 표현이 가능하도록 렌더링 처리한다. 이를 위해 3 차원 캐릭터 렌더링 시스템은 렌더패스에 대응하여 복수 개의 범용 그래픽 프로세싱 유닛 모듈들을 구비한다. 본 발명에 의하면, 렌더링 라이브러리의 렌더패스를 거치지 않고, 피부의 각 계층에 대한 이미지를 범용 그래픽 프로세싱 유닛(GPGPU)을 이용하여 광휘 텍스쳐를 생성, 처리함으로써, 렌더링 처리를 위한 시스템의 부하를 줄일 수 있으며, 이를 통해 실시간으로 실사 피부 표현이 가능하다.

Description

[규칙 제26조에 의한 보정 04.11.2015] 범용 그래픽 프로세싱 유닛을 이용한 3 차원 캐릭터 렌더링 시스템 및 그의 처리 방법
본 발명은 3 차원 캐릭터 렌더링 시스템에 관한 것으로, 좀 더 구체적으로 범용 그래픽 프로세싱 유닛(General Purpose Graphic Processing Unit : GPGPU)을 이용하여 실시간으로 3 차원 캐릭터의 실사 얼굴 표현을 처리하기 위한 3 차원 캐릭터 렌더링 시스템 및 그 처리 방법에 관한 것이다.
또 본 발명은 범용 그래픽 프로세싱 유닛(GPGPU)을 이용하여 실시간으로 복수 개의 3 차원 캐릭터들의 실사 얼굴 표현을 병렬 처리하기 위한 3 차원 캐릭터 렌더링 시스템 및 그 처리 방법에 관한 것이다.
최근 들어 영화, 게임 및 애니메이션 등에서 재질에 대한 사실적 표현이 중요한 요소로 부각되고 있으며, 사실적 표현을 위한 다양한 기법들이 개발되고 있다. 그러나 다양한 기법들을 활용하기 위해서는 많은 시간이 소요되며, 다양한 기법들을 활용하기 위한 비용 또한 증가하게 된다.
특히, 사람의 피부와 같이 빛이 반사 및 확산되는 재질의 경우, 사진과 같은 사실적 묘사가 이루어지지 못하고 있는 실정이다. 즉, 다층으로 구성된 피부는 각 계층(layer)마다 빛을 다르게 흡수, 산란하기 때문에 컴퓨터 그래픽스에서 사람의 얼굴을 보다 사실적으로 재현하는 것은 매우 어려운 일이다.
현재 3 차원 스캔 기술의 발달에 따라 3 차원 캐릭터가 실사 얼굴과 유사한 수준의 얼굴 모델링이 가능해지고 있다. 또한 이런 인프라의 발달에 맞추어 실사 얼굴의 좀 더 사실적인 표현을 위하여, 실제 사람 얼굴에 대한 빛의 물리적 산란 효과를 적용하는 방법이 개발되고 있다. 이는 피부를 여러 계층으로 나누고, 나누어진 각 계층에 따른 빛의 반사 및 확산을 적용하는 방식을 이용한다.
예를 들어, 컴퓨터 그래픽스의 3 차원 엔진을 이용하여 사람의 피부층에 따른 광분산을 표현하기 위해서, 양방향 반사 분포 함수(Bidirectional Reflectance Distribution Function : BRDF) 방식을 이용하고 있다. 이 BRDF 방식은 스펙큘러(specular)의 표현에 주로 적용이 되고, 이후 하위의 피부층에는 확산 프로파일을 통한 확산(Diffuse) 효과를 계산한다.
도 1을 참조하면, 실제 사람 피부(10)의 계층은 오일층(oil layer)(12), 표피층(epidermis)(14) 및 진피층(dermis)(16)으로 구분한다. 피부(10)에 입사되는 입사광(20)은 광원(미도시됨)으로부터 오일층(12) 즉, 피부(10)의 표면에서 반사되어 반사광(22)을 생성하거나, 피부(10)의 내부 즉, 표피층(14)과 진피층(16)에 의해 산란된다.
실사 피부 표현을 위한 렌더링(rendering)은 피부의 각 계층에 따른 광원의 물리적 확산, 분산 효과를 3 차원 화면에 표현하는 것으로, 물리적 개념이 적용된 실사 피부를 실시간으로 표현하기 위한 기법을 의미한다. 렌더링은 2 차원의 화상에 광원, 위치, 색상 등 외부의 정보를 고려하여 사실감을 불어넣어서 3 차원의 화상을 만드는 과정을 의미한다.
오일층(12)은 피부 표면이 세밀하게 거칠기 때문에, 표피의 유분층에 의한 반사는 거울과 같은 반사가 아니다. 오일층(12)은 하나의 입사각과 반사각을 가지게 되고, 이것을 표현하기 위하여, 양방향 반사 분포 함수(BRDF) 방식을 사용한다. 이것은 렌더링의 마지막 렌더패스(renderpass)에서 스펙큘러(specular) 형태로 쉐이더(shader) 함수에서 적용된다.
표피층(14)과 진피층(16)에서의 빛의 산란 효과를 처리하기 위하여, 여러 장의 광휘 텍스쳐를 생성하여 확산 프로파일(diffusion profile)이라는 물리적 산란을 표현하기 위한 기법을 적용한다. 확산 프로파일은 반투명의 산란도가 높은 표면 아래에서 빛이 확산되는 경우, 빛의 산란을 추정하는 방법이다. 일 예로 확산 프로파일은 빛의 중심에서의 거리와 각도에 대한 함수로, 얼마나 많은 빛이 나오는지 알려준다. 이러한 확산 프로파일은 색상에 매우 의존적이다. 예컨대, 빨간색은 녹색과 파란색 보다 휠씬 멀리 산란된다. 학자들은 피부에 이론적으로 150 색상 영역을 시뮬레이트하는 스펙트럼 모델을 구현하였다. 그러나 이는 현실적으로 많은 렌더패스(renderpass)를 거치게 되므로, 현실적이지 못하여 일반적으로 RGB 광확산(light diffusion)을 통하여 렌더링한다.
이러한 확산 프로파일은 알고리즘의 특성상, 광휘 텍스쳐(irradiance texture)를 순차적으로 생성해야 하며, 최종 렌더링 단계에서 가우시안 필터(gaussian filter)를 적용하여 광휘 텍스쳐를 합성하는 형식으로 피부를 실사 표현한다. 즉, 피부 계층을 구분하여 각 물리적 확산 프로파일을 적용하는 방식에서는 표현하고자 하는 광휘 텍스쳐를 여러 장 생성하고, 이 것을 가우시안 필터를 적용하고, 선형 결합하는 방식을 사용하고 있다. 이 과정에서 광휘 관련 텍스쳐를 순차, 선형적으로 생성하여야 한다. 이로 인하여, 광휘 텍스쳐 생성 및 변경에 많은 시간이 투자되어 빠른 렌더링에 한계점을 가지게 되므로, 병렬 프로세스로 생성하기에는 한계가 있다. 또한 이러한 복잡한 처리 과정 중, 특히 여러 장의 광휘 텍스쳐를 생성 및 정보를 채우는 과정에서 부하가 발생된다.
그러므로 BRDF 방식을 이용하여 실시간으로 3 차원 캐릭터에 대한 실사 피부 표현이 거의 불가능하다.
또 3 차원 캐릭터의 실사 피부 표현에 따라 발생되는 부하를 줄이기 위하여, 현재에는 LOD(Level Of Detail) 기법을 사용하거나, 광휘 처리 단계를 줄이는 방법을 사용한다. 그러나 이러한 방법 또한 표현되는 3 차원 캐릭터가 실사 피부라기 보다는 유사 피부적으로 표현되고 있는 실정이다. 또한 하나의 컨텐츠에서 복수 개의 얼굴 캐릭터를 실사 표현하고자 할 경우에, 처리 속도 상의 문제가 발생되어 부하 문제가 더욱 부각되고 있다.
본 발명의 목적은 3 차원 캐릭터의 극사실적인 표현을 위해 범용 그래픽 프로세싱 유닛을 이용하여 3 차원 캐릭터의 실사 피부 표현을 처리하는 3 차원 캐릭터 렌더링 시스템 및 그의 처리 방법을 제공하는 것이다.
본 발명의 다른 목적은 범용 그래픽 프로세싱 유닛을 이용하여 실시간으로 복수 개의 3 차원 캐릭터들의 실사 피부 표현을 병렬 처리하기 위한 3 차원 캐릭터 렌더링 시스템 및 그 처리 방법을 제공하는 것이다.
상기 목적들을 달성하기 위한, 본 발명의 3 차원 캐릭터 렌더링 시스템은 3 차원 캐릭터의 얼굴 피부의 각 계층에 대한 이미지를 범용 그래픽 프로세싱 유닛을 이용하여 렌더링 처리하는데 그 한 특징이 있다. 이와 같은 본 발명의 3 차원 캐릭터 렌더링 시스템은 범용 그래픽 프로세싱 유닛을 이용하여 렌더링 처리함으로써, 3 차원 캐릭터를 실시간으로 실사 피부 표현이 가능하고, 컨텐츠에 포함되는 복수 개의 3 차원 캐릭터들에 대한 실사 피부 표현의 병렬 처리가 가능하다.
이 특징에 따른 본 발명의 3 차원 캐릭터 렌더링 시스템은, 3 차원 캐릭터 모델의 피부 계층에 따른 단계별로 광휘 텍스쳐를 생성하여 순차적으로 블러 처리하는 복수 개의 광휘 처리 모듈들과; 화면 좌표와 이미지 좌표를 맵핑하여 스트레치 처리된 이미지 데이터를 생성하고, 전처리로 스트레치 새도맵을 생성하여 상기 광휘 처리 모듈들 각각에서 광휘 텍스쳐를 블러 처리하도록 전처리하는 스트레치 처리 모듈 및; 블러 처리된 광휘 텍스쳐들을 상기 광휘 처리 모듈들로부터 받아서 선형 결합하고, 선형 결합된 광휘 텍스쳐를 블러 합성 함수, 스펙큘러 함수, 백 텍스쳐 복사를 순차적으로 처리하여 최종 텍스쳐를 생성, 출력하는 최종 처리 모듈을 포함하되; 상기 광휘 처리 모듈, 상기 스트레치 처리 모듈 및 상기 최종 처리 모듈 각각은 범용 그래픽 프로세싱 유닛 모듈로 구비된다.
이 특징의 한 실시예에 있어서, 상기 광휘 처리 모듈은; 3 차원 캐릭터에 대한 광휘 텍스쳐를 생성, 저장하는 광휘 텍스쳐부와; 이미지 좌표를 생성된 광휘 텍스쳐 좌표로 맵핑하는 이미지 좌표 맵퍼부 및; 맵핑된 광휘 텍스쳐를 가우시안 커널(gaussian Kernel)을 사용하여 블러(blur) 처리하는 광휘 처리 함수부를 포함한다.
다른 실시예에 있어서, 상기 스트레치 처리 모듈은; 각각의 텍스쳐를 U 축 또는 V 축 방향으로 스트레치 처리하는 스트레치 처리 함수부와; 화면 좌표와 스트레치 U 이미지 데이터와 스트레치 V 이미지 데이터의 이미지 좌표를 맵핑하는 좌표 맵퍼부 및; 범용 그래픽 프로세싱 유닛 모듈의 리소스(resource)인 스트레치 U 새도맵과 스트레치 V 새도맵을 생성하는 스트레치 새도맵 함수부를 포함한다.
또 다른 실시예에 있어서, 상기 최종 처리 모듈은; 상기 광휘 처리 모듈들로부터 블러 처리된 광휘 텍스쳐들을 받아서 선형 결합하는 선형 결합부와; 상기 선형 결합부로부터 선형 결합된 광휘 텍스쳐를 블러 합성 함수, 스펙큘러 함수, 백 텍스쳐 복사를 순차적으로 처리하여, 최종 백 텍스처를 생성하고, 최종 백 텍스처로부터 최종 텍스쳐를 생성하여 출력하는 최종 처리 함수부를 포함한다.
본 발명의 다른 특징에 따르면, 3 차원 캐릭터 렌더링 시스템의 처리 방법이 제공된다.
이 특징에 따른 3 차원 캐릭터 렌더링 시스템의 처리 방법은, 범용 그래픽 프로세싱 유닛 모듈을 이용하여 3 차원 캐릭터의 피부 계층에 따른 단계별 이미지로부터 텍스쳐를 스트레치 처리하는 전처리 단계와; 범용 그래픽 프로세싱 유닛 모듈을 이용하여 단계별 이미지로부터 광휘 텍스쳐를 생성, 처리하는 광휘 처리 단계 및; 범용 그래픽 프로세싱 유닛 모듈을 이용하여 광휘 텍스쳐로부터 실사 피부가 표현된 최종 텍스쳐를 생성하여 실시간으로 출력하도록 처리하는 최종 처리 단계를 포함한다.
이 특징의 한 실시예에 있어서, 상기 전처리 단계는; 3 차원 캐릭터의 얼굴 이미지 텍스쳐를 범용 그래픽 프로세싱 유닛 모듈의 스트레치 버퍼에 렌더링하고; 이어서 범용 그래픽 프로세싱 유닛 모듈의 스트레치 버퍼 및 임시 버퍼를 이용하여 스트레치 U 처리 함수 및 스트레치 V 처리 함수를 복수 회 반복 처리하여, U 축 및 V 축 방향으로 스트레치된 텍스쳐를 출력한다.
다른 실시예에 있어서, 상기 광휘 처리 단계는; 3 차원 캐릭터의 얼굴 이미지 텍스쳐를 범용 그래픽 프로세싱 유닛 모듈의 화면 버퍼에 렌더링하고; 이어서 범용 그래픽 프로세싱 유닛 모듈의 임시 버퍼와 스트레치 버퍼 및 광휘 버퍼를 이용하여 광휘 처리 함수 및 스트레치 새도맵 처리 함수를 복수 회 반복 처리하여 단계별로 광휘 이미지를 생성, 처리한다.
또 다른 실시예에 있어서, 상기 최종 처리 단계는; 상기 광휘 처리 단계에서 처리된 단계별 광휘 이미지를 스트레치 버퍼로부터 받아서 선형 결합하고; 가우시안 블러를 적용하여 블러 합성 함수를 처리하여 최종 백 텍스쳐를 생성하고; 최종 백 텍스쳐를 스펙큘러 함수를 이용하여 빛의 좌표, 3 차원 맵핑시켜서 스펙큘러를 계산하고; 이어서 스펙큘러, 이미지 좌표계로 맵핑하여 실사 피부가 표현된 최종 텍스쳐를 생성하여 출력한다.
본 발명의 또 다른 특징에 따르면, 복수 개의 3 차원 캐릭터를 위한 렌더링을 병렬 처리하는 3 차원 캐릭터 렌더링 시스템이 제공된다.
이 특징에 따른 본 발명의 복수 개의 3 차원 캐릭터를 위한 렌더링을 병렬 처리하는 3 차원 캐릭터 렌더링 시스템은, 컨텐츠에 포함된 복수 개의 3 차원 캐릭터들 각각의 피부에 대한 이미지를 범용 그래픽 프로세싱 유닛을 이용하여 렌더링 처리하고, 자신의 스레드 풀(thread pool)을 인식하기 위한 스레드 인식자를 갖고, 스레드 풀을 처리하는 복수 개의 실사 피부 처리 모듈 및; 상기 실사 피부 처리 모듈로부터 상기 스레드 인식자를 인식하여 상기 실사 피부 처리 모듈들에 대한 스레드 풀을 관리하는 스레드 풀 모니터를 포함하여, 복수 개의 3 차원 캐릭터들 각각의 렌더링을 병렬 처리한다.
이 특징의 한 실시예에 있어서, 상기 실사 피부 처리 모듈은; 3 차원 캐릭터 모델의 피부 계층에 따른 단계별로 광휘 텍스쳐를 생성하여 순차적으로 블러 처리하는 복수 개의 광휘 처리 모듈들과; 화면 좌표와 이미지 좌표를 맵핑하여 스트레치 처리된 이미지 데이터를 생성하고, 전처리로 스트레치 새도맵을 생성하여 상기 광휘 처리 모듈들 각각에서 광휘 텍스쳐를 블러 처리하도록 전처리하는 스트레치 처리 모듈 및; 블러 처리된 광휘 텍스쳐들을 상기 광휘 처리 모듈들로부터 받아서 선형 결합하고, 선형 결합된 광휘 텍스쳐를 블러 합성 함수, 스펙큘러 함수, 백 텍스쳐 복사를 순차적으로 처리하여 최종 텍스쳐를 생성, 출력하는 최종 처리 모듈을 더 포함한다.
다른 실시예에 있어서, 상기 스레드 풀 모니터는; 상기 실사 피부 처리 모듈들 각각이 처리하는 각 캐릭터 마다의 범용 그래픽 프로세싱 유닛 함수로부터의 반응을 감지하여, 더 이상 실사 피부에 대한 상기 실사 피부 처리 모듈이 할당될 수 없는 한계치를 판단하여 해당 실사 피부 처리 모듈이 동작할 수 없다고 판단되면, 어플리케이션으로 알려준다.
본 발명의 또 다른 특징에 따르면, 복수 개의 3 차원 캐릭터를 위한 렌더링을 병렬 처리하는 3 차원 캐릭터 렌더링 시스템의 처리 방법이 제공된다.
이 특징에 따른 본 발명의 3 차원 캐릭터 렌더링 시스템의 처리 방법은, 상기 3 차원 캐릭터 렌더링 시스템의 스레스 풀 모니터를 활성화시켜서 복수 개의 실사 피부 처리 모듈들 각각에 대한 스레드 풀을 생성하는 단계와; 상기 실사 피부 처리 모듈들 각각에 대한 스레드 인식자를 배정하는 단계와; 상기 실사 피부 처리 모듈들의 리소스를 초기화하는 단계와; 상기 스레스 풀 모니터로부터 상기 실사 피부 처리 모듈들의 스레드에 출력 시작을 알리는 단계와; 상기 스레스 풀 모니터로 상기 실사 피부 처리 모듈들 각각에 대한 스레드 풀 신호를 감시하는 단계와; 상기 스레스 풀 모니터가 상기 실사 피부 처리 모듈들 각각의 최종 텍스쳐에 대한 갱신 상태를 인지하는 단계와; 상기 스레스 풀 모니터가 상기 실사 피부 처리 모듈의 정상 동작 상태를 판별하기 위해 상기 실사 피부 처리 모듈들 각각으로부터 스레드 신호의 유무를 판별하는 단계 및; 판별 결과, 스레드 신호가 있으면, 최종 컨텐츠의 렌더패스를 처리하여 출력하는 단계를 포함한다.
이 특징의 한 실시예에 있어서, 상기 방법은; 판별 결과, 스레드 신호가 없으면, 어플리케이션으로 오류가 발생되었음을 알려주는 단계를 더 포함한다.
상술한 바와 같이, 본 발명의 3 차원 캐릭터 렌더링 시스템은 3 차원 캐릭터의 실사 피부를 표현하기 위하여, 광휘 텍스쳐를 DirectX 나 OpenGL 등과 같은 렌더링 라이브러리의 렌더패스를 거치지 않고, 피부의 각 계층에 대한 분산 이미지를 CUDA(Computer Unified Device Architecture)와 같은 범용 그래픽 프로세싱 유닛(GPGPU)을 이용하여 광휘 텍스쳐를 생성, 처리함으로써, 렌더링 처리를 위한 시스템의 부하를 줄일 수 있으며, 이를 통해 실시간으로 실사 피부 표현이 가능하다.
또 본 발명의 3 차원 캐릭터 렌더링 시스템은 범용 그래픽 프로세싱 유닛(GPGPU)을 이용하여, 렌더패스를 줄이고, 쉐이더 함수 보다는 GPGPU 함수를 사용함으로써, 다양한 캐릭터 중심의 컨텐츠에서 좀 더 빠른 실시간으로 캐릭터의 실사 표현 처리가 가능하도록 하는 처리할 수 있다.
또한 본 발명의 3 차원 캐릭터 렌더링 시스템은 컨텐츠에 포함된 복수 개의 캐릭터들에 대한 실사 피부 표현을 병렬 처리함으로써, 다수의 캐릭터들에 대한 실사 피부 표현을 좀 더 빠르게 하여 폭 넓은 컨텐츠에 활용 가능하고, 캐릭터 관련 산업의 발전에 큰 영향을 미칠 수 있다.
도 1은 실제 사람의 피부 계층에 따른 빛의 반사 및 확산 상태를 나타내는 도면;
도 2는 본 발명에 따른 3 차원 캐릭터의 실사 피부 표현을 위해 렌더링 처리하는 3 차원 캐릭터 렌더링 시스템의 구성을 도시한 블럭도;
도 3은 본 발명에 따른 3 차원 캐릭터의 실사 피부 렌더링 처리 수순을 도시한 흐름도;
도 4는 도 3에 도시된 전처리 처리 루틴의 처리 수순을 나타내는 흐름도;
도 5는 도 3에 도시된 광휘 처리 루틴의 처리 수순을 나타내는 흐름도;
도 6은 도 3에 도시된 최종 처리 루틴의 처리 수순을 나타내는 흐름도;
도 7은 본 발명의 다른 실시예에 따른 병렬 처리 방식에 의한 3 차원 캐릭터 렌더링 시스템의 구성을 도시한 블럭도; 그리고
도 8은 본 발명의 다른 실시예에 따른 병렬 처리 방식에 의한 3 차원 캐릭터의 실사 피부 렌더링 처리 수순을 도시한 흐름도이다.
본 발명의 실시예는 여러 가지 형태로 변형될 수 있으며, 본 발명의 범위가 아래에서 서술하는 실시예로 인해 한정되어지는 것으로 해석되어서는 안된다. 본 실시예는 당업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서 도면에서의 구성 요소의 형상 등은 보다 명확한 설명을 강조하기 위해서 과장되어진 것이다.
이하 첨부된 도 2 내지 도 8을 참조하여 본 발명의 실시예를 상세히 설명한다.
도 2는 본 발명에 따른 3 차원 캐릭터의 실사 피부 표현을 위해 렌더링 처리하는 3 차원 캐릭터 렌더링 시스템의 구성을 도시한 블럭도이다.
도 2를 참조하면, 본 발병의 3 차원 캐릭터 렌더링 시스템(100)은 3 차원 캐릭터를 실시간으로 실사 피부 표현하기 위하여, 3 차원 캐릭터의 얼굴 피부에 대한 이미지를 범용 그래픽 프로세싱 유닛(General Purpose Graphic Processing Unit : GPGPU)을 이용하여 렌더링 처리한다.
따라서 본 발명의 3 차원 캐릭터 렌더링 시스템(100)은 3 차원 캐릭터의 실사 피부를 표현하기 위하여, 광휘 텍스쳐를 DirectX 나 OpenGL 등과 같은 렌더링 라이브러리의 렌더패스를 거치지 않고, 피부의 각 계층에 대한 분산 이미지를 CUDA(Computer Unified Device Architecture)와 같은 범용 그래픽 프로세싱 유닛(GPGPU)을 이용하여 광휘 텍스쳐를 생성, 처리한다.
이를 위하여 본 발명에서는 광휘 텍스쳐가 범용 그래픽 프로세싱 유닛(GPGPU)과 연동되어야 하며, 광휘 텍스쳐의 이미지 처리를 위한 범용 그래픽 프로세싱 유닛(GPGPU) 함수가 필요하게 된다. 즉, 렌더패스에서의 쉐이더(shader)의 기능을 범용 그래픽 프로세싱 유닛(GPGPU) 함수가 대처하게 되는 처리 구조를 갖는다. 이 때, 쉐이더(Shader) 기능은 범용 그래픽 프로세싱 유닛(GPGPU) 함수가 대처함으로써, 렌더링과 관련된 처리 과정을 빠르고 정밀하게 표현하도록 하는 효과가 있다.
또한 본 발명은 광휘 처리를 위한 텍스쳐와 같은 텍스쳐 리소스를 범용 그래픽 프로세싱 유닛(GPGPU)과 연동되도록 생성함으로써, 좀 더 빠르게 실시간 처리를 위한 구조를 적용한다. 이와 같이 렌더패스를 거치지 않고, 범용 그래픽 프로세싱 유닛(GPGPU)에서 광휘 처리가 가능하도록 함으로써, 게임, 애니메이션 및 기타 다양한 컨텐츠에 적용함에 있어서 개선된 렌더링 속도를 제공하게 된다.
구체적으로, 본 발병의 3 차원 캐릭터 렌더링 시스템(100)은 복수 개의 광휘 처리 모듈(110)과, 스트레치 처리 모듈(120) 및, 최종(final) 처리 모듈(130)을 포함한다. 복수 개의 광휘 처리 모듈(110)과, 스트레치 처리 모듈(120) 및, 최종 처리 모듈(130)들 각각은 광휘 텍스쳐를 연동 처리하는 범용 그래픽 프로세싱 유닛(GPGPU) 모듈로 구비된다.
광휘 처리 모듈(irradiance GPU module)(110)은 3 차원 캐릭터에 대한 광휘 텍스쳐를 생성, 저장하는 광휘 텍스쳐부(116)와, 이미지 좌표를 생성된 광휘 텍스쳐 좌표로 맵핑하는 이미지 좌표 맵퍼부(112) 및, 맵핑된 광휘 텍스쳐를 블러(blur) 처리하는 광휘 처리 함수부(114)를 포함한다. 광휘 처리 함수부(114)는 U 축 방향 블러를 처리하는 가우시안 커널(gaussian Kernel) U 블러 함수와, V 축 방향 블러를 처리하는 가우시안 커널 V 블러 함수를 구비한다.
여기서 광휘 텍스쳐는 3 차원 캐릭터를 구성하는 각 폴리곤(polygon)에 해당하는 광휘 텍스쳐를 최적의 스트레치 이미지로부터 획득하여 생성하고, 생성된 광휘 텍스쳐를 광휘 텍스쳐부(116)에 저장한다. 이 때, 이미지 좌표 맵퍼부(112)는 이미지 좌표를 광휘 텍스쳐 좌표로 매핑 처리하면, 일부에 블러(blur)가 발생된다. 그러므로 광휘 처리 함수부(114)는 각각의 함수를 통해 맵핑된 광휘 텍스쳐를 블러 처리한다. 블러 처리된 광휘 텍스쳐는 광휘 텍스쳐부(116)에 저장되어, 가우시안 커널을 이용하여 최종적으로 광휘를 조절한다.
이러한 광휘 처리 모듈(110)은 3 차원 캐릭터의 텍스쳐 획득 및 매핑을 텍스쳐 맵의 생성 과정없이 그래픽 프로세싱 유닛(GPU) 기반으로 처리한다. 따라서 복수 개의 광휘 처리 모듈(110)들은 상술한 과정들을 순차적으로 처리하여 각 광휘 텍스쳐를 처리한다. 이 때, 각 광휘 처리 모듈(110)로부터 출력되는 광휘 텍스쳐를 전처리 모듈 즉, 스트레치 처리 모듈(120)에서 블러 처리되도록 한다.
광휘 처리 모듈(110)은 스트레치 U 새도맵을 기준으로 하여 가우시안 커널을위한 U 축 방향의 블러를 처리하고, 스트레치 V 새도맵을 기준으로 하여 가우시안 커널을위한 V 축 방향의 블러를 처리한다. 따라서 광휘 처리 모듈(110)은 범용 그래픽 프로세싱 유닛(GPGPU) 모듈에 연동된 텍스쳐 데이터에 단계별 광휘 이미지 데이터를 생성한다.
스트레치 처리 모듈(stretch GPU module)(120)은 전처리 모듈로서, U 축 및 V 축 방향으로 스트레치 처리된 스트레치 U 이미지 데이터와 스트레치 V 이미지 데이터를 생성하고, 전처리로 스트레치 U 새도맵과 스트레치 U 새도맵을 생성한다. 스트레치 U 이미지 데이터와 스트레치 V 이미지 데이터는 스트레치 처리 모듈(120)이 화면 좌표와 이미지 좌표를 맵핑하여 생성된다. 또 스트레치 처리 모듈(120)은 범용 그래픽 프로세싱 유닛(GPGPU) 모듈에 연동된 스트레치 U 텍스쳐와 스트레치 V 텍스쳐 데이터에 대해 작업을 처리한다.
이 실시예에서 스트레치 처리 모듈(120)은 U 축 방향으로 스트레치 처리하는 스트레치 U 처리 모듈(stretch U GPU module)과, V 축 방향으로 스트레치 처리하는 스트레치 V 처리 모듈(stretch V GPU module)으로 구비된다.
각 스트레치 처리 모듈(120)은 스트레치 처리 함수부(122)와, 좌표 맵퍼부(124) 및, 스트레치 새도맵 함수부(126)를 포함한다. 각 스트레치 처리 모듈(120)의 스트레치 처리 함수부(122)에는 스트레치 U 함수부 또는 스트레치 V 함수부를 구비한다.
스트레치 처리 함수부(122)는 각각의 텍스쳐를 U 축 또는 V 축 방향으로 스트레치 처리한다. 좌표 맵퍼(mapper)부(124)는 화면 좌표와 스트레치 U 이미지 데이터와 스트레치 V 이미지 데이터의 이미지 좌표를 맵핑한다.
그리고 스트레치 새도맵(shadow map) 함수부(126)는 범용 그래픽 프로세싱 유닛(GPGPU)의 리소스(resource)인 스트레치 U 새도맵과 스트레치 V 새도맵을 생성한다. 각 스트레치 새도맵(shadow map) 함수부(126)에는 스트레치 U 새도맵 함수부 또는 스트레치 V 새도맵 함수부를 구비한다. 스트레치 U 새도맵 함수부와 스트레치 V 새도맵 함수부 각각은 텍스쳐 맵핑으로부터 3 차원 공간에 맵핑시키는 과정에서의 왜곡을 처리하기 위하여, 스트레치 U 새도맵과 스트레치 V 새도맵을 각각 분리한다.
또 스트레치 처리 모듈(120)은 도면에는 도시되지 않았으나, 임시 버퍼와 스트레치 버퍼를 구비한다. 임시 U 블러 버퍼는 범용 그래픽 프로세싱 유닛(GPGPU)에 할당되어, U 스트레치를 위해 블러 커널에 대한 임시 텍스쳐 버퍼로 사용되고, V 블러 버퍼는 범용 그래픽 프로세싱 유닛(GPGPU)에 할당되어, V 스트레치를 위해 블러 커널에 대한 텍스쳐 버퍼, 최종 패스의 가우시안 블러에 사용된다.
따라서 스트레치 처리 모듈(120)은 광휘 처리 모듈(110) 각각에서 처리된 광휘 텍스쳐를 블러(blur) 처리하도록 전처리한다.
그리고 최종 처리 모듈(final GPU module)(130)은 선형 결합부(132)와, 최종 처리 함수부(140)를 포함한다. 최종 처리 함수부(140)는 블러 합성 함수를 처리하는 블러 합성 함수부와(142), 스펙큘러 함수를 처리하는 스펙큘러 함수부(144), 백 텍스쳐를 복사하는 백 텍스쳐 복사부(146)와, 최종 백 텍스쳐를 생성하는 최종 백 텍스처부(148) 및, 최종 텍스쳐를 생성하여 화면에 출력하는 최종 텍스쳐부(149)를 포함한다.
최종 처리 모듈(130)은 블러 처리된 광휘 텍스쳐들을 광휘 처리 모듈(110)들로부터 받아서 선형 결합부(132)를 통해 선형 결합한다. 최종 처리 함수부(140)는 선형 결합부(132)에서 선형 결합된 광휘 텍스쳐를 블러 합성 함수, 스펙큘러 함수, 백 텍스쳐 복사를 순차적으로 처리하여, 최종 백 텍스처를 생성하고, 이를 최종 텍스쳐로 생성하여 출력한다.
이러한 최종 처리 모듈(130)은 범용 그래픽 프로세싱 유닛(GPGPU) 함수로 각 단계에 광휘 이미지 데이터에 대한 가우시안 블러를 적용하여 확산 프로파일 효과를 나타나게 한다. 또 최종 처리 모듈(130)은 BRDF 스펙큘러에 대한 효과도 최종 결과 이미지에 맵핑시킨다. 또 최종 처리 모듈(130)은 범용 그래픽 프로세싱 유닛(GPGPU)에 연동된 최종 텍스쳐 데이터에 대하여 작업을 처리한다. 따라서 최종 처리 모듈(130)은 최종 마지막 실사 피부 표현된 범용 그래픽 프로세싱 유닛(GPGPU) 상의 텍스쳐를 생성하여 화면에 출력한다.
상술한 바와 같이, 본 발명의 3 차원 캐릭터 렌더링 시스템(100)은 범용 그래픽 프로세싱 유닛(GPGPU)을 이용하여 랜더패스 과정을 최소화하고, 광휘 처리, 스트레치 처리 및 최종 처리하여, 실시간으로 실사 피부 표현을 처리할 수 있다.
도 3은 본 발명에 따른 3 차원 캐릭터의 실사 피부 렌더링 처리 수순을 도시한 흐름도이고, 도 4는 도 3에 도시된 전처리 처리 루틴의 처리 수순을 나타내는 흐름도이고, 도 5는 도 3에 도시된 광휘 처리 루틴의 처리 수순을 나타내는 흐름도이며, 도 6은 도 3에 도시된 최종 처리 루틴의 처리 수순을 나타내는 흐름도이다. 이 수순들은 3 차원 캐릭터 렌더링 시스템(100)이 처리하는 프로그램으로, 범용 그래픽 프로세싱 유닛(GPGPU)을 이용하여 처리한다.
먼저 도 3을 참조하면, 본 발명의 3 차원 캐릭터 렌더링 시스템(100)은 3 차원 캐릭터의 실사 피부 렌더링을 위하여, 단계 S200에서 범용 그래픽 프로세싱 유닛(GPGPU) 모듈을 이용하여 전처리 과정으로 텍스쳐를 스트레치를 처리하고, 단계 S230에서 범용 그래픽 프로세싱 유닛(GPGPU) 모듈을 이용하여 광휘 텍스쳐를 생성, 처리하며, 이어서 단계 S250에서 범용 그래픽 프로세싱 유닛(GPGPU) 모듈을 이용하여 최종 텍스쳐를 처리한다.
구체적으로, 스트레치 처리 루틴(S200)은 도 4에 도시된 바와 같이, 단계 S202에서 얼굴 3 차원 모델의 텍스쳐를 범용 그래픽 프로세싱 유닛(GPGPU) 모듈 즉, 스트레치 처리 모듈(120)의 제 1 스트레치 버퍼(StretchBuffer0)에 렌더링하고, 이어서 단계 S204 내지 단계 S218에서 스트레치 U 처리 함수 및 스트레치 V 처리 함수(S1)를 복수 회 반복 처리한다. 이 때, 제 1 스트레치 버퍼(StretchBuffer0)에 렌더링하는 것은 3 차원 좌표를 2 차원 좌표로 렌더링함을 의미한다.
즉, 단계 S204에서 제 1 스트레치 버퍼(StretchBuffer0)를 소스로 사용하여 스트레치 U 새도맵 함수를 처리하여 임시 버퍼(임시Buffer)에 결과를 출력한다. 단계 S206에서 임시 버퍼(임시Buffer)를 소스로 사용하여 U 축 방향으로 스트레치된 텍스쳐를 스트레치 V 새도맵 함수를 처리하여 V 축 방향으로 스트레치된 텍스쳐를 제 2 스트레치 버퍼(StretchBuffer1)에 출력한다.
단계 S208에서 제 2 스트레치 버퍼(StretchBuffer1)로부터 스트레치 U 새도맵 함수를 처리하여 임시 버퍼(임시Buffer)에 결과를 출력한다. 단계 S210에서 임시 버퍼(임시Buffer)를 소스로 사용하여 U 축 방향으로 스트레치된 텍스쳐를 스트레치 V 새도맵 함수를 처리하여 V 축 방향으로 스트레치된 텍스쳐를 제 3 스트레치 버퍼(StretchBuffer2)에 출력한다.
단계 S212에서 제 3 스트레치 버퍼(StretchBuffer2)로부터 스트레치 U 새도맵 함수를 처리하여 임시 버퍼(임시Buffer)에 결과를 출력한다. 단계 S214에서 임시 버퍼(임시Buffer)를 소스로 사용하여 U 축 방향으로 스트레치된 텍스쳐를 스트레치 V 새도맵 함수를 처리하여 V 축 방향으로 스트레치된 텍스쳐를 제 4 스트레치 버퍼(StretchBuffer3)에 출력한다.
단계 S216에서 제 4 스트레치 버퍼(StretchBuffer3)로부터 스트레치 U 새도맵 함수를 처리하여 임시 버퍼(임시Buffer)에 결과를 출력하고, 이어서 단계 S218에서 임시 버퍼(임시Buffer)를 소스로 사용하여 U 축 방향으로 스트레치된 텍스쳐를 스트레치 V 새도맵 함수를 처리하여 V 축 방향으로 스트레치된 텍스쳐를 제 5 스트레치 버퍼(StretchBuffer4)에 출력하여 스트레치 처리 함수를 전처리한다.
따라서 이 실시예에서의 스트레치 처리 루틴(S200)은 기존 방식에서 스트레치 전처리를 위해 9 회의 렌더패스(renderpass)를 처리하던 부분을 1 회의 렌더패스(S202)와 4 회의 범용 그래픽 프로세싱 유닛(GPGPU) 함수 즉, 스트레치 처리 함수(S204 ~ S218)를 통하여 이미지 처리함으로써, 부하를 줄일 수 있다.
또 광휘 처리 루틴(S230)은 도 5에 도시된 바와 같이, 단계 S232에서 얼굴 3 차원 모델의 텍스쳐를 범용 그래픽 프로세싱 유닛(GPGPU) 모듈 즉, 광휘 처리 모듈(110)의 화면 버퍼에 렌더링하고, 이어서 단계 S234 내지 단계 S244에서 광휘 처리 함수 및 스트레치 처리 함수(S2)를 복수 회 반복 처리한다.
구체적으로 단계 S234에서 화면 버퍼와 제 1 스트레치 버퍼(StretchBuffer0)를 소스로 사용하여 스트레치 U 새도맵 함수를 처리하여 임시 버퍼에 결과를 출력한다. 단계 S236에서 임시 버퍼와 제 1 스트레치 버퍼(StretchBuffer0)를 소스로 사용하여 스트레치 V 새도맵 함수를 처리하여 제 1 광휘 버퍼(광휘 버퍼0)에 출력한다. 이 후 단계 S234 및 단계 S236 과정을 복수 회 반복 처리한다. 이 실시예에서는 단계 S234 및 단계 S236 과정을 5 회 반복 처리한다.
즉, 단계 S238에서 제 1 광휘 버퍼(광휘 버퍼0)와 제 2 스트레치 버퍼(StretchBuffer1)를 소스로 사용하여 스트레치 U 새도맵 함수를 처리하여 임시 버퍼에 결과를 출력한다. 단계 S240에서 임시 버퍼와 제 2 스트레치 버퍼(StretchBuffer1)를 소스로 사용하여 스트레치 V 새도맵 함수를 처리하여 제 2 광휘 버퍼(광휘 버퍼1)에 결과를 출력한다.
이 후, 도면에는 도시되지 않았지만, 제 2 내지 제 3 광휘 버퍼, 제 3 내지 제 4 스트레치 버퍼를 순차적으로 소스로 사용하여 스트레치 U 새도맵 함수 및 스트레치 V 새도맵 함수를 각각 처리하여 임시 버퍼에 결과를 출력하고, 이를 통해 제 3 또는 제 4 광휘 버퍼에 결과를 출력한다.
그리고 단계 S242에서 제 4 광휘 버퍼(광휘 버퍼3)와 제 5 스트레치 버퍼(StretchBuffer4)를 소스로 사용하여 스트레치 U 새도맵 함수를 처리하여 임시 버퍼에 결과를 출력한다. 이어서 단계 S244에서 임시 버퍼와 제 5 스트레치 버퍼(StretchBuffer4)를 소스로 사용하여 스트레치 V 새도맵 함수를 처리하여 제 5 광휘 버퍼(광휘 버퍼4)에 결과를 출력한다.
따라서 이 실시예에서의 광휘 처리 루틴(S230)은 기존 방식에서 광휘 처리를위해 11 회의 렌더패스를 처리하던 부분을 1 회의 렌더패스(S232)와 5 회의 범용 그래픽 프로세싱 유닛(GPGPU) 함수 즉, 광휘 처리 함수(S234 ~ S244)를 통하여 단계별로 광휘 이미지를 생성, 처리함으로써, 부하를 줄일 수 있다.
그리고 최종 처리 루틴(S250)은 도 6에 도시된 바와 같이, 각 단계에 따른 광휘 이미지에 대해 가우시안 블러를 적용하여 블러 합성 함수를 처리(S4)하고, BRDF 스펙큘러 함수를 처리(S5)한다. 즉, 단계 S252에서 광휘 처리 루틴(S230)에서 처리된 광휘 이미지를 제 1 내지 제 5 스트레치 버퍼(StretchBuffer0 ~ StretchBuffer4)로부터 받아서 선형 결합하고, 가우시안 블러 합성 처리하여 최종 백 텍스쳐(FinalBackTexture)를 생성하고, 단계 S254에서 최종 백 텍스쳐(FinalBackTexture)를 BRDF 스펙큘러 함수를 이용하여 빛의 좌표, 3 차원 맵핑시키고, 단계 S256에서 프레넬(Fresnel) 효과를 위한 스펙큘러를 계산한다. 이어서 단계 S258에서 스펙큘러, 이미지 좌표계로 맵핑하여 최종 마지막 실사 피부가 표현된 최종 텍스쳐를 생성한다.
따라서 이 실시예의 최종 처리 루틴(S250)은 범용 그래픽 프로세싱 유닛(GPGPU) 함수와 연동하여 최종 텍스쳐 데이터에 대한 작업을 처리한다. 즉, 최종 처리 루틴(S250)은 범용 그래픽 프로세싱 유닛(GPGPU) 함수로 각 단계의 광휘 이미지에 대한 가우시안 블러를 적용하여 확산 프로파일 효과를 나타내고, BRDF 스펙큘러에 대한 효과도 최종 결과 이미지에 맵핑시켜서 실사 피부가 표현된 텍스쳐를 생성한다.
계속해서 도 7은 본 발명의 다른 실시예에 따른 병렬 처리 방식에 의한 3 차원 캐릭터 렌더링 시스템의 구성을 도시한 블럭도이다.
도 7을 참조하면, 이 실시예의 3 차원 캐릭터 렌더링 시스템(300)은 컨텐츠에 포함되는 복수 개의 3 차원 캐릭터들에 대한 실사 피부 표현을 하기 위하여, 3 차원 캐릭터의 얼굴 피부에 대한 이미지를 범용 그래픽 프로세싱 유닛(GPGPU)을 이용하여 렌더링 처리하는 복수 개의 실사 피부 처리 모듈(310)을 구비하고, 이들을 통해 병렬 처리한다.
이를 위해 이 실시예의 3 차원 캐릭터 렌더링 시스템(300)은 복수 개의 실사 피부 처리 모듈(310)과, 스레드 풀 모니터(330)를 포함한다.
구체적으로, 실사 피부 처리 모듈(310)은 범용 그래픽 프로세싱 유닛(GPGPU)을 이용하여 컨텐츠에 포함된 각각의 3 차원 캐릭터들의 실사 피부를 표현하도록 렌더링 처리한다. 이 실사 피부 처리 모듈(310)은 도 2의 구성 요소(312 ~ 316)들과, 자신의 실사 피부 처리 모듈(310)에 대한 스레드 풀(thread pool)을 인식하기 위한 스레드 인식자(318)를 포함한다. 즉, 실사 피부 처리 모듈(310)은 실사 피부 표현을 위해 광휘 처리하는 복수 개의 광휘 처리 모듈(312)들과, 스트레치 처리 모듈(314)과, 최종 처리 모듈(316) 및 스레드 인식자(318)를 포함한다. 이 실시예에서 광휘 처리 모듈(312), 스트레치 처리 모듈(314) 및 최종 처리 모듈(316)들 각각은 도 2에 도시된 것(110,120, 130)들과 그 기능과 구성이 동일하거나 대체로 유사하므로, 여기서 이들에 대한 구체적인 설명은 생략한다.
먼저, 스레드(thread)는 임의의 프로그램 특히, 프로세스(process) 내에서 실행되는 흐름의 단위로서, 한 프로세스에서 두 개 이상의 스레드를 사용하는 것을 멀티스레드(multi-thread)라고 한다. 스레드를 사용해 작업을 처리하는 방식 중 가장 간단한 방식은 한 개의 스레드를 생성하여 작업을 처리하게 한 후 그 스레드를 제거하는 것이다. 이 방식은 하나의 작업 당 하나의 스레드 만을 사용하며 TPR(thread per request)으로 불린다. TPR은 작업량이 많아질수록 그 처리를 위한 스레드들의 생성 및 제거 시간이 늘어나 작업을 수행하기 위한 시간은 상대적으로 줄어든다.
따라서 처리량(throughput)이 감소되는 문제가 발생하고, 이를 해결하기 위해 스레드 풀(thread pool) 방식을 사용한다. 스레드 풀 방식은 작업을 마친 스레드를 제거하지 않고 대기시켜, 다음 번 작업에 사용할 수 있도록 함으로써 스레드의 생성 및 삭제에 따른 오버헤드를 줄일 수 있다.
스레드 풀 방식은 작업이 빈번하게 발생되고, 처리 시간이 짧은 경우에 사용되는 방식으로서, 스레드 생성 및 삭제를 줄이기 위해 지정된 수만큼 스레드를 유지하고, 이 스레드들은 작업 수행과 대기를 반복하며 작업을 처리한다. 이 스레드 풀 방식은 작업당 한 스레드를 사용하는 기존의 TPR 방식에 비해 스레드 생성 및 삭제로 인한 오버헤드가 줄어들어 작업을 수행하기 위한 시간이 빨라지므로 처리량이 증가하게 된다. 즉, 기존의 TPR 방식은 작업량이 많아질수록 그 처리를 위한 스레드들의 생성 및 제거 시간이 늘어나게 되어, 작업을 수행하기 위한 시간은 상대적으로 줄어든다.
그러므로 실사 피부 처리 모듈(310)은 각각의 실사 피부(RealSkin) 단위의 범용 그래픽 프로세싱 유닛(GPGPU) 모듈에 대한 스레드 풀을 처리한다. 따라서 스레드 인식자(318)는 스레드 풀 모니터(330)로부터 각 실사 피부 처리 모듈(310)에 대한 스레드 풀(thread pool)을 인식하기 위한 인식자를 갖는다. 실사 피부 처리 모듈(310)은 자신의 실사 피부 표현을 처리하기 위한 동작에 대한 플래그(flag)를 각각 설정하고, 정상 동작 상태를 실시간으로 스레드 풀 모니터(330)로 제공한다.
그리고 스레드 풀 모니터(thread pool monitor)(330)는 실사 피부 처리 모듈(310)들 각각으로부터 신호 처리하도록 실사 피부 처리 모듈(310)들에 대한 스레드 풀을 관리한다. 스레드 풀 모니터(330)는 각 캐릭터 마다의 범용 그래픽 프로세싱 유닛(GPGPU) 함수로부터의 반응을 감지하여, 더 이상 실사 피부에 대한 실사 피부 처리 모듈(310)이 할당될 수 없는 한계치가 되었을 때, 실사 피부 처리 모듈(310)이 적용될 수 없어 동작할 수 없다고 판단하여 그 상황을 어플리케이션에 알린다.
그리고 도 8은 본 발명의 다른 실시예에 따른 병렬 처리 방식에 의한 3 차원 캐릭터의 실사 피부 렌더링 처리 수순을 도시한 흐름도이다. 이 수순은 도 7의 3 차원 캐릭터 렌더링 시스템(300)에 의해 처리된다.
도 8을 참조하면, 3 차원 캐릭터 렌더링 시스템(300)은 단계 S400에서 스레스 풀 모니터(330)를 시작시켜서 활성화하고, 단계 S402에서 실사 피부 처리 모듈(310)에 대한 스레드 풀을 생성한다.
단계 S404에서 실사 피부 처리 모듈(310)들 각각에 대한 스레드 인식자를 배정한다. 단계 S406에서 실사 피부 처리 모듈(310)들의 리소스를 초기화한다. 단계 S408에서 스레스 풀 모니터(330)로부터 실사 피부 처리 모듈(310)들의 스레드(thread)에 출력 시작을 알린다.
단계 S410에서 스레스 풀 모니터(330)로 각 실사 피부 처리 모듈(310)들에 대한 스레드 풀 신호를 감시한다. 단계 S412에서 스레스 풀 모니터(330)가 각 실사 피부 처리 모듈(310)들의 최종 텍스쳐에 대한 갱신 상태를 인지한다.
단계 S414에서 스레스 풀 모니터(330)가 실사 피부 처리 모듈(310)의 정상 동작 상태를 판별하기 위하여, 각각의 실사 피부 처리 모듈(310)들로부터 스레드 신호의 유무를 판별한다. 판별 결과, 스레드 신호가 없으면, 이 수순은 단계 S416으로 진행하여 오류가 발생되었음을 어플리케이션으로 알려준다. 그러나 스레드 신호가 있으면, 스레드가 정상 작동하는 것을 의미하므로, 이 수순은 단계 S418로 진행하여 렌더링 과정 즉, 최종 컨텐츠의 렌더패스를 처리하고, 이어서 단계 S420에서 최종 컨텐츠를 화면에 출력한다.
이상에서, 본 발명에 따른 3 차원 캐릭터 렌더링 시스템의 구성 및 작용을 상세한 설명과 도면에 따라 도시하였지만, 이는 실시예를 들어 설명한 것에 불과하며, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 다양한 변화 및 변경이 가능하다.

Claims (13)

  1. 3 차원 캐릭터 렌더링 시스템에 있어서:
    3 차원 캐릭터 모델의 피부 계층에 따른 단계별로 광휘 텍스쳐를 생성하여 순차적으로 블러 처리하는 복수 개의 광휘 처리 모듈들과;
    화면 좌표와 이미지 좌표를 맵핑하여 스트레치 처리된 이미지 데이터를 생성하고, 전처리로 스트레치 새도맵을 생성하여 상기 광휘 처리 모듈들 각각에서 광휘 텍스쳐를 블러 처리하도록 전처리하는 스트레치 처리 모듈 및;
    블러 처리된 광휘 텍스쳐들을 상기 광휘 처리 모듈들로부터 받아서 선형 결합하고, 선형 결합된 광휘 텍스쳐를 블러 합성 함수, 스펙큘러 함수, 백 텍스쳐 복사를 순차적으로 처리하여 최종 텍스쳐를 생성, 출력하는 최종 처리 모듈을 포함하되;
    상기 광휘 처리 모듈, 상기 스트레치 처리 모듈 및 상기 최종 처리 모듈 각각은 범용 그래픽 프로세싱 유닛 모듈로 구비되는 것을 특징으로 하는 3 차원 캐릭터 렌더링 시스템.
  2. 제 1 항에 있어서,
    상기 광휘 처리 모듈은;
    3 차원 캐릭터에 대한 광휘 텍스쳐를 생성, 저장하는 광휘 텍스쳐부와;
    이미지 좌표를 생성된 광휘 텍스쳐 좌표로 맵핑하는 이미지 좌표 맵퍼부 및;
    맵핑된 광휘 텍스쳐를 가우시안 커널(gaussian Kernel)을 사용하여 블러(blur) 처리하는 광휘 처리 함수부를 포함하는 것을 특징으로 하는 3 차원 캐릭터 렌더링 시스템.
  3. 제 2 항에 있어서,
    상기 스트레치 처리 모듈은;
    각각의 텍스쳐를 U 축 또는 V 축 방향으로 스트레치 처리하는 스트레치 처리 함수부와;
    화면 좌표와 스트레치 U 이미지 데이터와 스트레치 V 이미지 데이터의 이미지 좌표를 맵핑하는 좌표 맵퍼부 및;
    범용 그래픽 프로세싱 유닛 모듈의 리소스(resource)인 스트레치 U 새도맵과 스트레치 V 새도맵을 생성하는 스트레치 새도맵 함수부를 포함하는 것을 특징으로 하는 3 차원 캐릭터 렌더링 시스템.
  4. 제 3 항에 있어서,
    상기 최종 처리 모듈은;
    상기 광휘 처리 모듈들로부터 블러 처리된 광휘 텍스쳐들을 받아서 선형 결합하는 선형 결합부와;
    상기 선형 결합부로부터 선형 결합된 광휘 텍스쳐를 블러 합성 함수, 스펙큘러 함수, 백 텍스쳐 복사를 순차적으로 처리하여, 최종 백 텍스처를 생성하고, 최종 백 텍스처로부터 최종 텍스쳐를 생성하여 출력하는 최종 처리 함수부를 포함하는 것을 특징으로 하는 3 차원 캐릭터 렌더링 시스템.
  5. 3 차원 캐릭터 렌더링 시스템의 처리 방법에 있어서:
    범용 그래픽 프로세싱 유닛 모듈을 이용하여 3 차원 캐릭터의 피부 계층에 따른 단계별 이미지로부터 텍스쳐를 스트레치 처리하는 전처리 단계와;
    범용 그래픽 프로세싱 유닛 모듈을 이용하여 단계별 이미지로부터 광휘 텍스쳐를 생성, 처리하는 광휘 처리 단계 및;
    범용 그래픽 프로세싱 유닛 모듈을 이용하여 광휘 텍스쳐로부터 실사 피부가 표현된 최종 텍스쳐를 생성하여 실시간으로 출력하도록 처리하는 최종 처리 단계를 포함하는 것을 특징으로 하는 3 차원 캐릭터 렌더링 시스템의 처리 방법.
  6. 제 5 항에 있어서,
    상기 전처리 단계는;
    3 차원 캐릭터의 얼굴 이미지 텍스쳐를 범용 그래픽 프로세싱 유닛 모듈의 스트레치 버퍼에 렌더링하고; 이어서
    범용 그래픽 프로세싱 유닛 모듈의 스트레치 버퍼 및 임시 버퍼를 이용하여 스트레치 U 처리 함수 및 스트레치 V 처리 함수를 복수 회 반복 처리하여, U 축 및 V 축 방향으로 스트레치된 텍스쳐를 출력하는 것을 특징으로 하는 3 차원 캐릭터 렌더링 시스템의 처리 방법.
  7. 제 6 항에 있어서,
    상기 광휘 처리 단계는;
    3 차원 캐릭터의 얼굴 이미지 텍스쳐를 범용 그래픽 프로세싱 유닛 모듈의 화면 버퍼에 렌더링하고; 이어서
    범용 그래픽 프로세싱 유닛 모듈의 임시 버퍼와 스트레치 버퍼 및 광휘 버퍼를 이용하여 광휘 처리 함수 및 스트레치 새도맵 처리 함수를 복수 회 반복 처리하여 단계별로 광휘 이미지를 생성, 처리하는 것을 특징으로 하는 3 차원 캐릭터 렌더링 시스템의 처리 방법.
  8. 제 7 항에 있어서,
    상기 최종 처리 단계는;
    상기 광휘 처리 단계에서 처리된 단계별 광휘 이미지를 스트레치 버퍼로부터 받아서 선형 결합하고;
    가우시안 블러를 적용하여 블러 합성 함수를 처리하여 최종 백 텍스쳐를 생성하고;
    최종 백 텍스쳐를 스펙큘러 함수를 이용하여 빛의 좌표, 3 차원 맵핑시켜서 스펙큘러를 계산하고; 이어서
    스펙큘러, 이미지 좌표계로 맵핑하여 실사 피부가 표현된 최종 텍스쳐를 생성하여 출력하는 것을 특징으로 하는 3 차원 캐릭터 렌더링 시스템의 처리 방법.
  9. 복수 개의 3 차원 캐릭터를 위한 렌더링을 병렬 처리하는 3 차원 캐릭터 렌더링 시스템에 있어서:
    컨텐츠에 포함된 복수 개의 3 차원 캐릭터들 각각의 피부에 대한 이미지를 범용 그래픽 프로세싱 유닛을 이용하여 렌더링 처리하고, 자신의 스레드 풀(thread pool)을 인식하기 위한 스레드 인식자를 갖고, 스레드 풀을 처리하는 복수 개의 실사 피부 처리 모듈 및;
    상기 실사 피부 처리 모듈로부터 상기 스레드 인식자를 인식하여 상기 실사 피부 처리 모듈들에 대한 스레드 풀을 관리하는 스레드 풀 모니터를 포함하여, 복수 개의 3 차원 캐릭터들 각각의 렌더링을 병렬 처리하는 것을 특징으로 하는 3 차원 캐릭터 렌더링 시스템.
  10. 제 9 항에 있어서,
    상기 실사 피부 처리 모듈은;
    3 차원 캐릭터 모델의 피부 계층에 따른 단계별로 광휘 텍스쳐를 생성하여 순차적으로 블러 처리하는 복수 개의 광휘 처리 모듈들과;
    화면 좌표와 이미지 좌표를 맵핑하여 스트레치 처리된 이미지 데이터를 생성하고, 전처리로 스트레치 새도맵을 생성하여 상기 광휘 처리 모듈들 각각에서 광휘 텍스쳐를 블러 처리하도록 전처리하는 스트레치 처리 모듈 및;
    블러 처리된 광휘 텍스쳐들을 상기 광휘 처리 모듈들로부터 받아서 선형 결합하고, 선형 결합된 광휘 텍스쳐를 블러 합성 함수, 스펙큘러 함수, 백 텍스쳐 복사를 순차적으로 처리하여 최종 텍스쳐를 생성, 출력하는 최종 처리 모듈을 더 포함하는 것을 특징으로 하는 3 차원 캐릭터 렌더링 시스템.
  11. 제 9 항 또는 제 10 항에 있어서,
    상기 스레드 풀 모니터는;
    상기 실사 피부 처리 모듈들 각각이 처리하는 각 캐릭터 마다의 범용 그래픽 프로세싱 유닛 함수로부터의 반응을 감지하여, 더 이상 실사 피부에 대한 상기 실사 피부 처리 모듈이 할당될 수 없는 한계치를 판단하여 해당 실사 피부 처리 모듈이 동작할 수 없다고 판단되면, 어플리케이션으로 알려주는 것을 특징으로 하는 3 차원 캐릭터 렌더링 시스템.
  12. 3 차원 캐릭터 렌더링 시스템의 처리 방법에 있어서:
    상기 3 차원 캐릭터 렌더링 시스템의 스레스 풀 모니터를 활성화시켜서 복수 개의 실사 피부 처리 모듈들 각각에 대한 스레드 풀을 생성하는 단계와;
    상기 실사 피부 처리 모듈들 각각에 대한 스레드 인식자를 배정하는 단계와;
    상기 실사 피부 처리 모듈들의 리소스를 초기화하는 단계와;
    상기 스레스 풀 모니터로부터 상기 실사 피부 처리 모듈들의 스레드에 출력 시작을 알리는 단계와;
    상기 스레스 풀 모니터로 상기 실사 피부 처리 모듈들 각각에 대한 스레드 풀 신호를 감시하는 단계와;
    상기 스레스 풀 모니터가 상기 실사 피부 처리 모듈들 각각의 최종 텍스쳐에 대한 갱신 상태를 인지하는 단계와;
    상기 스레스 풀 모니터가 상기 실사 피부 처리 모듈의 정상 동작 상태를 판별하기 위해 상기 실사 피부 처리 모듈들 각각으로부터 스레드 신호의 유무를 판별하는 단계 및;
    판별 결과, 스레드 신호가 있으면, 최종 컨텐츠의 렌더패스를 처리하여 출력하는 단계를 포함하는 것을 특징으로 하는 3 차원 캐릭터 렌더링 시스템의 처리 방법.
  13. 제 12 항에 있어서,
    상기 방법은;
    판별 결과, 스레드 신호가 없으면, 어플리케이션으로 오류가 발생되었음을 알려주는 단계를 더 포함하는 것을 특징으로 하는 3 차원 캐릭터 렌더링 시스템의 처리 방법.
PCT/KR2015/010872 2015-02-27 2015-10-15 범용 그래픽 프로세싱 유닛을 이용한 3 차원 캐릭터 렌더링 시스템 및 그의 처리 방법 WO2016137080A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/550,060 US10403023B2 (en) 2015-02-27 2015-10-15 Three-dimensional character rendering system using general purpose graphic processing unit, and processing method thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2015-0028005 2015-02-27
KR1020150028005A KR101619875B1 (ko) 2015-02-27 2015-02-27 범용 그래픽 프로세싱 유닛을 이용한 3 차원 캐릭터 렌더링 시스템 및 그의 처리 방법

Publications (1)

Publication Number Publication Date
WO2016137080A1 true WO2016137080A1 (ko) 2016-09-01

Family

ID=56024959

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2015/010872 WO2016137080A1 (ko) 2015-02-27 2015-10-15 범용 그래픽 프로세싱 유닛을 이용한 3 차원 캐릭터 렌더링 시스템 및 그의 처리 방법

Country Status (3)

Country Link
US (1) US10403023B2 (ko)
KR (1) KR101619875B1 (ko)
WO (1) WO2016137080A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108573480A (zh) * 2018-04-20 2018-09-25 太平洋未来科技(深圳)有限公司 基于图像处理的环境光补偿方法、装置及电子设备

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019082819A (ja) * 2017-10-30 2019-05-30 株式会社日立製作所 アクセラレータ部の利用に対する課金を支援するシステム及び方法
CN109636900A (zh) * 2018-12-14 2019-04-16 天津未来科技城开发有限公司 一种基于gpu高性能计算的三维管线实时建模方法及系统
CN109712221B (zh) * 2018-12-21 2022-08-16 成都四方伟业软件股份有限公司 三维可视化渲染方法及装置
CN112150602A (zh) * 2020-09-24 2020-12-29 苏州幻塔网络科技有限公司 模型图像的渲染方法和装置、存储介质和电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080050284A (ko) * 2006-12-02 2008-06-05 한국전자통신연구원 캐릭터 애니메이션 시 피부의 주름 실시간 표현 방법 및장치
KR20090061177A (ko) * 2007-12-11 2009-06-16 한국전자통신연구원 동적 로드 밸런싱을 지원하는 멀티 쓰레딩 프레임워크 및이를 이용한 프로세싱 방법
KR20100062860A (ko) * 2008-12-02 2010-06-10 한국전자통신연구원 관찰 방향 및 조명을 고려한 피부 질감 렌더링 방법 및 그 장치

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8719553B2 (en) * 2008-01-31 2014-05-06 Arm Norway As Method for re-circulating a fragment through a rendering pipeline
US8587596B2 (en) * 2010-06-28 2013-11-19 International Business Machines Corporation Multithreaded software rendering pipeline with dynamic performance-based reallocation of raster threads
KR101926570B1 (ko) * 2011-09-14 2018-12-10 삼성전자주식회사 포스트 프레그먼트 쉐이더를 사용하는 그래픽 처리 방법 및 장치
US10008034B2 (en) * 2013-05-03 2018-06-26 Nvidia Corporation System, method, and computer program product for computing indirect lighting in a cloud network

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080050284A (ko) * 2006-12-02 2008-06-05 한국전자통신연구원 캐릭터 애니메이션 시 피부의 주름 실시간 표현 방법 및장치
KR20090061177A (ko) * 2007-12-11 2009-06-16 한국전자통신연구원 동적 로드 밸런싱을 지원하는 멀티 쓰레딩 프레임워크 및이를 이용한 프로세싱 방법
KR20100062860A (ko) * 2008-12-02 2010-06-10 한국전자통신연구원 관찰 방향 및 조명을 고려한 피부 질감 렌더링 방법 및 그 장치

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
D'EON. EUGENE ET AL.: "GPU Gems 3, Part III: Rendering, Chapter 14. Advanced Techniques for Realistic Real-Time Skin Rendering", December 2007 (2007-12-01), Retrieved from the Internet <URL:http://http.developer.nvidia.com/GPUGems3/gpugems3_chl4.html> *
SEO, MYOUNG KOOK ET AL.: "Rendering of Time varying Human Skin", PROCEEDINGS OF THE SOCIETY OF CAD/CAM CONFERENCE, January 2013 (2013-01-01), pages 23 - 30 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108573480A (zh) * 2018-04-20 2018-09-25 太平洋未来科技(深圳)有限公司 基于图像处理的环境光补偿方法、装置及电子设备
WO2019200720A1 (zh) * 2018-04-20 2019-10-24 太平洋未来科技(深圳)有限公司 基于图像处理的环境光补偿方法、装置及电子设备

Also Published As

Publication number Publication date
KR101619875B1 (ko) 2016-05-12
US20180047204A1 (en) 2018-02-15
US10403023B2 (en) 2019-09-03

Similar Documents

Publication Publication Date Title
WO2016137080A1 (ko) 범용 그래픽 프로세싱 유닛을 이용한 3 차원 캐릭터 렌더링 시스템 및 그의 처리 방법
CN109472858B (zh) 用于逆向图形的可微分渲染管线
US8773449B2 (en) Rendering of stereoscopic images with multithreaded rendering software pipeline
CN1205592C (zh) 图象生成设备
WO2018004154A1 (ko) 혼합현실 디스플레이 장치
JP4480895B2 (ja) 画像処理装置
CN110675480B (zh) 用于获取纹理操作的采样位置的方法和装置
WO2021228031A1 (zh) 渲染方法、设备以及系统
US11328471B2 (en) Fine grained interleaved rendering applications in path tracing for cloud computing environments
CN111667542B (zh) 适用于人工神经网络的用于处理压缩数据的解压缩技术
WO2012111864A1 (ko) 레이 트레이싱 코어 및 레이 트레이싱 처리 방법
CN113393564B (zh) 利用全局照明数据结构的基于水塘的时空重要性重采样
CN1369849A (zh) 适于创建透明对象的实时阴影的系统和方法
CN110177287A (zh) 一种图像处理和直播方法、装置、设备和存储介质
US20230206567A1 (en) Geometry-aware augmented reality effects with real-time depth map
CN115701305A (zh) 阴影筛选
CN114758051A (zh) 一种图像渲染方法及其相关设备
CN112041894A (zh) 渲染期间提高涉及水面的场景的真实感
CN113822975B (zh) 用于对图像进行有效采样的技术
WO2012173304A1 (ko) 저해상도 그래픽 영상을 고해상도 그래픽 영상으로 실시간 변환하는 그래픽 영상 처리 장치 및 방법
CN115705668A (zh) 一种视图绘制的方法、装置及存储介质
CN114359018A (zh) 一种动态目标显示方法、装置及电子设备
WO2015053557A1 (en) Apparatus and method of rendering frame by adjusting processing sequence of draw commands
WO2012128421A1 (ko) 3d 그래픽 모델 입체 렌더링 장치 및 입체 렌더링 방법
US12039660B1 (en) Rendering three-dimensional content based on a viewport

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15883468

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 15550060

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15883468

Country of ref document: EP

Kind code of ref document: A1