KR20170067853A - 애니메이션 프레임워크 - Google Patents

애니메이션 프레임워크 Download PDF

Info

Publication number
KR20170067853A
KR20170067853A KR1020177012630A KR20177012630A KR20170067853A KR 20170067853 A KR20170067853 A KR 20170067853A KR 1020177012630 A KR1020177012630 A KR 1020177012630A KR 20177012630 A KR20177012630 A KR 20177012630A KR 20170067853 A KR20170067853 A KR 20170067853A
Authority
KR
South Korea
Prior art keywords
geometry
frames
visualization
animation
snapshot
Prior art date
Application number
KR1020177012630A
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 마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Publication of KR20170067853A publication Critical patent/KR20170067853A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/164File meta data generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/802D [Two Dimensional] animation, e.g. using sprites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/003Reconstruction from projections, e.g. tomography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/206Drawing of charts or graphs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • 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
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/08Volume rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/10Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
    • 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
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/04Indexing scheme for image data processing or generation, in general involving 3D image data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/36Level of detail
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/44Morphing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/004Annotating, labelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2012Colour editing, changing, or manipulating; Use of colour codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2024Style variation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Architecture (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

지오메트리들의 모핑을 통해 시각화에서 임의의 변경들을 애니메이션화하기 위한 애니메이션 프레임워크가 제공된다. 시각화로부터의 지오메트리가 시각화에 대한 변경 전후로부터 캡처되는데, 이는 일련의 프레임들을 생성하여 시각화에 대한 변경의 부드러운 모핑 애니메이션을 제공하는데 이용된다. 시각화의 초기 지오메트리와 최종 지오메트리 간의 병합된 상태를 표현하는 천이 지오메트리가 생성되어 초기 프레임과 최종 프레임 사이의 프레임들을 구축한다. 모핑 애니메이션은 타이밍 곡선에 의해 좌우될 수 있으며 부드러운 애니메이션을 보장하기 위해 디스플레이율에 따라 구축될 수 있다.

Description

애니메이션 프레임워크{ANIMATION FRAMEWORK}
본 발명은 애니메이션 프레임워크에 관한 것이다.
데이터 시각화(data visualization)는, 데이터를 시각화로, 예컨대, 차트, 인포그래픽, 지도, 게이지 등의 그래픽 방식으로 표현하는 프로세스이다. 클라이언트는 시각화 내에서 애니메이션화된 변경들을 렌더링할 때 최적의 성능을 위해 비동기식 애니메이션 플랫폼을 활용하며, 클라이언트는 레이어에 대한 속성을 설정하고, 이 레이어는 후에 별도의 스레드에서 각자의 최종 값으로 애니메이션화된다. 동기식 또는 '종속형’ 애니메이션들은 UI 스레드에서 실행되는 빽빽한 루프들을 종종 필요로 하며, 이것들은 단기간 동안 클라이언트를 지연시키거나 낮은 프레임율을 가질 수 있으므로 회피된다. 그러나, 동기식 애니메이션들은 여전히 필요한데, 예를 들어, 시계열 애니메이션들은 새로운 데이터가 푸시될 때 기본 지오메트리(geometry)를 재구축할 시리즈를 필요로 한다. 이러한 변경은 컴포지터에서 수행되는 간단한 아핀 변환(affine transformation)(즉, 관계 유지)으로 근사화될 수 없으므로, 클라이언트는 각각의 프레임을 다시 그리기 위해 종속형 애니메이션 루프를 작성해야한다. 이러한 고려사항 및 다른 고려사항에 대한 예시들이 주어질 것이다.
본 요약은 아래의 상세한 설명 부분에서 보다 상세하게 설명되는 개념들의 선택을 단순한 형태로 소개하기 위해 제공된 것이다. 본 요약은 청구된 발명내용의 모든 특징들을 식별시키려는 의도는 없으며, 또한 청구된 발명내용의 범위를 제한시키려는 의도도 없다.
본 발명개시의 양태들은 모핑 애니메이션(morphing animation)을 통해 임의의 2개의 시각화 상태들 간의 변경의 애니메이션을 가능하게 하는 애니메이션 프레임워크를 제공한다. 양태에 따르면, 시각화의 이전, 이후, 및 중간 출력 상태들이 스토리보드(storyboard) 객체로 캡처된다. 양태들은 병합된 버전의 출력 상태들이 자동으로 계산되고 스토리보드 객체 내에 캐시(cache)되도록 해준다. 다양한 양태들에서, 스토리보드는 정적 차트(static chart)를 그리는데 사용된 것과 동일한 로직을 사용하여 루프를 통해 변경의 애니메이션이 렌더링되게 해준다.
예시들은 컴퓨터 프로세스, 컴퓨팅 시스템, 또는 컴퓨터 프로그램 제품 또는 컴퓨터로 판독가능한 매체와 같은 제조 물품으로서 구현될 수 있다. 컴퓨터 프로그램 제품은 컴퓨터 시스템에 의해 판독가능하며, 컴퓨터 프로세스를 실행하기 위한 명령어들의 컴퓨터 프로그램을 인코딩한 컴퓨터 저장 매체일 수 있다.
하나 이상의 양태들의 세부사항이 첨부 도면과 아래의 상세한 설명에서 설명된다. 다른 특징들 및 장점들이 아래의 상세한 설명의 독해 및 연관된 도면들의 리뷰로부터 명백해질 것이다. 아래의 상세한 설명은 설명을 위한 것일 뿐이며 본 발명개시의 다른 양태들을 제한시키지 않는다는 것을 이해해야 한다.
첨부된 도면들은 본 발명개시에 포함되어 있고 본 발명개시의 일부를 구성하며, 본 발명개시의 다양한 양태들을 나타낸다. 도면들에서,
도 1은 모핑 애니메이션을 생성하기 위한 스토리보드 아키텍처를 도시한다.
도 2는 모핑 애니메이션의 예를 도시한다.
도 3은 시각화에 대한 변경들의 모핑 애니메이션을 제공하기 위한 애니메이션 엔진에 대한 블록도를 도시한다.
도 4는 시각화에 대한 변경들의 모핑 애니메이션을 제공하기 위한 방법에 관련된 일반적인 단계들을 보여주는 흐름도를 도시한다.
도 5는 컴퓨팅 디바이스의 예시적인 물리적 컴포넌트들을 도시하는 블록도를 도시한다.
도 6a 및 도 6b는 모바일 컴퓨팅 디바이스의 블록도들을 도시한다.
도 7은 분산 컴퓨팅 시스템의 블록도를 도시한다.
아래의 상세한 설명은 첨부된 도면을 참조한다. 가능하다면, 동일하거나 유사한 엘리먼트들을 가리키기 위해 도면들과 아래의 설명에서는 동일한 참조 번호들이 이용된다. 본 발명개시의 양태들이 설명될 수 있지만, 수정, 개조 및 다른 구현이 가능하다. 예를 들어, 도면들에서 도시된 엘리먼트들에 대해 대체, 추가, 또는 수정이 이루어질 수 있으며, 개시된 방법에서 단계들을 대체하거나, 재정렬시키거나, 또는 추가함으로써 본 명세서에서 설명된 방법은 수정될 수 있다. 따라서, 아래의 상세한 설명은 본 발명개시를 제한하지 않으며, 대신, 본 발명개시의 적절한 범위는 첨부된 청구범위에 의해 정의된다. 예시들은 하드웨어 구현예, 완전한 소프트웨어 구현예, 또는 소프트웨어와 하드웨어 양태들을 결합한 구현예의 형태를 취할 수 있다. 그러므로, 아래의 상세한 설명은 제한적인 의미로 받아들여서는 안된다.
본 발명개시의 예시들은 시각화에 대한 변경들의 스토리보드를 통해 데이터 시각화 플랫폼 아키텍처 내에서 애니메이션 프레임워크를 제공하는 것에 관한 것이다. 양태에 따르면, 아키텍처는 개별 단계들의 일방향 체인을 통해 데이터 시각화(예컨대, 차트, 인포그래픽, 지도, 게이지 등)의 구축을 가능하게 하며, 각각의 단계는 간단한 입력 인터페이스 및 출력 인터페이스를 갖는다.
시각화(예컨대, 차트, 그래프, 인포그래픽, 게이지, 지도 등)는 데이터를 그래픽 방식으로 표현한다. 양태들에 따르면, 데이터는 주어진 시각화 유형에 특유한 지오메트리(geometry)(예를 들어, 파이 차트에서의 쐐기모양, 막대 그래프에서의 기둥 등)에 의해 시각화에서 표현되며, 상이한 시각화 유형들에서 상이한 지오메트리로 동일한 데이터가 표현될 수 있다. 다른 시각화 엘리먼트들(예컨대, 범례, 제목, 축 등)은 자체적인 지오메트리로 표현된다. 양태들에 따르면, 이러한 지오메트리들은 적절한 렌더링 API(Application Programming Interface)로 직접 전달될 수 있는 한정된 프리미티브(primitive) 세트(예를 들어, 라인, 베지어(Bezier) 곡선 등)로 구성된다. 이러한 프리미티브들로부터, 어떠한 지오메트리도 근사화될 수 있다. 시각화가 유형을 변경하면, 예를 들어, 사용자가 막대 그래프를 파이 차트로 변경하면, 지오메트리도 변경된다.
모핑 애니메이션을 통해 시각화에 대해 취해지는 변경들(예컨대, 속성 변경, 데이터 변경, 시각화 내에서의 엘리먼트 보여주기, 시각화 내에서의 엘리먼트 숨기기, 시각화 유형 변경 등)을 애니메이션화하는 것이 제공된다. 예를 들어, 사용자가 천이(transition)를 의미론적으로 이해하는 것을 도와주기 위해, 양태들은 이전 상태의 시각화에서 객체를 보여준 다음 새로운 상태로 모핑하는 것을 제공한다. 임의의 시각화 변경은 모핑 애니메이션을 통해 천이될(즉, 천이가능할) 수 있으며, 이 모핑 애니메이션은 사용자들이 시각화에 대해 취해진 변경들을 이해하는 것을 돕는다.
도 1은 모핑 애니메이션을 생성하기 위한 스토리보드 아키텍처(100)를 도시한다. 양태에 따르면, 스토리보드(125)는 시각화로부터의 출력 상태들의 지오메트리들(132, 134, 136)을 캡처하는 레코더 또는 로그인 메커니즘으로서 역할을 한다. 일부 양태들에서, 스토리보드(125)를 위한 인터페이스는 클라이언트(110)에 노출되어 데이터 시각화 플랫폼 API(115)를 통해 시각화를 제공한다.
양태들에 따르면, 스토리보드에 대하여 지오메트리들(132, 134, 136)의 스냅샷들이 취해진다. 다양한 양태들에서, 이들 스냅샷들은 지오메트리 프리미티브들 및 특성들(예를 들어, 텍스트, 색상, 대시 패턴 등)을 각각 포함하는 시각화 엘리먼트들의 세트(예를 들어, 범례, 시각화 제목, 플롯 영역 등)를 포함한다. 예를 들어, 초기 지오메트리(132)의 초기 스냅샷 지오메트리는 애니메이션화될 변경의 레코딩이 시작될 때 초기에 출력되는 시각화 엘리먼트들을 포함한다. 양태들에 따르면, 스냅샷들은 모핑 애니메이션 내에서 키 프레임(key frame)을 생성하는데 사용된다.
예를 들어, 스토리보드(125)가 생성될 때, 초기 지오메트리(132)가 초기 키 프레임(142)으로서 스토리보드(125) 내에서 캡처되고 캐시된다. 클라이언트(110)가 시각화를 수정함에 따라, 스토리보드(125)는 (하나 이상의 중간 키 프레임(144)으로서 캐시되는) 하나 이상의 중간 지오메트리(134)의 스냅샷을 선택적으로 취하도록(예컨대, 레코딩하도록) 동작가능하다. 모든 변경들이 이루어지면, 최종 지오메트리(136)가 최종 키 프레임(146)으로서 스토리보드(125) 내에서 캡처되고 캐시된다. 그런 후, 클라이언트(110)는 레코딩을 종료하거나 추가적인 변경들을 추가하는 것을 선택하도록 동작가능하며, 그런 후, 최종 키 프레임(146)이 진행중인 애니메이션에서의 중간 키 프레임(144)으로서 취급될 것이다.
모핑 애니메이션을 생성하기 위해, 스냅샷들 간의 천이 상태들을 표현하는 지오메트리가 계산된다. 양태들에 따르면, 데이터 시각화 플랫폼(120)은 하나의 키 프레임 내의 각각의 시각화 엘리먼트의 지오메트리들을 순차적인 키 프레임에서의 각각의 시각화 엘리먼트와 연관시킴으로써 키 프레임들의 병합된 버전들을 계산하도록 동작가능하다. 예를 들어, 클라이언트(110)가 다단계 애니메이션을 생성할 때, 초기 키 프레임(142), 하나 이상의 중간 키 프레임들(144), 및 최종 키 프레임(146) 사이의 천이들이 계산된다. 양태들에 따르면, 더 많은 병합된 프레임들(148)이 계산되어 주어진 시간에서 디스플레이될 때, 각각의 키 프레임 간의 천이들은 더 작을 수 있기 때문에, 복수의 병합된 프레임들(148)이 각각의 캡처된 키 프레임(142, 144, 146) 사이에서 생성되어 부드러운 애니메이션을 생성한다. 다른 양태에 따르면, 타겟 FPS(초 당 프레임)율로 애니메이션을 생성하는데 필요한 것보다 더 많은 병합된 프레임(148)이 계산되지 않도록(예를 들어, 30FPS의 경우 1초 애니메이션 세트에 대한 디스플레이를 위해 30개보다 많지 않은 병합된 프레임들(148)이 생성된다), 스토리보드(125)는 병합된 프레임들(148)의 생성을 조절하도록 동작가능하다.
데이터 시각화 플랫폼(120)은 연속적인 키 프레임들(142, 144, 146) 사이의 시각화에서 객체, 지오메트리 모양, 및 지오메트리 프리미티브를 논리적으로 연관시키도록 동작가능하다. 양태에 따르면, 초기 지오메트리(132) 및 최종 지오메트리(136)는 포함/함유 순서를 나타내는 다음의 우선순위로 매칭된다: (차트 엘리먼트 포인터에 의한) 차트 엘리먼트; (특성 식별에 의한) 차트 엘리먼트 특성; (데이터 지점 인덱스에 의한) 차트 엘리먼트 데이터 지점 지오메트리 모양; (서수 위치에 의한) 차트 엘리먼트 비 데이터 지점 지오메트리 모양; 및 (서수 위치에 의한) 차트 엘리먼트 지오메트리 모양 세그먼트. 다른 양태에 따르면, 초기 지오메트리(132) 및 최종 지오메트리(136)는 애니메이션화될 때 변형들을 방지하기 위해 라인들 및 베지어 클러스터들의 런(run)들의 정렬을 통해 매칭될 수 있다. 예를 들어, 초기 상태에서의 5개 라인(또는 베지어)들의 런은 최종 상태에서의 더 많거나 더 적은 수의 라인(또는 베지어)들의 런과 정렬될 수 있다. 다른 양태들에서는, 사용자 정의된 매칭을 비롯하여, 다른 매칭 순서가 가능하다.
병합된 지오메트리(138)는 다양한 양태들에서 병합된 프레임들(148)을 생성하는데 사용된다. 양태에 따르면, 병합된 지오메트리(138)는 각각의 프리미티브(예를 들어, 라인들, 베지어들 등)에 대한 각각의 정점 위치의 출력 전후 상태들을 갖는 지오메트리들의 콜렉션(collection)이다. 다양한 양태들에 따르면, 병합된 지오메트리(138)는 연속적인 스트림에서 병합된 프레임들(148)을 계산하는데 사용되는 프리미티브들의 쌍(예를 들어, {초기, 최종})으로서 레코딩된다. 양태에 따르면, 병합된 프레임들(148)이 계산되면, 이 프레임들은 타임라인에 따라 스토리보드(125) 내에 캐시되어, 병합된 프레임들(148)에 의해 표현되는 천이 상태들이 스토리보드의 타임라인 내의 임의의 순간에서 최소 또는 감소된 계산으로 제공될 수 있도록 한다. 양태들은 스토리보드(125)에 캐시된 병합된 프레임들(148)이 정적 이미지 렌더링과 동일한 로직을 사용하여 렌더링될 타임라인에 따라 순차적으로 제공되도록 해준다.
일부 양태들에 따르면, 초기 키 프레임 상태(142)는 병합된 프레임들(148)이 캐시된 후에 폐기된다. 일부 양태들에 따르면, 스토리보드 아키텍처(100)가 폐쇄되지 않은 경우(예를 들어, 클라이언트(110)가 레코딩을 종료하지 않은 경우) 다음 모핑 애니메이션을 위한 초기 키 프레임(142)으로서 최종 키 프레임(146)이 사용될 수 있도록 최종 키 프레임(146)은 보존된다.
다양한 양태들에 따라, 출력 전 상태와 출력 후 상태에서 존재하는 지오메트리 프리미티브들은 각자의 끝점들이 연관되도록 서로 병합될 것이다. 쌍으로 된 병합 프리미티브들의 유형들이 다른 경우, 양태들은 애니메이션 동안 적절한 변환이 이루어질 것을 제공한다. 예를 들어, 초기 라인과 최종 베지어 간을 천이할 때, 라인은 베지어 곡선으로 변환되어 병합될 것인데, 이는 변환에 의해 추가된 임의의 베지어 제어 지점들에 대해 추가적인 {초기, 최종} 쌍들을 라인에 추가하는 것을 포함할 수 있다.
다양한 예시들에서, 각각의 객체는 시각화의 출력 전후 상태들에서 존재할 수도 있고 존재하지 않을 수도 있다(예를 들어, 객체는 시각화에 대해 취해진 변경의 일부로서 추가되거나 제거되었음). 양태들에 따르면, 제거되거나 추가되는 엘리먼트들에 대한 병합된 지오메트리들(138)의 연관을 처리하기 위해 다양한 규칙들이 적용된다. 예를 들어, 추가되는 시각화 엘리먼트들은 0(null)의 초기 값을 가질 것이며, 보간(interpolation) 동안 모든 색상 특성들(예컨대, 라인, 채우기, 텍스트 등)의 알파 채널을 변경하여 페이드 인으로서 애니메이션화될 것이다. 이와는 대조적인 예시에서, 제거되는 엘리먼트들은 0(null)의 최종 값을 가질 것이며, 보간 동안 모든 색상 특성들(예컨대, 라인, 채우기, 텍스트 등)의 알파 채널을 변경하여 페이드 아웃으로서 애니메이션화될 것이다. 다른 예시로서, 추가되는 엘리먼트들은 시각화 엘리먼트의 유형에 기초한 사전 구성된 정책에 따라, 중심 지점으로부터 '익스플로드(explode)'되거나 또는 인접 엘리먼트로부터 발원될 것이다. 추가적인 대조로, 제거되는 엘리먼트들은 시각화 엘리먼트의 유형에 기초한 사전 구성된 정책에 따라, 중심 지점으로 '임플로드(implode)'되거나 또는 인접 엘리먼트 내로 '폴딩'될 것이다. 또 다른 예시로서, 추가되는 프리미티브들은 인접 프리미티브의 끝점으로부터 생성되어, 길이가 0에서부터 최종 길이까지 "성장"하는 것처럼 보이게 할 것이다. 다른 추가적인 대조로, 제거되는 프리미티브들은 인접 프리미티브의 끝점 내로 "폴딩"되어, 길이가 0 길이로 줄어들면서 사라지도록 할 것이다.
스토리보드(125)가 완성되면, 스토리보드(125)는 클라이언트(110)로 전송되어 변경을 애니메이션화하도록 동작가능하다. 양태들에 따르면, 클라이언트(110)는 규정된 지속기간(예를 들어, 1초, 0.5초 등) 동안 프레임들을 반복하는 애니메이션 루프를 기록한다. 양태들에 따르면, 애니메이션 루프의 각각의 반복 동안, 클라이언트(110)는 스토리보드의 타임라인 내의 어느 지점이 렌더링되어야 하는지를 스토리보드(125)에 규정한다. 양태들에 따르면, 클라이언트(110)는 정적 차트를 그리는데 사용된 동일한 코드/로직을 사용하여 타임라인 상의 규정된 지점에서 프레임을 렌더링할 수 있다.
여러가지 양태들에 따르면, 시각화는 스토리보드(125)와 연관되며, 이는 시각화가 자신의 렌더링을, (최종 상태에 있는) 시각화에 저장된 지오메트리로부터 스토리보드의 병합된 프레임들(148) 내의 병합된 지오메트리(138)로 재지향시킬 수 있게 해준다. 스토리보드(125)와 시각화를 연관시키는 양태들은 클라이언트(110)가 정적 시각화의 렌더링 로직을 재사용하고, 스토리보드의 타임라인에서 시각화가 렌더링될 곳을 규정하는 애니메이션 루프를 추가할 수 있게 한다. 다양한 양태들은 애니메이션 루프가 완료되면 반복적인 재생을 위해 스토리보드(125)가 재사용되거나 폐기되도록 해준다.
양태들에 따르면, 클라이언트(110)는 스토리보드(125)를 사용할 때 커스텀 타이밍 곡선을 사용하도록 동작가능하다. 다양한 양태들에서, 타이밍 곡선은 선형 또는 비선형일 수 있으며, 애니메이션의 지속기간 동안 주어진 지점에서 다양한 엘리먼트들의 위치 또는 특성들을 규정할 수 있다. 타이밍 곡선의 양태들은 클라이언트(110)가 스토리보드의 타임라인을 따라 주어진 엘리먼트 또는 특성이 제공될 곳 및 엘리먼트의 다음 반복을 얼마나 빨리 제공할지를 규정할 수 있게 한다. 예를 들어, 지속기간의 n%에서 엘리먼트가 오른쪽으로의 이동경로의 n%에서 제공되도록(여기서, n은 0과 100사이의 임의의 숫자임), 시각화의 왼쪽 경계로부터 오른쪽으로 이동하는 엘리먼트의 선형 타이밍 곡선은 엘리먼트를 일정한 레이트(rate)로 이동시킬 것이다. 대조적으로, 비선형 타이밍 곡선(예를 들어, 베지어)은 엘리먼트가 초기 키 프레임(142)으로부터 최종 키 프레임(146)까지 상이한 레이트로 가속화되고 이동하는 것처럼 엘리먼트의 렌더링을 제공하도록 동작가능하다. 마찬가지로, 양태들은 타이밍 곡선들이 엘리먼트의 비 위치적 특성들(예를 들어, 텍스트, 색상, 대시 패턴 등)에 적용되도록 해준다.
스토리보드 아키텍처(100)는 여러가지 애니메이션 유형들에 대한 모핑 애니메이션들을 가능하게 하도록 동작가능하다. 예를 들어, 상호작용식으로 데이터를 줌 인하고, 시각화에 걸쳐 상호작용식으로 패닝(pan)하기 위한 애니메이션들, 데이터 시리즈들에 대한 변경들의 시간 애니메이션들, "주식 시세 표시기" 스타일 애니메이션들, 시각화의 스타일 또는 포맷 변경들의 애니메이션들 등이 있다.
도 2는 모핑 애니메이션의 예를 도시한다. 도시된 예시에서, 스토리보드(125)는 차트(210)에 다음의 두가지 변경들, (1) 차트 제목(220)을 차트(210)의 최상단 가장자리로부터 오른쪽 가장자리로 이동시키는 것, 및 (2) 기둥형 차트로부터 파이 차트 시각화 유형으로의 전환을 레코딩한다. 시각화 엘리먼트들(230a~230c)은 데이터를 그래픽 방식으로 표현하고, 시각화 유형일 때 모핑으로서 도시된다. 도시된 프레임들은 키 프레임 0(초기 키 프레임(142)), 키 프레임 1(최종 키 프레임(146)), 및 스토리보드의 타임라인을 따라 키 프레임 0+25%에서 선택되고(제1 병합된 프레임(148)), 스토리보드의 타임라인을 따라 키 프레임 0+75%(제2 병합된 프레임(148))에서 선택된 2개의 병합된 프레임들(148)을 포함한다. 알 수 있는 바와 같이, 본 명세서에 도시된 것보다 더 많거나 더 적은 수의 프레임들이 사용될 수 있다.
양태에 따르면, 도 2에서 도시된 애니메이션은 타이밍 곡선에 따라 렌더링되며, 각각의 프레임은 타이밍 곡선에 의해 규정된 시구간 동안 순차적 순서로 클라이언트(110)를 통해 디스플레이된다. 타이밍 곡선은 스토리보드의 타임라인에서 병합된 지오메트리들(138)이 디스플레이를 위해 선택되는 곳을 규정한다. 예를 들어, 선형 타이밍 곡선을 사용할 때, 키 프레임 0+25%(제1 병합 프레임(148))은 모핑 애니메이션의 지속기간의 25%에서 클라이언트(110)에 의해 렌더링되지만, 비선형 타이밍 곡선을 사용할 때에는, 키 프레임 0+25%(제1 병합 프레임(148))은 애니메이션의 지속기간의 상이한 지점(예를 들어, 30%, 50%, 80% 등)에서 렌더링될 수 있다.
양태들은 타이밍 곡선이 병합된 프레임(148) 내의 모든 지오메트리 또는 개별 엘리먼트들에 적용될 수 있게 한다. 하나의 예시에서, 병합된 프레임들(148)은 스토리보드(125)에서 캐시되고 엘리먼트 고유의 타이밍 곡선들을 통해 렌더링된다. 엘리먼트 고유의 타이밍 곡선은 공유된 객체(예를 들어, 차트 제목(220)) 내지 데이터 시리즈(예를 들어, 시각화 엘리먼트(230a))를 표현하는 엘리먼트 또는 다중 공유 객체들 및 시각화 엘리먼트들에 적용되도록 동작가능하다. 계속해서 예를 들면, 모핑 애니메이션의 중간 지점에서, 차트 제목(220)이 시각화 엘리먼트들(230a~230c)보다 빠른 타이밍 곡선에 따라 애니메이션화되도록 엘리먼트 고유의 타이밍 곡선을 통해 모핑 애니메이션을 렌더링할 때, 병합된 지오메트리(138)는 차트 제목(220)에 대해서는 제2 병합된 프레임(148)으로부터 제공되지만, 시각화 엘리먼트들(230a~230c)에 대해서는 제1 병합된 프레임(148)으로부터 제공된다.
양태들에 따르면, 변경 애니메이션이 완료되면, 엘리먼트 또는 전체 시각화에 상관없이, 최종 지오메트리(136)는 다른 변경이 적용될 때까지 또는 시각화가 더 이상 디스플레이되지 않을 때까지(예를 들어, 사용자가 클라이언트(110)를 닫는 것 등) 시각화에서 디스플레이된 채로 남는다.
도 3은 시각화에 대한 변경들의 모핑 애니메이션을 제공하기 위한 애니메이션 엔진(300)에 대한 블록도를 도시한다. 시각화에서의 변경에 응답하여 지오메트리들을 캡처하고 캐시하도록 동작가능한 스냅샷 모듈(310), 캡처된 지오메트리 "사이에서의" 지오메트리를 표현하는 병합된 지오메트리(138)를 생성하도록 동작가능한 트위너(tweener) 모듈(320), 캡처되고 생성된 지오메트리들을 표현하는 프레임들을 생성하도록 동작가능한 프레이밍(framing) 모듈(330), 및 나중의 렌더링을 위해 프레임들을 저장하고 순서화하도록 동작가능한 버퍼 모듈(340)을 포함하는 것으로서 애니메이션 엔진(300)이 도시된다.
양태들에 따르면, 스냅샷 모듈(310)은 시각화에서 데이터를 표현하는데 사용되는 지오메트리들을 캡처하고 캐시하도록 동작가능하다. 이해되는 바와 같이, 지오메트리는 클라이언트(110) 또는 클라이언트(100)에 대한 지오메트리를 생성 또는 전송하는데 사용되는 데이터 시각화 플랫폼(120)의 모듈로부터 검색될 수 있다. 또한 이해되는 바와 같이, 지오메트리들은 시각화를 전체적으로 표현하기 위해 생성될 수 있거나, 또는 시각화에서 개별 데이터 시리즈(예컨대, 개별 데이터 시리즈, 공유된 객체들(예컨대, 축, 제목, 범례 등) 등을 표현하는 시각화 엘리먼트(230))를 표현하기 위해 생성될 수 있다.
시각화의 초기 상태, 최종 상태, 및 임의의 중간 상태들로부터 캡처되고 캐시된 지오메트리(즉, 각각 초기 지오메트리(132), 최종 지오메트리(136), 및 중간 지오메트리(134))는 프레이밍 모듈(330)에 전달되어 지오메트리들을 표현하는 프레임들(즉, 각각 초기 키 프레임(142), 최종 키 프레임(146), 및 중간 키 프레임(144))이 생성된다. 캡처된 지오메트리는 또한 트위너 모듈(320)로 전달된다.
양태들에 따르면, 트위너 모듈(320)은 캡처된 지오메트리 "사이에서의" 지오메트리를 표현하는 병합된 지오메트리(138)를 생성하도록 동작가능하다. 양태들에 따르면, 트위너 모듈(320)은 로직을 사용하여 초기 단계에서의 객체들을 최종 단계에서의 객체들과 연관시켜서 어느 초기 지오메트리(132)를 어느 최종 지오메트리(136)로 모핑할지를 결정하여, 개별 데이터 지점들이 각자의 최종 출력 상태들에서 동일한 데이터 지점으로 모핑하도록 한다. 양태에 따르면, 병합될 지오메트리들 사이의 연관은 지오메트리들 내의 주석을 통해 이루어진다. 사용자 입력 등에 의해 각각의 지오메트리에 바인딩된 데이터 또는 데이터 시리즈를 검사한다.
양태들에 따르면, 트위너 모듈(320)은 시각화에 추가되거나 또는 시각화로부터 제거되는 (즉, 키 프레임에서 디스플레이되지 않는) 객체들에 대한 병합된 지오메트리(138)를 생성하도록 동작가능하다. 여러 양태들은, 객체가 예를 들어, 페이드 인/아웃되고, 임의의 지점을 통해 커지고/축소되고, 이웃 엘리먼트와 공유된 공통 지오메트리를 통해 병합/분할 등이 되도록, 트위너 모듈(320)이 객체가 누락되어 있는 단계에 대해 임의의 지오메트리를 사용할 수 있게 한다.
양태들에 따르면, 타이밍 곡선은 클라이언트(110)에 의해 규정되어 캡처된 지오메트리들 사이에서 지오메트리가 어떻게 변경하는지를 결정한다. 예를 들어, 선형 타이밍 곡선은 시각화 내의 영향을 받는 엘리먼트들이 모핑 애니메이션 전반에 걸쳐 일정한 페이스로 변경되도록 규정하여, 타이밍 곡선의 중간지점에 있는 엘리먼트는 자신의 초기 지오메트리(132)와 자신의 최종 지오메트리(136) 사이의 중간에서 병합된 지오메트리(138)를 갖는다. 대안적인 예시들에서, 베지어 타이밍 곡선들은 객체들이 상이한 시작 시간들에서 애니메이션화되고 초기 지오메트리(132)와 최종 지오메트리(136) 사이에서 상이한 레이트로 변경되도록 해준다.
양태들에 따르면, 캡처된 중간 지오메트리(134)를 사용하여 병합된 지오메트리(138)를 생성할 때, 트위너 모듈(320)은 각각의 키 프레임의 지오메트리 사이에서 동일하거나 개별적인 타이밍 곡선들을 사용하도록 동작가능하다. 예를 들어, 파이 차트(초기 지오메트리(132))를 기둥 차트(최종 지오메트리(136))로 모핑하도록 애니메이션화하기 위해, 익스플로드된 파이 차트(즉, 데이터 시리즈를 표현하는 쐐기모양들이 접촉하지 않는 파이 차트)의 중간 단계가 중간 지오메트리(134)로서 캡처되도록 규정될 수 있다. 따라서, 초기 단계에서 중간 단계로의 "익스플로젼(explosion)"이 선형 곡선에 따라 애니메이션화될 수 있고, 중간 단계로부터 최종 단계로의 차트 유형 천이가 베지어 곡선에 따라 애니메이션화될 수 있다. 당업자는 공유된/개별 타이밍 곡선들의 여러 조합들이 가능하다는 것과, 도시된 예시는 단지 하나의 가능한 구현예일 뿐이라는 것을 알 것이다.
양태에 따르면, 트위너 모듈(320)은 복수의 병합된 지오메트리들(138)을 합성하도록 동작가능하며, 병합된 지오메트리들(138)의 수는 클라이언트(110)에 의해 규정된 애니메이션 지속기간 및 FPS율에 기초한다. 다른 양태들에 따르면, "라이브" 변경을 위한 애니메이션을 제공할 때, 트위너 모듈(320)은 규정된 FPS율에 가능한 한 가깝게 일정한 레이트로 병합된 지오메트리들(138)을 합성하도록 동작가능하다. 예를 들어, 연관된 병합된 지오메트리들(138) 및 프레임들(148)은 60FPS를 충족시키기 위해 적어도 16.67ms마다 합성되어야 하지만, 연관된 병합된 지오메트리들(138) 및 프레임들(148)을 합성하는 시간이 16.67ms를 초과하면, 트위너 모듈(320)은 병합된 지오메트리들(138) 및 프레임들(148)이 일정하게 합성될 수 있는 가장 높은 FPS율로 FPS율을 설정하도록 동작가능하며, 여기서 생산율은 모핑 애니메이션을 제공하는 과정 동안 실질적으로 변경되지 않는다. 다른 양태에 따르면, 규정된 재생률을 위해 필요한 것보다 많지 않은 병합된 지오메트리(138)(및 이에 따라 병합된 프레임들(148))가 합성된다(예를 들어, 60FPS에서의 1초 애니메이션의 경우, 60개를 넘지 않는 개별적인 병합된 지오메트리들(138)이 필요함).
양태에 따르면, 트위너 모듈(320)은 후속 애니메이션에서의 초기 지오메트리(132)로서 사용하기 위해 최종 지오메트리(136)를 유지하도록 동작가능하다.
병합된 지오메트리들은 대표 프레임들을 생성하기 위해 프레이밍 모듈(330)에 전달된다. 그런 후, 프레임들은 프레이밍 모듈(330)로부터 버퍼 모듈(340)로 전달되고, 여기서 프레임들은 모핑 애니메이션의 일부로서 나중에 렌더링하기 위해 순서화되고 저장된다. 양태들에 따르면, "라이브" 변경이 애니메이션화될 때, 하나보다 많지 않은 병합된 프레임(148)이 버퍼에 저장되므로, 병합된 프레임들(148)은, FPS율의 경계 내에서, 생성될 때 클라이언트(110)로 전달된다. 프레임들은 정적 이미지를 렌더링할 때와 동일한 로직을 사용하여 클라이언트(110)에 의해 렌더링가능하다. 양태에 따르면, 클라이언트(110)가 이미 초기 키 프레임(142)을 렌더링했기 때문에(즉, 변경이 개시될 때 초기 지오메트리(132)를 갖는 시각화를 디스플레이하고 있음), 버퍼 모듈(340)은 초기 키 프레임(142)을 폐기하도록 동작가능하다.
양태에 따르면, 버퍼 모듈(340)은 프레임이 스크린 렌더링과는 독립적으로 생성되어 부드러운 애니메이션을 제공하도록 다중 서브 버퍼들을 갖는 스왑체인(swapchain) 버퍼를 제공한다. 양태들에 따르면, 타겟 FPS율을 달성하는데 필요한 것보다 많은 프레임들이 생성되지 않도록 스왑체인 버퍼는 프레이밍 모듈(330)에 대한 스로틀링(throttling) 메커니즘으로서 기능한다.
도 4는 시각화에 대한 변경들의 모핑 애니메이션을 제공하기 위한 방법(400)에 관련된 일반적인 단계들을 보여주는 흐름도이다. 방법(400)은 시작 블록(401)에서 시작하여 스토리보드(125)가 생성되는 동작(410)으로 진행한다.
방법(400)은 시각화 엘리먼트 출력들의 초기 스냅샷(초기 지오메트리(132)를 포함함)이 초기 키 프레임(142)으로서 스토리보드(125) 내에서 캡처되고 캐시되는 동작(420)으로 진행한다. 전술한 바와 같이, 양태들에서, 시각화 엘리먼트 출력들은 지오메트리 및 특성들을 포함한다.
동작(420)으로부터, 방법(400)은 클라이언트(110)가 시각화에 대한 변경을 행하는 동작(430)으로 진행한다. 예를 들어, 시각화 유형은 도 2에서 도시된 바와 같이 기둥 차트로부터 파이 차트로 변경될 수 있거나, 또는 시각화 엘리먼트들(230)로서 표현된 데이터의 값들이 변경될 수 있다. 양태들에서, 스토리보드(125)는 선택적으로 하나 이상의 중간 출력 상태들을 레코딩하고 이 출력 상태들을 하나 이상의 중간 키 프레임들(144)로서 캐시한다.
변경이 이루어지면, 방법(400)은 출력들의 이후 스냅샷(최종 지오메트리(136)를 포함함)이 최종 키 프레임(146)으로서 스토리보드(125) 내에서 캡처되고 캐시되는 동작(440)으로 진행한다.
방법(400)은, 양태들에 따라, 각각의 차트 엘리먼트의 초기 출력 상태와 최종 출력 상태(또는 순차적으로 임의의 중간 출력 상태들 사이)를 결합하고 연관시키는 출력들의 병합된 버전(병합된 지오메트리(138)를 포함함)이 계산되는 동작(450)으로 진행한다. 전술한 바와 같이, 양태들에서, 각각의 차트 엘리먼트는 프리미티브들로 분해되고, 병합된 지오메트리(138)는 프리미티브들의 값들{초기, 최종}의 쌍을 포함한다.
동작(460)에서, 초기 키 프레임(142)은 폐기되고, 동작(470)에서, 클라이언트(110)는 시각화가 렌더링되어야 하는 스토리보드의 타임라인 내의 지점들을 규정하는 애니메이션 루프를 기록한다. 전술한 바와 같이, 양태들에서, 클라이언트(110)는 플랫폼 고유적일 수 있는 애니메이션(들)에 대한 타이밍 곡선들을 포함할 수 있다. 병합된 프레임들(148)은 스토리보드의 타임라인 내의 규정된 지점들에서 병합된 지오메트리(138)에 대응하여 생성된다. 양태들에 따르면, 병합된 프레임들(148)을 생성하는데 필요한 시간이 재생 타이밍을 초과하지 않도록(예를 들어, 60FPS의 재생률의 경우, 프레임들은 매 16.67ms마다의 재생을 위해 타이밍된다), 규정된 지점들의 수는 클라이언트(110)에 의해 규정된 애니메이션에 대한 FPS율에 의해 한정된다. 다른 양태에 따르면, 규정된 재생률을 위해 필요한 것보다 많지 않은 프레임들이 생성된다(예를 들어, 60FPS에서의 1초 애니메이션의 경우, 60개보다 많지 않은 프레임들이 필요하다).
방법(400)은 시각화 변경의 애니메이션이 스토리보드(125)를 재생함으로써 렌더링되는 동작(480)으로 진행한다. 방법(400)은 종료(499)에서 끝난다.
본 발명개시를 컴퓨터 상의 운영체제 상에서 구동되는 애플리케이션 프로그램과 함께 실행되는 일반적인 프로그램 모듈들의 환경에서 설명할 것이지만, 본 업계의 당업자는 본 발명개시는 또한 다른 프로그램 모듈들과 결합되어 구현될 수 있다는 것을 알 것이다. 일반적으로, 프로그램 모듈들은 특정한 태스크들을 수행하거나 또는 특정한 추상적 데이터 유형들을 구현하는, 루틴들, 프로그램들, 컴포넌트들, 데이터 구조들, 및 다른 유형들의 구조들을 포함한다.
본 명세서에서 설명된 양태들 및 기능들은 비제한적인 예시로서, 데스크탑 컴퓨터 시스템들, 유선 및 무선 컴퓨팅 시스템들, 모바일 컴퓨팅 시스템들(예를 들어, 이동 전화기들, 넷북들, 태블릿 또는 슬레이트 타입 컴퓨터들, 노트북 컴퓨터들, 및 랩톱 컴퓨터들), 핸드헬드 디바이스들, 멀티프로세서 시스템들, 마이크로프로세서 기반 또는 프로그래밍가능 소비자 전자제품, 미니컴퓨터들, 및 메인프레임 컴퓨터들을 포함한 여러 컴퓨팅 시스템들을 통해 동작할 수 있다.
또한, 본 명세서에 설명된 양태들 및 기능들은 애플리케이션 기능, 메모리, 데이터 저장 및 검색 및 다양한 프로세싱 기능들이 인터넷 또는 인트라넷과 같은, 분산형 컴퓨팅 네트워크를 통해 서로로부터 원격적으로 동작될 수 있는 분산형 시스템들(예를 들어, 클라우드 기반 컴퓨팅 시스템)을 통해 동작될 수 있다. 다양한 유형들의 사용자 인터페이스들 및 정보가 온보드 컴퓨팅 디바이스 디스플레이들을 통해 또는 하나 이상의 컴퓨팅 디바이스들과 연관된 원격 디스플레이 유닛들을 통해 디스플레이될 수 있다. 예를 들어, 다양한 유형들의 사용자 인터페이스들 및 정보가 투사되는 벽면 상에 다양한 유형들의 사용자 인터페이스들 및 정보가 디스플레이되고 상호작용될 수 있다. 본 발명개시의 양태들이 실시될 수 있는 복수의 컴퓨팅 시스템들과의 상호작용은, 키스트로크 입력, 터치 스크린 입력, 음성 또는 다른 오디오 입력, 관련된 컴퓨팅 디바이스에 컴퓨팅 디바이스의 기능을 제어하기 위한 사용자 제스처를 캡처하고 해석하기 위한 검출 기능(예를 들어, 카메라)이 갖춰지는 체스처 입력을 포함한다.
도 5 내지 도 7 및 관련 설명은 본 발명개시의 예시들이 실시될 수 있는 다양한 동작 환경들에 대한 논의를 제공한다. 그러나, 도 5 내지 도 7과 관련하여 도시되고 설명된 디바이스들 및 시스템들은 예시 및 설명을 목적으로 한 것이며, 본 명세서에 설명된 본 발명개시의 양태들을 실시하기 위해 이용될 수 있는 방대한 수의 컴퓨팅 디바이스 구성들을 제한시키지 않는다.
도 5는 본 발명개시의 예시들이 실시될 수 있는 컴퓨팅 디바이스(500)의 물리적 컴포넌트들(즉, 하드웨어)을 나타내는 블록도이다. 후술하는 컴퓨팅 디바이스 컴포넌트들은 상술한 클라이언트 디바이스에 적합할 수 있다. 기본 구성에서, 컴퓨팅 디바이스(500)는 적어도 하나의 프로세싱 유닛(502)과 시스템 메모리(504)를 포함할 수 있다. 컴퓨팅 디바이스의 구성 및 유형에 따라, 시스템 메모리(504)는, 비제한적인 예시로서, 휘발성 저장장치(예를 들어, 랜덤 액세스 메모리), 비 휘발성 저장장치(예를 들어, 판독 전용 메모리), 플래시 메모리, 또는 이러한 메모리들의 임의의 조합을 포함할 수 있다. 시스템 메모리(504)는 운영체제(505), 및 클라이언트(110)와 같은, 소프트웨어 애플리케이션(550)을 실행하기에 적합한 하나 이상의 프로그래밍 모듈들(506)을 포함할 수 있다. 양태에 따르면, 시스템 메모리(504)는 데이터 시각화 플랫폼(120)을 포함할 수 있다. 예컨대, 운영체제(505)는 컴퓨팅 디바이스(500)의 동작을 제어하기에 적합할 수 있다. 또한, 본 발명개시의 양태들은 그래픽 라이브러리, 다른 운영체제, 또는 임의의 다른 애플리케이션 프로그램과 관련하여 실시될 수 있으며, 임의의 특정 애플리케이션 또는 시스템으로 제한되지 않는다. 이러한 기본 구성은 도 5에서 점선(508) 내의 컴포넌트들에 의해 예시된다. 컴퓨팅 디바이스(500)는 추가적인 특징들 또는 기능을 가질 수 있다. 예를 들어, 컴퓨팅 디바이스(500)는 또한, 예컨대, 자기 디스크들, 광학 디스크들, 또는 테이프와 같은 추가적인(탈착가능 및 탈착불가능) 데이터 저장 디바이스들을 포함할 수 있다. 이러한 추가적인 저장장치는 도 5에서 탈착가능 저장 디바이스(509)와 탈착불가능 저장 디바이스(510)로 나타난다.
상술한 바와 같이, 복수의 프로그램 모듈들 및 데이터 파일들이 시스템 메모리(504)에 저장될 수 있다. 프로세싱 유닛(502) 상에서 실행하는 동안, 프로그램 모듈들(506)(예를 들어, 클라이언트(110), 데이터 시각화 플랫폼(120))은 비제한적인 예시로서, 도 4에서 도시된 방법(400)의 하나 이상의 단계들을 포함하는 프로세스들을 수행할 수 있다. 본 발명개시의 예시들에 따라 사용될 수 있고 전자 메일 및 연락 애플리케이션, 워드 프로세싱 애플리케이션, 스프레드시트 애플리케이션, 데이터베이스 애플리케이션, 슬라이드 프리젠테이션 애플리케이션, 드로잉 또는 컴퓨터 지원 애플리케이션 프로그램 등과 같은 애플리케이션들을 포함할 수 있는 다른 프로그램 모듈들이 사용될 수 있다.
또한, 본 발명개시의 예시들은 개별적인 전자 엘리먼트들을 포함하는 전기 회로, 논리 게이트를 포함하는 패키지화되거나 집적화된 전자 칩, 마이크로프로세서를 이용하는 회로, 또는 전자 엘리먼트들 또는 마이크로프로세서들을 포함하는 단일 칩 상에서 실시될 수 있다. 예를 들어, 본 발명개시의 예시들은 도 5에서 도시된 컴포넌트들 각각 또는 다수가 단일 집적 회로 상에서 집적될 수 있는 SOC(system-on-a-chip)를 통해 실시될 수 있다. 이러한 SOC 디바이스는 단일 집적 회로로서 칩 기판 상에 모두 통합되는(또는 "버닝되는") 하나 이상의 프로세싱 유닛, 그래픽 유닛, 통신 유닛, 시스템 가상화 유닛 및 다양한 애플리케이션 기능을 포함할 수 있다. SOC를 통해 동작할 때, 본 명세서에서 설명된 기능은 단일 집적 회로(칩) 상의 컴퓨팅 디바이스(500)의 다른 컴포넌트들과 통합된 애플리케이션 특정 로직을 통해 동작될 수 있다. 본 발명개시의 예시들은 또한, 비제한적인 예시로서, 기계적, 광학적, 유체, 및 양자 기술들을 비롯하여, AND, OR 및 NOT과 같은 논리 연산을 수행할 수 있는 다른 기술들을 사용하여 실시될 수 있다. 또한, 본 발명개시의 양태들은 범용 컴퓨터 내에서 또는 임의의 다른 회로들 또는 시스템들에서 실시될 수 있다.
컴퓨팅 디바이스(500)는 또한 키보드, 마우스, 펜, 사운드 입력 디바이스, 터치 입력 디바이스 등과 같은 하나 이상의 입력 디바이스(들)(512)을 가질 수 있다. 디스플레이, 스피커, 프린터 등과 같은 출력 디바이스(들)(514)이 또한 포함될 수 있다. 상기 언급한 디바이스들은 일례이며, 다른 것들이 사용될 수 있다. 컴퓨팅 디바이스(500)는 다른 컴퓨팅 디바이스들(518)과의 통신을 허용하는 하나 이상의 통신 커넥션들(516)을 포함할 수 있다. 적합한 통신 커넥션들(516)의 예시들은, 비제한적인 예시로서, RF 송신기, 수신기, 또는 송수신기 회로, 범용 직렬 버스(USB), 병렬 또는 직렬 포트를 포함한다.
여기서 이용된 용어 컴퓨터로 판독가능한 매체는 컴퓨터 저장 매체를 포함할 수 있다. 컴퓨터 저장 매체에는 컴퓨터로 판독가능한 명령어, 데이터 구조, 또는 프로그램 모듈과 같은, 정보의 저장을 위한 임의의 방법 또는 기술에서 구현된 휘발성 및 비휘발성의, 탈착가능 및 탈착불가능 매체가 포함될 수 있다. 시스템 메모리(504), 탈착가능 저장 디바이스(509), 및 탈착불가능 저장 디바이스(510)는 모두 컴퓨터 저장 매체 예시들(즉, 메모리 저장장치)이다. 컴퓨터 저장 매체에는, RAM, ROM, EEPROM(electrically erasable program read-only memory), 플래시 메모리 또는 다른 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 다른 광학 저장장치, 자기 카세트, 자기 테잎, 자기 디스크 저장장치 또는 다른 자기 저장장치 디바이스들, 또는 정보를 저장하는데 이용될 수 있고 컴퓨팅 디바이스(500)에 의해 액세스될 수 있는 임의의 다른 제조 물품이 포함될 수 있다. 이러한 임의의 컴퓨터 저장 매체는 컴퓨팅 디바이스(500)의 일부일 수 있다. 컴퓨터 저장 매체에는 반송파 또는 기타 전파된 데이터 신호가 포함되지 않는다.
통신 매체는 반송파 또는 다른 전송 메커니즘과 같은 변조된 데이터 신호 내에 컴퓨터로 판독가능한 명령어들, 데이터 구조들, 프로그램 모듈들, 또는 다른 데이터를 수록하며, 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호"의 용어는 신호 내에 정보를 인코딩하는 것과 같은 방식으로 설정되거나 또는 변경된 하나 이상의 특징 세트들을 갖는 신호를 설명할 수 있다. 비제한적인 예시로서, 통신 매체는 유선 네트워크 또는 직접적 유선 커넥션과 같은 유선 매체, 및 음향, 무선 주파수(RF), 적외선과 같은 무선 매체, 및 다른 무선 매체를 포함할 수 있다.
도 6a 및 도 6b는 본 발명개시의 양태들이 실시될 수 있는 모바일 컴퓨팅 디바이스(600), 예를 들어, 이동 전화기, 스마트폰, 태블릿 개인 컴퓨터, 랩톱 컴퓨터 등을 도시한다. 도 6a를 참조하면, 양태들을 구현하기 위한 모바일 컴퓨팅 디바이스(600)의 예시가 도시되어 있다. 기본 구성에서, 모바일 컴퓨팅 디바이스(600)는 입력 엘리먼트들 및 출력 엘리먼트들을 모두 갖는 핸드헬드 컴퓨터이다. 모바일 컴퓨팅 디바이스(600)는 일반적으로 사용자가 모바일 컴퓨팅 디바이스(600)에 정보를 입력할 수 있게 하는 하나 이상의 입력 버튼들(610) 및 디스플레이(605)를 포함한다. 모바일 컴퓨팅 디바이스(600)의 디스플레이(605)는 또한 입력 디바이스(예를 들어, 터치 스크린 디스플레이)로서 기능할 수 있다. 선택적인 측면 입력 엘리먼트(615)는, 포함되면, 추가적인 사용자 입력을 허용한다. 측면 입력 엘리먼트(615)는 회전식 스위치, 버튼, 또는 임의의 다른 유형의 수동 입력 엘리먼트일 수 있다. 대안적인 예시들에서, 모바일 컴퓨팅 디바이스(600)는 더 많거나 더 적은 입력 엘리먼트들을 통합할 수 있다. 예를 들어, 일부 예시들에서 디스플레이(605)는 터치 스크린이 아닐 수도 있다. 대안적인 예시들에서, 모바일 컴퓨팅 디바이스(600)는 셀룰러 폰과 같은 휴대 전화 시스템이다. 모바일 컴퓨팅 디바이스(600)는 또한 선택적 키패드(635)를 포함할 수 있다. 선택적 키패드(635)는 물리적 키패드 또는 터치 스크린 디스플레이 상에 생성된 "소프트" 키패드일 수 있다. 다양한 양태들에서, 출력 엘리먼트들은 그래픽 사용자 인터페이스(GUI)를 보여주는 디스플레이(605), 시각 표시기(620)(예를 들어, 발광 다이오드), 또는 오디오 트랜스듀서(625)(예를 들어, 스피커)를 포함한다. 일부 예시들에서, 모바일 컴퓨팅 디바이스(600)는 촉각 피드백을 사용자에게 제공하기 위한 진동 트랜스듀서를 병합한다. 또 다른 예시에서, 모바일 컴퓨팅 디바이스(600)는 외부 디바이스와 신호를 주고 받을 수 있기 위한 오디오 입력(예를 들어, 마이크로폰 잭), 오디오 출력(예를 들어, 헤드폰 잭) 및 비디오 출력(예를 들어, HDMI 포트)과 같은 주변 장치 포트(640)를 병합한다.
도 6b는 모바일 컴퓨팅 디바이스의 일례의 아키텍처를 나타내는 블록도이다. 즉, 모바일 컴퓨팅 디바이스(600)는 몇가지 예시들을 구현하기 위해 시스템(즉, 아키텍처)(602)을 병합할 수 있다. 하나의 예시에서, 시스템(602)은 하나 이상의 애플리케이션들(예를 들어, 브라우저, 이메일, 칼린더링, 연락처 관리자, 메시징 클라이언트, 게임, 및 미디어 클라이언트/플레이어)을 실행할 수 있는 "스마트 폰"으로서 구현된다. 일부 예시들에서, 시스템(602)은 통합형 개인 휴대 정보 단말기(PDA) 및 무선 전화기와 같은 컴퓨팅 디바이스로서 통합된다.
예를 들어, 클라이언트(110)와 같은 하나 이상의 애플리케이션 프로그램들(550)은 메모리(662)에 로딩될 수 있고 운영체제(664) 상에서 또는 이와 연계되어 실행될 수 있다. 애플리케이션 프로그램들의 예시들로는 전화 걸기 프로그램, 이메일 프로그램, 개인 정보 관리(personal information management; PIM) 프로그램, 워드 프로세서 프로그램, 스프레드시트 프로그램, 인터넷 브라우저 프로그램, 메시징 프로그램 등이 포함된다. 양태에 따르면, 데이터 시각화 플랫폼(120)은 메모리(662)에 로딩될 수 있다. 시스템(602)은 또한 메모리(662) 내에 비 휘발성 저장 영역(668)을 포함한다. 비 휘발성 저장 영역(668)은 시스템(602)의 전원이 꺼지면 손실되지 않아야 하는 영구 정보를 저장하는데 사용될 수 있다. 애플리케이션 프로그램들(550)은 이메일 또는 이메일 애플리케이션에 의해 사용되는 다른 메시지들 등과 같은, 정보를 비 휘발성 저장 영역(668)에서 사용하고 저장할 수 있다. 동기화 애플리케이션(도시되지 않음)은 또한 시스템(602) 상에 상주하며, 비 휘발성 저장 영역(668)에 저장된 정보가 호스트 컴퓨터에 저장된 대응 정보와 동기화되도록 호스트 컴퓨터 상에 상주하는 대응하는 동기화 애플리케이션과 상호작용하도록 프로그램된다. 알 수 있는 바와 같이, 다른 애플리케이션들이 메모리(662)에 로딩되어 모바일 컴퓨팅 디바이스(600) 상에서 실행될 수 있다.
시스템(602)은 하나 이상의 배터리로서 구현될 수 있는 전원 공급기(670)를 갖는다. 전원 공급기(670)는 배터리를 보충하거나 재충전하는 AC 어댑터 또는 동력 도킹 크레이들과 같은 외부 전원을 더 포함할 수 있다.
시스템(602)은 또한 무선 주파수 통신을 송신 및 수신하는 기능을 수행하는 무선기(672)를 포함할 수 있다. 무선기(672)는 통신 캐리어 또는 서비스 제공자를 통해 시스템(602)과 "외부 세계"사이의 무선 접속을 용이하게 한다. 무선기(672)로/로부터의 송신은 운영체제(664)의 제어 하에 수행된다. 달리 말하면, 무선기(672)에 의해 수신된 통신은 운영체제(664)를 통해 애플리케이션 프로그램들(550)에 유포될 수 있고, 그 반대도 마찬가지이다.
시각 표시기(620)가 시각적인 통지를 제공하기 위해 사용될 수 있거나 또는 오디오 인터페이스(674)가 오디오 트랜스듀서(625)를 통해 가청 통지를 생성하는데 사용될 수 있다. 도시된 예시에서, 시각 표시기(620)는 발광 다이오드(LED)이고 오디오 트랜스듀서(625)는 스피커이다. 이들 디바이스들은 전원 공급기(670)에 직접 결합될 수 있어서, 프로세서(660) 및 다른 컴포넌트들이 배터리 전력을 보존하기 위해 셧다운될지라도, 이들 디바이스들은 활성화될 때 통지 메커니즘에 의해 지시된 지속기간 동안 온 상태로 남는다. 사용자가 디바이스의 전원이 켜진 상태를 나타내는 액션을 취할 때까지 LED가 무기한으로 온 상태로 남아있도록 프로그래밍될 수 있다. 오디오 인터페이스(674)는 사용자에게 가청 신호를 제공하고 사용자로부터 가청 신호를 수신하는데 사용된다. 예를 들어, 오디오 트랜스듀서(625)에 결합되는 것에 부가하여, 오디오 인터페이스(674)는 또한 전화 대화를 용이하게 하기 위해, 가청 입력을 수신하기 위해 마이크로폰에 결합될 수 있다. 시스템(602)은 온보드 카메라(630)의 동작이 정지 이미지, 비디오 스트림 등을 레코딩할 수 있게 하는 비디오 인터페이스(676)를 더 포함할 수 있다.
시스템(602)을 구현하는 모바일 컴퓨팅 디바이스(600)는 추가적인 특징들 또는 기능을 가질 수 있다. 예를 들어, 모바일 컴퓨팅 디바이스(600)는 또한, 자기 디스크들, 광학 디스크들, 또는 테이프와 같은 추가적인(탈착가능 및 탈착불가능) 데이터 저장 디바이스들을 포함할 수 있다. 이러한 추가적인 저장장치는 비 휘발성 저장 영역(668)에 의해 도 6b에 도시된다.
모바일 컴퓨팅 디바이스(600)에 의해 생성되거나 캡처되고 시스템(602)을 통해 저장되는 데이터/정보는 전술한 바와 같이 모바일 컴퓨팅 디바이스(600) 상에 로컬로 저장될 수 있거나, 또는 데이터는 무선기(672)를 통해 또는 모바일 컴퓨팅 디바이스(600)와 모바일 컴퓨팅 디바이스(600)와 관련된 별도의 컴퓨팅 디바이스, 예를 들어, 인터넷과 같은 분산형 컴퓨팅 네트워크 내의 서버 컴퓨터 사이의 유선 연결을 통해 디바이스에 의해 액세스될 수 있는 임의의 수의 저장 매체 상에 저장될 수 있다. 알 수 있는 바와 같이, 이러한 데이터/정보는 무선기(672)를 경유하여 또는 분산형 컴퓨팅 네트워크를 경유하여 모바일 컴퓨팅 디바이스(600)를 통해 액세스될 수 있다. 마찬가지로, 이러한 데이터/정보는 전자 메일 및 협업 데이터/정보 공유 시스템을 비롯하여, 잘 알려진 데이터/정보 전달 및 저장 수단에 따라 저장 및 사용을 위해 컴퓨팅 디바이스들 간에 용이하게 전송될 수 있다.
도 7은 상술한 바와 같이 데이터 시각화를 제공하기 위한 시스템의 아키텍처의 일례를 도시한다. 클라이언트(110) 또는 데이터 시각화 플랫폼(120)과 관련하여 개발되거나, 상호작용하거나, 또는 편집된 콘텐츠는 상이한 통신 채널들 또는 다른 저장 유형들에 저장될 수 있다. 예를 들어, 디렉토리 서비스(722), 웹 포탈(724), 메일박스 서비스(726), 인스턴트 메시징 스토어(728), 또는 소셜 네트워킹 사이트(730)를 사용하여 다양한 문서들이 저장될 수 있다. 클라이언트(110) 또는 데이터 시각화 플랫폼(120)은 본 명세서에서 설명된 바와 같이 데이터 시각화를 제공하기 위해 이러한 유형들의 임의의 시스템들 등을 사용할 수 있다. 서버(715)는 클라이언트(110) 또는 데이터 시각화 플랫폼(120)을 클라이언트들(705A~705C)에 제공할 수 있다. 하나의 예시로서, 서버(715)는 웹을 통해 클라이언트(110) 또는 데이터 시각화 플랫폼(120)을 제공하는 웹 서버일 수 있다. 서버(715)는 네트워크(710)를 통해 클라이언트(705)에게 웹을 걸쳐 클라이언트(110) 또는 데이터 시각화 플랫폼(120)을 제공할 수 있다. 예로서, 클라이언트 컴퓨팅 디바이스는 개인 컴퓨터(705A), 태블릿 컴퓨팅 디바이스(705B) 또는 모바일 컴퓨팅 디바이스(705C)(예를 들어, 스마트 폰), 또는 다른 컴퓨팅 디바이스에서 구현되고 구체화될 수 있다. 클라이언트 컴퓨팅 디바이스의 이들 예시들 중 임의의 것은 스토어(716)로부터 콘텐츠를 획득할 수 있다.
예를 들어, 본 발명개시의 양태들은 본 발명개시의 양태들에 따른 방법, 시스템, 및 컴퓨터 프로그램 제품의 블록도 또는 동작도를 참조하여 상술된다. 블록들에 표시된 기능들/동작들은 임의의 순서도에서 도시된 순서를 벗어나서 수행될 수 있다. 예를 들어, 관련된 기능/동작들에 따라, 연속하여 도시된 두 개의 블록들은, 실제에서, 실질적으로 동시에 실행될 수 있거나, 또는 블록들은 때때로 역순서로 실행될 수 있다.
본 출원에서 제공된 하나 이상의 예시들에 대한 설명 및 예시는 어떤 방식으로든 본 발명개시의 범위를 제한시키거나 또는 한정시키려고 의도된 것은 아니다. 본 출원에서 제공된 양태들, 예시들 및 세부사항들은 소유물을 전달하고 다른 사람들이 본 발명개시의 최상 모드를 만들고 사용할 수 있게 하는데 충분하다고 여겨진다. 본 발명개시는 본 출원에서 제공된 임의의 양태, 예시, 또는 세부사항으로 제한되는 것으로서 해석되어서는 안된다. 조합 형태로 또는 개별적으로 도시되고 설명되는지 여부에 관계없이, 다양한 특징들(구조적 및 방법론적 둘 다)은 특정 특징 세트를 갖는 예시를 생성하기 위해 선택적으로 포함되거나 생략되도록 의도된 것이다.

Claims (15)

  1. 시각화(visualization)에 대한 변경의 모핑 애니메이션(morphing animation)을 생성하는 방법에 있어서,
    상기 변경 이전의 상기 시각화를 포함하는 지오메트리(geometry)들의 초기 스냅샷(snapshot)을 취하는 단계;
    상기 변경 이후의 상기 시각화를 포함하는 상기 지오메트리들의 최종 스냅샷을 취하는 단계;
    상기 초기 스냅샷과 상기 최종 스냅샷을 캐시(cache)하는 단계;
    상기 캐시된 스냅샷들을 해석하여 병합된 지오메트리들 - 상기 병합된 지오메트리들은 상기 캐시된 스냅샷들 간의 천이 상태들을 표현함 - 을 생성하는 단계;
    상기 모핑 애니메이션을 포함하도록 정적 이미지들로서 렌더링가능한 복수의 프레임들 - 상기 프레임들은 상기 병합된 지오메트리들에 기초하여 생성됨 - 을 합성하는 단계; 및
    상기 복수의 프레임들을 상기 시각화에서 렌더링될 클라이언트로 전송함으로써, 상기 시각화에 대한 변경의 상기 모핑 애니메이션을 제공하는 단계
    를 포함하는 모핑 애니메이션 생성 방법.
  2. 제1항에 있어서,
    상기 변경 동안 상기 시각화를 포함하는 상기 지오메트리들의 중간 스냅샷을 취하는 단계; 및
    상기 중간 스냅샷을 캐시하는 단계
    를 더 포함하는 모핑 애니메이션 생성 방법.
  3. 제1항에 있어서,
    상기 복수의 프레임들의 최종 프레임은 상기 최종 스냅샷에 대응하고, 상기 복수의 프레임들은 상기 초기 스냅샷에 대응하는 프레임을 포함하지 않는 것인, 모핑 애니메이션 생성 방법.
  4. 제1항에 있어서,
    상기 복수의 프레임을 생성하는 단계는,
    상기 모핑 애니메이션의 재생을 위한 지속기간 및 초당 프레임(Frames per Second; FPS)율을 포함하는 애니메이션 루프(animation loop)를 수신하는 단계
    를 더 포함하며,
    상기 합성된 복수의 프레임들의 프레임들의 수는 상기 지속기간 및 상기 FPS율에 기초한 수를 초과하지 않는 것인, 모핑 애니메이션 생성 방법.
  5. 제4항에 있어서,
    상기 애니메이션 루프는 타이밍 곡선
    을 더 포함하며,
    상기 타이밍 곡선은 상기 병합된 지오메트리들이 상기 모핑 애니메이션에 있어서 상기 초기 지오메트리로부터 상기 최종 지오메트리로의 변경을 나타내는 레이트(rate)를 규정하는 것인, 모핑 애니메이션 생성 방법.
  6. 제1항에 있어서,
    상기 스냅샷들 및 상기 복수의 프레임들은 스토리보드 객체에 캐시되며, 상기 스토리보드 객체는 타임라인에 따라 상기 복수의 프레임들의 반복된 재생을 제공하도록 동작가능한 것인, 모핑 애니메이션 생성 방법.
  7. 제1항에 있어서,
    상기 초기 스냅샷을 포함하는 상기 지오메트리들의 엘리먼트는 상기 최종 스냅샷을 포함하는 상기 지오메트리들의 엘리먼트와 연관된 것인, 모핑 애니메이션 생성 방법.
  8. 제7항에 있어서,
    상기 초기 스냅샷을 포함하는 상기 지오메트리들의 엘리먼트는 상기 최종 스냅샷에 존재하지 않으며, 상기 방법은,
    상기 최종 스냅샷에서 상기 엘리먼트를 임의의 지오메트리와 연관시키는 단계
    를 더 포함하고,
    상기 임의의 지오메트리 및 상기 엘리먼트에 대한 상기 병합된 지오메트리들을 생성하는 단계는,
    상기 모핑 애니메이션이 진행됨에 따라 상기 엘리먼트를 페이드 아웃(fade out)시키는 단계;
    상기 엘리먼트를 상기 임의의 지오메트리 - 상기 임의의 지오메트리는 지점(point)임 - 로 축소시키는 단계; 및
    상기 엘리먼트를 상기 임의의 지오메트리 - 상기 임의의 지오메트리는 상기 초기 스냅샷에서 상기 엘리먼트와 함께 공통 지오메트리를 공유하는 이웃 엘리먼트임 - 내로 병합시키는 단계
    중 적어도 하나를 포함한 것인, 모핑 애니메이션 생성 방법.
  9. 제7항에 있어서,
    상기 최종 스냅샷을 포함하는 상기 지오메트리들의 엘리먼트는 상기 초기 스냅샷에 존재하지 않으며, 상기 방법은,
    상기 초기 스냅샷에서 상기 엘리먼트를 임의의 지오메트리와 연관시키는 단계
    를 더 포함하고,
    상기 임의의 지오메트리 및 상기 엘리먼트에 대한 상기 병합된 지오메트리들을 생성하는 단계는,
    상기 모핑 애니메이션이 진행됨에 따라 상기 엘리먼트를 페이드 인(fade in)시키는 단계;
    상기 엘리먼트를 상기 임의의 지오메트리 - 상기 임의의 지오메트리는 지점임 - 로부터 성장시키는 단계; 및
    상기 엘리먼트를 상기 임의의 지오메트리 - 상기 임의의 지오메트리는 상기 초기 스냅샷에서 상기 엘리먼트와 함께 공통 지오메트리를 공유하는 이웃 엘리먼트임 - 로부터 분할시키는 단계
    중 적어도 하나를 포함한 것인, 모핑 애니메이션 생성 방법.
  10. 시각화에 대한 변경의 모핑 애니메이션을 생성하는 시스템에 있어서,
    프로세서; 및
    명령어들을 포함한 메모리 저장장치
    를 포함하고,
    상기 명령어들은, 상기 프로세서에 의해 실행될 때,
    데이터의 시각화에 대한 변경의 모핑 애니메이션을 제공하도록 동작가능한 애니메이션 엔진을 제공하도록 동작가능하고,
    상기 애니메이션 엔진은,
    상기 변경 이전의 상기 시각화를 포함하는 지오메트리들의 초기 스냅샷 및 상기 변경 이후의 상기 시각화를 포함하는 상기 지오메트리들의 최종 스냅샷을 취함으로써 상기 시각화에 대한 상기 변경에 응답하도록 동작가능한 그래버(grabber) 모듈;
    상기 그래버 모듈로부터 상기 초기 스냅샷 및 상기 최종 스냅샷을 수신하고, 상기 스냅샷들을 해석하여 병합된 지오메트리들 - 상기 병합된 지오메트리들은 상기 초기 스냅샷과 상기 최종 스냅샷 사이의 천이 상태들을 표현함 - 을 생성하도록 동작가능한 트위너(tweener) 모듈;
    상기 모핑 애니메이션을 포함하도록 정적 이미지들로서 클라이언트에 의해 렌더링가능한 복수의 프레임들 - 상기 프레임들은 상기 병합된 지오메트리들에 기초하여 생성됨 - 을 생성하기 위해 상기 트위너 모듈로부터 상기 병합된 지오메트리들을 수신하도록 동작가능한 프레이밍(framing) 모듈; 및,
    상기 프레이밍 모듈로부터 상기 복수의 프레임들을 수신하여 상기 복수의 프레임들을 저장하고 상기 시각화에서 렌더링될 상기 클라이언트에 상기 복수의 프레임들을 전송함으로써, 상기 변경의 상기 모핑 애니메이션을 제공하도록 동작가능한 버퍼 모듈
    을 포함한 것인, 모핑 애니메이션 생성 시스템.
  11. 제10항에 있어서,
    상기 그래버 모듈은 또한 상기 변경 동안 상기 시각화를 포함하는 상기 지오메트리들의 중간 스냅샷을 취하도록 동작가능한 것인, 모핑 애니메이션 생성 시스템.
  12. 제10항에 있어서,
    상기 버퍼 모듈은 복수의 서브 버퍼들을 포함하고, 상기 서브 버퍼들은 상기 프레이밍 모듈로 하여금 상기 시각화의 렌더링과는 독립적으로 상기 복수의 프레임들을 생성할 수 있게 하는 것인, 모핑 애니메이션 생성 시스템.
  13. 제10항에 있어서,
    상기 트위너 모듈은 또한 타이밍 곡선을 수신하도록 동작가능하고, 상기 트위너 모듈은 상기 천이 상태들에서 초기 지오메트리들로부터 최종 지오메트리들로의 변경률(rate of change)을 설정하도록 상기 타이밍 곡선을 적용하는 것인, 모핑 애니메이션 생성 시스템.
  14. 제10항에 있어서,
    상기 버퍼 모듈은 또한 스토리보드 객체로서 상기 복수의 프레임들을 순차적 순서로 저장하도록 동작가능하며, 상기 스토리보드 객체는 상기 변경의 상기 모핑 애니메이션의 반복된 재생을 제공하도록 동작가능한 것인, 모핑 애니메이션 생성 시스템.
  15. 모핑 애니메이션을 생성하기 위한 컴퓨팅 디바이스에 있어서,
    프로세서; 및
    명령어들을 포함한 메모리 저장장치
    를 포함하고,
    상기 명령어들은, 상기 프로세서에 의해 실행될 때,
    상기 모핑 애니메이션의 지속기간을 포함한 타이밍 곡선을 수신하고;
    클라이언트가 상기 모핑 애니메이션을 렌더링할 때의 초당 프레임(FPS)율을 수신하고;
    상기 변경 이전의 상기 시각화를 포함하는 지오메트리들의 초기 스냅샷을 취하고;
    상기 변경 이후의 상기 시각화를 포함하는 상기 지오메트리들의 최종 스냅샷을 취하고;
    스토리보드 객체 내에서 상기 초기 스냅샷과 상기 최종 스냅샷을 키 프레임(key frame)들로서 캐시하고;
    상기 캐시된 스냅샷들을 해석하여 병합된 지오메트리들 - 상기 병합된 지오메트리들은 상기 캐시된 스냅샷들 간의 천이 상태들을 표현하고, 상기 천이 상태들은 상기 타이밍 곡선에 따라 결정됨 - 을 생성하고;
    상기 모핑 애니메이션을 포함하도록 정적 이미지들로서 렌더링가능한 복수의 프레임들 - 상기 프레임들은 상기 병합된 지오메트리들에 기초하여 생성되고, 상기 복수의 프레임들의 수는 상기 지속기간 및 상기 FPS율에 기초한 수를 초과하지 않음 - 을 생성하고;
    타임라인에 따라 상기 스토리보드 객체 내에서 상기 복수의 프레임들을 캐시하며;
    상기 스토리보드 객체를 상기 시각화에서 렌더링될 상기 클라이언트에 전송하도록 동작가능하며, 상기 스토리보드 객체는 상기 변경의 상기 모핑 애니메이션의 반복된 재생을 제공하도록 동작가능한 것인, 컴퓨팅 디바이스.
KR1020177012630A 2014-10-14 2015-10-14 애니메이션 프레임워크 KR20170067853A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462063741P 2014-10-14 2014-10-14
US62/063,741 2014-10-14
US14/683,100 2015-04-09
US14/683,100 US20160104311A1 (en) 2014-10-14 2015-04-09 Animation framework
PCT/US2015/055416 WO2016061158A1 (en) 2014-10-14 2015-10-14 Animation framework

Publications (1)

Publication Number Publication Date
KR20170067853A true KR20170067853A (ko) 2017-06-16

Family

ID=55655563

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177012630A KR20170067853A (ko) 2014-10-14 2015-10-14 애니메이션 프레임워크

Country Status (5)

Country Link
US (6) US10216750B2 (ko)
EP (4) EP3207527B1 (ko)
KR (1) KR20170067853A (ko)
CN (3) CN106852178A (ko)
WO (4) WO2016060879A1 (ko)

Families Citing this family (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10347027B2 (en) 2014-09-08 2019-07-09 Tableau Software, Inc. Animated transition between data visualization versions at different levels of detail
US10635262B2 (en) 2014-09-08 2020-04-28 Tableau Software, Inc. Interactive data visualization user interface with gesture-based data field selection
US10521092B2 (en) 2014-09-08 2019-12-31 Tableau Software, Inc. Methods and devices for adjusting chart magnification asymmetrically
US10347018B2 (en) 2014-09-08 2019-07-09 Tableau Software, Inc. Interactive data visualization user interface with hierarchical filtering based on gesture location on a chart
US10380770B2 (en) 2014-09-08 2019-08-13 Tableau Software, Inc. Interactive data visualization user interface with multiple interaction profiles
US10216750B2 (en) 2014-10-14 2019-02-26 Microsoft Technology Licensing, Llc Annotated geometry
US10353793B2 (en) 2014-11-05 2019-07-16 Oracle International Corporation Identifying improvements to memory usage of software programs
US20160162165A1 (en) * 2014-12-03 2016-06-09 Harish Kumar Lingappa Visualization adaptation for filtered data
EP3265866B1 (en) 2015-03-05 2022-12-28 Magic Leap, Inc. Systems and methods for augmented reality
US10838207B2 (en) 2015-03-05 2020-11-17 Magic Leap, Inc. Systems and methods for augmented reality
FR3033919B1 (fr) * 2015-03-20 2018-09-07 Niel Vassort Thomas Procede de generation d'une sequence video cyclique
US9786081B1 (en) * 2015-05-14 2017-10-10 Domo, Inc. Transitioning between visual representations
US11068647B2 (en) * 2015-05-28 2021-07-20 International Business Machines Corporation Measuring transitions between visualizations
US10896532B2 (en) 2015-09-08 2021-01-19 Tableau Software, Inc. Interactive data visualization user interface with multiple interaction profiles
US9905034B2 (en) * 2015-09-14 2018-02-27 Salesforce.Com, Inc. Secure isolation of scripting from native graphic rendering of animated data visualizations
US10115213B2 (en) * 2015-09-15 2018-10-30 Salesforce, Inc. Recursive cell-based hierarchy for data visualizations
US10089368B2 (en) 2015-09-18 2018-10-02 Salesforce, Inc. Systems and methods for making visual data representations actionable
US10607139B2 (en) 2015-09-23 2020-03-31 International Business Machines Corporation Candidate visualization techniques for use with genetic algorithms
US10489130B2 (en) 2015-09-24 2019-11-26 Oracle International Corporation Configurable memory layouts for software programs
US10127136B2 (en) 2015-09-24 2018-11-13 Oracle International Corporation Identifying and visualizing suboptimal memory layouts in software programs
US10217254B2 (en) * 2015-09-24 2019-02-26 Oracle International Corporation Graphical editing of memory layout rules for software programs
CA3007367A1 (en) 2015-12-04 2017-06-08 Magic Leap, Inc. Relocalization systems and methods
US20170323028A1 (en) * 2016-05-04 2017-11-09 Uncharted Software Inc. System and method for large scale information processing using data visualization for multi-scale communities
US10685035B2 (en) 2016-06-30 2020-06-16 International Business Machines Corporation Determining a collection of data visualizations
US10861202B1 (en) 2016-07-31 2020-12-08 Splunk Inc. Sankey graph visualization for machine data search and analysis system
US10459938B1 (en) 2016-07-31 2019-10-29 Splunk Inc. Punchcard chart visualization for machine data search and analysis system
US11037342B1 (en) * 2016-07-31 2021-06-15 Splunk Inc. Visualization modules for use within a framework for displaying interactive visualizations of event data
US10853380B1 (en) 2016-07-31 2020-12-01 Splunk Inc. Framework for displaying interactive visualizations of event data
US10459939B1 (en) 2016-07-31 2019-10-29 Splunk Inc. Parallel coordinates chart visualization for machine data search and analysis system
IL294134B2 (en) 2016-08-02 2023-10-01 Magic Leap Inc Virtual and augmented reality systems at a fixed distance and methods
US10290130B2 (en) * 2016-08-31 2019-05-14 International Business Machines Corporation Visualization of connected data
US11430195B2 (en) * 2016-08-31 2022-08-30 Sony Corporation Information processing apparatus, information processing method, and program for improving user-friendliness of an animated tutorial depicting assembling parts for creating a robot
US10936559B1 (en) * 2016-09-28 2021-03-02 Amazon Technologies, Inc. Strongly-consistent secondary index for a distributed data set
PT109807A (pt) * 2016-12-23 2018-06-25 Inst Superior Tecnico Método para interação remota em tempo-real entre um telespetador e um programa de televisão em direto, e sistema que o implementa
US11086498B2 (en) 2016-12-30 2021-08-10 Microsoft Technology Licensing, Llc. Server-side chart layout for interactive web application charts
US10304225B2 (en) 2016-12-30 2019-05-28 Microsoft Technology Licensing, Llc Chart-type agnostic scene graph for defining a chart
US10395412B2 (en) 2016-12-30 2019-08-27 Microsoft Technology Licensing, Llc Morphing chart animations in a browser
US10812936B2 (en) 2017-01-23 2020-10-20 Magic Leap, Inc. Localization determination for mixed reality systems
US10593122B1 (en) 2017-01-24 2020-03-17 Amazon Technologies, Inc. Mirroring edge pixels
US10580167B1 (en) * 2017-01-24 2020-03-03 Amazon Technologies, Inc. Excluding masked regions of virtual reality (VR) frames from encoder processing
EP3596703A1 (en) 2017-03-17 2020-01-22 Magic Leap, Inc. Mixed reality system with virtual content warping and method of generating virtual content using same
CA3054617A1 (en) 2017-03-17 2018-09-20 Magic Leap, Inc. Mixed reality system with multi-source virtual content compositing and method of generating virtual content using same
KR20230149347A (ko) * 2017-03-17 2023-10-26 매직 립, 인코포레이티드 컬러 가상 콘텐츠 워핑을 갖는 혼합 현실 시스템 및 이를 사용하여 가상 콘텐츠를 생성하는 방법
US10572970B2 (en) * 2017-04-28 2020-02-25 Google Llc Extracting 2D floor plan from 3D GRID representation of interior space
US11940990B1 (en) 2017-06-16 2024-03-26 Amazon Technologies, Inc. Global clock values for consistent queries to replicated data
US10572108B2 (en) * 2017-07-20 2020-02-25 Vmware, Inc. Hierarchical inventory tree operation
US10534587B1 (en) * 2017-12-21 2020-01-14 Intuit Inc. Cross-platform, cross-application styling and theming infrastructure
WO2019236419A1 (en) * 2018-06-03 2019-12-12 Apple Inc. Framework providing application programming interface for user interfaces and animation
US10552445B1 (en) * 2018-07-17 2020-02-04 Merck Sharp & Dohme Corp. Progressive data distribution visualization
WO2020023383A1 (en) 2018-07-23 2020-01-30 Magic Leap, Inc. Mixed reality system with virtual content warping and method of generating virtual content using same
EP3635528A1 (en) * 2018-08-21 2020-04-15 Google LLC Dynamically generated interface transitions
CN109388306B (zh) * 2018-09-29 2022-04-29 创新先进技术有限公司 信息显示方法及装置
CN110162763A (zh) * 2019-07-18 2019-08-23 成都希盟泰克科技发展有限公司 海量质量验评表单数据进行智能配置的优化方法及其系统
US10896480B1 (en) 2019-09-23 2021-01-19 International Business Machines Corporation Visualization rendering using an extensible rendering sequence
US11316951B2 (en) * 2019-09-30 2022-04-26 Citrix Systems, Inc. Polytree queue for synchronizing data with a shared resource
US11348293B2 (en) * 2020-02-13 2022-05-31 Eric Schneider Dynamic price range symbol update and display system, method, and device
US11410368B2 (en) 2020-07-24 2022-08-09 Unity Technologies Sf Animation control rig generation
US11341703B2 (en) 2020-07-24 2022-05-24 Unity Technologies Sf Methods and systems for generating an animation control rig
US11562522B2 (en) 2020-07-24 2023-01-24 Unity Technologies Sf Method and system for identifying incompatibility between versions of compiled software code
US11698776B2 (en) 2020-07-24 2023-07-11 Unity Technologies Sf Method and system for processing computer code
US11645803B2 (en) * 2020-08-07 2023-05-09 International Business Machines Corporation Animation effect reproduction
US11880385B1 (en) 2020-09-29 2024-01-23 Amazon Technologies, Inc. Ordering updates to secondary indexes using conditional operations
US11250022B1 (en) 2020-09-29 2022-02-15 Amazon Technologies, Inc. Offline index builds for database tables
CN112419458A (zh) * 2020-11-20 2021-02-26 青岛以萨数据技术有限公司 基于安卓动画的用户交互方法、服务器、介质及系统
US20220218438A1 (en) * 2021-01-14 2022-07-14 Orthosnap Corp. Creating three-dimensional (3d) animation
CN113052942B (zh) * 2021-03-31 2023-06-30 抖音视界有限公司 图表生成方法、装置、存储介质及电子设备
CN113633970B (zh) * 2021-08-18 2024-03-08 腾讯科技(成都)有限公司 动作效果的显示方法、装置、设备及介质

Family Cites Families (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US543469A (en) * 1895-07-30 deuet
GB2270243B (en) * 1992-08-26 1996-02-28 Namco Ltd Image synthesizing system
US6359629B1 (en) 1998-07-06 2002-03-19 Silicon Graphics, Inc. Backface primitives culling
US6636215B1 (en) 1998-07-22 2003-10-21 Nvidia Corporation Hardware-assisted z-pyramid creation for host-based occlusion culling
US6480205B1 (en) * 1998-07-22 2002-11-12 Nvidia Corporation Method and apparatus for occlusion culling in graphics systems
US7023440B1 (en) 1998-09-14 2006-04-04 Fisher Rosemount Systems, Inc. Methods and apparatus for integrated display of process events and trend data
US6213944B1 (en) * 1999-03-05 2001-04-10 Atl Ultrasound, Inc. Ultrasonic diagnostic imaging system with a digital video recorder with visual controls
US7500188B1 (en) 2000-04-26 2009-03-03 Novarra, Inc. System and method for adapting information content for an electronic device
US6853375B2 (en) 2000-05-10 2005-02-08 Cognos Incorporated Method for preemptive screen rendering
US6859217B2 (en) 2000-07-19 2005-02-22 Microsoft Corporation System and method to display and manage data within hierarchies and polyarchies of information
US7765255B2 (en) 2002-07-30 2010-07-27 Sap Ag Extended web infrastructure for business applications
US7171412B2 (en) * 2002-10-07 2007-01-30 Sun Microsystems, Inc. Restricted access model for hierarchical data structures
US7949953B2 (en) * 2003-06-13 2011-05-24 Sap Aktiengesellschaft Designing and generating charts to graphically represent data in a data source
JP4121125B2 (ja) * 2003-09-10 2008-07-23 インターナショナル・ビジネス・マシーンズ・コーポレーション グラフィックス・イメージ生成装置及びその方法、データ解析装置及びその方法並びにプログラム
US7511718B2 (en) * 2003-10-23 2009-03-31 Microsoft Corporation Media integration layer
US8090776B2 (en) 2004-11-01 2012-01-03 Microsoft Corporation Dynamic content change notification
US7911467B2 (en) * 2005-12-30 2011-03-22 Hooked Wireless, Inc. Method and system for displaying animation with an embedded system graphics API
US8487937B2 (en) * 2006-01-04 2013-07-16 Microsoft Corporation Representing animation as a static image on a graphical user interface
US9019300B2 (en) 2006-08-04 2015-04-28 Apple Inc. Framework for graphics animation and compositing operations
US8990258B2 (en) * 2006-12-29 2015-03-24 Izenda, Inc. Self-service database reporting systems and methods
US7737979B2 (en) 2007-02-12 2010-06-15 Microsoft Corporation Animated transitions for data visualization
CN101111049B (zh) 2007-08-14 2010-07-28 华为技术有限公司 实现一个小区覆盖多区域的系统、方法和网络设备
US8184096B2 (en) 2007-12-04 2012-05-22 Apple Inc. Cursor transitions
US20090184977A1 (en) 2008-01-18 2009-07-23 Qualcomm Incorporated Multi-format support for surface creation in a graphics processing system
US8346897B2 (en) * 2008-02-25 2013-01-01 Jon Jaroker System and method for deploying and maintaining software applications
US20090327921A1 (en) 2008-06-27 2009-12-31 Microsoft Corporation Animation to visualize changes and interrelationships
US8176096B2 (en) * 2008-12-18 2012-05-08 Microsoft Corporation Data visualization interactivity architecture
US9250926B2 (en) 2009-04-30 2016-02-02 Microsoft Technology Licensing, Llc Platform extensibility framework
US8638343B2 (en) * 2009-04-30 2014-01-28 Microsoft Corporation Data visualization platform performance optimization
US8725775B2 (en) 2009-06-03 2014-05-13 Business Objects Software Limited Identifying and abstracting a visualization point from an arbitrary two-dimensional dataset into a unified metadata for further consumption
WO2011010688A1 (ja) 2009-07-22 2011-01-27 日本電気株式会社 コンテンツ配信システム、コンテンツ配信方法、コンテンツ配信プログラム
US8527458B2 (en) 2009-08-03 2013-09-03 Oracle International Corporation Logging framework for a data stream processing server
US8694906B2 (en) 2010-04-15 2014-04-08 Adobe Systems Incorporated Dynamic visualization of physical and geographical multitenant cloud computing
US20110285727A1 (en) 2010-05-24 2011-11-24 Microsoft Corporation Animation transition engine
US8244743B2 (en) 2010-06-08 2012-08-14 Google Inc. Scalable rendering of large spatial databases
US8711152B2 (en) 2010-06-16 2014-04-29 Panasonic Corporation Animation control apparatus, animation control method, and non-transitory computer readable recording medium
CN103080984B (zh) 2010-06-30 2017-04-12 巴里·林恩·詹金斯 确定从视区看去可见的网格多边形或所述网格多边形的分段的集合的方法及系统
US9292587B2 (en) 2010-07-21 2016-03-22 Citrix System, Inc. Systems and methods for database notification interface to efficiently identify events and changed data
US9069557B2 (en) 2010-12-17 2015-06-30 Microsoft Technology Licensing, LLP Business intelligence document
US20120218254A1 (en) 2011-02-28 2012-08-30 Microsoft Corporation Data visualization design and view systems and methods
US20120313957A1 (en) 2011-06-09 2012-12-13 Microsoft Corporation Staged Animated Transitions for Aggregation Charts
US9262849B2 (en) 2011-11-14 2016-02-16 Microsoft Technology Licensing, Llc Chart animation
US20130179791A1 (en) 2011-12-16 2013-07-11 Webotics Inc. System and method for real-time data in a graphical user interface
US9286162B2 (en) 2012-02-02 2016-03-15 Netapp, Inc. System and method for guaranteeing consistent data synchronization from a volatile data source
US9530272B2 (en) * 2012-02-22 2016-12-27 Zotobi Management Ltd. System and method for displaying multiple activities
US20130271472A1 (en) 2012-04-12 2013-10-17 Motorola Mobility, Inc. Display of Value Changes in Between Keyframes in an Animation Using a Timeline
US20140046923A1 (en) 2012-08-10 2014-02-13 Microsoft Corporation Generating queries based upon data points in a spreadsheet application
US8631034B1 (en) 2012-08-13 2014-01-14 Aria Solutions Inc. High performance real-time relational database system and methods for using same
US9075618B2 (en) 2012-11-02 2015-07-07 Microsoft Technology Licensing, Llc Cross-platform data visualizations using common descriptions
KR20140066392A (ko) * 2012-11-23 2014-06-02 삼성전자주식회사 캐시 메모리 및 캐시 메모리를 포함하는 어플리케이션 프로세서의 데이터 관리 방법
CA2895908A1 (en) 2012-12-21 2014-06-26 Whatifolution Technology Bv Method and system for visualizing and manipulating graphic charts
WO2014130580A2 (en) 2013-02-19 2014-08-28 Quick Eye Technologies Inc. Data visualization techniques
US10691309B2 (en) 2013-03-27 2020-06-23 Broadsign Serv, Llc Media element transition electronic device, method and application
CN103678578B (zh) * 2013-12-10 2017-07-18 广东威创视讯科技股份有限公司 一种数据可视化处理方法、服务器及数据可视化处理系统
US9767145B2 (en) * 2014-10-10 2017-09-19 Salesforce.Com, Inc. Visual data analysis with animated informational morphing replay
US10216750B2 (en) 2014-10-14 2019-02-26 Microsoft Technology Licensing, Llc Annotated geometry

Also Published As

Publication number Publication date
US10810159B2 (en) 2020-10-20
CN106852178A (zh) 2017-06-13
WO2016061157A1 (en) 2016-04-21
US20160104311A1 (en) 2016-04-14
US20160104307A1 (en) 2016-04-14
WO2016060879A1 (en) 2016-04-21
WO2016061159A1 (en) 2016-04-21
US20160104306A1 (en) 2016-04-14
US10430382B2 (en) 2019-10-01
CN107077752A (zh) 2017-08-18
EP3207529A1 (en) 2017-08-23
EP3207527B1 (en) 2019-11-20
EP3207527A1 (en) 2017-08-23
US10216750B2 (en) 2019-02-26
US20160104318A1 (en) 2016-04-14
EP3207528A1 (en) 2017-08-23
US20160103828A1 (en) 2016-04-14
EP3633630A1 (en) 2020-04-08
US20160104308A1 (en) 2016-04-14
CN106796734A (zh) 2017-05-31
WO2016061158A1 (en) 2016-04-21

Similar Documents

Publication Publication Date Title
EP3207527B1 (en) Animation framework
US10380228B2 (en) Output generation based on semantic expressions
US8610722B2 (en) User interface for an application
US9773336B2 (en) Controlling the structure of animated documents
US20110181521A1 (en) Techniques for controlling z-ordering in a user interface
US20100194778A1 (en) Projecting data dimensions on a visualization data set
US20130055058A1 (en) Animation for Recalculating Formulas, Sparklines and Conditional Formatting in an Electronic Document
US7965294B1 (en) Key frame animation with path-based motion
US10304225B2 (en) Chart-type agnostic scene graph for defining a chart
US20170140505A1 (en) Shape interpolation using a polar inset morphing grid
KR101288970B1 (ko) 렌더링 장치 및 방법
CN114581565A (zh) 动画路径可视化编辑方法、装置、计算机设备、存储介质
US9372609B2 (en) Asset-based animation timelines
US9881399B2 (en) Custom map configuration
US10395412B2 (en) Morphing chart animations in a browser
US20140282000A1 (en) Animated character conversation generator
CN101976195B (zh) 一种设置用户界面的方法及装置
US9383885B2 (en) Hit testing curve-based shapes using polygons
US7500190B1 (en) Visual feedback to illustrate effects of editing operations
US11086498B2 (en) Server-side chart layout for interactive web application charts
WO2018049682A1 (zh) 一种虚拟3d场景制作方法及相关设备
WO2020231569A1 (en) Text editing system for 3d environment
US20060248472A1 (en) Clip history
US20170358125A1 (en) Reconfiguring a document for spatial context
US20220398002A1 (en) Editing techniques for interactive videos

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application