KR20240040263A - 자연스럽게 오브젝트를 페이드 아웃하는 방법 - Google Patents

자연스럽게 오브젝트를 페이드 아웃하는 방법 Download PDF

Info

Publication number
KR20240040263A
KR20240040263A KR1020220119067A KR20220119067A KR20240040263A KR 20240040263 A KR20240040263 A KR 20240040263A KR 1020220119067 A KR1020220119067 A KR 1020220119067A KR 20220119067 A KR20220119067 A KR 20220119067A KR 20240040263 A KR20240040263 A KR 20240040263A
Authority
KR
South Korea
Prior art keywords
objects
blending
static
animated
stack
Prior art date
Application number
KR1020220119067A
Other languages
English (en)
Inventor
함기석
Original Assignee
주식회사 나인헥타르
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 나인헥타르 filed Critical 주식회사 나인헥타르
Priority to KR1020220119067A priority Critical patent/KR20240040263A/ko
Publication of KR20240040263A publication Critical patent/KR20240040263A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/503Blending, e.g. for anti-aliasing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • 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
    • G06T7/00Image analysis
    • G06T7/97Determining parameters from multiple pictures

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)

Abstract

본 발명은 애니메이션된 오브젝트를 블렌딩하여 자연스럽게 오브젝트를 페이드 아웃하는 방법에 관한 것이다. 그래픽 객체들은 적어도 하나의 정적 객체 및 적어도 하나의 애니메이션된 객체를 포함하는 순차된 스택으로 배열된다. 각각의 객체는 적어도 하나의 연관된 블렌딩 파라미터(예를 들어 투명도)를 갖는다. 본 방법은 (a) 정적 객체들의 각각의 블렌딩 파라미터들을 고려하여 적어도 하나의 복합 정적 객체를 형성하기 위해 정적 객체들의 콘텐츠를 블렌딩하는 단계 및 (b) 애니메이션된 객체의 블렌딩 파라미터를 고려하여 애니메이션된 객체와 복합 정적 객체의 콘텐츠를 블렌딩하는 단계를 포함한다. 단계(a)에서 형성된 복합 정적 객체는 애니메이션된 객체의 콘텐츠가 변화될 때 재사용될 수 있다. 바람직한 실시예에서, 스택 내 모든 정적 객체들의 콘텐츠는 상기 단계(a)에서 스택 내 모든 객체들의 블렌딩 파라미터들을 고려하여 하나의 복합 정적 객체로 블렌딩된다. 블렌딩 파라미터값 스텐실은 상응하는 애니메이션된 객체 및 스택 내 상응하는 애니메이션된 객체 위에 있는 임의의 객체들의 블렌딩 파라미터값을 고려하여 스택 내 각각의 애니메이션된 객체에 대해 생성된다. 단계(b)는 상기 상응하는 스텐실에 기반하여 복합 정적 객체와 각각의 애니메이션된 객체의 콘텐츠를 블렌딩하는 단계를 포함한다.

Description

