KR101288970B1 - 렌더링 장치 및 방법 - Google Patents

렌더링 장치 및 방법 Download PDF

Info

Publication number
KR101288970B1
KR101288970B1 KR1020060118639A KR20060118639A KR101288970B1 KR 101288970 B1 KR101288970 B1 KR 101288970B1 KR 1020060118639 A KR1020060118639 A KR 1020060118639A KR 20060118639 A KR20060118639 A KR 20060118639A KR 101288970 B1 KR101288970 B1 KR 101288970B1
Authority
KR
South Korea
Prior art keywords
node
rendering
nodes
animation
item
Prior art date
Application number
KR1020060118639A
Other languages
English (en)
Other versions
KR20080048362A (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 삼성전자주식회사
Priority to KR1020060118639A priority Critical patent/KR101288970B1/ko
Priority to US11/898,777 priority patent/US8581934B2/en
Priority to CN2007101625062A priority patent/CN101192150B/zh
Priority to EP07118654.8A priority patent/EP1927918A3/en
Priority to JP2007307543A priority patent/JP2008135036A/ja
Publication of KR20080048362A publication Critical patent/KR20080048362A/ko
Priority to US13/862,654 priority patent/US20130229410A1/en
Priority to JP2013123962A priority patent/JP6049548B2/ja
Application granted granted Critical
Publication of KR101288970B1 publication Critical patent/KR101288970B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • 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
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text

Abstract

본 발명에 의한 렌더링 장치 및 방법은, 계층적으로 연결된 다수의 노드들을 이용하여 기술되며 선택 가능한 다수의 항목을 나타내는 인터페이스 데이터의 상기 노드를 분석하고, 분석된 결과에 기초하여 상기 인터페이스 데이터를 렌더링하므로, 렌더링될 인터페이스 데이터를 제작하는 제작자는, 본 발명에서와 같이 정형화된 포맷에 따라 기술된 인터페이스 데이터를 제작하는 경우, 인터페이스 데이터를 제작하는 시간이 단축되어 타임 투 마켓(Time to Market) 절감 효과를 기대할 수 있다.

Description

렌더링 장치 및 방법{A rendering apparatus and method}
도 1은 선택 가능한 항목을 3차원적으로 보여주는 사용자 인터페이스 화면을 설명하기 위한 도면이다.
도 2는 본 발명에 의한 렌더링 장치를 설명하기 위한 블록도이다.
도 3은 본 발명에 의한 렌더링 장치에 의해 렌더링되는 인터페이스 데이터를 기술하는 다수의 노드들을 설명하기 위한 참고도이다.
도 4는 유저인터페이스 노드의 신택스(syntax)를 설명하기 위한 참고도이다.
도 5는 도 4에 도시된 신택스의 가능한 일 례를 나타낸 도면이다.
도 6은 메뉴 노드의 신택스를 설명하기 위한 참고도이다.
도 7은 도 6에 도시된 신택스의 가능한 일 례를 나타낸 도면이다.
도 8은 항목 노드의 신택스를 설명하기 위한 참고도이다.
도 9는 도 8에 도시된 신택스의 가능한 일 례를 나타낸 도면이다.
도 10은 전이 노드의 신택스를 설명하기 위한 참고도이다.
도 11은 애니메이터그룹 노드의 신택스를 설명하기 위한 참고도이다.
도 12 내지 도 13c는 애니메이터 노드의 신택스를 설명하기 위한 참고도이다.
도 14는 유저인터페이스 노드가 바인드되는 경우의 본 발명에 의한 렌더링 과정을 설명하기 위한 참고도이다.
도 15는 렌더링 장치가 조작되는 경우의 본 발명의 제1 실시예에 의한 렌더링 과정을 설명하기 위한 참고도이다.
도 16은 렌더링 장치가 조작되는 경우의 본 발명의 제2 실시예에 의한 렌더링 과정을 설명하기 위한 참고도이다.
도 17은 본 발명에 의한 렌더링 방법을 설명하기 위한 플로우챠트이다.
본 발명은 렌더링에 관한 것으로, 보다 상세하게는, 선택 가능한 다수의 항목을 갖는 인터페이스 데이터의 렌더링에 관한 것이다.
단말기 사용자는 단말기의 조작된 결과에 따라 달라지는 사용자 인터페이스(UI: User Interface) 화면들을 단말기로부터 제공받으며 단말기를 조작할 수 있다. 이러한 사용자 인터페이스 화면은 단말기가 제공할 수 있는 다양한 메뉴(menu)들 중 하나를 나타낸다. 이 때, 하나의 메뉴는 선택 가능한 다수의 항목으로 이루어진다.
이처럼 메뉴들을 나타내는 사용자 인터페이스 화면들의 그래픽 정보를 갖는 데이터인 인터페이스 데이터는 단말기마다 단말기 고유의 포맷(format)으로 기술된다. 따라서, 어떠한 저작(authoring)된 컨텐츠를 나타내는 인터페이스 데이터를 제작하고자 하는 프로그래머는 그 저작된 컨텐츠를 단말기 고유의 포맷에 맞추어 재 구성하여야 한다.
결국, 컨텐츠가 아무리 신속히 저작되더라도, 인터페이스 데이터를 제작하기 위해서는 그 저작된 컨텐츠를 단말기 고유의 포맷을 고려하여 재구성하는 과정이 요구되는 바, 인터페이스 데이터의 신속한 제작에는 한계가 있을 수 밖에 없다. 이러한 한계는 프로그래머가 단말기 고유의 포맷에 익숙하지 않을 때와 컨텐츠가 3차원 컨텐츠일 때 더욱 두드러진다.
본 발명이 이루고자 하는 기술적 과제는, 신속히 제작될 수 있도록 기술된 인터페이스 데이터를 렌더링하는 렌더링 장치를 제공하는 데 있다.
본 발명이 이루고자 하는 다른 기술적 과제는, 신속히 제작될 수 있도록 기술된 인터페이스 데이터를 렌더링하는 렌더링 방법을 제공하는 데 있다.
본 발명이 이루고자 하는 또 다른 기술적 과제는, 신속히 제작될 수 있도록 기술된 인터페이스 데이터를 저장한 컴퓨터로 읽을 수 있는 기록매체를 제공하는 데 있다.
상기 과제를 이루기 위해, 본 발명에 의한 렌더링 장치는, 계층적으로 연결된 다수의 노드들을 이용하여 기술되며 선택 가능한 다수의 항목을 나타내는 인터페이스 데이터의 상기 노드를 분석하는 분석부; 및 상기 분석된 결과에 기초하여 상기 인터페이스 데이터를 렌더링하는 렌더링부를 포함하는 것이 바람직하다.
상기 다른 과제를 이루기 위해, 본 발명에 의한 렌더링 방법은, 계층적으로 연결된 다수의 노드들을 이용하여 기술되며 선택 가능한 다수의 항목을 나타내는 인터페이스 데이터의 상기 노드를 분석하는 단계; 및 상기 분석된 결과에 기초하여 상기 인터페이스 데이터를 렌더링하는 단계를 포함하는 것이 바람직하다.
상기 또 다른 과제를 이루기 위해, 계층적으로 연결된 다수의 노드들을 이용하여 기술된 데이터를 저장한 본 발명에 의한 컴퓨터로 읽을 수 있는 기록매체는, 상기 다수의 노드들이 하나 이상의 유저인터페이스 노드들과, 상기 유저인터페이스 노드의 최근접 하위 노드들이며 선택 가능한 다수의 메뉴 노드들; 및 상기 메뉴 노드의 최근접 하위 노드들이며 선택 가능한 다수의 항목들을 포함한 데이터를 저장한 것이 바람직하다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 그 첨부 도면을 설명하는 내용을 참조하여야만 한다.
이하, 본 발명에 의한 렌더링 장치 및 방법을 첨부한 도면들을 참조하여 다음과 같이 설명한다.
도 1은 선택 가능한 항목을 3차원적으로 보여주는 사용자 인터페이스 화면을 설명하기 위한 도면이다. 구체적으로, 도 1의 (a), (b), (c)는 "문자 메시지 서비스 기능, 카메라 기능, 개인문서관리 기능, 음악 재생 기능, 인터넷 기능, 일정관리 기능, 전화 발/수신 기능, 캠코더(camcoder) 기능, 환경설정 기능" 등 9개의 기능을 수행할 수 있는 단말기가 단말기에 구비된 디스플레이 창(110)을 통해 디스플레이하는 메뉴(menu)의 일 례들을 의미한다.
보다 구체적으로, 도 1의 (a)는 단말기가 디스플레이하는 초기 화면을 나타낸다. 도 1의 (a)에 도시된 바에 따르면, 메뉴는 9개의 항목들로 구성되어 있다. 이 때, 9개의 항목들 즉, "Message, Camera, My things, Music, Internet, Organizer, Contacts, Camcoder, Settings" 각각은 "문자 메시지 서비스 기능, 카메라 기능, 개인문서관리 기능, 음악 재생 기능, 인터넷 기능, 일정관리 기능, 전화 발/수신 기능, 캠코더 기능, 환경설정 기능" 각각을 의미한다.
이 경우, 사용자는 단말기를 조작하여 그 9개의 항목들 중 하나의 항목을 선택함으로써, 단말기가 그 선택된 항목을 수행할 것을 지시할 수 있다. 예컨대, 사용자는 단말기에 구비된 버튼(button) 등을 조작하여 그 9개의 항목들 중 "Message"를 선택함으로써, 단말기가 문자 메시지 서비스 기능을 수행할 것을 지시할 수 있다.
도 1의 (a)에 도시된 바에서, 9개의 항목들 각각은 큐빅(cubic)과 같은 3차원 형상으로 디스플레이된다. 이와 같이, 항목이 3차원적으로 디스플레이되는 경우, 단말기는 그 9개의 항목들 중 선택된 항목이 어떤 항목인지를 사용자에게 확실히 인식시키기 위해, 그 선택된 항목에 대해 어떠한 '애니메이션(즉, 움직임 정보)'을 적용할 수 있다. 예를 들어, 단말기는 그 선택된 항목("Message")을 도 1의 (a)에 도시된 바와 같이 돌출시키는 것을 디스플레이할 수 있다. 나아가, 단말기는 그 선택된 항목을 사용자에게 보다 확실히 인식시키고자, 그 선택된 항목에 대해 부가적인 애니메이션을 더 적용할 수도 있다. 예를 들어, 단말기는 그 선택된 항목("Message")을 회전시키는 것을 디스플레이할 수도 있다. 이 경우, 단말기는 그 선택된 항목을 돌출시키기 시작함과 동시에 회전시키기 시작할 수도 있고, 완전히 돌출시킨 뒤에 회전시키기 시작할 수도 있다. 이러한 돌출 및 회전이 모두 종료된 뒤에야 비로소, 단말기는 그 선택된 항목("Message")의 세부 항목들을 도 1의 (b)에서와 같이 디스플레이한다.
도 1의 (b)는 도 1의 (a)에서 도시된 바에서 "Message"가 선택된 경우 디스플레이되는 사용자 인터페이스 화면을 나타낸다. 즉, 도 1의 (b)에 도시된 사용자 인터페이스 화면은 도 1의 (a)에 도시된 사용자 인터페이스 화면의 하위 화면이다.
도 1의 (b)에 도시된 바에 따르면, 메뉴는 5개의 항목들로 구성되어 있다. 이 때, 5개의 항목들 즉, "Create New, Inbox, Outbox, Drafts, Sentbox" 각각은 "새 항목 생성 기능, 수신메시지 관리 기능, 발송실패 메시지 관리 기능, 메시지 작성 기능, 발신메시지 관리 기능" 각각을 의미한다.
이 경우, 사용자는 단말기를 조작하여 그 5개의 항목들 중 하나의 항목을 선택함으로써, 단말기가 그 선택된 항목을 수행할 것을 지시할 수 있다. 예컨대, 사용자는 단말기에 구비된 버튼 등을 조작하여 그 5개의 항목들 중 "Sentbox"를 선택함으로써, 단말기가 발신메시지 관리 기능을 수행할 것을 지시할 수 있다.
도 1의 (b)에 도시된 바에서도, 5개의 항목들 각각은 3차원 형상으로 디스플레이될 수 있다. 이에 따라, 도 1의 (b)에 도시된 바에서도, 도 1의 (a)에 도시된 바에서와 같이, 단말기는 그 선택된 항목("Sentbox")을 돌출시키는 것을 디스플레이할 수도 있고, 돌출시키기 시작함과 동시에 회전시키기 시작할 수도 있고, 완전히 돌출시킨 뒤에 회전시키기 시작할 수도 있다. 이러한 돌출 및 회전이 모두 종료 된 뒤에야 비로소, 단말기는 그 선택된 항목("Sentbox")의 세부 항목들을 도 1의 (c)에서와 같이 디스플레이한다.
도 1의 (c)에 도시된 바도, 도 1의 (b)에 대한 설명으로 설명될 수 있다. 구체적으로, 도 1의 (c)는 도 1의 (b)에서 도시된 바에서 "Sentbox"가 선택된 경우 디스플레이되는 사용자 인터페이스 화면을 나타낸다. 즉, 도 1의 (c)에 도시된 사용자 인터페이스 화면은 도 1의 (b)에 도시된 사용자 인터페이스 화면의 하위 화면이다.
도 1의 (c)에 도시된 바에 따르면, 메뉴는 5개의 항목들로 구성되어 있다. 이 때, 5개의 항목들 즉, "Winni, Diana, Vanessa, Alexandra, Basil"은 "(발신된 문자 메시지의 수신인이) 위니, 다이애나, 바네사, 알렉산드라, 바실 인 것"을 의미한다.
이 경우, 사용자는 단말기를 조작하여 그 5개의 항목들 중 하나의 항목을 선택함으로써, 단말기가 그 선택된 항목을 수행할 것을 지시할 수 있다. 예컨대, 사용자는 단말기에 구비된 버튼 등을 조작하여 그 5개의 항목들 중 "Winni"를 선택함으로써, Winni에게 발신된 그 문자 메시지를 확인할 수 있다.
도 1의 (c)에 도시된 바에서도, 5개의 항목들 각각은 3차원 형상으로 디스플레이될 수 있다. 이에 따라, 도 1의 (c)에 도시된 바에서도, 도 1의 (b)에 도시된 바에서와 같이, 단말기는 그 선택된 항목("Winni")을 돌출시키는 것을 디스플레이할 수도 있고, 돌출시키기 시작함과 동시에 회전시키기 시작할 수도 있고, 완전히 돌출시킨 뒤에 회전시키기 시작할 수도 있다. 이러한 돌출 및 회전이 모두 종료된 뒤에야 비로소, 단말기는 Winni에게 발신된 그 문자 메시지를 디스플레이한다.
본 명세서에서, "상태"란 디스플레이 기능을 갖는 단말기가 디스플레이하는(또는, 디스플레이할) 영상을 지칭한다. 이러한 단말기, 구체적으로, 디스플레이 기능은 물론이고, 전화 발/수신 기능, 음악 재생 기능, 카메라 기능 등 다양한 기능을 수행할 수 있는 휴대용 전화기와 같은 단말기는, 본 발명에 의한 렌더링 장치의 일 례이다. 예컨대, 도 1의 (a)에 도시된 바에 나타난 "상태"(= 단말기가 초기 화면을 디스플레이하는 상태)와, 도 1의 (b)에 도시된 바에 나타난 "상태"(= 단말기가 Message의 하위 항목들을 디스플레이하는 상태)와, 도 1의 (c)에 도시된 바에 나타난 "상태"(= 단말기가 Sentbox의 하위 항목들을 디스플레이하는 상태) 모두는 상이하다.
이처럼, 서로 상하위 관계에 있는 사용자 인터페이스 화면들간의 "상태"가 서로 다른 것은 물론이고, 상하위 관계가 존재하지 않는 사용자 인터페이스 화면들간의 "상태"도 서로 다를 수 있다. 예컨대, 도 1에 도시된 바에서, 영상을 도 1의 (b)나 (c)에 도시된 바와 같이 열(row)의 형태로 디스플레되는 경우, 단말기가 m(단, m은 m>6인 정수)개의 영상들을 디스플레이하고자 할지라도, 디스플레이 창(110)의 크기로 인한 제약으로 인해 m개의 영상들 중 최대 6개의 영상만을 디스플레이할 수 있다고 가정하면, 사용자는 단말기의 방향키(→, ←, ↑, ↓) 등을 조작함으로써 그 m개의 영상들을 스크롤(scroll)할 수 있다. 이와 같이, 스크롤될 때마다 변경되는 사용자 인터페이스 화면들간에는 상하위 관계가 존재하지 않는다. 이러한 사용자 인터페이스 화면들간의 "상태"도 서로 다르다.
도 2는 본 발명에 의한 렌더링 장치를 설명하기 위한 블록도로서, 로딩부(210), 분석부(220), 노드 갱신부(230), 조작 인식부(240), 및 렌더링부(250)로 이루어질 수 있다.
본 발명에 의한 렌더링 장치에 의해 렌더링(rendering)(즉, 시각화(visualization))되는 인터페이스 데이터는, 정형화된 포맷(format)으로 기술되어 있다. 구체적으로, 본 발명에 의한 인터페이스 데이터는, 계층적으로 연결된 다수의 노드(node)들을 이용하여 기술된다. 설명의 편의상, 본 명세서에서 언급되는 노드, 필드(field), 이벤트(event) 각각의 의미는 3차원 그래픽을 표현하는 대표적인 텍스트 형식의 언어인 VRML(Virtual Reality Modeling Language)에서 규정된 노드, 필드, 이벤트 각각의 의미와 동일하다고 가정한다. 즉, 노드는 노드의 속성을 정의하는 필드와, 하나의 노드로부터 다른 하나의 노드로 전달되는 메시지인 이벤트를 포함할 수 있다. 이러한 노드 각각은 그 노드 각각의 고정된 필드 집합을 갖는다.
다만, 본 발명에 의한 인터페이스 데이터를 기술하는 노드들은 VRML에서 규정되지 않은 노드들이다. 즉, VRML은 인터페이스 데이터 즉, 메뉴들을 나타내는 사용자 인터페이스 화면들의 그래픽 정보를 갖는 데이터를 기술하기 위한 노드에 대해 규정하지 않는다. 본 발명에 의한 인터페이스 데이터를 기술하는 노드들은 하나 이상의 유저인터페이스 노드들과, 유저인터페이스 노드의 최근접 하위 노드들이며 선택 가능한 다수의 메뉴 노드들과, 메뉴 노드의 최근접 하위 노드들이며 선택 가능한 다수의 항목들을 기술하는 다수의 항목 노드들을 포함할 수 있다. 이러한 노 드들에 대한 보다 구체적인 설명은 도 3 내지 도 13에 대한 설명으로 미루기로 한다.
본 발명에 의한 렌더링 장치는 파일 저장부(미 도시)를 포함한 것이 바람직하다. 이러한 파일 저장부(미 도시)는 본 발명에 의한 렌더링 장치에 주어진 인터페이스 데이터를 저장한다.
본 발명에 의한 렌더링 장치가 그 저장된 인터페이스 데이터를 렌더링하고자 하는 경우, 로딩부(210)는 그 저장된 인터페이스 데이터를 로딩(loading)한다.
분석부(220)는 그 로딩된 인터페이스 데이터를 기술하는 노드들을 분석한다. 구체적으로, 분석부(220)는 그 로딩된 인터페이스 데이터를 기술하는 모든 노드들 중 렌더링될 노드가 무엇인지 분석하고, 그 렌더링될 노드의 내용을 분석한다.
노드 갱신부(230)는 그 로딩된 인터페이스 데이터를 기술하는 모든 노드들 각각마다, 그 각각의 노드에 종속된 하나 이상의 노드들의 상태전이 테이블(STT: State Transition Table)들을 그 각각의 노드에 포함시킨다. 여기서, 상태전이 테이블이란 본 발명에 의한 렌더링 장치의 조작된 결과를 어드레스(address)로 하여 "전이될 상태에 대한 정보"를 저장한 테이블을 의미한다. 전술한 "상태"는 본 명세서에서, 항목 노드 고유의 식별정보(예를 들어, 항목 노드 고유의 ID(Identification))를 의미한다.
후술하겠지만, 본 발명에 의한 렌더링 장치에 주어지는 인터페이스 데이터를 기술하는 모든 노드들 중, 당초부터 상태정보 테이블을 나타내는 노드는 항목 노드이다. 역시 후술하겠지만, 본 발명에 의한 렌더링 장치에 마련된 버튼 등이 조작된 경우, 분석부(220)는 "그 조작된 결과"에 상응하는 상태를 결정하고, 결정된 상태에 해당하는 노드들이 렌더링될 노드들이라고 결정한다. 이 때, 분석부(220)는 그 전이될 "상태"를 결정함에 있어, "그 조작된 결과" 뿐만 아니라, 후술할 "렌더링부(250)에 의해 가장 최근에 렌더링된 결과"도 고려해야 함은 물론이다. 한편, 분석부(220)는 각 항목 노드의 상태전이 테이블을 분석하여 "그 조작된 결과"에 상응하는 상태를 결정할 수도 있으나, 이 경우, 인터페이스 데이터를 기술하는 유저인터페이스 노드부터 항목 노드까지를 모두 분석해야 하는 바, 상태전이 테이블들의 분석에 상당 시간이 소요될 확률이 크다.
이러한 상태전이 테이블들의 분석을 보다 신속히 완료하고자, 노드 갱신부(230)는 각각의 메뉴 노드에 종속된 다수의 항목 노드들의 상태전이 테이블들을 취합하여 하나의 상태전이 테이블을 생성하고, 생성된 상태전이 테이블을 그 각각의 메뉴 노드에 포함시킨다. 이 후, 노드 갱신부(230)는 각각의 유저인터페이스 노드에 종속된 다수의 메뉴 노드들의 상태전이 테이블들을 취합하여 하나의 상태전이 테이블을 생성하고, 생성된 상태전이 테이블을 그 각각의 유저인터페이스 노드에 포함시킨다. 이로써, 분석부(220)는 항목 노드까지 분석하지 않고 유저인터페이스 노드만을 분석함으로써도, 렌더링 장치의 조작된 결과에 상응하는 상태를 결정할 수 있다.
이처럼, 노드 갱신부(230)가 그 로딩된 인터페이스 데이터를 기술하는 모든 노드들 각각마다, 그 각각의 노드에 종속된 하나 이상의 노드들의 상태전이 테이블들을 그 각각의 노드에 포함시키는 경우, 분석부(220)는 노드 갱신부(230)로부터 출력된 인터페이스 데이터를 분석하는 것이 바람직하다.
한편, 인터페이스 데이터를 기술하는 다수의 노드들은 분석부(220)가 동작하는 도중 변경 가능하다. 구체적으로, 본 발명에 의한 렌더링 장치가 동작하는 도중, 렌더링 장치가 입력단자 IN을 통해 외부로부터 노드를 제공받아 인터페이스 데이터를 기술하는 다수의 노드들의 개수가 증가될 수도 있고, 인터페이스 데이터를 기술하는 다수의 노드들의 개수가 감소될 수도 있다. 특히, 인터페이스 데이터를 구성하는 메뉴 노드들에 새로운 메뉴 노드가 추가될 수도 있고, 인터페이스 데이터를 구성하는 메뉴 노드들 중 일부 메뉴 노드가 삭제될 수도 있다. 마찬가지로, 인터페이스 데이터를 구성하는 항목 노드들에 새로운 항목 노드가 추가될 수도 있고, 인터페이스 데이터를 구성하는 항목 노드들 중 일부 항목 노드가 삭제될 수도 있다. 이와 같이, 메뉴 노드가 추가되는 경우, 그 추가되는 메뉴 노드에는 어떠한 상태전이 테이블이 포함되어 있는 것이 바람직하다.
한편, 렌더링 장치가 디스플레이하는 초기 화면을 나타내는 노드들은, 인터페이스 데이터를 기술하는 노드들 중 일부 노드들이다. 여기서, 초기 화면이란 렌더링 장치가 전원이 켜진 후 사용자로부터 아무런 조작도 하지 않은 상태에서 그 렌더링 장치가 디스플레이하는 사용자 인터페이스 화면일 수 있다.
구체적으로, 인터페이스 데이터를 기술하는 노드들 중 유저인터페이스 노드들의 개수는 하나 이상이며, 렌더링 장치가 초기 화면을 디스플레이하기 위해서는 그 유저인터페이스 노드들 중 하나의 유저인터페이스 노드가 선택되어야 한다. 이하, 여러 유저인터페이스 노드들 중 하나의 유저인터페이스 노드가 선택되는 것을, 그 하나의 유저인터페이스 노드가 바인드(bind)된다고 명명한다. 즉, 본 명세서에서 유저인터페이스 노드는 바인드 가능한 노드(bindable node)이다. "바인드(bind)"의 기본 개념은 VRML 규격에도 상세히 개시되어 있다.
여러 유저인터페이스 노드들 중 어느 유저인터페이스 노드가 바인드될지는, 인터페이스 데이터에 규정되어 있을 수도 있고, 규정되어 있지 않을 수도 있다. 만일, 어느 유저인터페이스 노드가 바인드될지에 대해 인터페이스 데이터에 규정되어 있지 않다면, 분석부(220)에 의해 최초로 분석되는 유저인터페이스 노드가 바인드될 수 있다.
이처럼 어느 하나의 유저인터페이스 노드가 바인드되면, 그 유저인터페이스 노드의 하위 노드들 중 하나의 메뉴 노드와 하나의 항목 노드가 렌더링될 하위 노드들로서 선택되어야 한다. 이하, 바인드된 유저인터페이스 노드의 하위 노드들 중 하나의 하위 노드가 선택되는 것을, 그 하나의 하위 노드가 활성화(active)된다고 명명한다.
바인드된 유저인터페이스 노드의 하위 노드들 중 렌더링 장치가 초기 화면을 디스플레이하기 위해 활성화시킬 하위 노드는 인터페이스 데이터에 규정되어 있다. 다만, 이러한 활성화되는 하위 노드는 렌더링 장치가 조작될 때마다 변경된다. 즉, 렌더링 장치가 조작될 때마다, 렌더링 장치의 "상태"는 변경된다.
조작 인식부(240)는 렌더링 장치의 조작된 결과를 인식한다. 예를 들어, 사용자가 렌더링 장치에 마련된 버튼 등의 조작한 경우, 조작 인식부(240)는 어떠한 버튼이 조작되었는지를 인식할 수 있다. 나아가, 조작 인식부(240)는 사용자가 그 버튼을 짧게 누르고 있는지, 그 버튼을 길게 누르고 있는지, 그 버튼에서 손가락을 떼었는지 등, 그 버튼이 어떻게 조작되었는지도 인식할 수 있다. 조작 인식부(240)는 이러한 인식된 결과를 그 로딩된 인터페이스 데이터의 바인드된 유저인터페이스 노드에 포함시킨다.
이 경우, 노드 갱신부(230)는 그 인식된 결과를 활성화된 항목 노드에 포함시키고, 분석부(220)는 그 활성화된 항목 노드에 포함된 그 인식된 결과에 대응된 "상태"를 상태전이 테이블들을 검색하여 결정한다. 이 때, 분석부(220)는 항목 노드들에 포함된 상태전이 테이블들을 검색할 수도 있고, 노드 갱신부(230)에 의해 유저인터페이스 노드에 포함된 상태전이 테이블을 검색할 수도 있다.
이 경우, 분석부(220)는 그 바인드된 유저인터페이스 노드의 하위 노드들 중 그 대응된 "상태"에 해당하는 항목 노드 및 메뉴 노드가 어떤 노드들인지 찾는다. 구체적으로, 분석부(220)는 그 바인드된 유저인터페이스 노드의 하위 노드들 중 그 대응된 "상태"를 의미하는 고유 식별정보를 갖는 항목 노드와 메뉴 노드를 찾는다.
이를 위해, 분석부(220)는 그 활성화된 항목 노드가 종속된 메뉴 노드에 종속된 다른 항목 노드들부터 분석한다. 만일, 그 활성화된 항목 노드가 종속된 메뉴 노드에 종속된 다른 항목 노드들 중 그 대응된 "상태"에 해당하는 항목 노드가 존재하지 않는다고 분석되면, 분석부(220)는 그 활성화된 항목 노드가 종속되지 않은 메뉴 노드에 종속된 항목 노드들을 분석한다.
이 후, 분석부(220)는 그 결정된 "상태"에 대응된 노드의 내용을 분석한다. 즉, 분석부(220)는 그 찾아진 항목 노드와 메뉴 노드의 내용을 분석한다.
렌더링부(250)는 분석부(220)에서 분석된 결과에 기초하여 인터페이스 데이터를 렌더링하고, 렌더링된 결과를 출력단자 OUT 1을 통해 출력한다. 액정 판넬(LCD: Liquid Crystal Displayer)과 같은 디스플레이 기기는 이러한 렌더링된 결과를 디스플레이한다.
이상에서 설명한 렌더링 장치의 동작 특히, 유저인터페이스 노드가 바인드되는 경우의 렌더링 장치의 동작에 대한 보다 구체적인 설명은 도 14에 대한 설명으로 미루고, 렌더링 장치가 조작되는 경우의 렌더링 장치의 동작에 대한 보다 구체적인 설명은 도 15 및 도 16에 대한 설명으로 미루기로 한다.
도 3은 본 발명에 의한 렌더링 장치에 의해 렌더링되는 인터페이스 데이터를 기술하는 다수의 노드들을 설명하기 위한 참고도이다. 이하, UserInterface3D 노드, Menu 노드, MenuComponent 노드 각각은 유저인터페이스 노드, 메뉴 노드, 항목 노드 각각을 의미한다.
전술한 바와 같이, 유저인터페이스 노드는 인터페이스 데이터를 기술하는 모든 노드들 중 가장 상위 노드를 의미한다. 또한, 인터페이스 데이터를 기술하는 유저인터페이스 노드들의 개수는 하나 이상이다. 즉, 유저인터페이스 노드는 바인드 가능한 노드이다. 또한, 메뉴 노드들은 유저인터페이스 노드 각각의 최근접 하위 노드들을 의미하고, 항목 노드들은 메뉴 노드 각각의 최근접 하위 노드들을 의미한다. 이러한 유저인터페이스 노드, 메뉴 노드, 항목 노드의 관계는 전술한 도 1의 (a), (b), (c)를 이용하여 설명될 수도 있다. 즉, 도 1의 (a)에 도시된 사용자 인터페이스 화면을 나타내는 노드들, 도 1의 (b)에 도시된 사용자 인터페이스 화면을 나타내는 노드들, 도 1의 (c)에 도시된 사용자 인터페이스 화면을 나타내는 노드들 각각의 유저인터페이스 노드들은 서로 일치한다. 또한, 도 1의 (a)에 도시된 사용자 인터페이스 화면을 나타내는 메뉴 노드는 "Message, Camera, My things, Music, Internet, Organizer, Contacts, Camcoder, Settings"라는 9개의 항목을 기술하는 9개의 항목 노드들을 갖는다. 마찬가지로, 도 1의 (b)에 도시된 사용자 인터페이스 화면을 나타내는 메뉴 노드는 "Create New, Inbox, Outbox, Drafts, Sentbox"라는 5개의 항목을 기술하는 5개의 항목 노드들을 갖는다. 이와 비슷하게, 도 1의 (c)에 도시된 사용자 인터페이스 화면을 나타내는 메뉴 노드는 "Winni, Diana, Vanessa, Alexandra, Basil"라는 5개의 항목을 기술하는 5개의 항목 노드들을 갖는다. 이처럼, 메뉴 노드 및 그에 종속된 항목 노드들이 나타내는 사용자 인터페이스 화면은 다양한 계층(depth)의 사용자 인터페이스 화면일 수 있다.
유저인터페이스 노드, 메뉴 노드, 항목 노드 이외에도, 인터페이스 데이터를 기술하는 다수의 노드들에는, 전이(Transition) 노드, 애니메이터(Animator) 노드, 애니메이터 그룹(AnimatorGroup) 노드, 키센서(KeySensor) 노드, 스위치(Switch) 노드가 포함될 수 있다.
메뉴 노드에는 액티브 애니메이션(activeAnimation)에 대한 정보를 기술하고 있는 애니메이터 노드와 인액티브 애니메이션(inactiveAnimation)에 대한 정보를 기술하고 있는 애니메이터 노드 중 적어도 하나가 종속될 수 있다. 이하에서는 설명의 편의상, 액티브 애니메이션에 대한 정보를 기술하고 있는 애니메이터 노드와 인액티브 애니메이션에 대한 정보를 기술하고 있는 애니메이터 노드 모두가 메뉴 노드에 종속되어 있다고 가정한다.
항목 노드에는 상태전이 테이블의 내용을 기술하고 있는 전이 노드와, 트랜스 애니메이션(transAnimation)에 대한 정보를 기술하고 있는 애니메이터 노드와, 액티브 애니메이션에 대한 정보를 기술하고 있는 애니메이터 노드와 포커스 애니메이션(focusAnimation)에 대한 정보를 기술하고 있는 애니메이터 노드 중 적어도 하나가 종속될 수 있다. 이하에서는 설명의 편의상, 전이 노드와, 트랜스 애니메이션에 대한 정보를 기술하고 있는 애니메이터 노드와, 액티브 애니메이션에 대한 정보를 기술하고 있는 애니메이터 노드와 포커스 애니메이션에 대한 정보를 기술하고 있는 애니메이터 노드 모두가 항목 노드에 종속되어 있다고 가정한다.
애니메이터 노드란 디스플레이하고자 하는 객체(object)에 적용할 애니메이션을 기술하고 있는 노드를 의미한다. 이 때, 객체는 '메뉴 노드가 나타내는 객체(= 사용자 인터페이스 화면에서 항목들을 제외한 부분의 영상)'일 수도 있고, '항목 노드가 나타내는 객체(= 사용자 인터페이스 화면에 나타난 항목)'일 수도 있다. 또한, 디스플레이하고자 하는 객체는 3차원 객체인 것이 바람직하다. 한편, 본 명세서에서 객체 데이터란, 객체를 나타내는 데이터를 의미한다.
애니메이터그룹 노드란 하나 이상의 애니메이터 노드를 포함하는 노드를 의미한다.
액티브 애니메이션, 인액티브 애니메이션, 트랜스 애니메이션, 포커스 애니메이션은 객체에 적용 가능한 애니메이션의 일 례들이다.
메뉴 노드에 종속된 애니메이터그룹 노드에 기술된 액티브 애니메이션이란, 사용자 인터페이스 화면상에서 객체의 존재를 부각시키는 움직임 정보를 의미한다. 이 때의 객체가 메뉴 노드가 나타내는 객체임은 물론이다.
마찬가지로, 메뉴 노드에 종속된 애니메이터그룹 노드에 기술된 인액티브 애니메이션이란, 사용자 인터페이스 화면상에서 객체의 존재를 감추는 움직임 정보를 의미한다.
항목 노드에 종속된 애니메이터그룹 노드에 기술된 트랜스 애니메이션이란 렌더링 장치가 조작되어 렌더링 장치의 "상태"가 변경되는 경우 요구되는 움직임 정보로서, 이러한 변경을 사용자에게 인지시키기 위한 움직임 정보를 의미한다.
항목 노드에 종속된 애니메이터그룹 노드에 기술된 액티브 애니메이션이란 사용자 인터페이스 화면상에서 객체의 존재를 부각시키는 움직임 정보를 의미한다. 이 때의 객체가 항목 노드가 나타내는 객체임은 물론이다.
항목 노드에 종속된 애니메이터그룹 노드에 기술된 포커스 애니메이션이란, 액티브 애니메이션에 따라 움직이는 객체의 움직임을 보다 강조하기 위한 움직임 정보를 의미한다.
메뉴 노드에 종속된 애니메이터그룹 노드에 기술된 액티브 애니메이션, 메뉴 노드에 종속된 애니메이터그룹 노드에 기술된 인액티브 애니메이션, 항목 노드에 종속된 애니메이터그룹 노드에 기술된 트랜스 애니메이션, 항목 노드에 종속된 애니메이터그룹 노드에 기술된 액티브 애니메이션, 항목 노드에 종속된 애니메이터그룹 노드에 기술된 포커스 애니메이션 각각은 도 1의 (a), (b)에 도시된 바를 이용하여 다음과 같이 설명될 수도 있다.
도 1의 (a)에 도시된 바에서, 사용자가 렌더링 장치에 마련된 버튼을 적절히 조작하여 9개의 항목들 중 "Message"라는 항목을 선택하였다면, 그 "Message"라는 항목은 정지해있는 다른 8개의 항목들과 달리 진동하며 디스플레이될 수 있고, 그 9개의 항목들이 나타난 사용자 인터페이스 화면은 크기가 점점 줄어들면서 사용자의 시야에서 점차적으로 사라질 수 있다. 이 때, 그 9개의 항목들이 나타난 사용자 인터페이스 화면의 크기가 점점 줄어드는 것은, 그 선택된 항목("Message")의 진동과 동시에 개시될 수도 있고, 그 선택된 항목("Message")의 진동이 완료되고 난 뒤에 비로소 개시될 수도 있다. 이 경우, 그 선택된 항목("Message")이 진동하는 것은 도 1의 (a)에 도시된 사용자 인터페이스 화면을 기술하는 노드들 중 항목 노드에 종속된 애니메이터 노드에 기술된 트랜스 애니메이션에 해당하고, 그 9개의 항목들이 나타난 사용자 인터페이스 화면의 크기가 점점 줄어드는 것은 도 1의 (a)에 도시된 사용자 인터페이스 화면을 기술하는 노드들 중 메뉴 노드에 종속된 애니메이터 노드에 기술된 인액티브 애니메이션에 해당한다.
한편, 도 1의 (a)에 도시된 9개의 항목들 중 하나의 항목("Message")이 선택되면, 렌더링 장치는 도 1의 (b)에 도시된 사용자 인터페이스 화면을 기술하는 노드들을 렌더링한다. 이에 따라, 도 1의 (a)에 도시된 사용자 인터페이스 화면은 사용자의 시야에서 점점 멀어지는 반면, 도 1의 (b)에 도시된 사용자 인터페이스 화면은 크기가 점점 커지면서 사용자의 시야에 점점 가까워진다. 이와 함께, 도 1의 (b)에 도시된 5개의 항목들 중에서 하나의 항목(예를 들어, "Sentbox")은 나머지 4개의 항목들보다 돌출되어 디스플레이된다. 이 때, 그 하나의 항목("Sentbox")에는 항목의 돌출을 나타내는 애니메이션뿐만 아니라, 항목의 회전을 나타내는 애니메이션도 적용될 수 있다. 한편, 그 하나의 항목("Sentbox")이 회전되는 것은, 그 하나의 항목("Sentbox")이 돌출되는 것과 동시에 개시될 수도 있고, 그 하나의 항목("Sentbox")이 완전히 돌출되고 난 뒤에 비로소 개시될 수도 있다.
이 경우, 그 5개의 항목들이 나타난 사용자 인터페이스 화면의 크기가 점점 커지는 것은 도 1의 (b)에 도시된 사용자 인터페이스 화면을 기술하는 노드들 중 메뉴 노드에 종속된 애니메이터 노드에 기술된 액티브 애니메이션에 해당하고, 그 하나의 항목("Sentbox")이 돌출되는 것은 도 1의 (b)에 도시된 사용자 인터페이스 화면을 기술하는 노드들 중 항목 노드에 종속된 애니메이터 노드에 기술된 액티브 애니메이션에 해당하고, 그 하나의 항목("Sentbox")이 회전되는 것은 도 1의 (b)에 도시된 사용자 인터페이스 화면을 기술하는 노드들 중 항목 노드에 종속된 애니메이터 노드에 기술된 포커스 애니메이션에 해당한다.
키센서 노드는 렌더링 장치의 조작된 결과를 기술한다. 구체적으로, 키센서 노드는 렌더링 장치에 마련된 버튼의 조작된 결과를 기술한다. 여기서, 버튼의 조작된 결과란 '렌더링 장치에 마련된 버튼들 중 어떤 버튼이 조작되었는가' 및 '버튼이 어떻게 조작되었는가'를 의미할 수 있다. 이 때, '버튼이 어떻게 조작되었는가'는 버튼이 짧게 눌렸는가, 버튼이 길게 눌렸는가, 아니면 눌렸던 버튼이 상승했는가 등을 구분하는 것을 의미할 수 있다.
스위치 노드는 렌더링될 수 있는 항목 노드들을 의미하는 "상태"들과, 렌더링될 수 없는 항목 노드들을 의미하는 "상태"들에 대한 정보를 기술한다.
분석부(220)는 전술한 노드들(유저인터페이스 노드, 메뉴 노드, 항목 노드, 전이 노드, 애니메이터 노드, 애니메이터그룹 노드, 키센서 노드, 스위치 노드)을 분석하고, 분석된 결과를 출력단자 OUT 2를 통해 렌더링부(250)로 출력한다.
도 4는 유저인터페이스 노드의 신택스(syntax)를 설명하기 위한 참고도이다. 식별번호 410은 필드의 속성을 의미하며, 식별번호 420은 필드값의 형태(type)를 의미하며, 식별번호 430은 필드를 의미하며, 식별번호 440은 필드값의 초기값을 의미한다.
필드의 속성과 관련하여, field란 해당 노드에 전달되거나 해당 노드로부터 전달되는 이벤트가 될 수 없음을 의미한다. 또한, eventIn이란 해당 노드에 전달되는 이벤트를 의미하고, eventOut이란 해당 노드로부터 전달되는 이벤트를 의미하고, exposedField란 해당 노드에 전달되는 이벤트가 될 수도 있고, 해당 노드로부터 전달되는 이벤트가 될 수도 있음을 의미한다. 도 4에 도시된 바에서 해당 노드는 유저인터페이스 노드이다.
필드값의 형태와 관련하여, SFInt32란 필드값이 하나의 정수값임을 의미하고, MFNode란 필드값이 다수의 노드들임을 의미하고, SFBool이란 필드값이 하나의 불리언(Boolean) 수치(TRUE or FALSE)임을 의미하고, SFTime이란 필드값이 하나의 시간값임을 의미하고, SFNode란 필드값이 하나의 노드임을 의미한다.
필드와 관련하여, state 필드는 "상태"를 의미하며, state 필드값 즉, 상태정보는 어떠한 한 항목 노드의 고유 식별정보(예를 들어, 고유 ID(Identification))를 의미할 수 있다. state 필드값은 가변 가능하되, 반드시 유 저인터페이스 노드에 종속된 항목 노드들의 고유 식별정보들 중 하나이어야 한다.
유저인터페이스 노드에 정의된 state 필드값의 최초값은, 유저인터페이스 노드가 바인드될 때 최초로 활성화되는 메뉴 노드에 종속된 항목 노드들 중 최초로 활성화되는 항목 노드를 의미한다.
렌더링 장치의 "상태"는 렌더링 장치가 조작되는 경우에 변경된다. 이와 같이, "상태"가 변경되면 즉, 활성화되는 항목 노드가 변경되면, '그 변경된 항목 노드를 의미하는 상태정보(즉, 전이될 상태에 대한 정보)'가 유저인터페이스 노드의 state 필드를 통해 유저인터페이스 노드에 전달된다. 이 경우, 유저인터페이스 노드의 state 필드값은 그 전달된 상태정보로 갱신(update)된다. 한편, 유저인터페이스 노드는 그 전달된 상태정보를 스위치 노드에 전달할 수 있다. 이 경우, 분석부(220)는 그 전달된 상태정보가 의미하는 항목 노드가 렌더링될 수 있는지를 스위치 노드를 분석함으로써 판단할 수 있다.
children 필드는 다수의 메뉴 노드들을 필드값들로서 갖는다.
resetWhenBind 필드는, 필드값이 소정값이면(예를 들어, resetWhenBind= TRUE) "동일한 유저인터페이스 노드가 재차 바인드될 때, 유저인터페이스 노드의 state 필드값이 최초값으로 변경됨"을 의미하고, 필드값이 소정값이 아니면(예를 들어, resetWhenBind= FALSE) "동일한 유저인터페이스 노드가 재차 바인드될 때, 유저인터페이스 노드의 state 필드값은 가장 최근의 수치를 유지함"을 의미한다.
keyPressed 필드는 사용자가 렌더링 장치에 마련된 버튼을 짧게 누르는 경우 필드값을 갖고, keyReleased 필드는 사용자가 렌더링 장치에 마련된 버튼으로서 가 압되고 있던 버튼이 가압에서 해제되는 경우 필드값을 갖고, keyLongPressed 필드는 사용자가 렌더링 장치에 마련된 버튼을 길게 누르는 경우 필드값을 갖는다.
사용자가 렌더링 장치에 마련된 버튼을 조작하는 경우, 조작 인식부(240)는 그 조작된 결과를 인식하고, 인식된 결과를 유저인터페이스 노드에 포함시킨다. 이 때, 그 인식된 결과는 keyPressed 필드값, keyReleased 필드값, keyLongPressed 필드값 중 하나로서, 유저인터페이스 노드의 keyPressed 필드, keyReleased 필드, keyLongPressed 필드 중 하나를 통해 유저인터페이스 노드에 전달된다. 이 경우, 유저인터페이스 노드는 그 전달된 필드값을 하위 노드(엄밀하게는, 유저인터페이스에 종속된 항목 노드들 중 활성화되어 있는 항목 노드 즉, activeMenuComponent 필드값이 의미하는 항목 노드)에 전달한다.
set_bind 필드, bindTime 필드, isBound 필드는 바인드 가능한 노드와 관련된 필드들이다. set_bind 필드, bindTime 필드, isBound 필드의 개념은 VRML 규격에 상세히 개시되어 있다.
어떤 한 유저인터페이스 노드가 바인드된 경우, 유저인터페이스 노드는 유저인터페이스 노드의 bindTime 필드값을 유저인터페이스 노드의 state 필드값이 의미하는 항목 노드가 종속된 메뉴 노드의 activeTime 필드를 통해 그 메뉴 노드에 전달한다. 메뉴 노드의 activeTime 필드에 대해서는 후술하도록 한다.
한편, 사용자가 렌더링 장치를 조작함으로써 전이될 상태가 의미하는 메뉴 노드와 사용자가 렌더링 장치를 조작할 당시에 활성화되어 있는 메뉴 노드가 서로 다른 경우, 유저인터페이스 노드는 그 활성화되어 있는 메뉴 노드의 inactiveTime 필드를 통해 그 활성화되어 있는 메뉴 노드로부터 전달된 inactiveTime 필드값을, 유저인터페이스 노드의 transitionTime 필드를 통해 전달받는다. 나아가, 유저인터페이스 노드는 그 활성화되어 있는 메뉴 노드의 state 필드를 통해 그 활성화되어 있는 메뉴 노드로부터 전달된 state 필드값을, 유저인터페이스 노드의 state 필드를 통해 전달받는다. 이에 따라, 유저인터페이스 노드의 state 필드값은 그 전달받은 state 필드값으로 갱신된다. 이 경우, 유저인터페이스 노드의 transitionTime 필드값은 그 갱신된 state 필드값이 의미하는 항목 노드가 종속된 메뉴 노드의 activeTime 필드를 통해 메뉴 노드에 전달된다. 이로써, 그 갱신된 state 필드값이 의미하는 항목 노드가 종속된 메뉴 노드는 새로이 활성화된다.
activeMenu 필드는 바인드된 유저인터페이스 노드에 종속된 메뉴 노드들 중 어떤 메뉴 노드가 현재 활성화되어있는지를 의미하는 정보를 필드값으로서 갖고, activeMenuComponent 필드는 바인드된 유저인터페이스 노드에 종속된 항목 노드들 중 어떤 항목 노드가 현재 활성화되어있는지를 의미하는 정보를 필드값으로서 갖는다. 이러한 activeMenu 필드, activeMenuComponent 필드는 렌더링부(250)가 인터페이스 데이터의 렌더링시 고려할 수 있는 필드들인 관계로, 인터페이스 데이터의 신택스를 구상하고자 하는 사용자가 사용할 수 없는 필드들이다.
도 5는 도 4에 도시된 신택스의 가능한 일 례를 나타낸 도면이다. 도시된 바에서, 정의를 내리는 DEF와 이벤트의 전달 경로를 지정하는 ROUTE는 VRML 규격에서 사용되는 DEF, ROUTE와 동일하다.
도시된 바에서, OBJECT_DB, USER_INPUT, MENU_SYSTEM, OTHER_TIMER 각각은 스위치 노드, 키센서 노드, 유저인터페이스 노드, 타임센서 노드 각각을 의미한다. 이 때, 타임센서 노드는 VRML 규격에서 애니메이션을 위해 사용되는 TimeSensor 노드를 의미한다.
state 5란 활성화되는 항목 노드의 고유 ID가 5임을 의미한다. 도시된 바와 같이, 유저인터페이스 노드의 children 필드값은 다수의 메뉴 노드들(FIRST_MENU, SECOND_MENU, THIRD_MENU, ...)이다.
ROUTE USER_INPUT.actionKeyPressed TO MENU_SYSTEM.keyPressed는 '사용자가 단말기에 구비된 버튼을 짧게 누름으로써 그 버튼을 조작한 경우 USER_INPUT으로 정의된 키센서 노드가 갖게 되는 이벤트인 action.KeyPressed는, MENU_SYSTEM으로 정의된 유저인터페이스 노드의 keyPressed 필드를 통해 유저인터페이스 노드에 전달됨'을 의미한다.
이 밖의 신택스들도 이와 같은 논리로 설명될 수 있다.
도 6은 메뉴 노드의 신택스를 설명하기 위한 참고도이다. 식별번호 610은 필드의 속성을 의미하며, 식별번호 620은 필드값의 형태를 의미하며, 식별번호 630은 필드를 의미하며, 식별번호 640은 필드값의 초기값을 의미한다. 필드의 속성, 필드값의 형태와 관련된 설명은 도 4에 대한 설명에서의 필드의 속성, 필드값의 형태에 대한 설명으로 대체한다.
필드와 관련하여, state 필드는 "상태"를 의미하며, state 필드값 즉, 상태정보는 어떠한 한 항목 노드의 고유 식별정보(예를 들어, 고유 ID(Identification))를 의미할 수 있다. state 필드값은 가변 가능하되, 반드시 메 뉴 노드에 종속된 항목 노드들의 고유 식별정보들 중 하나이어야 한다.
메뉴 노드에 정의된 state 필드값의 최초값은, 메뉴 노드가 활성화될 때 그 메뉴 노드에 종속된 항목 노드들 중 최초로 활성화되는 항목 노드를 의미한다.
전술한 바와 같이, 렌더링 장치의 "상태"는 렌더링 장치가 조작되는 경우 변경된다. 이와 같이, "상태"가 변경되면 즉, 활성화되는 항목 노드가 변경되면, '그 변경된 항목 노드를 의미하는 상태정보(즉, 전이될 상태에 대한 정보)'가 메뉴 노드의 state 필드를 통해 메뉴 노드에 전달된다. 이 경우, 메뉴 노드의 state 필드값은 그 전달된 상태정보로 갱신된다.
children 필드는 다수의 항목 노드들을 필드값들로서 갖는다.
activeAnimation 필드는 액티브 애니메이션에 대한 정보를 기술하고 있는 애니메이터 노드를 필드값으로서 갖고, inactiveAnimation 필드는 인액티브 애니메이션에 대한 정보를 기술하고 있는 애니메이터 노드를 필드값으로서 갖는다.
animationOrder 필드는 메뉴 노드가 활성화될 때, 그 활성화된 메뉴 노드에 기술된 액티브 애니메이션의 렌더링 개시 시점과 그 활성화된 메뉴 노드에 종속된 항목 노드가 활성화되는 시점간의 선후 관계를 필드값으로서 나타낸다. 예컨대, animationOrder 필드값이 0이라면, 활성화된 메뉴 노드에 기술된 액티브 애니메이션의 렌더링 개시 시점과 그 활성화된 메뉴 노드에 종속된 항목 노드가 활성화되는 시점은 동일하다. 또한, animationOrder 필드값이 1이라면, 활성화된 메뉴 노드에 기술된 애니메이션의 렌더링 완료 시점과 그 활성화된 메뉴 노드에 종속된 항목 노드가 활성화되는 시점이 동일하다.
resetWhenActive 필드는, 필드값이 소정값이면(예를 들어, resetWhenActive= TRUE) "동일한 메뉴 노드가 재차 활성화될 때, 메뉴 노드의 state 필드값이 최초값으로 변경됨"을 의미하고, 필드값이 소정값이 아니면(예를 들어, resetWhenActive= FALSE) "동일한 메뉴 노드가 재차 바인드될 때, 메뉴 노드의 state 필드값은 가장 최근의 수치를 유지함"을 의미한다.
activeTime과 inactiveTime에 대해 설명하면 다음과 같다. 즉, 메뉴 노드는 유저인터페이스 노드로부터 메뉴 노드의 activeTime 필드값을 전달받으면 활성화되고, 유저인터페이스 노드로부터 메뉴 노드의 inactiveTime 필드값을 전달받으면 비활성화된다.
이와 유사한 원리로, 항목 노드는 자신이 종속된 메뉴 노드로부터 activeTime을 전달받아 활성화된다. 구체적으로, 항목 노드는 메뉴 노드의 activeTime 필드값을 항목 노드의 activeTime 필드를 통해 전달받음으로써 활성화된다. 항목 노드에 activeTime 필드 이외에 어떠한 필드들이 포함될 수 있는지는 후술할 도 8 및 도 9에 대한 설명으로 미루기로 한다.
transitionTime 필드는, 사용자가 렌더링 장치를 조작함으로써 전이될 상태가 의미하는 메뉴 노드와 사용자가 렌더링 장치를 조작할 당시에 활성화되어 있는 메뉴 노드가 서로 다른 경우, 그 전이될 상태가 의미하는 메뉴 노드를 활성화시키기 위해 요구되는 시각값을 필드값으로서 갖는다.
activeMenuComponent 필드는 도 4 및 도 5에 대한 설명에서 언급된 activeMenuComponent 필드와 동일하므로 설명을 생략하기로 한다.
도 7은 도 6에 도시된 신택스의 가능한 일 례를 나타낸 도면이다. 도 7에 도시된 신택스는 도 5에 도시된 신택스와 결합된다. 즉, 도 7은 FIRST_MENU로서 정의된 메뉴 노드의 신택스를 나타낸다.
도시된 바에서, MENU1_OBJECT2_POSINTERP, MENU1_OBJECT3_POSINTERP, MENU1_OBJECT4_POSINTERP 등은 메뉴 노드에 기술된 액티브 애니메이션을 렌더링하기 위해 고려되는 위치 인터폴레이터 노드들을 의미한다. 메뉴 노드에 종속된 애니메이터 노드 뿐만 아니라, 후술할 항목 노드에 종속된 애니메이터 노드에도 위치 인터폴레이터 노드, 좌표 인터폴레이터 노드, 회전 인터폴레이터 노드 등 다양한 인터폴레이터 노드들이 종속될 수 있다. 이러한 다양한 인퍼폴레이터 노드들의 세부 내용은 VRML 규격에 개시되어 있다. 다만, VRML 규격에 규정되어 있는 인터폴레이터 노드는 언제나 fractions=0부터 1까지의 애니메이션만을 기술하지만, 본 발명에 의한 인터페이스 데이터에서 이용하는 인터폴레이터 노드는 fractions= a부터 b까지(단, a, b는 0<a<b<1인 실수)의 애니메이션을 기술할 수도 있고, fractions= 1부터 0까지의 애니메이션을 기술할 수도 있다. 즉, 본 발명에 의한 렌더링 장치는 본래의 애니메이션(즉, fractions=0부터 1까지의 애니메이션) 중 일부만을 렌더링할 수도 있고, 본래의 애니메이션을 역(逆)으로 렌더링할 수도 있다. 여기서, fraction이란 정규화된(normalized) 시각을 의미한다. 즉, 애니메이션이 time= 0 [초]부터 10 [초]까지의 움직임 정보를 의미한다 하더라도, 그 애니메이션은 fractions= 0부터 1까지의 움직임 정보를 의미한다고 볼 수 있다. 다시 말해, 애니메이션이 규정된 시간의 비정규화된 수치(cycleInterval)(예를 들어, 10초)에 관계 없이, 애니메이션이 규정된 시간의 정규화된 수치는 언제나 1이다.
state 5란 활성화되는 항목 노드의 고유 ID가 5임을 의미한다. 한편, loop FALSE란 본 발명에 의한 렌더링 장치가 애니메이터 노드에 기술된 애니메이션을 반복적으로 렌더링하지 않음을 의미한다. 도시된 바에서, 본 발명에 의한 렌더링 장치는 애니메이터 노드에 기술된 애니메이션(fractions= 0.0부터 0.25까지)을 1회 렌더링한다.
한편, 도시된 바와 같이, 메뉴 노드(FIRST_MENU)의 children 필드값은 다수의 항목 노드들(MENU_1_1, MENU_1_2, MENU_1_3, MENU_1_4, MENU_1_5)이다.
도 8은 항목 노드의 신택스를 설명하기 위한 참고도이다. 식별번호 810은 필드의 속성을 의미하며, 식별번호 820은 필드값의 형태를 의미하며, 식별번호 830은 필드를 의미하며, 식별번호 840은 필드값의 초기값을 의미한다. 필드의 속성, 필드값의 형태와 관련된 설명은 도 4에 대한 설명에서의 필드의 속성, 필드값의 형태에 대한 설명으로 대체한다.
필드와 관련하여, state 필드는 "상태"를 의미하며, state 필드값 즉, 상태정보는 활성화되는 항목 노드의 고유 식별정보(예를 들어, 고유 ID(Identification))를 의미할 수 있다.
transitions 필드는 하나 이상의 전이 노드들을 필드값으로서 갖는다. 각각의 전이 노드는 "렌더링 장치의 조작된 결과"와 그에 대응된 "전이될 상태"에 대해 기술한다. 이로써, transitions 필드값은 상태전이 테이블이라 명명 가능하다.
transAnimations 필드는 각각은 '트랜스 애니메이션에 대한 정보를 기술하고 있는 애니메이터 노드를 포함한 애니메이터그룹 노드'들을 필드값으로서 갖는다. transAnimations 필드값을 구성하는 애니메이터그룹 노드들 각각은 transitions 필드값을 구성하는 전이 노드들 각각과 대응된다. 따라서, transAnimations 필드값을 구성하는 애니메이터그룹 노드들의 개수는 transitions 필드값을 구성하는 전이 노드들의 개수와 동일하다.
activeAnimation 필드는 액티브 애니메이션에 대한 정보를 기술하고 있는 애니메이터 노드를 필드값으로서 갖고, focusAnimation 필드는 포커스 애니메이션에 대한 정보를 기술하고 있는 애니메이터 노드를 필드값으로서 갖는다.
animationOrder 필드는 활성화되어 있는 하나의 항목 노드가 비활성화되고, 비활성화되어 있는 다른 하나의 항목 노드가 활성화될 때, 그 다른 하나의 항목 노드에 기술된 액티브 애니메이션의 렌더링 개시 시점과 그 다른 하나의 항목 노드에 기술된 포커스 애니메이션의 렌더링 개시 시점간의 선후 관계를 필드값으로서 나타냄은 물론, 그 하나의 항목 노드에 기술된 트랜스 애니메이션의 렌더링 개시 시점과 그 다른 하나의 항목 노드가 활성화되는 시점간의 선후 관계도 필드값으로서 나타낼 수 있다.
구체적으로, animationOrder 필드는 두 비트로 표현될 수 있다.
이 때, 상위 비트는, 그 다른 하나의 항목 노드에 기술된 액티브 애니메이션의 렌더링 개시 시점과 그 다른 하나의 항목 노드에 기술된 포커스 애니메이션의 렌더링 개시 시점간의 선후 관계를 나타낸다. 예컨대, 상위 비트가 0이라면, 그 다른 하나의 항목 노드에 기술된 액티브 애니메이션의 렌더링 개시 시점과 그 다른 하나의 항목 노드에 기술된 포커스 애니메이션의 렌더링 개시 시점이 일치함을 의미한다. 그에 반해, 상위 비트가 1이라면, 그 다른 하나의 항목 노드에 기술된 액티브 애니메이션의 렌더링 완료 시점이 그 다른 하나의 항목 노드에 기술된 포커스 애니메이션의 렌더링 개시 시점과 일치함을 의미한다.
한편, 하위 비트는, 그 하나의 항목 노드에 기술된 트랜스 애니메이션의 렌더링 개시 시점과 그 다른 하나의 항목 노드가 활성화되는 시점간의 선후 관계를 나타낸다. 예컨대, 하위 비트가 0이라면, 그 하나의 항목 노드에 기술된 트랜스 애니메이션의 렌더링 개시 시점(transitionStartTime)과 그 다른 하나의 항목 노드가 활성화되는 시점이 일치함을 의미한다. 그에 반해, 하위 비트가 1이라면, 그 하나의 항목 노드에 기술된 트랜스 애니메이션의 렌더링 완료 시점(transitionStopTime)이 그 다른 하나의 항목 노드가 활성화되는 시점과 일치함을 의미한다.
activeTime과 inactiveTime에 대해 설명하면 다음과 같다. 즉, 항목 노드는 메뉴 노드로부터 항목 노드의 activeTime 필드값을 전달받으면 활성화되고, 메뉴 노드로부터 항목 노드의 inactiveTime 필드값을 전달받으면 비활성화된다.
keyPressed 필드값은 유저인터페이스 노드의 keyPressed 필드값이 갱신될 때 함께 갱신되고, keyReleased 필드값은 유저인터페이스 노드의 keyReleased 필드값이 갱신될 때 함께 갱신되고, keyLongPressed 필드값은 유저인터페이스 노드의 keyLongPressed 필드값이 갱신될 때 함께 갱신된다.
도 9는 도 8에 도시된 신택스의 가능한 일 례를 나타낸 도면이다. 도 9에 도 시된 신택스는 도 5 및 도 7에 도시된 신택스들과 결합된다. 즉, 도 9는 MENU_1_5로서 정의된 항목 노드의 신택스를 나타낸다.
도 9에 도시된 바에서, state 5는 항목 노드(MENU_1_5)의 고유 ID를 의미하고, transitions 필드값을 구성하는 전이 노드들의 개수와 transAnimations 필드값을 구성하는 애니메이터그룹 노드들의 개수는 각각 5개로 서로 동일하다.
한편, key17 state 7은 사용자가 17에 해당하는 버튼을 짧게 누르면 렌더링 장치의 "상태"가 7에 해당하는 상태로 전이됨을 의미하고, key18 state 7은 사용자가 18에 해당하는 버튼을 짧게 누르면 렌더링 장치의 "상태"가 7에 해당하는 상태로 전이됨을 의미하고, key19 state 6은 사용자가 19에 해당하는 버튼을 짧게 누르면 렌더링 장치의 "상태"가 6에 해당하는 상태로 전이됨을 의미하고, key20 state 6은 사용자가 20에 해당하는 버튼을 짧게 누르면 렌더링 장치의 "상태"가 6에 해당하는 상태로 전이됨을 의미하고, key21 state 1은 사용자가 21에 해당하는 버튼을 짧게 누르면 렌더링 장치의 "상태"가 1에 해당하는 상태로 전이됨을 의미한다.
transAnimations 필드값을 구성하는 5개의 애니메이터그룹 노드들 중 4개의 애니메이터그룹 노드들 각각은 CAMERA_POSINTERP로서 정의된 위치 인터폴레이터 노드에 기술된 애니메이션으로서 정방향(forward)으로 렌더링될 애니메이션(fractions= 0.75부터 0.8까지, 또는 0.8부터 0.85까지, 또는 0.85부터 0.9까지, 또는 0.9부터 0.95까지)을 나타내는 반면, 나머지 1개의 애니메이터그룹 노드는 CAMERA_POSINTERP, MENU2_OBJECT1_POSINTERP, MENU2_OBJECT2_POSINTERP, MENU2_OBJECT3_POSINTERP, MENU2_OBJECT4_POSINTERP로서 정의된 위치 인터폴레이터 노드들에 기술된 애니메이션들로서 역방향(backward)으로 렌더링될 애니메이션들(fractions= 0.75부터 0.5까지)을 나타낸다.
반면, focusAnimation 필드값인 애니메이터그룹 노드는 MENU2_OBJECT1_MESH1_INTERP 로서 정의된 인터폴레이터 노드에 기술된 애니메이션으로서 정방향으로 렌더링될 애니메이션(fractions= 0.0부터 0.5까지)을 나타낸다.
도 9에 도시된 바에서, transAnimations 필드값을 구성하는 5개의 애니메이터그룹 노드들 각각에는 loop FALSE 가 기술되어 있는 반면, focusAnimation 필드값인 애니메이터그룹 노드에는 loop TRUE 가 기술하고 있으므로, 트랜스 애니메이션은 반복적으로 렌더링될 수 없는 반면, 포커스 애니메이션은 반복적으로 렌더링될 수 있다.
도 10은 전이 노드의 신택스를 설명하기 위한 참고도이다. 이미 설명한 바와 같이, 하나 이상의 전이 노드들은 transitions 필드값을 구성한다. 이 때, 각각의 전이 노드는 "렌더링 장치의 조작된 결과"와 그에 대응된 "전이될 상태"에 대해 기술한다. 도 10에 도시된 바에서, keyPressed 필드값, keyReleased 필드값, keyLongPressed 필드값 중 하나는 그 "렌더링 장치의 조작된 결과"를 의미하고, state 필드값은 그 "전이될 상태"를 의미한다.
도 11은 애니메이터그룹 노드의 신택스를 설명하기 위한 참고도이다.
도 11에 도시된 바와 같이, 애니메이터그룹 노드는 children 필드를 가지며, children 필드는 하나 이상의 애니메이터 노드들을 필드값으로서 갖는다.
도 12는 내지 도 13c는 애니메이터 노드의 신택스를 설명하기 위한 참고도이 다.
도 12에 도시된 바에서, 식별번호 1210은 필드의 속성을 의미하며, 식별번호 1220은 필드값의 형태를 의미하며, 식별번호 1230은 필드를 의미하며, 식별번호 1240은 필드값의 초기값을 의미한다. 필드의 속성, 필드값의 형태와 관련된 설명은 도 4에 대한 설명에서의 필드의 속성, 필드값의 형태에 대한 설명으로 대체한다. 다만, 도 4에 표기되지 않은 SFVec2f, SFFloat는 VRML 규격에서 정의된 SFVec2f, SFFloat와 동일하다.
이 외에도, fractions 필드, cycleInterval 필드, enabled 필드, loop 필드, startTime 필드, stopTime 필드, cycleTime 필드, isActive 필드 역시, VRML 규격에서 정의된 TimeSensor노드의 필드들이다.
다만, interpolators 필드, fraction_changed 필드에 대해서는 별도로 설명하기로 한다.
도 7 및 도 9에 대한 설명에서 이미 언급했듯이, 본 발명에 의한 인터페이스 데이터에서 이용하는 인터폴레이터 노드는 VRML 규격에 규정되어 있는 인터폴레이터 노드와 달리, fractions=0부터 1까지의 애니메이션이 아닌 fractions= fractions.x부터 fractions.y까지(단, fractions.x, fractions.y 각각은 0과 1 사이값)의 애니메이션을 기술할 수 있다. 특히, fractions.x≤ fractions.y라면, 인터폴레이터 노드가 기술하는 애니메이션은 정방향으로 렌더링될 애니메이션이고, fractions.x> fractions.y라면, 인터폴레이터 노드가 기술하는 애니메이션은 역방향으로 렌더링될 애니메이션이다.
fractions.x는 애니메이션의 렌더링 개시 시점을 의미하고, fractions.y는 애니메이션의 렌더링 종료 시점을 의미하므로, 애니메이션의 렌더링을 위해서는 fractions.x와 fractions.y사이에 존재하는 다수의 fraction들이 계산되어야 한다. '그 계산된 fraction(fraction_changed)'은 애니메이터 노드의 fraction_changed 필드값이 된다.
한편, fraction_changed는 도 13a 또는 도 13b에 도시된 바에 따라 계산될 수 있다. 구체적으로, 도 13a는 인터폴레이터 노드에 기술된 애니메이션이 정방향으로 렌더링될 애니메이션인 경우(즉, fractions.x≤ fractions.y인 경우)의 fraction_changed 계산 원리를 나타낸다. 반면, 도 13b는 인터폴레이터 노드에 기술된 애니메이션이 역방향으로 렌더링될 애니메이션인 경우(즉, fractions.x> fractions.y인 경우)의 fraction_changed 계산 원리를 나타낸다.
도 13a 및 도 13b에 도시된 바에서, now는 본 발명에 의한 렌더링 장치가 "현재 시각"이라고 인식하는 시각을 의미한다. 사용자는 now의 수치를 설정할 수 없으며, 본 발명에 의한 렌더링 장치는 사전에 설정된 방식에 따라 now의 수치를 획득할 뿐이다. 예컨대, 사용자가 렌더링 장치에 구비된 버튼을 조작할 때마다 본 발명에 의한 렌더링 장치는 그 버튼이 조작된 시점을 now로서 인식할 수 있다. 이 경우 그 사전에 설정된 방식은, 'now의 수치는 사용자가 버튼을 조작할 때마다 갱신된다'이다. 다만, now는 fraction과 같이 정규화된 시각이 아니라, 비정규화된 시각임이 바람직하다. 또한, temp는 애니메이션의 렌더링 개시 시점을 의미하되, 비정규화된 시각이다. 예컨대, fractions.x= 0.75 [무(無)단위], fractions.y= 0.8 [무단위], temp= 2 초, 애니메이션의 렌더링 종료 시점= 5 초일 수 있다.
도 14는 유저인터페이스 노드가 바인드되는 경우의 본 발명에 의한 렌더링 과정을 설명하기 위한 참고도이다.
로딩부(210)가 인터페이스 데이터를 로딩하고 나면, 인터페이스 데이터를 구성하는 다수의 노드들에 존재하는 하나 이상의 유저인터페이스 노드들 중 하나의 유저인터페이스 노드가 바인드된다. 구체적으로, 본 발명에 의한 렌더링 장치는 now를 인식하고, 인식된 now는 그 하나 이상의 유저인터페이스 노드들 중 하나의 유저인터페이스 노드의 bindTime 필드를 통해 그 하나의 유저인터페이스 노드에 전달되고, 이로써, 그 하나의 유저인터페이스 노드는 바인드된다. 이 때, 본 발명에 의한 렌더링 장치는 인터페이스 데이터를 구성하는 다수의 노드들에 존재하는 하나 이상의 유저인터페이스 노드들 중 어느 유저인터페이스 노드도 바인드되지 않았을 때를 now로서 인식할 수 있다.
만일, 바인드된 유저인터페이스 노드가 이전에는 바인드된 바 없다면, 금번에 바인드된 유저인터페이스 노드에 종속된 메뉴 노드들 중 '디폴트(default)로 지정된 메뉴 노드'가 금번에 활성화될 메뉴 노드가 된다. 이 경우, 디폴트로 지정된 메뉴 노드를 의미하는 정보가 유저인터페이스 노드의 activeMenu 필드값이 된다.
그에 반해, 바인드된 유저인터페이스 노드가 이전에도 바인드된 바 있다면, 금번에 바인드된 유저인터페이스 노드에 종속된 메뉴 노드들 중 어떤 메뉴 노드가 활성화되는지는, resetWhenBind 필드값에 따라 달리 결정될 수 있다.
즉, resetWhenBind 필드값이 FALSE라는 불리언(Boolean) 수치(예컨대, 0)라 면, 금번에 바인드된 유저인터페이스 노드에 종속된 메뉴 노드들 중, 가장 최근에 활성화된 메뉴 노드가 금번에 활성화될 메뉴 노드가 된다. 이 경우, 가장 최근에 활성화된 메뉴 노드를 의미하는 정보는 activeMenu 필드값으로서 유저인터페이스 노드에 이미 포함되어 있다.
반면, resetWhenBind 필드값이 TRUE라는 불리언 수치(예컨대, 1)라면, 금번에 바인드된 유저인터페이스 노드에 종속된 메뉴 노드들 중, '디폴트로 지정된 메뉴 노드'가 금번에 활성화될 메뉴 노드가 된다. 이 경우, 디폴트(default)로 지정된 메뉴 노드를 의미하는 정보가 유저인터페이스 노드의 activeMenu 필드값이 된다.
이 후, 유저인터페이스 노드는 자신의 state 필드값과 bindTime 필드값을 자신의 activeMenu 필드를 통해, 그 금번에 활성화될 메뉴 노드에 전달한다. 이에 따라, 그 금번에 활성화될 메뉴 노드의 state 필드값과 activeTime 필드값은 그 전달된 state 필드값과 bindTime 필드값으로 갱신된다. 이로써, 그 금번에 활성화될 메뉴 노드는 활성화된다.
이 때, 만일, 활성화된 메뉴 노드가 이전에는 활성화된 바 없다면, 금번에 활성화된 메뉴 노드에 종속된 항목 노드들 중 '디폴트로 지정된 항목 노드'가 금번에 활성화될 항목 노드가 된다. 이 경우, 디폴트로 지정된 항목 노드를 의미하는 정보가 메뉴 노드 및 그 메뉴 노드가 종속된 유저인터페이스 노드 각각의 activeMenuComponent 필드값이 된다.
그에 반해, 활성화된 메뉴 노드가 이전에도 활성화된 바 있다면, 금번에 활 성화된 메뉴 노드에 종속된 항목 노드들 중 어떤 항목 노드가 활성화되는지는, resetWhenActive 필드값에 따라 달리 결정될 수 있다.
즉, resetWhenActive 필드값이 FALSE라는 불리언 수치(예컨대, 0)라면, 금번에 활성화된 메뉴 노드에 종속된 항목 노드들 중, 가장 최근에 활성화된 항목 노드가 금번에 활성화될 항목 노드가 된다. 이 경우, 가장 최근에 활성화된 항목 노드를 의미하는 정보는 activeMenuComponent 필드값으로서 메뉴 노드 및 그 메뉴 노드가 종속된 유저인터페이스 노드에 이미 포함되어 있다.
반면, resetWhenActive 필드값이 TRUE라는 불리언 수치(예컨대, 1)라면, 금번에 활성화된 메뉴 노드에 종속된 항목 노드들 중, '디폴트로 지정된 항목 노드'가 금번에 활성화될 항목 노드가 된다. 이 경우, 디폴트로 지정된 항목 노드를 의미하는 정보가 메뉴 노드 및 그 메뉴 노드가 종속된 유저인터페이스 노드 각각의 activeMenuComponent 필드값이 된다.
한편, 만일, 활성화된 메뉴 노드가 액티브 애니메이션을 나타낸다면 즉, 활성화된 메뉴 노드에 액티브 애니메이션에 대한 정보를 기술하고 있는 애니메이터 노드가 종속된다면, 메뉴 노드는 메뉴 노드의 activeTime 필드값을 메뉴 노드의 activeTime 필드를 통해 애니메이터 노드에 전달한다. 이에 따라, 애니메이터 노드의 startTime 필드값은 그 전달된 activeTime 필드값으로 갱신된다. 이로써, 그 애니메이터 노드에 기술된 액티브 애니메이션의 렌더링이 개시될 수 있다.
이 때, 만일, 메뉴 노드의 animationOrder 필드값이 "활성화된 메뉴 노드에 기술된 액티브 애니메이션의 렌더링 개시 시점과 활성화된 항목 노드에 기술된 애 니메이션의 렌더링 개시 시점이 일치함"을 나타낸다면, 메뉴 노드는 자신의 state 필드값과 activeTime 필드값을, 자신의 activeMenuComponent 필드값이 의미하는 항목 노드(즉, 그 금번에 활성화될 항목 노드)에 전달한다. 이에 따라, 그 금번에 활성화될 항목 노드의 state 필드값과 activeTime 필드값은 그 전달된 state 필드값과 activeTime 필드값으로 갱신된다. 이로써, 그 금번에 활성화될 항목 노드는 활성화된다.
그에 반해, 메뉴 노드의 animationOrder 필드값이 "활성화된 메뉴 노드에 기술된 액티브 애니메이션의 렌더링 종료 시점과 활성화된 항목 노드에 기술된 애니메이션의 렌더링 개시 시점이 일치함"을 나타낸다면, 메뉴 노드는 '그 메뉴 노드에 나타난 액티브 애니메이션의 렌더링 종료 시점(즉, 그 메뉴 노드에 종속되며 액티브 애니메이션을 나타내는 애니메이터 노드의 stopTime 필드값)'을 그 메뉴 노드에 종속된 애니메이터 노드로부터 획득한다. 이 후, 메뉴 노드는 자신의 state 필드값과 그 획득된 stopTime 필드값을, 자신의 activeMenuComponent 필드값이 의미하는 항목 노드(즉, 그 금번에 활성화될 항목 노드)에 전달한다. 이에 따라, 그 금번에 활성화될 항목 노드의 state 필드값과 activeTime 필드값은 그 전달된 state 필드값과 stopTime 필드값으로 갱신된다. 이로써, 그 금번에 활성화될 항목 노드는 활성화된다.
한편, 만일, 활성화된 항목 노드가 액티브 애니메이션과 포커스 애니메이션을 나타낸다면 즉, 활성화된 항목 노드에 액티브 애니메이션과 포커스 애니메이션에 대한 정보를 기술하고 있는 애니메이터 노드가 종속된다면, 이러한 액티브 애니 메이션, 포커스 애니메이션의 렌더링은 그 활성화된 항목 노드에 나타난 animationOrder 필드값을 고려하여 수행되는 것이 바람직하다.
구체적으로, 만일, 항목 노드의 animationOrder 필드값이 "활성화된 항목 노드에 기술된 액티브 애니메이션의 렌더링 개시 시점과 활성화된 항목 노드에 기술된 포커스 애니메이션의 렌더링 개시 시점이 일치함"을 나타낸다면, 항목 노드는 자신의 activeTime 필드값을, 자신에 종속되며 액티브 애니메이션을 나타내는 애니메이터그룹 노드와 자신에 종속되며 포커스 애니메이션을 나타내는 애니메이터그룹 노드 모두에 전달한다. 이에 따라, 액티브 애니메이션을 나타내는 애니메이터그룹 노드에 포함된 애니메이터 노드 각각의 startTime 필드값과, 포커스 애니메이션을 나타내는 애니메이터그룹 노드에 포함된 애니메이터 노드 각각의 startTime 필드값은 서로 일치하게 된다. 이로써, 활성화된 항목 노드에 기술된 액티브 애니메이션의 렌더링 개시 시점과 활성화된 항목 노드에 기술된 포커스 애니메이션의 렌더링 개시 시점을 일치하게 된다.
그에 반해, 항목 노드의 animationOrder 필드값이 "활성화된 항목 노드에 기술된 액티브 애니메이션의 렌더링 종료 시점과 활성화된 항목 노드에 기술된 포커스 애니메이션의 렌더링 개시 시점이 일치함"을 나타낸다면, 항목 노드는 '그 항목 노드에 나타난 액티브 애니메이션의 렌더링 종료 시점(즉, 그 항목 노드에 종속되며 액티브 애니메이션을 나타내는 애니메이터그룹 노드에 포함된 애니메이터 노드의 stopTime 필드값)'을 그 항목 노드에 종속되며 액티브 애니메이션을 나타내는 애니메이터그룹 노드로부터 획득한다. 이 후, 그 항목 노드는 그 획득된 stopTime 필드값을, 그 항목 노드에 종속되며 포커스 애니메이션을 나타내는 애니메이터그룹에 전달한다. 이에 따라, 액티브 애니메이션을 나타내는 애니메이터그룹 노드에 포함된 애니메이터 노드 각각의 stopTime 필드값과, 포커스 애니메이션을 나타내는 애니메이터그룹 노드에 포함된 애니메이터 노드 각각의 startTime 필드값은 서로 일치하게 된다. 이로써, 활성화된 항목 노드에 기술된 액티브 애니메이션의 렌더링 종료 시점과 활성화된 항목 노드에 기술된 포커스 애니메이션의 렌더링 개시 시점을 일치하게 된다.
분석부(220)는 전술한 노드들(유저인터페이스 노드, 메뉴 노드, 항목 노드, 전이 노드, 애니메이터 노드, 애니메이터그룹 노드)을 분석하고, 분석된 결과를 출력단자 OUT 3을 통해 렌더링부(250)로 출력한다.
도 15는 렌더링 장치가 조작되는 경우의 본 발명의 제1 실시예에 의한 렌더링 과정을 설명하기 위한 참고도이다. 본 발명의 제1 실시예에 의하면, 사용자가 렌더링 장치를 조작함으로써 전이될 상태가 의미하는 메뉴 노드와 사용자가 렌더링 장치를 조작할 당시에 활성화되어 있는 메뉴 노드가 동일하다. 즉, 본 발명의 제1 실시예는 렌더링 장치에 발생된 상태 전이(state transition)가, 활성화된 메뉴 노드는 유지된 채 활성화된 항목 노드만이 달라지는 경우를 의미한다. 결국, 사용자가 사용자 인터페이스 화면들을 스크롤하는 경우의 렌더링 과정은 제1 실시예에 따른 렌더링 과정으로서 다음과 같이 설명될 수 있다.
사용자가 렌더링 장치에 구비된 버튼들 중 어느 버튼을 짧게 누르면, 그 조작된 결과는 키센서 노드의 keyPressed 필드값이 된다. 이 후, 키센서 노드의 keyPressed 필드값은 유저인터페이스 노드로 전달되고, 이에 따라, 유저인터페이스 노드의 keyPressed 필드값은 그 전달된 keyPressed 필드값으로 갱신된다.
한편, 활성화된 항목 노드의 transitions 필드값에 기술된 바에 따라, 유저인터페이스 노드의 keyPressed 필드값에 대응되는 "전이될 상태"가 결정되고, 결정된 상태에 대한 정보는 전이 노드의 state 필드값으로서 메뉴 노드로 전달된다. 이로써, 메뉴 노드의 state 필드값은 그 전달된 state 필드값으로 갱신된다. 나아가, 메뉴 노드의 state 필드값은 유저인터페이스 노드의 state 필드값으로서 유저인터페이스 노드로 전달됨으로써, 유저인터페이스 노드의 state 필드값은 그 전달된 state 필드값으로 갱신된다. 또한, 유저 인터페이스 노드의 state 필드값은 스위치 노드의 state 필드값으로서 스위치 노드로 전달됨으로써, 스위치 노드의 state 필드값은 그 전달된 state 필드값으로 갱신된다.
한편, 본 발명의 제1 실시예서와 같이, 메뉴 노드에 종속된 항목 노드들 중 그 전이될 상태가 의미하는 항목 노드가 존재한다면, now는 그 전이될 상태가 의미하는 항목 노드의 activeTime 필드값이 된다. 이와 함께, now는 사용자가 렌더링 장치에 구비된 버튼을 조작할 당시에 활성화되어 있는 항목 노드에 나타난 트랜스 애니메이션이 기술된 애니메이터그룹 노드에 포함된 애니메이터 노드의 startTime 필드값도 될 수 있다. 도 15에 도시된 바에서, 본 발명에 의한 렌더링 장치는 사용자가 렌더링 장치에 구비된 버튼을 조작할 때마다 그 조작된 시점을 now로서 인식할 수 있다.
now가 그 전이될 상태가 의미하는 항목 노드의 activeTime 필드값이 됨으로 써, 그 전이될 상태가 의미하는 항목 노드는 활성화된다. 이 경우, 그 전이될 상태가 의미하는 항목 노드에 나타난 액티브 애니메이션의 렌더링 개시 시점과 그 전이될 상태가 의미하는 항목 노드에 나타난 포커스 애니메이션의 렌더링 개시 시점간의 선후 관계는, 그 전이될 상태가 의미하는 항목 노드에 나타난 animationOrder 필드값에 규정되어 있다.
분석부(220)는 전술한 노드들(유저인터페이스 노드, 메뉴 노드, 항목 노드, 전이 노드, 애니메이터 노드, 애니메이터그룹 노드, 키센서 노드, 스위치 노드)을 분석하고, 분석된 결과를 출력단자 OUT 4를 통해 렌더링부(250)로 출력한다.
도 16은 렌더링 장치가 조작되는 경우의 본 발명의 제2 실시예에 의한 렌더링 과정을 설명하기 위한 참고도이다. 본 발명의 제2 실시예에 의하면, 사용자가 렌더링 장치를 조작함으로써 전이될 상태가 의미하는 메뉴 노드와 사용자가 렌더링 장치를 조작할 당시에 활성화되어 있는 메뉴 노드가 다르다. 도 1의 (a)(또는, 도 1의 (b))에 도시된 사용자 인터페이스 화면이 디스플레이된 상태에서, 사용자가 도 1의 (b)(또는, 도 1의 (c))에 도시된 사용자 인터페이스 화면을 감상하고자 렌더링 장치를 조작하는 경우의 렌더링 과정은 제2 실시예에 따른 렌더링 과정으로서 다음과 같이 설명될 수 있다.
사용자가 렌더링 장치에 구비된 버튼들 중 어느 버튼을 짧게 누르면, 그 조작된 결과는 키센서 노드의 keyPressed 필드값이 된다. 이 후, 키센서 노드의 keyPressed 필드값은 유저인터페이스 노드로 전달되고, 이에 따라, 유저인터페이스 노드의 keyPressed 필드값은 그 전달된 keyPressed 필드값으로 갱신된다.
한편, 활성화된 항목 노드의 transitions 필드값에 기술된 바에 따라, 유저인터페이스 노드의 keyPressed 필드값에 대응되는 "전이될 상태"가 결정되고, 결정된 상태에 대한 정보는 전이 노드의 state 필드값으로서 메뉴 노드로 전달된다. 이로써, 메뉴 노드의 state 필드값은 그 전달된 state 필드값으로 갱신된다. 나아가, 메뉴 노드의 state 필드값은 유저인터페이스 노드의 state 필드값으로서 유저인터페이스 노드로 전달됨으로써, 유저인터페이스 노드의 state 필드값은 그 전달된 state 필드값으로 갱신된다. 또한, 유저 인터페이스 노드의 state 필드값은 스위치 노드의 state 필드값으로서 스위치 노드로 전달됨으로써, 스위치 노드의 state 필드값은 그 전달된 state 필드값으로 갱신된다.
한편, 본 발명의 제2 실시예서와 같이, 메뉴 노드에 종속된 항목 노드들 중 그 전이될 상태가 의미하는 항목 노드가 존재하지 않는다면, 유저인터페이스 노드의 transitionTime 필드값은 그 전이될 상태가 의미하는 항목 노드의 activeTime 필드값이 된다. 이를 위해, 사용자가 렌더링 장치에 구비된 버튼을 조작할 당시에 활성화되어 있는 메뉴 노드에 나타난 인액티브 애니메이션이 기술된 애니메이터그룹 노드에 포함된 애니메이터 노드의 startTime 필드값은 now로 갱신되고, 유저인터페이스 노드의 transitionTime 필드값은 그 갱신된 startTime 필드값으로 갱신된다. 이와 함께, now는 사용자가 렌더링 장치에 구비된 버튼을 조작할 당시에 활성화되어 있는 항목 노드에 나타난 트랜스 애니메이션이 기술된 애니메이터그룹 노드에 포함된 애니메이터 노드의 startTime 필드값도 될 수 있다. 도 16에 도시된 바에서, 본 발명에 의한 렌더링 장치는 사용자가 렌더링 장치를 조작할 때마다 그 조 작된 시점을 now로서 인식할 수 있다. 한편, 사용자가 렌더링 장치를 조작할 당시에 활성화되어 있는 항목 노드에 나타난 트랜스 애니메이션의 렌더링 개시 시점이, 도 16에 도시된 바와 같이 사용자가 렌더링 장치를 조작할 당시에 활성화되어 있는 메뉴 노드에 나타난 인액티브 애니메이션의 렌더링 개시 시점과 일치할지 아니면, 도 16에 도시된 바와 달리 사용자가 렌더링 장치를 조작할 당시에 활성화되어 있는 메뉴 노드에 나타난 인액티브 애니메이션의 렌더링 종료 시점과 일치할지에 대해서는, 사용자가 렌더링 장치를 조작할 당시에 활성화되어 있는 메뉴 노드에 기술된 animationOrder에 규정되어 있다.
유저인터페이스 노드의 transitionTime 필드값이 그 전이될 상태가 의미하는 메뉴 노드의 activeTime 필드값이 됨으로써, 그 전이될 상태가 의미하는 메뉴 노드는 활성화된다.
이 경우, 그 전이될 상태가 의미하는 항목 노드에 나타난 액티브 애니메이션의 렌더링 개시 시점이, 그 전이될 상태가 의미하는 메뉴 노드에 나타난 액티브 애니메이션의 렌더링 개시 시점과 일치할지 아니면, 그 전이될 상태가 의미하는 메뉴 노드에 나타난 액티브 애니메이션의 렌더링 종료 시점과 일치할지의 여부는, 그 전이될 상태가 의미하는 메뉴 노드에 나타난 animationOrder 필드값에 규정되어 있다.
또한, 그 전이될 상태가 의미하는 항목 노드에 나타난 포커스 애니메이션의 렌더링 개시 시점이, 그 전이될 상태가 의미하는 항목 노드에 나타난 액티브 애니메이션의 렌더링 개시 시점인지 아니면, 그 전이될 상태가 의미하는 항목 노드에 나타난 액티브 애니메이션의 렌더링 개시 시점인지의 여부는, 그 전이될 상태가 의미하는 항목 노드에 나타난 animationOrder 필드값에 규정되어 있다.
분석부(220)는 전술한 노드들(유저인터페이스 노드, 메뉴 노드, 항목 노드, 전이 노드, 애니메이터 노드, 애니메이터그룹 노드, 키센서 노드, 스위치 노드)을 분석하고, 분석된 결과를 출력단자 OUT 5를 통해 렌더링부(250)로 출력한다.
도 17은 본 발명에 의한 렌더링 방법을 설명하기 위한 플로우챠트로서, 신속히 제작될 수 있도록 기술된 인터페이스 데이터를 렌더링하는 단계들(제1710~ 1720 단계들)를 포함할 수 있다.
분석부(220)는 계층적으로 연결된 다수의 노드들을 이용하여 기술되며 선택 가능한 다수의 항목을 나타내는 인터페이스 데이터의 노드를 분석한다(제1710 단계).
제1710 단계 후에, 렌더링부(250)는 인터페이스 데이터를 제1710 단계에서 분석된 결과에 기초하여 렌더링한다(제1720 단계).
이러한, 본 발명에 의한 렌더링 방법은, 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있다. 마찬가지로, 본 발명에 의한 인터페이스 데이터 역시, 컴퓨터로 읽을 수 있는 기록매체에 저장될 수 있다. 여기서, 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한 캐리어 웨이브 (예를 들어 인터넷을 통한 전송)의 형태로 구 현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이상 도면과 명세서에서 최적 실시예들이 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
이상에서 설명한 바와 같이, 본 발명에 의한 렌더링 장치 및 방법은, 렌더링하고자 하는 인터페이스 데이터로서, 정형화된 포맷에 따라 기술된 인터페이스 데이터, 특히, VRML 규격을 응용한 포맷에 따라 기술됨으로써 인터페이스 데이터가 탑재될 단말기에 관계없이 언제나 신속히 제작될 수 있는 인터페이스 데이터를 이용하므로, 렌더링될 인터페이스 데이터를 제작하는 제작자는, 저작(authoring)하고자 하는 컨텐츠를 결정하고부터 인터페이스 데이터가 제작될 때까지의 시간을 획기적으로 줄일 수 있다. 즉, 인터페이스 데이터의 제작자는, 본 발명에서와 같이 정형화된 포맷에 따라 기술된 인터페이스 데이터를 제작하는 경우, 타임 투 마켓(Time to Market) 절감 효과를 기대할 수 있다.

Claims (25)

  1. 계층적으로 연결된 다수의 노드들을 이용하여 기술되며 선택 가능한 다수의 항목을 나타내는 인터페이스 데이터의 상기 노드를 분석하는 분석부;
    상기 분석된 결과에 기초하여 상기 인터페이스 데이터를 렌더링하는 렌더링부; 및
    소정의 상기 노드에 종속된 하나 이상의 상기 노드들에 나타난 상태전이 테이블들을 소정의 상기 노드에 포함시키는 노드 갱신부를 포함하는 것을 특징으로 하는 렌더링 장치.
  2. 제1 항에 있어서, 상기 다수의 노드들은 상기 분석부가 동작하는 도중 변경 가능한 것을 특징으로 하는 렌더링 장치.
  3. 삭제
  4. 제1 항에 있어서, 최상위 상기 노드는 바인드 가능한 것을 특징으로 하는 렌더링 장치.
  5. 제1 항에 있어서, 최상위 상기 노드가 재차 바인드된 경우 활성화되는 상기 노드는, 가장 최근에 활성화된 상기 노드인 것을 특징으로 하는 렌더링 장치.
  6. 제1 항에 있어서, 최상위 상기 노드가 재차 바인드된 경우 활성화되는 상기 노드는, 디폴트(default)로 지정된 상기 노드인 것을 특징으로 하는 렌더링 장치.
  7. 제1 항에 있어서, 상기 렌더링 장치는 상기 렌더링 장치의 조작된 결과를 인식하는 조작 인식부를 더 포함하고, 상기 분석부는 상기 인식된 결과에 상응하는 상기 노드를 분석하는 것을 특징으로 하는 렌더링 장치.
  8. 제7 항에 있어서, 상기 인식된 결과는 최상위 상기 노드에 포함되는 것을 특징으로 하는 렌더링 장치.
  9. 제1 항에 있어서, 상기 분석부는 상기 렌더링 장치의 조작된 결과에 상응하는 상기 노드를 분석하는 것을 특징으로 하는 렌더링 장치.
  10. 제9 항에 있어서, 상기 분석부는 상기 조작된 결과에 상응하는 상태를 결정하고, 결정된 상태에 대응된 상기 노드를 분석하는 것을 특징으로 하는 렌더링 장치.
  11. 제10 항에 있어서, 상기 분석부는 상기 결정된 상태에 대응된 상기 노드에 나타난 객체 데이터 및 애니메이션을 분석하는 것을 특징으로 하는 렌더링 장치.
  12. 제10 항에 있어서, 상기 분석부는 상기 결정된 상태가 미리 설정된 상태인지 검사하고, 상기 결정된 상태에 대응된 상기 노드를 상기 검사된 결과에 응답하여 분석하는 것을 특징으로 하는 렌더링 장치.
  13. 제1 항에 있어서, 하나의 상기 노드가 활성화된 경우, 상기 렌더링부는 하나의 상기 노드에 나타난 애니메이션의 렌더링과 다른 하나의 상기 노드에 나타난 애니메이션의 렌더링을 동시에 개시하는 것을 특징으로 하는 렌더링 장치.
  14. 제1 항에 있어서, 하나의 상기 노드가 활성화된 경우, 상기 렌더링부는 하나의 상기 노드에 나타난 애니메이션의 렌더링을 완료한 뒤에 다른 하나의 상기 노드에 나타난 애니메이션의 렌더링을 개시하는 것을 특징으로 하는 렌더링 장치.
  15. 제13 항 또는 제14 항에 있어서, 하나의 상기 노드와 다른 하나의 상기 노드는 동일한 노드에 종속된 것을 특징으로 하는 렌더링 장치.
  16. 제15 항에 있어서, 하나의 상기 노드에 나타난 애니메이션은 액티브 애니메이션을 포함하고, 다른 하나의 상기 노드에 나타난 애니메이션은 포커스 애니메이션을 포함한 것을 특징으로 하는 렌더링 장치.
  17. 제13 항 또는 제14 항에 있어서, 하나의 상기 노드 및 다른 하나의 상기 노드 중 일방은 타방에 종속된 것을 특징으로 하는 렌더링 장치.
  18. 제17 항에 있어서, 하나의 상기 노드에 나타난 애니메이션은 트랜스 애니메이션을 포함하고, 다른 하나의 상기 노드에 나타난 애니메이션은 인액티브 애니메이션을 포함한 것을 특징으로 하는 렌더링 장치.
  19. 제17 항에 있어서, 하나의 상기 노드에 나타난 애니메이션은 액티브 애니메이션을 포함하고, 다른 하나의 상기 노드에 나타난 애니메이션은 액티브 애니메이션을 포함한 것을 특징으로 하는 렌더링 장치.
  20. 제13 항에 있어서, 다른 하나의 상기 노드는 하나의 상기 노드에 종속되고, 다른 하나의 상기 노드는 하나의 상기 노드에 나타난 애니메이션의 렌더링이 개시됨과 동시에 활성화되는 것을 특징으로 하는 렌더링 장치.
  21. 분석부는 계층적으로 연결된 다수의 노드들을 이용하여 기술되며 선택 가능한 다수의 항목을 나타내는 인터페이스 데이터의 상기 노드를 분석하는 단계;
    렌더링부는 상기 분석된 결과에 기초하여 상기 인터페이스 데이터를 렌더링하는 단계; 및
    노드 갱신부는 소정의 상기 노드에 종속된 하나 이상의 상기 노드들에 나타난 상태전이 테이블들을 소정의 상기 노드에 포함시키는 단계를 포함하는 것을 특징으로 하는 렌더링 방법.
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
KR1020060118639A 2006-11-28 2006-11-28 렌더링 장치 및 방법 KR101288970B1 (ko)

Priority Applications (7)

Application Number Priority Date Filing Date Title
KR1020060118639A KR101288970B1 (ko) 2006-11-28 2006-11-28 렌더링 장치 및 방법
US11/898,777 US8581934B2 (en) 2006-11-28 2007-09-14 Rendering apparatus and method
CN2007101625062A CN101192150B (zh) 2006-11-28 2007-10-16 渲染设备和方法
EP07118654.8A EP1927918A3 (en) 2006-11-28 2007-10-17 Rendering apparatus and method
JP2007307543A JP2008135036A (ja) 2006-11-28 2007-11-28 レンダリング装置及び方法
US13/862,654 US20130229410A1 (en) 2006-11-28 2013-04-15 Rendering apparatus and method
JP2013123962A JP6049548B2 (ja) 2006-11-28 2013-06-12 レンダリング装置及び方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060118639A KR101288970B1 (ko) 2006-11-28 2006-11-28 렌더링 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20080048362A KR20080048362A (ko) 2008-06-02
KR101288970B1 true KR101288970B1 (ko) 2013-07-24

Family

ID=39271618

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060118639A KR101288970B1 (ko) 2006-11-28 2006-11-28 렌더링 장치 및 방법

Country Status (5)

Country Link
US (2) US8581934B2 (ko)
EP (1) EP1927918A3 (ko)
JP (2) JP2008135036A (ko)
KR (1) KR101288970B1 (ko)
CN (1) CN101192150B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE49334E1 (en) 2005-10-04 2022-12-13 Hoffberg Family Trust 2 Multifactorial optimization system and method

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2124451A3 (en) 2008-05-23 2014-03-26 Sony Corporation Content server, information processing apparatus, network device, content distribution method, information processing method, and content distribution system
KR101155564B1 (ko) * 2008-12-02 2012-06-19 한국전자통신연구원 협업적 영상 제작 관리 장치
WO2011004963A2 (en) * 2009-07-07 2011-01-13 Lg Electronics Inc. Method for displaying three-dimensional user interface
WO2013104378A1 (de) * 2012-01-09 2013-07-18 Audi Ag Verfahren und vorrichtung zum erzeugen einer 3d-darstellung einer benutzeroberfläche in einem fahrzeug
US10297064B2 (en) * 2015-09-21 2019-05-21 Dreamworks Animation L.L.C. Multi-representation dependency graphs
US10748312B2 (en) 2016-02-12 2020-08-18 Microsoft Technology Licensing, Llc Tagging utilizations for selectively preserving chart elements during visualization optimizations
CN111917783B (zh) * 2020-08-06 2023-06-23 吉林亿联银行股份有限公司 一种通用报文的验证方法、装置及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050210416A1 (en) 2004-03-16 2005-09-22 Maclaurin Matthew B Interactive preview of group contents via axial controller

Family Cites Families (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1136906A3 (en) * 1990-11-30 2001-11-14 Sun Microsystems, Inc. Improved method and apparatus for creating virtual worlds
DE69132796T2 (de) * 1990-11-30 2002-04-25 Sun Microsystems Inc Verfahren und gerät zur darstellung von grafischen bildern
EP0694878B1 (en) * 1994-07-28 2005-07-27 Xerox Corporation A method and apparatus for increasing the displayed detail of a tree structure
US6205575B1 (en) * 1995-04-18 2001-03-20 Siemens Corporate Research, Inc. Scenario presentation tool
US5845270A (en) * 1996-01-02 1998-12-01 Datafusion, Inc. Multidimensional input-output modeling for organizing information
JP3246865B2 (ja) * 1996-05-10 2002-01-15 株式会社東芝 スタティックタイミング解析装置及びその方法
US6144962A (en) * 1996-10-15 2000-11-07 Mercury Interactive Corporation Visualization of web sites and hierarchical data structures
US6154215A (en) * 1997-08-01 2000-11-28 Silicon Graphics, Inc. Method and apparatus for maintaining multiple representations of a same scene in computer generated graphics
US6297824B1 (en) * 1997-11-26 2001-10-02 Xerox Corporation Interactive interface for viewing retrieval results
US6223145B1 (en) * 1997-11-26 2001-04-24 Zerox Corporation Interactive interface for specifying searches
US6012098A (en) * 1998-02-23 2000-01-04 International Business Machines Corp. Servlet pairing for isolation of the retrieval and rendering of data
JP3349961B2 (ja) 1998-08-18 2002-11-25 株式会社 スケール 携帯型通信装置及びその装置を用いた画像合成方法
US6380957B1 (en) * 1998-12-15 2002-04-30 International Business Machines Corporation Method of controlling view of large expansion tree
US6487565B1 (en) * 1998-12-29 2002-11-26 Microsoft Corporation Updating animated images represented by scene graphs
US6538651B1 (en) * 1999-03-19 2003-03-25 John Hayman Parametric geometric element definition and generation system and method
US7216157B1 (en) 1999-06-10 2007-05-08 Verizonbusinessgloballlc Method and system for discovering managed devices in a data network
US6826727B1 (en) * 1999-11-24 2004-11-30 Bitstream Inc. Apparatus, methods, programming for automatically laying out documents
US6583787B1 (en) * 2000-02-28 2003-06-24 Mitsubishi Electric Research Laboratories, Inc. Rendering pipeline for surface elements
JP4389323B2 (ja) 2000-02-29 2009-12-24 ソニー株式会社 シーン記述変換装置及び方法
GB0007974D0 (en) * 2000-04-01 2000-05-17 Discreet Logic Inc Processing image data
US20050091576A1 (en) * 2003-10-24 2005-04-28 Microsoft Corporation Programming interface for a computer platform
US7495664B2 (en) * 2000-06-19 2009-02-24 Mental Images Gmbh Instant ray tracing
US7952583B2 (en) * 2000-06-19 2011-05-31 Mental Images Gmbh Quasi-monte carlo light transport simulation by efficient ray tracing
US7184538B1 (en) 2000-06-30 2007-02-27 Verizon Services Corp. Method of and apparatus for mediating common channel signaling message between networks using control message templates
US6854091B1 (en) * 2000-07-28 2005-02-08 Nortel Networks Limited Method of displaying nodes and links
US7225129B2 (en) * 2000-09-21 2007-05-29 The Regents Of The University Of California Visual display methods for in computer-animated speech production models
US6954218B2 (en) * 2000-10-30 2005-10-11 Microsoft Corporation Method and apparatus for high-performance rendering and hit-testing of a window tree
US7538764B2 (en) * 2001-01-05 2009-05-26 Interuniversitair Micro-Elektronica Centrum (Imec) System and method to obtain surface structures of multi-dimensional objects, and to represent those surface structures for animation, transmission and display
AUPR464601A0 (en) * 2001-04-30 2001-05-24 Commonwealth Of Australia, The Shapes vector
US7702563B2 (en) * 2001-06-11 2010-04-20 Otc Online Partners Integrated electronic exchange of structured contracts with dynamic risk-based transaction permissioning
JP4701564B2 (ja) * 2001-08-31 2011-06-15 ソニー株式会社 メニュー表示装置及びメニューの表示方法
US7392483B2 (en) 2001-09-28 2008-06-24 Ntt Docomo, Inc, Transformation of platform specific graphical user interface widgets migrated between heterogeneous device platforms
US20030063120A1 (en) 2001-09-28 2003-04-03 Wong Hoi Lee Candy Scalable graphical user interface architecture
US7234111B2 (en) 2001-09-28 2007-06-19 Ntt Docomo, Inc. Dynamic adaptation of GUI presentations to heterogeneous device platforms
US7895522B2 (en) 2001-09-28 2011-02-22 Ntt Docomo, Inc. Layout of platform specific graphical user interface widgets migrated between heterogeneous device platforms
JP2003132068A (ja) 2001-10-22 2003-05-09 Nec Corp ナビゲーションシステム及びナビゲーション端末
US20030112467A1 (en) 2001-12-17 2003-06-19 Mccollum Tim Apparatus and method for multimedia navigation
US7065744B2 (en) * 2002-01-14 2006-06-20 International Business Machines Corporation System and method for converting management models to specific console interfaces
US7139004B2 (en) * 2002-01-25 2006-11-21 Xerox Corporation Method and apparatus to convert bitmapped images for use in a structured text/graphics editor
US7020643B2 (en) * 2002-01-25 2006-03-28 Microsoft Corporation Method and system for clickpath funnel analysis
US7136082B2 (en) * 2002-01-25 2006-11-14 Xerox Corporation Method and apparatus to convert digital ink images for use in a structured text/graphics editor
US20030174165A1 (en) * 2002-03-18 2003-09-18 Barney Rock D. System and method for rendering a directed graph
US7016842B2 (en) * 2002-03-26 2006-03-21 Sbc Technology Resources, Inc. Method and system for evaluating automatic speech recognition telephone services
US6697460B2 (en) * 2002-04-30 2004-02-24 Sbc Technology Resources, Inc. Adaptive voice recognition menu method and system
US7149755B2 (en) * 2002-07-29 2006-12-12 Hewlett-Packard Development Company, Lp. Presenting a collection of media objects
US6894688B2 (en) * 2002-07-30 2005-05-17 Koei Co., Ltd. Program, recording medium, rendering method and rendering apparatus
JP3760347B2 (ja) * 2002-07-30 2006-03-29 株式会社光栄 プログラム、記録媒体、ゲームキャラクタ描画方法及びゲーム装置
US7337401B2 (en) * 2002-12-18 2008-02-26 Microsoft Corporation User interface element representation with simplified view
US7131059B2 (en) * 2002-12-31 2006-10-31 Hewlett-Packard Development Company, L.P. Scalably presenting a collection of media objects
US6852081B2 (en) * 2003-03-13 2005-02-08 Siemens Medical Solutions Usa, Inc. Volume rendering in the acoustic grid methods and systems for ultrasound diagnostic imaging
US7088374B2 (en) * 2003-03-27 2006-08-08 Microsoft Corporation System and method for managing visual structure, timing, and animation in a graphics processing system
US7173623B2 (en) * 2003-05-09 2007-02-06 Microsoft Corporation System supporting animation of graphical display elements through animation object instances
CA2432631A1 (en) * 2003-06-17 2004-12-17 Ibm Canada Limited - Ibm Canada Limitee Method for managing tree presentations in graphical user interfaces
CN1598759A (zh) * 2003-09-16 2005-03-23 英群企业股份有限公司 人机输入装置多功能选单的处理方法及人机输入系统
US7426734B2 (en) * 2003-10-24 2008-09-16 Microsoft Corporation Facilitating presentation functionality through a programming interface media namespace
US20050180330A1 (en) 2004-02-17 2005-08-18 Touchgraph Llc Method of animating transitions and stabilizing node motion during dynamic graph navigation
CA2557641A1 (en) 2004-02-27 2005-09-15 Tigi Corporation System and method for data manipulation
US20060036567A1 (en) * 2004-08-12 2006-02-16 Cheng-Yew Tan Method and apparatus for organizing searches and controlling presentation of search results
KR100657751B1 (ko) 2004-08-31 2006-12-13 에스케이 텔레콤주식회사 이동 단말기에서 입체 영상을 제공하기 위한 방법 및 그이동 단말기
KR20060033842A (ko) 2004-10-16 2006-04-20 엘지전자 주식회사 휴대단말기의 3차원 메뉴장치 및 방법
US8346960B2 (en) * 2005-02-15 2013-01-01 At&T Intellectual Property Ii, L.P. Systems, methods, and devices for defending a network
KR100612890B1 (ko) * 2005-02-17 2006-08-14 삼성전자주식회사 3차원 이미지의 다중 특수 효과 표현 방법 및 장치
US7653903B2 (en) 2005-03-25 2010-01-26 Sony Corporation Modular imaging download system
US20060242606A1 (en) * 2005-04-26 2006-10-26 International Business Machines Corporation Graphical roadmap view and framework for activity tracking and execution
US7627599B2 (en) * 2005-05-20 2009-12-01 Palo Alto Research Center Incorporated Method, apparatus, and program product for visualizing tree structured information
WO2006137564A1 (ja) * 2005-06-24 2006-12-28 Justsystems Corporation 文書処理装置
US20070130112A1 (en) 2005-06-30 2007-06-07 Intelligentek Corp. Multimedia conceptual search system and associated search method
US8874477B2 (en) * 2005-10-04 2014-10-28 Steven Mark Hoffberg Multifactorial optimization system and method
US20070081471A1 (en) * 2005-10-06 2007-04-12 Alcatel Usa Sourcing, L.P. Apparatus and method for analyzing packet data streams
US7940685B1 (en) * 2005-11-16 2011-05-10 At&T Intellectual Property Ii, Lp Method and apparatus for monitoring a network
US20070130514A1 (en) * 2005-12-05 2007-06-07 Matthee Stephan D Dynamic data presentation
US8677272B2 (en) * 2005-12-13 2014-03-18 International Business Machines Corporation Graphical user interface design utility
CA2654960A1 (en) * 2006-04-10 2008-12-24 Avaworks Incorporated Do-it-yourself photo realistic talking head creation system and method
US20070239291A1 (en) * 2006-04-11 2007-10-11 Invensys Systems, Inc. Runtime human-machine interface for process control having enhanced view hierarchy navigation controls
US7729887B2 (en) * 2006-04-11 2010-06-01 Invensys Systems, Inc. System management user interface providing user access to status information for process control system equipment including a status monitor
US8924269B2 (en) * 2006-05-13 2014-12-30 Sap Ag Consistent set of interfaces derived from a business object model
US7609271B2 (en) * 2006-06-30 2009-10-27 Microsoft Corporation Producing animated scenes from still images
US7969434B2 (en) * 2006-09-19 2011-06-28 Caustic Graphics, Inc. Method, apparatus, and computer readable medium for accelerating intersection testing in ray-tracing rendering
US20080193904A1 (en) * 2007-02-14 2008-08-14 University Of Central Florida Research Foundation Systems and Methods for Simulation of Organ Dynamics
US8319793B2 (en) * 2009-04-17 2012-11-27 Definiens Ag Analyzing pixel data by imprinting objects of a computer-implemented network structure into other objects

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050210416A1 (en) 2004-03-16 2005-09-22 Maclaurin Matthew B Interactive preview of group contents via axial controller

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE49334E1 (en) 2005-10-04 2022-12-13 Hoffberg Family Trust 2 Multifactorial optimization system and method

Also Published As

Publication number Publication date
JP6049548B2 (ja) 2016-12-21
EP1927918A3 (en) 2013-05-29
US20130229410A1 (en) 2013-09-05
US20080122837A1 (en) 2008-05-29
CN101192150B (zh) 2012-11-07
EP1927918A2 (en) 2008-06-04
JP2013225326A (ja) 2013-10-31
KR20080048362A (ko) 2008-06-02
JP2008135036A (ja) 2008-06-12
CN101192150A (zh) 2008-06-04
US8581934B2 (en) 2013-11-12

Similar Documents

Publication Publication Date Title
KR101288970B1 (ko) 렌더링 장치 및 방법
US10067635B2 (en) Three dimensional conditional formatting
KR101183351B1 (ko) 사용자 맞춤화에 기초한 그래픽 프레젠테이션 관리
RU2360276C2 (ru) Многоплоскостной трехмерный пользовательский интерфейс
KR101037864B1 (ko) 복수의 미디어 객체들에서 사용하기 위한 특징을 생성하는방법 및 소프트웨어 프로그램
US9471217B2 (en) Display management method and system of mobile terminal
JP5645618B2 (ja) 情報処理装置、情報処理方法、およびプログラム
US20090164923A1 (en) Method, apparatus and computer program product for providing an adaptive icon
CN100432910C (zh) 用于用户接口转变的方法和设备
US7095413B2 (en) Animation producing method and device, and recorded medium on which program is recorded
KR20170067853A (ko) 애니메이션 프레임워크
CN102938158A (zh) 通过直接操纵来构建动画时间线
JP2014532207A (ja) コンピュータによる処理方法
US20160246479A1 (en) Dynamic display of icons on a small screen
KR20170078651A (ko) 하이브리드 슬라이드-캔버스 프리젠테이션을 합성하기 위한 저작 도구
Berlage et al. Visualizing common artefacts to support awareness in computer-mediated cooperation
KR20130133319A (ko) 3d그래픽 사용자 인터페이스 제작 장치 및 방법
US20110107256A1 (en) Zooming Task Management
Dessart et al. Animated transitions between user interface views
US10395412B2 (en) Morphing chart animations in a browser
US20150339841A1 (en) Layout animation panel
KR101806922B1 (ko) 가상현실 컨텐츠 제작방법 및 장치
CN115934974A (zh) 一种多媒体数据的处理方法、装置、设备及介质
WO2022252916A1 (zh) 特效配置文件的生成方法、装置、设备及介质
KR101553272B1 (ko) 복수의 타이머를 사용하여 멀티미디어 콘텐츠를 저작하는 방법 및 복수의 타이머를 사용하여 멀티미디어 콘텐츠를 저작하는 저작 장치

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160620

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170630

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180629

Year of fee payment: 6