KR20230032826A - 멀티-프래그먼트 렌더링에서 가상 두께 기반 레이어 병합 방법, 이를 수행하는 장치 및 컴퓨터 프로그램 - Google Patents

멀티-프래그먼트 렌더링에서 가상 두께 기반 레이어 병합 방법, 이를 수행하는 장치 및 컴퓨터 프로그램 Download PDF

Info

Publication number
KR20230032826A
KR20230032826A KR1020220001026A KR20220001026A KR20230032826A KR 20230032826 A KR20230032826 A KR 20230032826A KR 1020220001026 A KR1020220001026 A KR 1020220001026A KR 20220001026 A KR20220001026 A KR 20220001026A KR 20230032826 A KR20230032826 A KR 20230032826A
Authority
KR
South Korea
Prior art keywords
fragment
fragments
merging
virtual thickness
virtual
Prior art date
Application number
KR1020220001026A
Other languages
English (en)
Other versions
KR102683773B1 (ko
Inventor
김동준
Original Assignee
광운대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 광운대학교 산학협력단 filed Critical 광운대학교 산학협력단
Publication of KR20230032826A publication Critical patent/KR20230032826A/ko
Application granted granted Critical
Publication of KR102683773B1 publication Critical patent/KR102683773B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • 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
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration using two or more images, e.g. averaging or subtraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20016Hierarchical, coarse-to-fine, multiscale or multiresolution image processing; Pyramid transform

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Image Generation (AREA)

Abstract

본 발명의 바람직한 실시예에 따른 멀티-프래그먼트 렌더링에서 가상 두께 기반 레이어 병합 방법, 이를 수행하는 장치 및 컴퓨터 프로그램은, 뷰(view) 방향을 따라 인접한 겹치는 프래그먼트를 국부적으로 병합하고 멀리 떨어져 있는 프래그먼트를 유지하여 제한된 버퍼 용량에서 풍부한 스크린-스페이스(screen-space) 지오메트리(geometry) 정보를 캡처하는 비용 효율적인 다층 근사를 할 수 있고, 픽셀별 프래그먼트 간의 부분 중첩 정도를 고려하여 부드러운 가시성 전환을 제공하며 이를 통해 다양한 시각화 응용 프로그램에서 다양한 시각적 이점을 제공할 수 있다.

Description

멀티-프래그먼트 렌더링에서 가상 두께 기반 레이어 병합 방법, 이를 수행하는 장치 및 컴퓨터 프로그램{Method for merging layer based on virtual z-thickness in multi-fragment rendering, apparatus and computer program for performing the method}
본 발명은 렌더링된 결과(예. 깊이맵, 색상맵, 노말맵 등)를 다중 레이어로 구성하여 전역조명 효과 또는 영상 기반 렌더링 결과 혼합을 효율적으로 수행하는 장치 및 컴퓨터 프로그램에 관한 것으로서, 더욱 상세하게는 멀티-프래그먼트 렌더링(multi-fragment rendering)에서 레이어(layer)를 병합하는, 방법, 장치 및 컴퓨터 프로그램에 관한 것이다.
게임 업계에서 많이 사용되는 언리얼 엔진을 비롯 최근 센서 기술의 발달로 다양한 타입의 3차원 데이터의 혼합 가시화의 기반 기술이 되는 멀티-프래그먼트(multi-fragment) 렌더링은 성능 상의 이점으로 여러 가시화 엔진의 핵심 기술 요소이다. 멀티-프래그먼트 렌더링은 화면을 이루는 픽셀에 다층 레이어(layer)를 정의하여 3차원 모델을 화면 공간에서 정의된 모델로 표현하고 이를 바탕으로 값비싼 동적 전역 조명 효과 또는 여러 이형 모델 간의 혼합 3차원 가시화를 실시간으로 가능하게 하는 기술이다. 그러나, 픽셀 단위의 다층 레이어 모델의 오버플로우(overflow)와 깊이 겹침 문제는 영상 품질을 심하게 왜곡하는 문제를 발생시킬 수 있다.
본 발명이 이루고자 하는 목적은, 멀티-프래그먼트 렌더링(multi-fragment rendering)에서 가상 두께(virtual z-thickness)를 기반으로 레이어(layer)를 병합하는, 멀티-프래그먼트 렌더링에서 가상 두께 기반 레이어 병합 방법, 이를 수행하는 장치 및 컴퓨터 프로그램을 제공하는 데 있다.
본 발명의 명시되지 않은 또 다른 목적들은 하기의 상세한 설명 및 그 효과로부터 용이하게 추론할 수 있는 범위 내에서 추가적으로 고려될 수 있다.
상기의 기술적 과제를 달성하기 위한 본 발명의 바람직한 실시예에 따른 멀티-프래그먼트 렌더링에서 가상 두께 기반 레이어 병합 방법은, 깊이 방향(z-direction)으로 가상 두께(virtual z-thickness)를 프래그먼트(fragment)별로 결정하는 단계; 및 프래그먼트에 대한 상기 가상 두께를 기반으로, 광학 모델(optical model) 기반의 가시성(visibility)을 이용하여, 서로 인접하고 영역이 겹치는 복수개의 프래그먼트를 국부적으로(locally) 병합하는 단계;를 포함한다.
여기서, 상기 가상 두께 결정 단계는, 프래그먼트의 깊이(depth)를 기반으로 깊이 방향 분해능(z-resolution)을 획득하고, 상기 깊이 방향 분해능(z-resolution)을 이용하여 프래그먼트에 대한 상기 가상 두께를 결정하는 것으로 이루어질 수 있다.
여기서, 상기 가상 두께 결정 단계는, 프래그먼트의 깊이, 뷰 프러스텀(view frustum)의 니어 클립 플레인(near clip plane)의 깊이, 뷰 프러스텀(view frustum)의 파 클립 플레인(far clip plane)의 깊이 및 부동 소수점(float-point) 정밀도(precision)를 기반으로 상기 깊이 방향 분해능(z-resolution)을 획득하는 것으로 이루어질 수 있다.
여기서, 상기 가상 두께 결정 단계는, 상기 깊이 방향 분해능(z-resolution) 및 사용자에 의해 설정된 값을 기반으로 프래그먼트에 대한 상기 가상 두께를 결정하는 것으로 이루어질 수 있다.
여기서, 상기 프래그먼트 병합 단계는, 깊이의 순서(order)로 정렬된 프래그먼트의 순서를 이용하여 프래그먼트를 병합하는 SFM(smooth fragment merging)을 이용하여 상기 복수개의 프래그먼트를 국부적으로 병합하는 것으로 이루어질 수 있다.
여기서, 상기 프래그먼트 병합 단계는, 상기 복수개의 프래그먼트가 서로 겹치는 경계(boundary)를 기반으로 상기 복수개의 프래그먼트 각각에 대해 서브-프래그먼트(sub-fragment)를 획득하고, 상기 서브-프래그먼트 각각에 대한 불투명도(opacity)와 가시성 색상(visibility color)을 상기 광학 모델을 통해 획득하며, 상기 서브-프래그먼트 각각에 대한 불투명도와 가시성 색상을 기반으로 상기 복수개의 프래그먼트를 국부적으로 병합하는 것으로 이루어질 수 있다.
여기서, 상기 프래그먼트 병합 단계는, 상기 복수개의 프래그먼트가 서로 겹치는 영역에 대응되는 상기 복수개의 프래그먼트의 상기 서브-프래그먼트에 대한 불투명도와 가시성 색상을 기반으로 겹치는 영역에 대한 불투명도와 가시성 색상을 획득하여, 상기 복수개의 프래그먼트를 국부적으로 병합하는 것으로 이루어질 수 있다.
여기서, 상기 프래그먼트 병합 단계는, 프래그먼트의 순서(order)가 결정되지 않은 상태에서 프래그먼트를 병합하는 OFM(order-independent fragment merging)을 이용하여 상기 복수개의 프래그먼트를 국부적으로 병합하는 것으로 이루어질 수 있다.
상기의 기술적 과제를 달성하기 위한 본 발명의 바람직한 실시예에 따른 컴퓨터 프로그램은 컴퓨터 판독 가능한 저장 매체에 저장되어 상기한 멀티-프래그먼트 렌더링에서 가상 두께 기반 레이어 병합 방법 중 어느 하나를 컴퓨터에서 실행시킨다.
상기의 기술적 과제를 달성하기 위한 본 발명의 바람직한 실시예에 따른 장치는, 멀티-프래그먼트 렌더링(multi-fragment rendering)에서 가상 두께(virtual z-thickness)를 기반으로 레이어(layer)를 병합하는 장치로서, 상기 가상 두께를 기반으로 상기 레이어를 병합하기 위한 하나 이상의 프로그램을 저장하는 메모리; 및 상기 메모리에 저장된 상기 하나 이상의 프로그램에 따라 상기 가상 두께를 기반으로 상기 레이어를 병합하기 위한 동작을 수행하는 하나 이상의 프로세서;를 포함하며, 상기 프로세서는, 깊이 방향(z-direction)으로 상기 가상 두께를 프래그먼트(fragment)별로 결정하고, 프래그먼트에 대한 상기 가상 두께를 기반으로, 광학 모델(optical model) 기반의 가시성(visibility)을 이용하여, 서로 인접하고 영역이 겹치는 복수개의 프래그먼트를 국부적으로(locally) 병합한다.
여기서, 상기 프로세서는, 프래그먼트의 깊이(depth)를 기반으로 깊이 방향 분해능(z-resolution)을 획득하고, 상기 깊이 방향 분해능(z-resolution)을 이용하여 프래그먼트에 대한 상기 가상 두께를 결정할 수 있다.
여기서, 상기 프로세서는, 상기 깊이 방향 분해능(z-resolution) 및 사용자에 의해 설정된 값을 기반으로 프래그먼트에 대한 상기 가상 두께를 결정할 수 있다.
여기서, 상기 프로세서는, 깊이의 순서(order)로 정렬된 프래그먼트의 순서를 이용하여 프래그먼트를 병합하는 SFM(smooth fragment merging) 또는 프래그먼트의 순서(order)가 결정되지 않은 상태에서 프래그먼트를 병합하는 OFM(order-independent fragment merging)을 이용하여 상기 복수개의 프래그먼트를 국부적으로 병합할 수 있다.
본 발명의 바람직한 실시예에 따른 멀티-프래그먼트 렌더링에서 가상 두께 기반 레이어 병합 방법, 이를 수행하는 장치 및 컴퓨터 프로그램에 의하면, 멀티-프래그먼트 렌더링(multi-fragment rendering)에서 가상 두께(virtual z-thickness)를 기반으로 레이어(layer)를 병합함으로써, 뷰(view) 방향을 따라 인접한 겹치는 프래그먼트를 국부적으로 병합하고 멀리 떨어져 있는 프래그먼트를 유지하여 제한된 버퍼 용량에서 풍부한 스크린-스페이스(screen-space) 지오메트리(geometry) 정보를 캡처하는 비용 효율적인 다층 근사를 할 수 있고, 픽셀별 프래그먼트 간의 부분 중첩 정도를 고려하여 부드러운 가시성 전환을 제공하며 이를 통해 다양한 시각화 응용 프로그램에서 다양한 시각적 이점을 제공할 수 있다.
본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 바람직한 실시예에 따른 장치를 설명하기 위한 블록도이다.
도 2는 본 발명의 바람직한 실시예에 따른 멀티-프래그먼트 렌더링에서 가상 두께 기반 레이어 병합 방법을 설명하기 위한 흐름도이다.
도 3은 본 발명의 바람직한 실시예에 따른 가상 두께 모델을 설명하기 위한 도면이다.
도 4는 본 발명의 바람직한 실시예에 따른 z-fighting 핸들링을 설명하기 위한 도면이다.
도 5는 본 발명의 바람직한 실시예에 따른 프래그먼트의 버퍼 메모리 저장 동작을 설명하기 위한 도면이다.
도 6은 본 발명의 바람직한 실시예에 따른 프래그먼트 병합 과정을 설명하기 위한 도면이다.
도 7은 본 발명의 바람직한 실시예에 따른 SFM과 OFM의 시각적 영향을 나타내는 도면이다.
도 8은 본 발명의 바람직한 실시예에 따른 컨트롤 파라미터 β에 따른 SFM의 시각적 영향을 나타내는 도면이다.
도 9는 본 발명의 바람직한 실시예에 따른 컨트롤 파라미터 β에 따른 SFM의 시각적 영향을 이용한 고스트 일러스트레이션 효과를 나타내는 도면이다.
도 10은 본 발명의 바람직한 실시예에 따른 멀티-프래그먼트 렌더링에서 가상 두께 기반 레이어 병합 동작의 성능을 설명하기 위한 도면으로, 히트맵-코딩 차이를 나타낸다.
도 11은 본 발명의 바람직한 실시예에 따른 멀티-프래그먼트 렌더링에서 가상 두께 기반 레이어 병합 동작의 성능을 설명하기 위한 도면으로, 성능 평가 결과를 나타낸다.
도 12는 본 발명의 바람직한 실시예에 따른 멀티-프래그먼트 렌더링에서 가상 두께 기반 레이어 병합 동작의 성능을 설명하기 위한 도면으로, 장면의 레이(ray)에 따른 흡광도 함수를 나타낸다.
도 13은 본 발명의 바람직한 실시예에 따른 멀티-프래그먼트 렌더링에서 가상 두께 기반 레이어 병합 동작의 성능을 설명하기 위한 도면으로, SFM의 국부 깊이 블렌딩(local depth blending) 효과를 나타낸다.
도 14는 본 발명의 바람직한 실시예에 따른 멀티-프래그먼트 렌더링에서 가상 두께 기반 레이어 병합 동작의 성능을 설명하기 위한 도면으로, 고스트 일러스트레이션의 일례를 나타낸다.
도 15는 본 발명의 바람직한 실시예에 따른 멀티-프래그먼트 렌더링에서 가상 두께 기반 레이어 병합 동작의 성능을 설명하기 위한 도면으로, 하이브리드 렌더링의 일례를 나타낸다.
도 16은 본 발명의 바람직한 실시예에 따른 멀티-프래그먼트 렌더링에서 가상 두께 기반 레이어 병합 동작의 성능을 설명하기 위한 도면으로, 스크린-스페이스(screen-space) 렌더링의 일례를 나타낸다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 게시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 게시가 완전하도록 하고, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
본 명세서에서 "제1", "제2" 등의 용어는 하나의 구성 요소를 다른 구성 요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예컨대, 제1 구성 요소는 제2 구성 요소로 명명될 수 있고, 유사하게 제2 구성 요소도 제1 구성 요소로 명명될 수 있다.
본 명세서에서 각 단계들에 있어 식별부호(예컨대, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.
본 명세서에서, "가진다", "가질 수 있다", "포함한다" 또는 "포함할 수 있다" 등의 표현은 해당 특징(예컨대, 수치, 기능, 동작, 또는 부품 등의 구성 요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
이하에서 첨부한 도면을 참조하여 본 발명에 따른 멀티-프래그먼트 렌더링에서 가상 두께 기반 레이어 병합 방법, 이를 수행하는 장치 및 컴퓨터 프로그램의 바람직한 실시예에 대해 상세하게 설명한다.
먼저, 도 1을 참조하여 본 발명의 바람직한 실시예에 따른 장치에 대하여 설명한다.
도 1은 본 발명의 바람직한 실시예에 따른 장치를 설명하기 위한 블록도이다.
도 1을 참조하면, 본 발명의 바람직한 실시예에 따른 장치(100)는 멀티-프래그먼트 렌더링(multi-fragment rendering)에서 가상 두께(virtual z-thickness)를 기반으로 레이어(layer)를 병합할 수 있다.
이에 따라, 본 발명은 뷰(view) 방향을 따라 인접한 겹치는 프래그먼트를 국부적으로 병합하고 멀리 떨어져 있는 프래그먼트를 유지하여 제한된 버퍼 용량에서 풍부한 스크린-스페이스(screen-space) 지오메트리(geometry) 정보를 캡처하는 비용 효율적인 다층 근사를 할 수 있다.
또한, 본 발명은 픽셀별 프래그먼트 간의 부분 중첩 정도를 고려하여 부드러운 가시성 전환을 제공하고, 이를 통해 다양한 시각화 응용 프로그램에서 다양한 시각적 이점을 제공할 수 있다.
이를 위해, 장치(100)는 하나 이상의 프로세서(110), 컴퓨터 판독 가능한 저장 매체(130) 및 통신 버스(150)를 포함할 수 있다.
프로세서(110)는 장치(100)가 동작하도록 제어할 수 있다. 예컨대, 프로세서(110)는 컴퓨터 판독 가능한 저장 매체(130)에 저장된 하나 이상의 프로그램(131)을 실행할 수 있다. 하나 이상의 프로그램(131)은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 컴퓨터 실행 가능 명령어는 프로세서(110)에 의해 실행되는 경우 장치(100)로 하여금 가상 두께를 기반으로 레이어를 병합하기 위한 동작을 수행하도록 구성될 수 있다.
컴퓨터 판독 가능한 저장 매체(130)는 가상 두께를 기반으로 레이어를 병합하기 위한 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능한 저장 매체(130)에 저장된 프로그램(131)은 프로세서(110)에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독 가능한 저장 매체(130)는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 그 밖에 장치(100)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.
통신 버스(150)는 프로세서(110), 컴퓨터 판독 가능한 저장 매체(130)를 포함하여 장치(100)의 다른 다양한 컴포넌트들을 상호 연결한다.
장치(100)는 또한 하나 이상의 입출력 장치를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(170) 및 하나 이상의 통신 인터페이스(190)를 포함할 수 있다. 입출력 인터페이스(170) 및 통신 인터페이스(190)는 통신 버스(150)에 연결된다. 입출력 장치(도시하지 않음)는 입출력 인터페이스(170)를 통해 장치(100)의 다른 컴포넌트들에 연결될 수 있다.
그러면, 도 2를 참조하여 본 발명의 바람직한 실시예에 따른 멀티-프래그먼트 렌더링에서 가상 두께 기반 레이어 병합 방법에 대하여 설명한다.
도 2는 본 발명의 바람직한 실시예에 따른 멀티-프래그먼트 렌더링에서 가상 두께 기반 레이어 병합 방법을 설명하기 위한 흐름도이다.
도 2를 참조하면, 장치(100)의 프로세서(110)는 깊이 방향(z-direction)으로 가상 두께를 프래그먼트(fragment)별로 결정할 수 있다(S110).
즉, 프로세서(110)는 프래그먼트의 깊이(depth)를 기반으로 깊이 방향 분해능(z-resolution)을 획득할 수 있다.
이때, 프로세서(110)는 프래그먼트의 깊이, 뷰 프러스텀(view frustum)의 니어 클립 플레인(near clip plane)의 깊이, 뷰 프러스텀(view frustum)의 파 클립 플레인(far clip plane)의 깊이 및 부동 소수점(float-point) 정밀도(precision)를 기반으로 깊이 방향 분해능(z-resolution)을 획득할 수 있다.
그리고, 프로세서(110)는 깊이 방향 분해능(z-resolution)을 이용하여 프래그먼트에 대한 가상 두께를 결정할 수 있다.
이때, 프로세서(110)는 깊이 방향 분해능(z-resolution) 및 사용자에 의해 설정된 값을 기반으로 프래그먼트에 대한 가상 두께를 결정할 수 있다. 예컨대, 프로세서(110)는 사용자에 의해 설정된 값(예컨대, 2, 10 등)을 깊이 방향 분해능(z-resolution)에 곱하여 해당 프래그먼트에 대한 가상 두께를 획득할 수 있다.
그런 다음, 프로세서(110)는 프래그먼트에 대한 가상 두께를 기반으로, 광학 모델(optical model) 기반의 가시성(visibility)을 이용하여, 서로 인접하고 영역이 겹치는 복수개의 프래그먼트를 국부적으로(locally) 병합할 수 있다(S120).
보다 자세히 설명하면, 프로세서(110)는 깊이의 순서(order)로 정렬된 프래그먼트의 순서를 이용하여 프래그먼트를 병합하는 SFM(smooth fragment merging)을 이용하여 복수개의 프래그먼트를 국부적으로 병합할 수 있다.
즉, 프로세서(110)는 복수개의 프래그먼트가 서로 겹치는 경계(boundary)를 기반으로 복수개의 프래그먼트 각각에 대해 서브-프래그먼트(sub-fragment)를 획득할 수 있다.
그리고, 프로세서(110)는 서브-프래그먼트 각각에 대한 불투명도(opacity)와 가시성 색상(visibility color)을 광학 모델을 통해 획득할 수 있다.
그리고, 프로세서(110)는 서브-프래그먼트 각각에 대한 불투명도와 가시성 색상을 기반으로 복수개의 프래그먼트를 국부적으로 병합할 수 있다.
이때, 프로세서(110)는 복수개의 프래그먼트가 서로 겹치는 영역에 대응되는 복수개의 프래그먼트의 서브-프래그먼트에 대한 불투명도와 가시성 색상을 기반으로 겹치는 영역에 대한 불투명도와 가시성 색상을 획득하여, 복수개의 프래그먼트를 국부적으로 병합할 수 있다.
물론, 프로세서(110)는 프래그먼트의 순서(order)가 결정되지 않은 상태에서 프래그먼트를 병합하는 OFM(order-independent fragment merging)을 이용하여 복수개의 프래그먼트를 국부적으로 병합할 수도 있다.
그러면, 도 3 내지 도 9를 참조하여 본 발명의 바람직한 실시예에 따른 멀티-프래그먼트 렌더링에서 가상 두께 기반 레이어 병합 동작에 대하여 보다 자세하게 설명한다.
멀티-프래그먼트 렌더링에서 제한된 개수의 프래그먼트로 풍부한 지오메트리(geometry) 정보를 표현하고 복원하는 것이 중요하다.
이를 위해, 기본 개념인 가상 두께 모델(virtual z-thickness model)을 소개하고, 가상 두께 모델 기반 프래그먼트 병합 방식을 제시한다. 본 발명에 따른 방법은 z-방향(z-direction)을 따라 인접하고 겹치는 프래그먼트의 국부 병합(local merging)을 용이하게 하면서 멀리 떨어져 있는 프래그먼트를 유지함으로써, 제한된 개수의 프래그먼트로 풍부한 스크린-스페이스(screen-space) 지오메트리 정보를 캡쳐할 수 있다. 또한, 본 발명에 따른 방법은 프래그먼트 간의 부분 중첩 정도를 고려하여 다양한 시각화 응용 프로그램에 도움이 될 수 있는 시각적 효과를 생성할 수 있다.
프래그먼트는 불투명도(opacity)(즉, 알파)와 색상 정보를 가지고 있다. 본 발명에서는 색상 정보를 불투명도(즉, 알파)를 곱한 색상으로 사용하고, 가시성(visibility)이라는 용어는 불투명도(즉, 알파)와 불투명도(즉, 알파)를 곱한 색상을 나타낸다.
A. 가상 두께 모델(virtual z-thickness surface model)
도 3은 본 발명의 바람직한 실시예에 따른 가상 두께 모델을 설명하기 위한 도면으로, d1, d2 및 d3는 각각의 레이(ray)에 따른 깊이(depth) 값을 나타내고, t1, t2 및 t3는 각각의 깊이에서의 가상 두께 값을 나타내며, 도 4는 본 발명의 바람직한 실시예에 따른 z-fighting 핸들링을 설명하기 위한 도면으로, 2개의 겹쳐진 큐브(적색과 청색)가 렌더링되어 있고, 왼쪽 그림은 z-fighting 문제를 보여주며 오른쪽 그림은 일관되고 지속적인 블렌딩을 보여주며, 도 5는 본 발명의 바람직한 실시예에 따른 프래그먼트의 버퍼 메모리 저장 동작을 설명하기 위한 도면으로, 괄호의 간격은 가상 두께를 나타내고, 적색 괄호는 병합된 프래그먼트를 나타낸다.
도 3을 참조하면, 각각의 프래그먼트에 z-방향의 가상 두께를 할당하여 가상 두께 모델을 정의할 수 있다. 표면에 가상 두께를 적용하는 것은 표면에서 가상 두께 길이보다 먼저 경계(boundary)가 배치되는 반투명 밴드(translucent band)로 표면이 시뮬레이션될 수 있다. 가상 두께 모델은 깊이 위치가 서로 가까운 프래그먼트 간의 가상 중첩(virtual overlap)을 유도하며, 가상 중첩은 다음과 같은 이점을 제공할 수 있다. 첫 번째, 도 4를 참조하면, 불쾌한 반점(unpleasant speckling)과 노이지한 점선 가시성(noisy dotted visibility) 대신 지속적인 블렌딩 가시성을 디스플레이하여 z-fighting 문제를 핸들링할 수 있다. 두 번째, 도 5를 참조하면, 서로 겹치거나 가까운 모든 표면 레이어(layer)들을 저장하는 대신 서로 충분히 멀리 떨어져 있는 표면 레이어들을 저장할 수 있다. 이를 통해 제한된 메모리 용량을 사용하는 스크린-스페이스 알고리즘이 메모리 효율성 및 지오메트릭 표현 측면에서 효과적으로 수행할 수 있다.
z-fighting 문제에 초점을 맞출 때, 본 발명은 24비트 정밀도(precision)를 제공하는 단일-정밀도 부동 소수점(single-precision floating-point)에 의해 결정되는 가상 두께 정밀도(z value precision)를 고려할 수 있다. 또한, 본 발명은 비선형인 부동 소수점 z 버퍼 동작도 고려할 수 있다. 이는 z의 정밀도가 z 값의 역수에 비례한다는 것을 의미하고, 눈 가까이에는 많은 정밀도가 있고 멀리 떨어져 있으면 정밀도가 상당히 낮게 된다. 그래픽 파이프라인(graphic pipeline)에서, 뷰 프러스텀(view frustum)의 니어 클립 플레인(near clip plane) 및 파 클립 플레인(far clip plane)은 다양한 범위에서 z 정밀도에 영향을 준다. 뷰 프러스텀(view frustum) 범위의 깊이 z에서 해결할 수 있는 가장 작은 깊이 분리(smallest depth separation)를 z 버퍼의 깊이 방향 분해능(z-resolution)이라고 하며, 아래의 [수학식 1]에 의해 계산될 수 있다.
Figure pat00001
여기서, P(z)는 깊이 z에서의 깊이 방향 분해능(z-resolution)을 나타낸다. zn은 니어 클립 플레인(near clip plane)의 깊이 값을 나타내고, zf는 파 클립 플레인(far clip plane)의 깊이 값을 나타낸다. n은 정밀도 비트(일반적으로 단일-정밀도 부동 소수점에서는 24임)를 나타낸다. z-fighting을 핸들링하는데 충분한 깊이 방향 분해능(z-resolution)을 제공하기 위해, 본 발명은 사용자에 의해 설정된 값(예컨대, 2, 10 등)을 깊이 방향 분해능(z-resolution) P(z)에 곱하여 깊이 z에서의 가상 두께 값을 설정할 수 있다. 본 발명은 일반적인 멀티-프래그먼트 렌더링에서 가상 두께를 사용하고, 시각화 목적 및 지오메트리 복잡성에 따라 SFM(smooth fragment merging) 및 OFM(order-independent fragment merging)에 대한 가상 두께 값을 사용자가 수동으로 조정할 수 있도록 할 수 있다.
B. 프래그먼트 병합(fragment merging)
도 6은 본 발명의 바람직한 실시예에 따른 프래그먼트 병합 과정을 설명하기 위한 도면으로, 깊이 값 dn(n=1, 2)과 가상 두께 값 tn(n=1, 2)을 가지는 인커밍 프래그먼트(incoming fragment)에서, (a)는 SFM(smooth fragment merging)을 나타내고, (b)는 OFM(order-independent fragment merging)을 나타내며, 도 7은 본 발명의 바람직한 실시예에 따른 SFM과 OFM의 시각적 영향을 나타내는 도면으로, 가상 두께 값은 실린더(cylinder) 높이의 0.02배로 설정된 경우를 나타낸다.
본 발명에 따른 가상 두께 모델(z-thickness model)을 기반으로 하는 프래그먼트 병합을 위한 2개의 방식인 SFM(smooth fragment merging)과 (order-independent fragment merging)에 대해 설명한다. 도 6은 이와 같은 프래그먼트 병합 방식을 나타낸다. SFM(smooth fragment merging)은 겹치는 프래그먼트를 각 프래그먼트의 z-방향 경계로 나눈 다음, 세분화된 프래그먼트의 가시성(visibility)을 병합할 수 있다. OFM(order-independent fragment merging)은 부분적으로 겹치는 프래그먼트를 프래그먼트 세분화를 고려하지 않고 가시성(visibility)이 결정되는 하나의 프래그먼트로 병합함으로써, 순서-독립적(order-independent)인 가시성(visibility)의 결정을 허용할 수 있다.
프래그먼트의 순서가 깊이 순서로 정렬되어 있는 한(레이 트레이싱(ray tracing)의 프래그먼트 또는 멀티-프래그먼트 알고리즘의 해결 패스(resolve pass)), SFM(smooth fragment merging)이 OFM(order-independent fragment merging)보다 더 정교한 가시성(visibility)을 제공하기 때문에 OFM(order-independent fragment merging) 대신 SFM(smooth fragment merging)을 사용하는 것이 바람직하다. 반면, 래스터-기반 그래픽 파이프라인(raster-based graphics pipeline)에서, 제한된 메모리 용량을 사용하는 k-버퍼 알고리즘에서 수행되는 프래그먼트 병합은 셰이더(shader)에 들어오는 프래그먼트의 순서가 결정적이지 않기 때문에 OFM(order-independent fragment merging)을 사용하는 것이 바람직하다.
프래그먼트 병합은 레이(ray)를 따라 N개의 인접한 프래그먼트를 하나의 프래그먼트로 병합하는 근사 모델(approximation model)로 생각할 수 있다. 병합된 프래그먼트는 (i)인접한 프래그먼트의 최대 깊이 값, 및 (ii) 인접한 프래그먼트를 커버(cover)하는 가상 두께 값으로 정의될 수 있다.
- SFM(smooth fragment merging)
SFM은 프래그먼트 간의 부분 중첩 정도를 고려하여 부드러운 가시성 전환을 제공할 수 있다. SFM은 도 6의 (a)에 도시된 바와 같이, 프래그먼트와 그 가시성을 세분화하고 병합함으로써 달성될 수 있다. 프래그먼트를 세분화하고 병합하여 가시성을 결정하는 부분은 이하 "가시성 결정(visibility decision)" 항목에서 설명한다. SFM에서 일관된 가시성을 제공하기 위한 기본 가정은 동일한 픽셀 위치로 들어오는 프래그먼트의 깊이 순서를 정렬해야 한다는 것이다. 그렇지 않으면, 가시성은 오버 연산자(over operator)(즉, front-to-back 블렌딩 연산자)에 의해 계산되기 때문에, SFM은 픽셀 전반에 걸쳐 그리고 애니메이션(animation) 도중에 일관성이 없는 가시성을 생성할 수 있다. 2개의 프래그먼트가 부분적으로 겹치는 경우, 최대 3개의 세분화된 서브-프래그먼트가 생성될 수 있다. SFM에서, 본 발명은 이러한 세분화된 서브-프래그먼트들을 오버 연산자(over operator)을 적용하여 가시성이 결정되는 하나의 프래그먼트로 병합하여 부드러운 가시성 전환을 제공할 수 있다.
- OFM(order-independent fragment merging)
제한된 메모리 리소스(resource)만 허용되는 특정 어플리케이션에서는 전체 렌더링 파이프라인을 통해 제한된 메모리를 사용해야 한다. 예컨대, 일반적인 k-버퍼 알고리즘은 k개의 프래그먼트를 저장하는 제한된 메모리를 사용한다. 저장 패스(store pass) 동안 GPU 내장 원자 연산자(atomic operator)를 사용하여, k-버퍼 알고리즘은 동일한 픽셀에 동시에 들어오는 정렬되지 않은 프래그먼트 중에서 k-최상위 프래그먼트를 효율적으로 선택할 수 있다. 프래그먼트 병합은 k-버퍼 알고리즘을 기반으로 하는 저장 패스(store pass)에 쉽게 적용할 수 잇으며, k개의 프래그먼트들에 풍부한 픽셀당 지오메트릭 정보를 제공할 수 있다. 이를 위해, 도 6의 (b)에 도시된 바와 같이, OFM을 사용하여 들어오는 프래그먼트의 순서와 깊이 우선 순위에 관계없이 병합된 프래그먼트의 가시성을 결정할 수 있다. 병합된 프래그먼트의 순서-독립적인 가시성의 결정은 이하에서 설명하는 "믹스 연산자(mix operator)"를 사용하여 수행될 수 있다.
- SFM 및 OFM의 시각적 영향(visual impact)
SFM은 프래그먼트 간의 부분 중첩 정도를 고려하여 부드러운 가시성 전환을 제공할 수 있다. 반면, OFM은 프래그먼트가 겹치는지 여부만 고려하여 단조로운 가시성 전환을 제공하지만, 들어오는 프래그먼트의 순서와 깊이 우선 순위에 관계없이 가시성 결정을 보장할 수 있다. 도 7은 SFM 및 OFM과 관련하여 겹치는 표면 레이어(surface layer)의 시각적 영향을 나타낸다. SFM은 표면 교차(surface intersection)를 나타내는 픽셀 주변의 중첩 정도에 따라 연속적인 색상 변경을 제공하여, 안티-앨리어싱(anti-aliasing) 효과를 얻을 수 있다.
C. 가시성 결정(visibility decision)
도 8은 본 발명의 바람직한 실시예에 따른 컨트롤 파라미터 β에 따른 SFM의 시각적 영향을 나타내는 도면으로, 시각적 효과를 강조하기 위해 약간 큰 가상 두께 값(구 반경의 0.05배)을 가지는 경우를 나타내고, 도 9는 본 발명의 바람직한 실시예에 따른 컨트롤 파라미터 β에 따른 SFM의 시각적 영향을 이용한 고스트 일러스트레이션 효과를 나타내는 도면으로, 큰 흰색 구(sphere) 안에 3개 색상의 구가 렌더링되고, 내부 구를 나타내기 위해 충분히 큰 가상 두께 값(흰색 구의 반경)이 사용되며, 모든 표면의 불투명도는 0.99인 경우를 나타낸다.
본 발명은 가상 두께 모델을 기반으로 겹치는 프래그먼트의 가시성을 분할하고 합성하는 광학 연산자(optical operator)을 제안한다.
- 가시성 세분(visibility subdivision)
가상 두께 모델을 기반으로 하는 각 프래그먼트는 균질한 매체(homogeneous medium)를 나타낸다고 가정한다. 이렇게 하면 뷰잉 z-방향(viewing z-direction)에 따라 매체 내부의 길이에 대해 프래그먼트 가시성을 세분화할 수 있다. 이 연산자는 SFM에서만 사용할 수 있다.
프래그먼트는 여러개의 세분화된 서브-프래그먼트로 나누어질 수 있다. 세분화된 서브-프래그먼트의 병합 가시성은 원본 프래그먼트의 가시성과 동일해야 한다. 균질한 매체로 채워진 프래그먼트 내부에서 흡광 계수(extinction coefficient) τ는 일정하다. 따라서, 프래그먼트 내부의 깊이 z까지의 누적된 불투명도는 아래의 [수학식 2]와 같이 정의할 수 있다.
Figure pat00002
여기서, A(z)는 깊이 z에서의 누적된 불투명도를 나타낸다.
두께 d를 가지는 매체의 누적된 불투명도가 Ad=A(d)로 주어지면, [수학식 2]는 [수학식 3]으로 표현될 수 있다.
Figure pat00003
심플 방출-흡수 광학 모델(simple emission-absorption optical model)을 기반으로, 가시성 (C(d),A(d))을 가지는 매체 내부의 깊이 z에서의 누적된 색상 C(z)는 아래의 [수학식 4]에 의해 계산될 수 있다.
Figure pat00004
[수학식 4]는 프론트(front) 세분화된 프래그먼트의 가시성을 결정하는데 사용될 수 있다. 또한, 깊이 z 대신 세분화된 매체의 두께를 사용하여 백(back) 세분화된 프래그먼트의 가시성을 결정할 수 있다.
[수학식 3]의 선형 근사(linear approximation)
Figure pat00005
는 도 8에 도시된 바와 같이, 지오메트리의 교차점에서 더 부드러운 가시성 전환을 제공할 수 있다. 본 발명은 부드러운 가시성 전환과 엄격한 광학적 가시성 사이의 시각적 효과를 조정하기 위해 β를 [수학식 5]와 같이, 컨트롤 파라미터로 사용할 수 있다.
Figure pat00006
불투명도가 낮으면, β의 효과가 미비하고, 불투명도가 높으면(즉, 1에 가까우면), β는 내부 구조를 보이게 하는 컨트롤 파라미터로 사용될 수 있다. 도 9는 깊이 신호(depth cue)를 제공하는 β에 따라 내부 물체를 낮은 대비(low contrast)로 보이게 하는 고스트 효과를 나타낸다.
[수학식 5]의 근사에 의한 세분화된 프래그먼트의 가시성은 원본 프래그먼트의 가시성을 복원하지 못하기 때문에, 다른 면(즉, 후면) 세분화된 프래그먼트 (Cb,Ab)의 가시성은 누적된 가시성을 갖도록 결정되어야 한다. 세분화된 프래그먼트 전체의 가시성은 원본 프래그먼트의 가시성과 동일하다. 이는 [수학식 6]과 같이 [수학식 4]와 [수학식 5]를 2개의 순차적 가시성의 오버 연산자(over operator)(즉, front-to-back 블렌딩 연산자)로 대체하여 달성될 수 있다.
Figure pat00007
- 믹스 연산자(mix operator)
완전히 겹치는 프래그먼트가 주어지면, 합성을 위해 가시성이 수신되는 순서에 관계없이 서로 겹치는 개별 프래그먼트가 병합된 프래그먼트의 최종 가시성에 동등하게 기여하는 것이 합리적이다. 이를 위해, 불투명도와 색상을 별도로 누적하는 믹스 연산자(mix operator)를 도입할 수 있다.
누적된 불투명도 Aacc는 [수학식 7]과 같이 먼저 들어오는 불투명도 Ai에 의한 누적된 효과를 기반으로 계산될 수 있다.
Figure pat00008
누적된 색상 cacc는 가시성 색상 Ci(불투명도-가중치 색상)로 표시될 수 있는, 불투명도 Ai에 대해 참여 색상 ci(불투명도-가중치 색상이 아님)의 합을 정규화하여 계산될 수 있다. 누적된 가시성 색상 Cacc는 아래의 [수학식 8]과 같이 얻을 수 있다.
Figure pat00009
Figure pat00010
들어오는 불투명도의 순서는 누적 불투명도에 영향을 주지 않는다. 이는 불투명도 합
Figure pat00011
가 주어지는 한 순서-독립적인 가시성 합성을 가능하게 한다. 이에 대한 수식은 [수학식 9]와 같이 [수학식 7]과 [수학식 8]의 반복 확장으로 표시될 수 있다.
Figure pat00012
Figure pat00013
여기서, (Ceacc,Aeacc)는 새로운 누적 가시성을 나타낸다. (Cnew,Anew)는 새롭게 들어오는 가시성을 나타낸다.
본 발명에서, 이 연산자는 도 6에서 적색 사각형에 적용될 수 있다. 이를 위해, Asum은 프래그먼트의 요소로 할당될 수 있다.
그러면, 도 10 내지 도 16을 참조하여 본 발명의 바람직한 실시예에 따른 멀티-프래그먼트 렌더링에서 가상 두께 기반 레이어 병합 동작의 성능에 대하여 설명한다.
본 발명에 따른 프래그먼트 병합(SFM 및 OFM)은 메모리 효율성 및 지오메트릭 표현 측면에서 스크린-스페이스(screen-space) 렌더링 알고리즘을 효과적으로 수행하기 위해 제한된 개수의 프래그먼트를 제공하여 개별 프래그먼트를 처리하는 모든 렌더링 방법에 적용될 수 있다. 본 발명의 성능 실험에서는 성능과 품질 사이의 균형을 만족시키는 "8"로 제한된 개수를 설정한다. 본 발명의 유효성을 입증하기 위해 아래와 같은 최신 기술을 고려한다.
- DFB(dynamic fragment buffer)는 가장 빠른 렌더링 성능으로 모든 프래그먼트를 처리할 수 있지만, 무제한 메모리가 필요한 GPU 버퍼 기반 방법이다. 본 발명을 DFB에 적용하는 경우, 본 발명에 따른 SFM을 DFB에 적용하여야 한다.
- k+-buffer는 최적의 GPU 구현과 함께 정적 및 동적 k 값을 모두 사용하는 효율적인 k-버퍼 접근 방식이다. 본 실험에서는 정적(static) 버전의 k+-buffer(SKB)를 사용한다. 본 발명을 SKB에 적용하는 경우, 저장 패스(store pass)에서 프래그먼트 병합이 수행되기 때문에 본 발명에 따른 OFM을 DFB에 적용하여야 한다.
- MBT(moment-based transmittance approximation)는 레이(ray)를 따라 모든 프래그먼트를 소수의 변수로 정의된 투과율 함수(transmittance function)로 인코딩하는 방법이다. 이는 지오메트리 교차를 고려하지 않는 한 그럴듯한 OIT 결과를 제공하면서 높은 렌더링 속도를 가능하게 한다. 개별 프래그먼트를 처리하지 않기 때문에 본 발명에 따른 프래그먼트 병합은 이 방법에 적용하지 않는다.
모든 실험 응용 프로그램은 GPU 래스터-기반 그래픽 파이프라인(raster-based graphics pipeline)을 활용하는 셰이더(shader) 프로그램으로 구현된다. 실험은 32GB RAM이 장착된 Intel Core i77700 3.6GHz CPU, NVIDIA GeForce GTX 1080 GPU 및 Windows 10 x64 운영체제가 장착된 컴퓨터에서 수행된다.
A. 순서 독립적 투명도(order independent transparency)
본 발명에 따른 방법을 기반으로 하는 ‘F티-레이어 표현의 타당성을 OIT 성능, 즉 근사 모델의 이미지 품질 향상 측면에서 검증하기 위해 일련의 비교를 수행한다. 여기서, DFB는 참조 이미지를 제공하고, SKB와 MBT는 근사 OIT 이미지를 제공한다. OIT에서 z 방향을 따라 인접한 프래그먼트를 병합하는 효과를 보여주기 위해 100×P(z)의 가상 두께 값을 사용한다. 그리고, 프래그먼트 병합은 SKB와 DFB에서 다르게 적용되고, OFM은 SKB의 저장 패스(store pass)에, SFM은 DFB의 해결 패스(resolve pass)에 적용된다.
- 시각적 분석(visual analysis)
도 10은 본 발명의 바람직한 실시예에 따른 멀티-프래그먼트 렌더링에서 가상 두께 기반 레이어 병합 동작의 성능을 설명하기 위한 도면으로, MBT(moment-based transmittance approximation), SKB(static k+-buffer), SKB+OFM, 및 DFB+SFM을 사용하여 생성된 이미지 간의 히트맵-코딩 차이(heatmap-coded difference)를 나타내고, 스포츠카 데이터에는 1075개의 그리기 함수(draw function)를 호출하는 1075개의 메쉬 객체(mesh object)가 포함되어 있으며, 헤어볼(hairball) 데이터에는 고주파수 성분을 포함하는 단일 메쉬 객체를 나타내고, 바닥(floor) 데이터는 큰 크기의 서펠(surfel)로 표시되는 밀집한 점 집합(dense point set)을 나타낸다.
도 10을 참조하면, 제한된 메모리만 사용할 수 있을 때, 본 발명에 따른 방법이 OIT 결과(SKB 및 SKB+OFM에서 얻은 결과 참조)를 향상시키는 것을 알 수 있다. 또한, 모든 프래그먼트에서 제한된 개수의 프래그먼트를 생성하는 경우(DFB+SFM에서 얻은 결과 참조), 본 발명에 따른 방법은 무시할 수 있는 품질 손실로 OIT 결과를 제공함을 알 수 있다. 이는 z 방향을 따라 인접한 프래그먼트의 국부 병합이 제한된 개수의 프래그먼트로 전체 프래그먼트를 잘 인코딩할 수 있음을 의미한다.
- 성능 분석(performance analysis)
도 11은 본 발명의 바람직한 실시예에 따른 멀티-프래그먼트 렌더링에서 가상 두께 기반 레이어 병합 동작의 성능을 설명하기 위한 도면으로, 모든 비교 방법에 대해 1024×1024 및 2048×2048의 이미지 해상도에서 밀리초 단위의 성능 평가 결과를 나타내고, 도 12는 본 발명의 바람직한 실시예에 따른 멀티-프래그먼트 렌더링에서 가상 두께 기반 레이어 병합 동작의 성능을 설명하기 위한 도면으로, 장면의 레이(ray)에 따른 흡광도 함수(absorbance function)를 나타내고, 장면은 도 10에서 사용된 바닥 데이터(전체 뷰)에서 가져온 것이며, 레이(ray)를 뷰잉 방향(viewing direction)으로 사용하여 렌더링을 수행할 때 뷰잉 레이(viewing ray)는 52개의 중첩된 서펠 레이어(surfel layer)와 10개의 분리된 지오메트리 레이어(geometry layer)를 스페이스(space)에서 통과하게 된다.
도 11을 참조하면, DFB의 해결 패스(resolve pass)에서 수행된 SFM에 대한 계산 오버헤드는 정렬 오버헤드에 비해 무시할 수 있다. 들어오는 프래그먼트 및 읽기-백(read-back) 프래그먼트에서 k-프론트 프래그먼트를 저장하기 위한 픽셀 동기화에서, 병합된 프래그먼트는 성능에 영향을 미칠 수 있는 읽기/쓰기/수정 작업의 순서와 수를 변경할 수 있다. 그러나, 성능 손실은 본 발명에 따른 방법의 시각적 이점에 비해 미비함을 알 수 있다.
도 12를 참조하면, 비교 방법에서 얻은 흡광도 함수(즉, 1-투과율)를 비교하여 본 발명에 따른 방법을 기반으로 하는 인접한 프래그먼트의 국부 병합이 멀티-레이어 지오메트리 정보를 잘 나타낼 수 있음을 알 수 있다. 본 발명에 따른 방법을 기반으로 한 국부 병합의 견고성 평가를 위해, 셰이더(shader)에 동시에 무작위로 들어오는 프래그먼트를 처리하는 SKB+OFM 조합에서 얻은 흡광도 함수를 사용한다. 이는 DFB의 흡광도 함수에서 볼 수 있는, 물리적으로 분리된 지오메트리를 제한된 개수의 프래그먼트로 표현할 수 있다는 것을 나타낸다.
B. 다양한 가상 두께 효과(varying z-thickness effects)
본 발명에 따른 방법(SFM)이 특수-목적의 비사실적 렌더링(non-photorealistic rendering)에서 시각적 이점을 제공함을 입증한다. 이는 가상 두께 값을 변경함으로써 달성될 수 있다. 부드러운 가시성 전환이 중요한 요소이기 때문에, β를 1로 설정한다.
- 국부 깊이 블렌딩(local depth blending)
도 13은 본 발명의 바람직한 실시예에 따른 멀티-프래그먼트 렌더링에서 가상 두께 기반 레이어 병합 동작의 성능을 설명하기 위한 도면으로, SFM의 국부 깊이 블렌딩(local depth blending) 효과를 나타내며, 상단 이미지들은 manuscipt-textured 메쉬 모델을 나타내고, (a)는 메쉬 모델의 폴리곤(polygon)에서 렌더링된 참조 이미지를 나타내며, (b) 및 (c)는 메쉬 모델의 점 세트(point set)를 나타내는 큰 서펠(surfel)에서 렌더링된 이미지를 나타내고, (b) 및 (c)의 확대된 이미지 중 중간 이미지는 점 해상도(원본 해상도 서펠의 3배 크기로 축소된 서펠)를 강조하여 표시한 것을 나타내며, 하단 이미지들은 부분적으로 겹치는 표면을 포함하는 정렬된 형상을 나타내고, (a), (b) 및 (d)는 바이너리 z-깊이 테스트(binary z-depth test)를 사용하는 최전방 표면 렌더링을 사용하여 렌더링된 이미지를 나타낸다.
SFM을 사용하면 깊이 순서와 뷰잉 방향에 따라 프래그먼트가 겹치는 정도에 따라 이미지를 블렌딩할 수 있다. 서펠(surfel)을 사용한 점 집합(point set) 렌더링은 표면 재구성없이 점 집합 표면을 렌더링하는 일반적인 방법이다. 구멍을 최소화하는 간단한 방법은 큰 크기의 서펠(surfel)을 사용하는 것이다. 이는 조밀하게 겹치는 지점에서 발생하는 z-fighting으로 인한 반점 아티팩트(speckling artiface)를 초래한다. SFM은 이 문제를 효과적으로 해결한다. 도 13의 상단 이미지는 이를 강조한 것이다. 여기서, 10×P(z)의 가상 두께 값이 선택된다.
비교 시각화는 사용자가 모양과 크기의 차이를 인식할 수 있도록 국부 지오메트리의 거리 신호(distance cue)를 제공한다. 이를 위해, 차이에 따른 색상 매핑이 널리 사용되는 시각화 기법이다. 본 발명에 따른 방법은 색상 매핑을 사용하는 대신 겹치는 영역에서 부드러운 가시성 전환과 함께 국부 거리 신호를 제공한다. 도 13의 하단 이미지는 이를 강조한 것이다. 적색이 강할수록 적색 표면이 앞쪽에 있고, 그 반대의 경우도 마찬가지이다. 블렌딩 색상이 가까울수록, 2개의 표면은 가까운 곳에 있다. 이는 SFM에 의해 수행된다. 가상 두께 값을 표시할 최대 차이로 설정하기만 하면 된다.
- 고스트 일러스트레이션(ghosted illustration)
도 14는 본 발명의 바람직한 실시예에 따른 멀티-프래그먼트 렌더링에서 가상 두께 기반 레이어 병합 동작의 성능을 설명하기 위한 도면으로, 고스트 일러스트레이션의 일례를 나타내고, 상단 이미지들은 DFB를 사용한 투명도 렌더링(알파=0.3)을 나타내고, 하단 이미지들은 본 발명에 따른 방법(DFB+SFM)으로 얻은 고스트 효과를 나타낸다.
고스트 일러스트레이션은 명확한 모양 신호(shape cue)를 유지하면서 내부 및 외부 구조를 동시에 시각화하는 효과적인 도구이다. 고스트 일러스트레이션에 대한 전통적인 접근 방식은 외부 표면의 투명도 요소를 조절하는 일련의 구성 단계를 기반으로 한다. SFM을 기반으로 한 부드러운 가시성 전환은 투명도뿐만 아니라 깊이와 관련하여 폐색된 형상의 가시성 대비를 조정하여 이러한 고스트 효과를 제공할 수 있다. 일례은 도 14에 도시된 바와 같다. 투명도를 통해 지오메트리 폐색을 완화하는 대신 프래그먼트에 큰 가상 두께 값을 적용하여 프래그먼트가 서로 겹치도록 할 수 있다.
C. 하이브리드 렌더링(hybrid rendering)
도 15는 본 발명의 바람직한 실시예에 따른 멀티-프래그먼트 렌더링에서 가상 두께 기반 레이어 병합 동작의 성능을 설명하기 위한 도면으로, 하이브리드 렌더링의 일례를 나타내며, 여러개의 투명한 얇은 다각형 표면(타원체)과 두꺼운 체적 표면(큐브)이 있는 합성 3D 모델은 (a) SFM없이 100배 슈퍼샘플링(supersampling), (b) SFM없이 일반적인 샘플링, (c) SFM을 사용한 일반적인 샘플링을 통해 렌더링되고, 중첩 평면(superimposing plane)이 있는 실제 볼륨 데이터는 (d)SFM없이 일반적인 샘플링, (e)SFM을 사용한 일반적인 샘플링을 통해 렌더링된다.
본 발명은 투명도가 있는 멀티플 체적 및 다각형 표면의 하이브리드 렌더링을 위해 적용될 수 있다. 일반적으로 폴리곤 렌더링은 볼륨 렌더링보다 먼저 수행된다. 스크린-스페이스(screen-space) 렌더링 알고리즘과 마찬가지로, 해결 패스(reslove pass)에서 정렬 및 병합된 프래그먼트는 다시 프레임 버퍼에 저장해야 한다. 볼륨 렌더링 단계에서 SFM은 레이-캐스팅(ray-casting) 알고리즘의 모든 샘플 스텝에서 읽기-백(read-back) 프래그먼트 및 볼륨 샘플에 적용된다.
도 15를 참조하면, 기하학적이고 두꺼운 반투명 레이어(체적 표면)가 있다. 도 15의 (b)는 불연속적인 샘플링으로 인해 발생하는 들쭉날쭉한 현상을 보여준다. SFM의 부드러운 가시성 전환이 이러한 재기(jaggy)를 감소시키기 때문에 SFM은 슈퍼샘플링 결과와 유사한 고품질 이미지를 생성할 수 있다. 도 15의 (d) 및 (e)는 실제 하이브리드 렌더링 사례에서 SFM의 시각적 효과를 강조하여 표시한 것이다.
D. 스크린-스페이스 렌더링(screen-space rendering)
도 16은 본 발명의 바람직한 실시예에 따른 멀티-프래그먼트 렌더링에서 가상 두께 기반 레이어 병합 동작의 성능을 설명하기 위한 도면으로, 동적 주변 폐색(dynamic ambient occlusion) 및 피사계 심도(depth-of-field) 효과의 멀티-레이어 스크린-스페이스(screen-space) 렌더링의 일례를 나타내고, 병합된 프래그먼트의 멀티-레이어 표현(상단-좌측)은 동적 주변 폐색(dynamic ambient occlusion)(상단-우측)에 사용되며, 병합된 프래그먼트 및 주변 폐색(ambient occlusion) 값의 멀티-레이어 표현을 사용하여 주변 폐색(ambient occlusion) 및 피사계 심도(depth-of-field) 효과가 있는 반투명 장면(하단)이 렌더링된다.
스크린-스페이스(screen-space) 렌더링의 경우 스크린-스페이스 지오메트리를 나타내는 프래그먼트가 프레임 버퍼에 저장되어야 한다. 그런 다음, 저장된 프래그먼트를 다시 일고 지오메트릭 상호 작용을 계산하여 렌더링 효과를 생성한다. 스크린-스페이스의 단일 레이어 표현은 지오메트릭 상호 작용에 충분하지 않아 이미지를 렌더링하는 데 문제가 있다. 이 문제를 해결하기 위해, 많은 멀티-레이어 스크린-스페이스 렌더링 접근 방식이 개발되었다.
본 발명에 따른 방법은 OIT에서 입증된 바와 같이 스크린-스페이스 렌더링이 비용-효율적인 멀티-레이어 정보를 사용할 수 있도록 한다. 그러나, 형상이 왜곡되어 형상 폐색이 중요한 요소인 아티팩트가 발생할 수 있다. 이 문제를 해결하기 위해, 가상 두께 값이 10×P(z)보다 큰 병합된 프래그먼트에서 가상 두께 모델을 기반으로 두 표면 경계의 지오메트릭 폐색을 계산하고, 두 표면 경계는 (i)원본 지오메트리의 모양이 유지되는 가상 프론트 경계(virtual front boundary), 및 (ii)깊이 값이 원본 지오메트리의 깊이 값과 동일한 백 경계(back geometry)를 나타낸다.
본 발명에 따른 방법은 스크린-스페이스에서 수행되는 동적 주변 폐색(dynamic ambient occulusion) 및 피사계 심도(depth-of-field) 효과에 적용될 수 있다. 도 16은 이러한 스크린-스페이스 렌더링 효과가 본 발명에 따른 방법을 기반으로 반투명 프리미티브(primitive)를 포함하는 장면(scene)에 성공적으로 적용될 수 있음을 보여준다. 이를 위해, 먼저 병합된 프래그먼트를 멀티-레이어 수평 기반 주변 폐색에 적용하고, 계산된 주변 폐색 값을 각 프래그먼트에 할당할 수 있다. 그런 다음, 스크린-스페이스 레이-트레이싱(ray-tracing) 알고리즘을 피사계 심도 효과를 위해 해당 프래그먼트 레이어에 적용할 수 있다. 큰 가상 두께 값을 가지는 병합된 프래그먼트의 경우, 지오메트리 상호 작용은 가상 두께 모델의 프론트 표면 경계(front surface boundary) 및 백 표면 경계(back surface boundary) 모두에 의해 구성된 지오메트리에서 계산될 수 있다.
본 실시예들에 따른 동작은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능한 저장 매체에 기록될 수 있다. 컴퓨터 판독 가능한 저장 매체는 실행을 위해 프로세서에 명령어를 제공하는데 참여한 임의의 매체를 나타낸다. 컴퓨터 판독 가능한 저장 매체는 프로그램 명령, 데이터 파일, 데이터 구조 또는 이들의 조합을 포함할 수 있다. 예컨대, 자기 매체, 광기록 매체, 메모리 등이 있을 수 있다. 컴퓨터 프로그램은 네트워크로 연결된 컴퓨터 시스템 상에 분산되어 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수도 있다. 본 실시예를 구현하기 위한 기능적인(Functional) 프로그램, 코드, 및 코드 세그먼트들은 본 실시예가 속하는 기술 분야의 프로그래머들에 의해 용이하게 추론될 수 있을 것이다.
본 실시예들은 본 실시예의 기술 사상을 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
100 : 장치,
110 : 프로세서,
130 : 컴퓨터 판독 가능한 저장 매체,
131 : 프로그램,
150 : 통신 버스,
170 : 입출력 인터페이스,
190 : 통신 인터페이스

Claims (13)

  1. 깊이 방향(z-direction)으로 가상 두께(virtual z-thickness)를 프래그먼트(fragment)별로 결정하는 단계; 및
    프래그먼트에 대한 상기 가상 두께를 기반으로, 광학 모델(optical model) 기반의 가시성(visibility)을 이용하여, 서로 인접하고 영역이 겹치는 복수개의 프래그먼트를 국부적으로(locally) 병합하는 단계;
    를 포함하는 멀티-프래그먼트 렌더링에서 가상 두께 기반 레이어 병합 방법.
  2. 제1항에서,
    상기 가상 두께 결정 단계는,
    프래그먼트의 깊이(depth)를 기반으로 깊이 방향 분해능(z-resolution)을 획득하고, 상기 깊이 방향 분해능(z-resolution)을 이용하여 프래그먼트에 대한 상기 가상 두께를 결정하는 것으로 이루어지는,
    멀티-프래그먼트 렌더링에서 가상 두께 기반 레이어 병합 방법.
  3. 제2항에서,
    상기 가상 두께 결정 단계는,
    프래그먼트의 깊이, 뷰 프러스텀(view frustum)의 니어 클립 플레인(near clip plane)의 깊이, 뷰 프러스텀(view frustum)의 파 클립 플레인(far clip plane)의 깊이 및 부동 소수점(float-point) 정밀도(precision)를 기반으로 상기 깊이 방향 분해능(z-resolution)을 획득하는 것으로 이루어지는,
    멀티-프래그먼트 렌더링에서 가상 두께 기반 레이어 병합 방법.
  4. 제2항에서,
    상기 가상 두께 결정 단계는,
    상기 깊이 방향 분해능(z-resolution) 및 사용자에 의해 설정된 값을 기반으로 프래그먼트에 대한 상기 가상 두께를 결정하는 것으로 이루어지는,
    멀티-프래그먼트 렌더링에서 가상 두께 기반 레이어 병합 방법.
  5. 제1항에서,
    상기 프래그먼트 병합 단계는,
    깊이의 순서(order)로 정렬된 프래그먼트의 순서를 이용하여 프래그먼트를 병합하는 SFM(smooth fragment merging)을 이용하여 상기 복수개의 프래그먼트를 국부적으로 병합하는 것으로 이루어지는,
    멀티-프래그먼트 렌더링에서 가상 두께 기반 레이어 병합 방법.
  6. 제5항에서,
    상기 프래그먼트 병합 단계는,
    상기 복수개의 프래그먼트가 서로 겹치는 경계(boundary)를 기반으로 상기 복수개의 프래그먼트 각각에 대해 서브-프래그먼트(sub-fragment)를 획득하고, 상기 서브-프래그먼트 각각에 대한 불투명도(opacity)와 가시성 색상(visibility color)을 상기 광학 모델을 통해 획득하며, 상기 서브-프래그먼트 각각에 대한 불투명도와 가시성 색상을 기반으로 상기 복수개의 프래그먼트를 국부적으로 병합하는 것으로 이루어지는,
    멀티-프래그먼트 렌더링에서 가상 두께 기반 레이어 병합 방법.
  7. 제6항에서,
    상기 프래그먼트 병합 단계는,
    상기 복수개의 프래그먼트가 서로 겹치는 영역에 대응되는 상기 복수개의 프래그먼트의 상기 서브-프래그먼트에 대한 불투명도와 가시성 색상을 기반으로 겹치는 영역에 대한 불투명도와 가시성 색상을 획득하여, 상기 복수개의 프래그먼트를 국부적으로 병합하는 것으로 이루어지는,
    멀티-프래그먼트 렌더링에서 가상 두께 기반 레이어 병합 방법.
  8. 제1항에서,
    상기 프래그먼트 병합 단계는,
    프래그먼트의 순서(order)가 결정되지 않은 상태에서 프래그먼트를 병합하는 OFM(order-independent fragment merging)을 이용하여 상기 복수개의 프래그먼트를 국부적으로 병합하는 것으로 이루어지는,
    멀티-프래그먼트 렌더링에서 가상 두께 기반 레이어 병합 방법.
  9. 제1항 내지 제8항 중 어느 한 항에 기재된 멀티-프래그먼트 렌더링에서 가상 두께 기반 레이어 병합 방법을 컴퓨터에서 실행시키기 위하여 컴퓨터 판독 가능한 저장 매체에 저장된 컴퓨터 프로그램.
  10. 멀티-프래그먼트 렌더링(multi-fragment rendering)에서 가상 두께(virtual z-thickness)를 기반으로 레이어(layer)를 병합하는 장치로서,
    상기 가상 두께를 기반으로 상기 레이어를 병합하기 위한 하나 이상의 프로그램을 저장하는 메모리; 및
    상기 메모리에 저장된 상기 하나 이상의 프로그램에 따라 상기 가상 두께를 기반으로 상기 레이어를 병합하기 위한 동작을 수행하는 하나 이상의 프로세서;
    를 포함하며,
    상기 프로세서는,
    깊이 방향(z-direction)으로 상기 가상 두께를 프래그먼트(fragment)별로 결정하고,
    프래그먼트에 대한 상기 가상 두께를 기반으로, 광학 모델(optical model) 기반의 가시성(visibility)을 이용하여, 서로 인접하고 영역이 겹치는 복수개의 프래그먼트를 국부적으로(locally) 병합하는,
    장치.
  11. 제10항에서,
    상기 프로세서는,
    프래그먼트의 깊이(depth)를 기반으로 깊이 방향 분해능(z-resolution)을 획득하고, 상기 깊이 방향 분해능(z-resolution)을 이용하여 프래그먼트에 대한 상기 가상 두께를 결정하는,
    장치.
  12. 제11항에서,
    상기 프로세서는,
    상기 깊이 방향 분해능(z-resolution) 및 사용자에 의해 설정된 값을 기반으로 프래그먼트에 대한 상기 가상 두께를 결정하는,
    장치.
  13. 제10항에서,
    상기 프로세서는,
    깊이의 순서(order)로 정렬된 프래그먼트의 순서를 이용하여 프래그먼트를 병합하는 SFM(smooth fragment merging) 또는 프래그먼트의 순서(order)가 결정되지 않은 상태에서 프래그먼트를 병합하는 OFM(order-independent fragment merging)을 이용하여 상기 복수개의 프래그먼트를 국부적으로 병합하는,
    장치.
KR1020220001026A 2021-08-31 2022-01-04 멀티-프래그먼트 렌더링에서 가상 두께 기반 레이어 병합 방법, 이를 수행하는 장치 및 컴퓨터 프로그램 KR102683773B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20210115485 2021-08-31
KR1020210115485 2021-08-31

Publications (2)

Publication Number Publication Date
KR20230032826A true KR20230032826A (ko) 2023-03-07
KR102683773B1 KR102683773B1 (ko) 2024-07-10

Family

ID=85513278

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220001026A KR102683773B1 (ko) 2021-08-31 2022-01-04 멀티-프래그먼트 렌더링에서 가상 두께 기반 레이어 병합 방법, 이를 수행하는 장치 및 컴퓨터 프로그램

Country Status (1)

Country Link
KR (1) KR102683773B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117315123A (zh) * 2023-11-27 2023-12-29 上海天华建筑设计有限公司 基于OpenGL的次序无关透明度的图像渲染方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
A.A.Vasilakis et al., "Depth-fighting Aware Methods for Multi-fragment Rendering", IEEE TVCG,(2012.10.16)* *
C.Everitt, "Interactive Order-Independent Transparency", Technical report, NVIDIA Corporation,(2001.12.31)* *
D.Kim et al., "High-quality Slab-based Intermixing Method for Fusion Rendering of Multiple Medical Objects", (2015.09.15)* *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117315123A (zh) * 2023-11-27 2023-12-29 上海天华建筑设计有限公司 基于OpenGL的次序无关透明度的图像渲染方法

Also Published As

Publication number Publication date
KR102683773B1 (ko) 2024-07-10

Similar Documents

Publication Publication Date Title
US11915396B2 (en) Denoising filter
US6115049A (en) Method and apparatus for high performance antialiasing which minimizes per pixel storage and object data bandwidth
US10957082B2 (en) Method of and apparatus for processing graphics
US9779536B2 (en) Graphics processing
JP5538748B2 (ja) グラフィックス処理システム
Maule et al. A survey of raster-based transparency techniques
US6670955B1 (en) Method and system for sort independent alpha blending of graphic fragments
US10229524B2 (en) Apparatus, method and non-transitory computer-readable medium for image processing based on transparency information of a previous frame
US10650577B2 (en) Graphics processing systems
CN108280867A (zh) 图形处理方法和系统
US8928690B2 (en) Methods and systems for enhanced quality anti-aliasing
US8416260B1 (en) Sigma buffer for rendering small objects
US10839600B2 (en) Graphics processing systems
JP4499291B2 (ja) 3次元コンピュータ生成画像のシェーディング及びテクスチャリング
KR102683773B1 (ko) 멀티-프래그먼트 렌더링에서 가상 두께 기반 레이어 병합 방법, 이를 수행하는 장치 및 컴퓨터 프로그램
Kim et al. Z‐Thickness Blending: Effective Fragment Merging for Multi‐Fragment Rendering
Eisemann et al. Z-Thickness Blending: Effective Fragment Merging for Multi-Fragment Rendering
Halladay et al. Translucency and Depth
CN118379412A (zh) 一种图像绘制方法、装置、设备及介质

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right