자연스럽게 오브젝트를 페이드 아웃하는 방법{How to fade out objects naturally}
본 발명은 데이터 프로세싱 방법에 관한 것으로, 보다 구체적으로는 자연스럽게 오브젝트를 페이드 아웃하는 방법에 관한 것이다.
컴퓨터 그래픽, 게임, 애니메이션, 지도와 같은 시각 자료에 있어서 보다 풍부한 사용자 경험을 제공할 수 있는 능력은 제조자를 위한 경쟁력있는 우위가 될 수 있다. 이 능력은 장면에 텍스트 및 기타 형상(집합적으로 마크업으로 지칭됨)의 렌더링(rendering)을 포함할 수 있다. 통상적으로, 이는 마크업을 드로잉(drawing)하며 어떤 점에서는 마크업이 장면을 막게 둠으로써, 또는 전적으로 장면 내에 마크업을 드로잉하도록 시도함으로써(이 경우에 마크업은 장면의 일부에 의해 막힐 수 있음) 처리된다. 3차원(3D; three-dimension)과 같은 다차원 렌더링에 있어서, 마크업을 알아볼 수 있으면서 또한 장면 또는 그의 어떠한 부분도 막지 않는 방식으로 마크업을 3D 장면 안으로 어떻게 드로잉하느냐에 대해 문제점이 존재한다.
본 발명의 목적은 그래픽 데이터, 그래픽 객체 및 디지털 문서를 프로세싱하여, 자연스럽게 오브젝트를 페이드 아웃하는 방법을 제공하여, 종래의 방법 및 시스템의 단점을 제거하거나 완화하는 방법을 제공하는 것이다.
제 1 측면에서, 본 발명은 디지털 문서 프로세싱 시스템에서 다수의 상호 중첩된 그래픽 객체들을 블렌딩하는 방법에 관한 것이며, 여기에서 상기 다수의 그래픽 객체는 적어도 하나의 정적 객체(static object) 및 적어도 하나의 애니메이션된 객체(animated object)를 포함하는 순차된 스택(ordered stack)에 배열되고, 상기 각각의 객체는 그래픽 콘텐츠(graphical content)를 포함하고 이와 연관된 객체의 적어도 일부에 대해 적어도 하나의 블렌딩 파라미터(blending parameter)를 갖는다. 본 방법은: (a) 정적 객체의 각각의 블렌딩 파라미터를 고려하여 적어도 하나의 복합 정적 객체(composite static object)를 형성하기 위해 상기 정적 객체의 콘텐츠를 블렌딩하는 단계; 및 (b) 애니메이션된 객체의 블렌딩 파라미터를 고려하여 상기 애니메이션된 객체의 콘텐츠 및 상기 또는 각각의 복합 정적 객체의 콘텐츠를 블렌딩하는 단계를 포함한다.
본 발명의 통상적인 실시예에서, 상기 적어도 하나의 각각의 객체 블렌딩 파라미터는 이와 연관된 객체의 적어도 일부의 투명도(transparency)를 나타내는 적어도 하나의 알파값(alpha value)을 포함한다.
바람직한 일실시예에서, 단계 (a)는 제 1 복합 정적 객체를 형성하기 위해 스택의 애니메이션된 객체 아래에 위치되는 정적 객체를 블렌딩하는 단계 및 제 2 복합 정적 객체를 형성하기 위해 스택의 애니메이션된 객체 위에 위치된 정적 객체를 블렌딩하는 단계를 포함하고, 단계 (b)는 상기 제 1 및 제 2 복합 정적 객체들과 상기 애니메이션된 객체를 블렌딩하는 단계를 포함한다.
본 발명에 의하면 애니메이션된 오브젝트를 블렌딩하여 자연스럽게 페이드 아웃할 수 있는 효과가 있다.
도 1은 본 발명의 일 측면에 따라 그래픽 객체를 블렌딩하는 방법에 대한 제 1 실시예를 도시하는 다이어그램이다.
도 2는 본 발명의 일 측면에 따라 그래픽 객체를 블렌딩할 때 타일링 방법(tiling method)의 사용을 도시하는 다이어그램이다.
도 3은 본 발명의 일 측면에 따라 그래픽 객체를 블렌딩하는 방법에 대한 다른 실시예를 도시하는 다이어그램이다.
도 4는 도 3의 방법 중 일례를 구현하는 동안 디스플레이의 콘텐츠와 스텐실 버퍼가 어떻게 변화하는지를 보여주는 개략도이다.
도 5는 도 4의 일례를 추가적으로 도시하는 테이블이다.
도 6은 복합 그래픽 영상으로 및 복합 그래픽 영상으로부터 애니메이션된 콘텐츠를 부가하고 공제하는 도 3 내지 5에 개시된 방법의 동작을 개략적으로 도시하는 다이어그램이며;
도 7은 도 1의 방법 및 도 3 내지 6에 개시된 방법과 종래의 객체 블렌딩 프로세스를 비교하는 다이어그램이다.
본 발명의 목적 및 효과는 다음의 상세한 설명을 통하여 보다 분명해질 것이나 하기의 기재만으로 본 발명의 목적 및 효과가 제한되는 것은 아니다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다.
이하, 첨부된 도면을 참조하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 이하에서 개시되는 실시 예에 한정되지 않는다. 또한 도면에서 본 발명을 명확하게 개시하기 위해서 본 발명과 관계없는 부분은 생략하였으며, 도면에서 동일하거나 유사한 부호들은 동일하거나 유사한 구성요소들을 나타낸다.
텍스트와 형상 둘 다 볼 수 있으면서 장면을 막지도 또는 장면에 의해 막히지도 않는 방식으로 텍스트 및 기타 형상("마크업"으로 지칭됨)을 3차원(3D) 장면 안으로 어떻게 드로잉할지 결정하는데 있어서 문제점이 존재한다. 통상적으로, 이는 종래에 마크업을 노골적으로 드로잉하고 마크업이 장면을 막게 둠으로써 또는 전적으로 장면 내에 마크업을 드로잉하기를 시도함으로써(이 경우, 마크업은 장면의 일부에 의해 막힐 수 있음) 처리된다.
장면을 막지 않는 또는 장면에 의해 바람직하지 않게 막히지도 않는 마크업을 드로잉하기 위하여, 개시된 아키텍처는 마크업이 기여하는 사용자에의 효용 대 장면이 기여하는 사용자에의 효용을 결정하는(예컨대, 픽셀마다) 방식을 제공한다. 이는 시청자에게 유익하게 되도록 요구되는 것을 막는 일 없이 3D 장면 및 마크업을 드로잉할 방식을 제공한다.
텍스트, 라인 및 기타 그래픽과 같은 마크업을 장면 안에 드로잉할 때, 먼저 장면의 3D 공간 내에 있을 마크업을 어디에 확립할지에 대해 결정이 행해진다. 그 다음, 픽셀마다, 마크업 픽셀이 장면에 의해 막히지 않는 한, 마크업 픽셀이 드로잉된다. 마크업 픽셀이 막히는 경우에는, (장면 객체의) 막는 픽셀로부터 마크업 픽셀까지의 거리가 계산되고, 막는 픽셀로부터 카메라까지의 거리(관찰자로부터의 뷰)와 비교된다.
이 결과의 값(예컨대, 비율)은, 관찰자가 마크업 픽셀(들)을 보는 것을 차단하는 물체의 양의 단순하고 효율적인 계산을 가능하게 한다. 이 양이 작은 경우, 마크업은 최소한으로 막히고(한다고 하더라도), 양이 큰 경우, 마크업은 상당히(또는 완전히) 막힌다. 따라서, 객체가 장면에서 먼 것으로 보이고(예컨대, 줌아웃됨) 마크업 앞에 있는 경우, 마크업은 보다 명확하게 드로잉될 것이며(막는 픽셀을 통해 볼 수 있음), 반면에 동일 객체가 장면에서 가까이 보이고(예컨대, 줌인됨) 마크업 앞에 있는 경우, 마크업은 드로잉된다 하더라도 희미하게 렌더링된다.
개시된 방법은 컴퓨터 게임 시스템에도 적용가능성을 찾을 수 있으며, 깊이 페이딩 및 마크업은 강화된 사용자 경험을 제공하는데 사용될 수 있다. 예를 들어, 숨기는(또는 가리는) 객체 뒤의 "숨겨진" 타겟 객체는, 거기에 플레이어/사용자로부터 "더 멀리" 떨어진 거리의 경우, 완전 불투명으로 숨겨진 객체의 가려진 픽셀들의 일부 또는 전부를 드로잉함으로써, 어느 정도의 가시성(예컨대, 윤곽)으로 드로잉될 수 있다. 사용자에서부터 숨기는 객체까지의 거리가 감소함에 따라, 숨겨진 객체의 가려진 픽셀들은 덜한 불투명도로, 그렇지 않다면 제로 불투명도로 드로잉되며, 그리하여 플레이어가 어쨌든 숨겨진 타겟 객체를 보는 것을 막는다.
본 발명의 제 1 측면에 따라, 다수의 오버레이드(overlaid) (즉 적어도 부분적으로 중첩된) 객체들의 복합적인 시각적 표현을 생성하는 방법이 제공되는데, 상기 객체들 중 적어도 하나는 애니메이션된 객체이며, 여기서 객체를 "블렌딩"하는 것으로 언급된다. 블렌딩은 적어도 하나의 미리 결정된 블렌딩 기능에 기반하여 수행된다. 각각의 객체는 이와 연관된 적어도 하나의 블렌딩 파라미터를 가지며, 이에 적어도 하나의 블렌딩 기능이 적용된다. 본 방법이 적용될 수 있는 가장 통상적인 블렌딩 파라미터는 투명도(transparency)이며, 본 발명은 특히 투명도를 참조하여 설명될 것이다. 그러나, 본 발명은 다른 블렌딩 파라미터에도 동등하게 적용가능하다는 것이 이해될 것이다.
여기에서 사용될 때, "애니메이션된 객체들(animated objects)"은 임의의 방식으로 시간에 따라 주기적으로 또는 비주기적으로 변화하는 콘텐츠를 가진 (데이터 콘텐츠 및/또는 다른 시각적 특성들 및/또는 위치 및/또는 배향, 및/또는 모양 및/또는 크기를 포함하여) 객체들을 포함하고, 이는 비디오 객체, 프레임-애니메이션된 객체 및 점진적으로 업데이트된 그래픽 객체를 포함하며, 어떤 이유로도 이에 제한되지는 않는다.
또한 여기에서 사용될 때, "부분적으로 투명한 객체(partially transparent object)"는 완전히 불투명하지는 않은 객체를 의미하고, 용어 "알파값"은 완전 투명과 완전 불투명 사이에서 객체 또는 객체 일부의 상대적인 투명도를 의미하는 숫자값을 나타낸다. 또한 부분적인 투명도는 객체의 안티-앨리어싱된 "소프트(soft)" 에지를 말한다. "정적 객체(static object)"는 관심있는 시간 주기 동안에 변화하지 않는 콘텐츠를 가진 (위치, 배향, 모양, 크기 및 다른 관련 특성들을 포함하여) 객체를 의미한다.
이제 도 1을 참조하면, 시스템이 각 객체의 상대적인 투명도(알파값)를 고려하여, 모든 객체들의 콘텐츠를 결합함으로써 오버레이드된 부분적으로 투명한 그래픽 객체들의 순차적인 스택의 복합 시각적 표현을 생성하기 위해 필요할 수 있다. 만일 스택 내 객체들 중 하나가 (위에 정의된 바와 같이) 애니메이션된다면, 애니메이션된 객체의 콘텐츠가 다른 객체에 대해 변화할 때마다, 애니메이션된 객체의 업데이트된 콘텐츠를 반영하는 새로운 표현을 생성하기 위해서 일반적으로 전체 객체들 스택을 프로세싱할 필요가 있을 것이다.
본 발명의 일실시예에 따라, 객체 스택은 객체가 렌더링될 순서로 애니메이션된 객체(이후에는 "애니메(anime)"로 언급됨) 위와 아래의 정적인 객체들 클러스터(cluster)로 분리된다. 하부 클러스터(bottomside cluster:150)는 스택의 애니메(152) 아래에 있는 하나 이상의 객체들로 이루어지고, 상부 클러스터(topside cluster:154)는 스택의 애니메(152) 위에 있는 하나 이상의 객체들로 이루어진다. 하부 클러스터(150)는 단일 하부 비트맵 객체(156)를 생성하기 위해 렌더링/블렌딩되고, 상부 클러스터(154)는 단일 상부 비트맵 객체(158)를 생성하기 위해 렌더링/블렌딩되며, 애니메(152)는 상기 상부 및 하부 비트맵들 사이에 위치되어 개별적으로 존재한다. 그 후에, 애니메(152)의 콘텐츠가 변화될 때마다 원하는 복합 출력을 얻기 위해서 2개의 비트맵 객체들과 애니메를 블렌딩하는 것만이 필요하다. 즉, 하부 클러스터 객체를 한번, 그리고 상부 클러스터 객체를 한번 블렌딩하는 것만이 필요하며, 이는 애니메(152)에서 변화를 반복하기 위한 프로세싱 오버헤드(overhead)에 대해 큰 감소를 제공한다.
프로세싱 오버헤드를 절감하는 면에서의 본 방법의 장점은 각각의 클러스터에서의 객체 수가 증가함에 따라 증가되지만, 본 방법은 하나 이상이 클러스터들이 단지 단일한 정적 객체로 이루어지는 경우에서도 적용가능하다는 것이 이해될 것이다.
또한 본 방법은 애니메(152)가 스택의 최상부(상부 클러스터가 없음) 또는 스택의 최하부(하부 클러스터가 없음)에 있는 경우에도 적용가능하다는 것이 이해될 것이다.
애니메(152)는 이와 연관된 (모양을 정의하는) 클립마스크(clipmask) 및 (투명도를 정의하는) 알파마스크를 구비할 수 있다. 유사한 마스크들이 투명도 이외의 블렌딩 파라미터들을 정의하기 위해 사용될 수 있다.
도 2에서 도시된 것과 같이, 애니메(152)의 양측 상의 스택 내 객체들은 상이한 양으로 서로 및 애니메를 중첩시킬 수 있다. 이 경우에, 객체들을 블렌딩하는 것은 정적 객체를 애니메(152)와 중첩된 영역(도 2의 빗금친 영역)으로 클리핑하는 것을 의미하며, 이로서 블렌딩된 클러스터 객체(158 및 156)는 애니메(152)의 영역으로 클리핑된다.
프로세싱이 "객체에-기반(object-based)"될 때, 상기 프로세싱은 임의의 메모리량을 필요로 한다. 클러스터링 방법은 클리핑된 객체를 가장 가까운 고정된 파일 크기로 라운딩함으로써, 타일링 방법으로 결합될 수 있으며, 이로서 메모리와 프로세싱 요건은 예상가능하게 되고, 이에 따라 메모리 및 성능 특성을 개선시키고 관련 코드를 단순화시킬 수 있다. 또한 이는 이하 기술되는 본 발명의 대안적인 실시예에 적용된다.
본 발명의 방법으로 다양한 그래픽 객체들의 프로세싱에서 사용되는 것과 같은 버퍼링 프로세스의 효율성은 순차 리스트에 색인된 타일(136) 어레이로서 버퍼 콘텐츠를 정의함으로서 개선될 수 있다. 각각의 타일은 (예를 들어 32x32 또는 64x64와 같은) 고정된 크기의 비트맵을 포함하고 "최소-버퍼(mimi-buffer)"로 간주될 수 있다. 필요한 디스플레이 뷰 콘텐츠가 변화되거나 클리핑되거나 버퍼 영역 밖으로 이동될 때, 그 후에는 단지 더 이상 필요하지 않는 타일들을 폐기하고, 임의의 새로운 디스플레이 콘텐츠를 커버하고 타일 리스트를 업데이트하도록 새로운 타일을 작성하는 것이 필요하다. 이는 종래의 버퍼링 프로세스보다 더 빠르고 더 효율적인데, 왜냐하면 블록-복사(block-copying)가 버퍼 내에서 요구되지 않고, 어떤 물리적 메모리도 이동되거나 복사될 필요가 없기 때문이다.
기술된 타일링 방법은 모든 문서와 스크린 재인출 동작을 위해 타일풀(tilepool)을 제공하도록 전반적으로 사용될 수 있다. 타일은 문서 및/또는 오프-스크린 객체를 저장(cashe)하기 위해 사용되어, 빠르고, 효율적인 뷰 재-인출을 허용한다.
이러한 본 발명의 측면의 대안적인 실시예에서, 스택의 모든 정적 객체들은 단일 비트맵으로 결합될(블렌딩될) 수 있고, 그 후에 애니메는 정적 객체를 블렌딩하는 프로세스에서 생성된, "스텐실" 또는 "마스크" (블렌딩 파라미터가 이하 추가로 기술되는 투명도를 표현하는 경우, "알파-마스크")에 기반하여 단일 비트맵 객체로서 블렌딩된다. 이는 도 3, 도 4 및 도 5에 도시되어 있다.
본 방법은 모든 객체 스택의 블렌딩된 정적 객체를 표현하는 디스플레이 버퍼 콘텐츠와 하나 이상의 애니메를 블렌딩하는데 사용하기 위한, 블렌딩된 객체들의 복합 픽셀값들을 임시 저장하기 위한 디스플레이 버퍼(200) 및 스텐실의 상응하는 픽셀값들을 임시 저장하기 위한 하나 이상의 스텐실 버퍼(202)를 사용한다.
이러한 본 발명의 측면의 일례는 (스택의 최하부로부터 최상부까지의) 객체들(A 내지 F)의 스택을 참조하여 기술될 것인데, 여기서 D는 애니메이고, A, B, C, E 및 F는 정적 객체들이다. 각각의 객체는 연관된 알파값을 가진다. 객체는 단일의 고정된 알파값을 가질 수 있거나, 알파값은 객체의 영역을 통해 변화할 수 있다(예를 들어 객체는 에지를 향해 점진적으로 더 투명하게 되는 "소프트 에지"를 가질 수 있다). 이는 블렌딩 기능 및 알파값들 이외의 파라미터들에 동등하게 적용된다. 여기서 기술된 일례는 각각의 객체의 블렌딩 파라미터값(본 일례에서는 알파값)이 픽셀마다 임의로 변화하는 가장 일반적인 경우에 관한 것이다.
프로세스의 제 1 단계에서, 정적 객체(A, B, C, E 및 F)는 각각의 픽셀값들(통상, 사용된 색 모델에 따른 방식으로, 색과 채도(saturation), 또는 색차(chrominance)와 휘도(luminance) 등을 정의함) 및 알파값들을 고려하고, 또한 애니메(D)의 알파값을 고려하여, 스택의 최하부로부터 최상부까지의 순서로 블렌딩된다. 애니메(D)의 픽셀값들은 이러한 정적 객체들의 블렌딩 동안 고려되지 않고, 이는 모든 정적 객체(A, B, C, E 및 F)의 픽셀값들 및 모든 객체(A 내지 F)의 알파값들로부터 유래된 복합체인 단일 비트맵 객체(G)를 포함하는 디스플레이 버퍼(200)를 초래한다.
정적 객체가 디스플레이 버퍼(200)에서 블렌딩되는 동시에, 스텐실(H)이 애니메(D) 자체의 알파값들 및 본 실시예에서 E 및 F인 정적 객체들의 알파값들에 기반하여, 스텐실 버퍼(202)에서 생성된다. 모든 정적 객체들이 전술한 바와 같이 블렌딩된 후에 얻어지는 최종 스텐실은 스택 내의 모든 객체에 대해, 그리고 스택 내에서 애니메(D)의 위치를 고려하여, 애니메(D)의 투명도를 반영하는 각각의 픽셀에 대한 결과적인 알파값들 세트를 포함한다.
프로세스의 최종 단계에서, 복합 비트맵(G)의 픽셀값들은 모든 객체들(A 내지 F)의 복합체인 최종 비트맵을 생성하기 위해서, 스텐실(H)로부터의 알파값들을 사용하여, 애니메(D)의 픽셀값들과 블렌딩된다. 애니메(D)의 콘텐츠가 변화될 때마다, 이전에 얻어진 스텐실(H)을 사용하여 새로운 애니메 콘텐츠를 이전에 얻어진 비트맵(G)과 블렌딩하는 것만이 필요하다.
애니메의 투명도가 다른 객체에 대해 변화된다면, 물론 새로운 복합 비트맵(G)과 스텐실(H)을 생성하는 것이 필요하다. 이하 기술되는 본 발명의 추가적인 실시예는, 객체의 투명도(또는 다른 블렌딩 파라미터)가 예를 들어 객체를 페이드인 또는 페이드아웃시키기 위해 시간에 따라 변화될 때, 새로운 복합 비트맵과 스텐실을 생성하는 프로세스를 단순화한다. (시간에 따라 변화하는 투명도 또는 다른 블렌딩 파라미터를 갖는 다른 정적 객체는 위에 제공된 한정의 범위 내의 애니메이션된 객체이거나 이러한 객체가 된다.)
본 방법은 스택 내 다수의 애니메들에 채택될 수 있으며, 스택 내 각각의 객체의 투명도와 위치를 고려하는 각각의 애니메에 대해 단일 복합 비트맵(G)과 스텐실(H)을 생성한다.
본 방법은, 도 3, 도 4 및 도 5에 도시된 바와 같이, 특정하고 간략화된 일례를 참조하여 더 잘 이해될 것이다.
도 4는 10픽셀 x 10픽셀 디스플레이 버퍼(200) 및 상응하는 10x10 스텐실 버퍼(202)를 도시한다. 각각의 버퍼들 아래에, 각 버퍼의 한 행(204)의 각 픽셀 콘텐츠는 본 방법의 단계 [1] 내지 단계 [7]에 대해 개략적으로 도시되어 있다. 버퍼 콘텐츠의 도시에서, 수직 방향은 각각의 객체 및 객체들의 조합으로부터 유래된 콘텐츠의 비율을 나타낸다. 이러한 비율에서의 변화는 다양한 알파값들을 기반로 다양한 객체들 및 조합들의 픽셀값들의 "스케일링"을 참조하여 본 명세서에 기술되어 있다. 본 방법은 도시된 행의 왼쪽 픽셀(206)을 특히 참조하여 기술될 것이다. 다른 행에 도시된값들은 단지 도시를 위한 것으로서 전적으로 임의적이다.
도 5는 디스플레이와 스텐실 버퍼들의 콘텐츠가 도 4의 행의 왼쪽 픽셀에 대해 어떻게 계산되고 어떻게 변화되는 지를 도시하는 테이블로서, 객체(A 내지 F) 각각의 관련 행의 왼쪽 픽셀의 알파값들은 다음과 같다.
객체 알파값
A 60%
B 20%
C 40%
D 60%
E 40%
F 20%
사전 단계(미도시)에서, 디스플레이 버퍼(200)의 콘텐츠는 예를 들어 검은색(black)이나 흰색(white)으로 초기화되고, 스텐실 버퍼(202)는 "100%"로 초기화된다. 편의를 위해, 이러한 초기적인 디스플레이 버퍼(200) 상태는 초기 객체(I)로 언급될 것이다.
각각의 단계 [1] 내지 단계 [6]에서, 다음 정적 객체(N)의 알파값의 보수(complement)로 현재의 버퍼 픽셀값을 스케일링하고, 자체의 알파값로 객체(N)의 픽셀값을 스케일링하며, 상기 둘을 함께 더함으로써 디스플레이 버퍼의 새로운 콘텐츠가 결정되며, 서로 블렌딩 된다. 즉, 본 실시예의 단계 [1]는:
결과적인 픽셀값 = (100-60)%I + 60%A
d[1] = 40%I + 60%A이다.
프로세스가 애니메(D)에 도달할 때, 현재의 버퍼 콘텐츠는 애니메 알파값의 보수로 스케일링되지만, 버퍼에 아무것도 부가되지 않는다. 그 후에, 현재의 버퍼값과 다음 정적인 객체값은 이전과 같이 스케일링되고 부가된다. 최종 정적인 객체(F)가 스케일링되고 버퍼에 부가된 후에, 버퍼 콘텐츠는 복합 정적 비트맵(G)를 포함한다(단계 [6]).
단계 [1] 내지 단계 [6] 동안에, 스텐실 버퍼 콘텐츠는 애니메(D)가 도달될 때까지 변화되지 않고 남아 있는다(단계 [4]). 그 후에 스텐실값은 애니메의 알파값으로 스케일링된다. 후속 객체에 대해(즉, 스택 내 애니메 위의 객체에 대해), 스텐실값은 각각의 객체의 알파값의 보수로 스케일링된다. 마지막(최상부) 객체가 프로세싱되면, 최종 스텐실값(H)이 얻어진다(단계 [6]).
마지막으로, 단계[7]에서, 애니메(D)의 픽셀값들은 스텐실값들(H)로 스케일링되고, 애니메 콘텐츠를 포함하는 최종의 복합 디스플레이를 얻기 위해 복합 비트맵값들(G)에 부가된다. 애니메 콘텐츠에서의 후속 변화에 대해, (복합 비트맵(G)과 스텐실(H)를 재계산하는 것이 필요하게 될 때, 다른 객체에 관련된 애니메의 투명도가 변화되지 않는 한) 디스플레이를 업데이트하기 위해 새로운 애니메 콘텐트로써 단계 [7]를 반복하는 것만이 필요하다.
전술한 바와 같이, 본 방법은 다수의 애니메를 포함하는 객체 스택에 적용가능하다. 복합 스택 비트맵(G)은 각각의 애니메의 (스택 내)위치 및 투명도를 고려하여 계산될 것이고, 스텐실(H)은 개별적인 애니메 자체 및 스택에서 상기 애니메 위에 있는 모든 정적 객체와 애니메이션된 객체들을 고려하여 각각의 애니메에 대해 계산될 것이다.
본 발명의 본 실시예를 위해, 다양한 객체의 픽셀값들을 스케일링하는 것이 올바른 순서(스택의 최하부로부터 최상부까지)로 수행되어, 최종 복합 영상이 상기 순서와 객체의 상대적인 투명도를 적절히 반영하게 되지만, 다양한 객체의 스케일링된값들이 함께 부가되는 순서는 중요하지 않다는 것이 이해될 것이다.
본 방법은 애니메 블렌딩 프로세스의 2가지 단계인 스케일링 및 부가를 효율적으로 분리시켜, 프레임 업데이트가 수행될 때까지 제 2 단계인 부가 단계(adding)가 연기되도록 한다. 따라서 단지 스케일링된 애니메 픽셀값들을 공제함으로써 이전의 애니메이션된 객체 프레임을 복합 영상으로부터 제거하는 것이 가능하다. 새로운 프레임들은 이전의 프레임들이 단일 단계에서 제거될 수 있는 동안 스케일링되고 부가될 수 있는데, 이는 시스템 오버헤드(system overhead)를 감소시키고, 또한 종래의 방법에서 종종 발생하는 가시적인 디스플레이 플릭커(flicker)를 감소시킨다. 이는 도 6에 도시되어 있는데, 상기 도 6은 처음에 복합 정적 콘텐츠(G), 제 1 애니메 콘텐츠(K) 및 제 2 애니메 콘텐츠(L)의 조합을 포함하는 복합 디스플레이 프레임을 보여준다. 제 1 애니메 콘텐츠(K)는 스케일링된 픽셀값들을 복합 디스플레이 콘텐츠로부터 공제함으로서 쉽게 제거될 수 있고, 콘텐츠(K)에 대해 이전에 사용된 것과 동일한 스텐실값들을 사용하여 스케일링된 새로운 애니메 콘텐츠(M)를 부가함으로서 쉽게 대체될 수 있다.
본 발명의 방법에 사용된 복합 정적 객체와 애니메이션된 객체 콘텐츠는 디스플레이 콘텐츠를 생성하고 업데이트를 수행하기 위해 많은 상이한 방법으로 조합/블렌딩될 수 있다는 것이 이해될 것이다. 예를 들어, 블렌딩은 현재 디스플레이 콘텐츠 이전에 독립적으로 수행될 수 있고, 또는 블렌딩과 업데이팅은, 예를 들어 전술한 바와 같이 현재 디스플레이 콘텐츠로부터 공제하고 상기 콘텐츠에 부가함으로서 "동시에(simultaneously)" 수행될 수 있다.
도 7은 도 3에서와 동일한 객체 스택을 참조하여, 도 1의 "스플리트-클러스터(split-cluster)" 방법 및 도 3 내지 도 6의 "이면(flipside) 스플리트-클러스터" 방법과 종래의 객체 블렌딩 프로세스를 비교한다. 종래의 방법에서, 애니메 콘텐츠가 바뀔 때마다 올바른 새로운 복합 디스플레이 출력을 생성하기 위해 스택 내 모든 개별적인 객체들을 프로세싱하는 것이 필요하다. 이러한 프로세스는, 사전-프로세싱이 제 1 디스플레이 프레임을 플로팅하기 전에 필요하지 않기 때문에, 초기화하기에 (시스템 자원 견지에서) "저비용(cheap)"이지만, 모든 객체가 매번 재프로세싱되어야 하기 때문에 후속 재인출에 대해서는 고비용이다.
스플리트-클러스터 방법은 인접한 정적 객체들 그룹을 단일 객체들(T 및 B)로 감소시켜, 종래의 방법에서의 6개의 객체들(A 내지 F)과 비교될 때, 각각의 재인출이 3개의 객체들(T, D 및 B)을 프로세싱하는 것을 포함하게 된다. 초기화는 복합 정적 객체(T 및 B)를 생성할 필요 때문에 더 고비용이다. 종래 방법 및 스플리트-클러스터 방법 모두에서, 각각의 재인출은 객체(A 내지 F 및 T, D, B)의 콘텐츠와 투명도 모두( 및/또는 다른 블렌딩 파라미터값들)를 프로세싱하는 것을 필요로 한다는 것을 유의하라.
이면 스플리트-클러스터 방법은 모든 정적 객체를 하나의 복합 정적 객체(G)로 감소시키고, 또한 전술한 바와 같이 애니메 알파 스텐실의 생성( 및/또는 다른 블렌딩 파라미터 스텐실)을 요구하여, 초기화가 이전의 방법 모두보다 더 비싸다. 그러나, 각각의 재인출은 단지 새로운 애니메 콘텐츠가 알파 스텐실의 값으로 스케일링되고 단일 복합 객체(G)에 부가될 것을 요구한다. 상기 단계에서의 "블렌딩"은 단지 스케일링된 애니메 콘텐츠가 복합 객체(G)의 미리 결정된 콘텐츠에 부가되는 것을 의미하고; 객체(G)의 투명도를 고려할 필요가 없다. 따라서, 심지어 애니메(D)가 스택의 최상부 또는 최하부에 있는 경우(즉, 단지 객체(T 및 B) 중 하나만이 있는 경우)에도, 재인출은 스플리트-클러스터 방법에서 보다 더 싸다.
이면 스플리트-클러스터(flipside split-cluster) 방법은 스택이 단지 단일 정적 객체 및 상기 정적 객체 아래에 위치된 단일 애니메만을 포함하는 경우에도 유익하다는 것이 추가로 유의되어야 한다. 애니메를 스택의 최상부로 "플리핑(flipping)"하는 프로세스는 여전히 재인출 비용을 감소시킨다. 또한, 스플리트-클러스터 및 이면 플립-클러스터 방법 모두는, 본 방법이 더 이상 비용 절 감을 제공하는 않는 경우에도, 단지 단일 정적 객체를 포함하는 스택이나 클러스터로서 사용될 수 있다.
전술한 예들은 각각의 객체( 또는 대개의 경우, 각각의 객체의 각각의 픽셀)에 대해 단일 알파값을 가정한다. 그러나, 각각의 객체/픽셀 내 각각의 색 요소(color component)가 자체의 알파값을 가지는 것이 이해될 것이다. 예를 들어, 만일 RGB 색 기법이 사용된다면, 객체 내 각각의 픽셀은 - 적색, 녹색 및 청색에 대해 하나씩 - 3가지 색 요소(보통 R,G,B로 표기됨)를 가질 것이다. 이전의 실시예들은, 단지 모든 3가지 요소를 동일한 알파값으로 곱하여, 이를 다룬다. 그러나, R 요소에 대해 하나의 알파값, G 요소에 대해 다른 하나의 알파값 및 B 요소에 대해 세번째 알파값인 3가지 요소 각각에 대해 다른 알파값을 가지도록 하는 것도 가능하다. 본 발명의 방법은 이전과 실질적으로 동일한 방법으로 적용될 수 있고, 유일한 확장은 이제는 각각의 R, G 및 B에 대해 하나의 세트씩 3개의 디스플레이 버퍼 및 3개의 스텐실이 있을 것이라는 것이다.
대안적으로 기존의 버퍼 및 스텐실은 3가지 깊이인 어레이로서 보여질 수 있다. 계산(arithmetic)은 변화되지 않는데, 예를 들어 알파값으로(alphared) 작용할 때, 모든 적색 요소 등에 대해 보수(1-알파값)를 사용한다.
("수색성(achromatic) 블렌딩"과 다르고 모든 색 채널(color channel)에 동등하게 적용되는) 이러한 타입의 "색체(chromatic) 블렌딩"은 RGB 기반의 색을 참조하여 기술되었지만, YUV, YCC 등과 같은 임의의 요소 기반 색 모델에도 동등하게 적용가능하다. 또한, 상이한 블렌딩 기능이 유사한 방식으로 상이한 색 채널에 독립적으로 적용될 수 있다는 것이 이해될 것이다.
전술한 바와 같이, 본 발명의 "플릭-순서(flip-order)" 블렌딩 방법은 (블렌딩 파라미터의 임시적인 변이와 별개로 정적인 객체를 포함하여) 하나 이상의 애니메를 페이딩시키기 (애네메의 투명도나 다른 블렌딩 파라미터를 변화시키기) 위해 적용될 수 있다. (또한, 이는 전술한 바와 같이 수색성 및 색체 블렌딩 모두에 적용가능하다.)
중간 쯤에 있는, 투명 알파(transparency alpha)를 갖는 애니메(A)와 객체들의 스택을 비교해 보자. 전체 스택은 다음과 같은 방법을 사용하여 투명 알파 또는 임의의 수정된 투명도값을 갖는 A를 포함하여 디스플레이될 수 있다.
플립-순서 전술한 알고리즘은 2세트의 디스플레이 버퍼 및 스텐실을 생성하기위해 사용될 수 있다. 제 1 세트(D0, S0)는 애니메(A)에 대해 0인 가정된 투명도값을 사용하여 생성된다. 제 2 세트(D1, S1)는 애니메(A)에 대해 1인 투명도값으로서 계산된다.
그 후에 결과적인 디스플레이 버퍼(D,S)가 다음과 같이 A에 대해 임의로 선택된 투명도값(t)으로 생성될 수 있고,
D = (1-t)D0 + tD1
S = (1-t)S0 + tS1
이전과 같은 최종적인 결과는 결과적인 스텐실을 애니메(A)에 적용하고 디스플레이 버퍼(=AS + D)를 부가하여 계산된다. t=알파일 때, 이는 본래의 결과를 생성한다. 그러나, 또한 페이딩된 결과는 D0, D1, S0 또는 S1을 생성하는 블렌딩 단 계 중 어떤 것도 반복할 필요없이, 단지 방정식에서 t의 값을 변화시킴으로써 신속하게 생성될 수 있다.
더 일반적으로 말하자면, 본 방법은 전술한 바와 같은 플립-순서 방법을 사용하여, 하나 이상의 단계에서 그래픽 객체의 순차된 스택 내의 적어도 하나의 애니메이션된 객체의 블렌딩 파라미터값을 변화시키기 위해 채택된다. 본 방법은 제 1 및 제 2 블렌딩 파라미터 스텐실, 및 제 1 및 제 2 블렌딩 파라미터값들 또는 블렌딩 파라미터값들 세트에 상응하는 스택 내 각각의 애니메이션된 객체에 대한 제 1 및 제 2 디스플레이 버퍼를 형성하는 단계를 포함한다. 각각의 상기 제 1 및 제 2 스텐실의 블렌딩 파라미터값은 상응하는 애니메이션된 객체, 및 스택 내 상응하는 애니메이션된 객체 위의 임의의 객체의 블렌딩 파라미터값을 고려한다. 블렌딩 파라미터값을 변화시키는 각각의 단계에 대해, 결과적인 블렌딩 파라미터 스텐실과 결과적인 디스플레이 버퍼 콘텐츠는 제 1 및 제 2 스텐실, 및 제 1 및 제 2 디스플레이 버퍼, 및 현재의 단계에 대해 필요한 파라미터 블렌딩값으로부터 유도된다. 그 후에 결과적인 스텐실 및 디스플레이 버퍼는 애니메이션된 객체 및 복합 정적 객체의 콘텐츠를 블렌딩하는데 사용된다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (2)

  1. 디스플레이 상에 객체를 렌더링하고 오브젝트를 페이드 아웃하기 위한 방법에 있어서,
    상기 다수의 그래픽 객체들은 적어도 하나의 정적 객체 및 적어도 하나의 애니메이션된 객체를 포함하는 순차된 스택으로 배열되고, 각각의 상기 객체들은 그래픽 콘텐츠를 포함하고 이와 연관된 상기 객체의 적어도 일부에 대한 적어도 하나의 블렌딩 파라미터를 구비하고,
    (a) 상기 정적 객체들의 상기 각각의 블렌딩 파라미터들을 고려하여, 적어도 하나의 복합 정적 객체를 형성하도록 상기 정적 객체들의 상기 콘텐츠를 블렌딩하는 단계; 및
    (b) 상기 애니메이션된 객체의 상기 블렌딩 파라미터(들)을 고려하여, 상기 애니메이션된 객체 및 각각의 상기 적어도 하나의 복합 정적 객체의 상기 콘텐츠를 블렌딩하는 단계를 포함하며,
    상기 단계(a)는 제 1 복합 정적 객체를 형성하기 위해서 상기 스택 내의 애니메이션된 객체 아래에 위치된 정적 객체들을 블렌딩하는 단계, 및 제 2 복합 정적 객체를 형성하기 위해서 상기 스택 내의 상기 애니메이션된 객체 위에 위치된 정적 객체들을 블렌딩하는 단계를 포함하고,
    상기 단계(b)는 상기 애니메이션된 객체와 상기 제 1 및 제 2 복합 정적 객체들을 블렌딩하는 단계를 포함하는, 오브젝트를 페이드 아웃하는 방법.
  2. 제 1항에 있어서,
    상기 스택은 다수의 애니메이션된 객체들을 포함하고, 상기 단계(b)는 최하부의 애니메이션된 객체 아래에 위치하거나, 최상부의 애니메이션된 객체 위에 위치하거나, 또는 상기 스택 내의 애니메이션된 객체들 사이에 삽입되어 위치된 각각의 정적 객체들 그룹에 대해 복합 정적 객체를 형성하는 단계를 포함하는, 오브젝트를 페이드 아웃하는 방법.
KR1020220119067A 2022-09-21 2022-09-21 자연스럽게 오브젝트를 페이드 아웃하는 방법 KR20240040263A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220119067A KR20240040263A (ko) 2022-09-21 2022-09-21 자연스럽게 오브젝트를 페이드 아웃하는 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220119067A KR20240040263A (ko) 2022-09-21 2022-09-21 자연스럽게 오브젝트를 페이드 아웃하는 방법

Publications (1)

Publication Number Publication Date
KR20240040263A true KR20240040263A (ko) 2024-03-28

Family

ID=90482658

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220119067A KR20240040263A (ko) 2022-09-21 2022-09-21 자연스럽게 오브젝트를 페이드 아웃하는 방법

Country Status (1)

Country Link
KR (1) KR20240040263A (ko)

Similar Documents

Publication Publication Date Title
JP2003036048A (ja) 表示装置、表示方法及び表示制御プログラムを記録した記録媒体
US7253820B2 (en) Method and system for dynamically allocating a frame buffer for efficient anti-aliasing
AU2003200970B2 (en) Hardware-enhanced graphics rendering of sub-component-oriented characters
JP2007304576A (ja) 半透明層の描写
US8144166B2 (en) Dynamic pixel snapping
CN109118556B (zh) 一种实现ui界面动画过渡效果的方法、系统及存储介质
US5977981A (en) Softstroking of edges for computer graphics
US8633941B2 (en) Image-processing apparatus, method for controlling thereof, and computer program
US6879329B2 (en) Image processing apparatus having processing operation by coordinate calculation
KR20240040263A (ko) 자연스럽게 오브젝트를 페이드 아웃하는 방법
KR20040014963A (ko) 화상 처리 시스템 및 키이드 화상 스케일링 방법
CN109859303B (zh) 图像的渲染方法、装置、终端设备及可读存储介质
US9773331B2 (en) Methods and systems for efficient graphics rendering
US8497874B2 (en) Pixel snapping for anti-aliased rendering
TWI356394B (en) Image data generating device, image data generatin
EP0855682B1 (en) Scan line rendering of convolutions
US20030059114A1 (en) Rendering processing method and device, semiconductor device, rendering process program and recording medium
JP7157160B2 (ja) アルファ値決定装置、アルファ値決定方法及びプログラム
WO2017013697A1 (ja) アニメーション表示装置及びアニメーション表示方法
CN109766069B (zh) 辅助显示方法、装置、电子设备及计算机可读存储介质
WO2013044417A1 (en) Displaying hardware accelerated video on x window systems
JP3255549B2 (ja) 図形処理方法
JP3626709B2 (ja) アンチエイリアス処理装置
CN112102219B (zh) 一种图像中图文抠取方法及装置
JPS62222373A (ja) 画像処理装置