KR20130060113A - 동적 그래픽 인터페이스 셰도우들 - Google Patents

동적 그래픽 인터페이스 셰도우들 Download PDF

Info

Publication number
KR20130060113A
KR20130060113A KR1020120108286A KR20120108286A KR20130060113A KR 20130060113 A KR20130060113 A KR 20130060113A KR 1020120108286 A KR1020120108286 A KR 1020120108286A KR 20120108286 A KR20120108286 A KR 20120108286A KR 20130060113 A KR20130060113 A KR 20130060113A
Authority
KR
South Korea
Prior art keywords
user interface
altitude
graphical user
shadow
elevation
Prior art date
Application number
KR1020120108286A
Other languages
English (en)
Other versions
KR101636808B1 (ko
Inventor
니콜라스 브이. 킹
던칸 로버트 커
Original Assignee
애플 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 애플 인크. filed Critical 애플 인크.
Publication of KR20130060113A publication Critical patent/KR20130060113A/ko
Application granted granted Critical
Publication of KR101636808B1 publication Critical patent/KR101636808B1/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
    • G06F3/04812Interaction techniques based on cursor appearance or behaviour, e.g. being affected by the presence of displayed objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/60Shadow generation
    • 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/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • 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/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/80Geometric correction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/507Depth or shape recovery from shading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/048023D-info-object: information is displayed on the internal or external surface of a three dimensional manipulable object, e.g. on the faces of a cube that can be rotated by the user
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04809Textured surface identifying touch areas, e.g. overlay structure for a virtual keyboard
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/24Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2215/00Indexing scheme for image rendering
    • G06T2215/12Shadow map, environment map

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • User Interface Of Digital Computer (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Geometry (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)

Abstract

동적 윈도우 및 커서 셰도우들이 설명된다. 일부 구현들에서, 그래픽 사용자 인터페이스 디스플레이 객체들은 디스플레이 객체들에 변화하는 높이의 픽셀들을 가질 수 있는 3차원 표면을 제공하기 위해 고도 오프셋 정보로 구성될 수 있다. 일부 구현들에서, 픽셀 고도 오프셋 정보로 구성되는 디스플레이 객체들 위에 렌더링되는 셰도우들은 객체들의 3차원 표면을 반영하도록 조절될 수 있어 실재의 셰도우들에 더욱 근사화된다. 일부 구현들에서, 셰도우들은 그것들이 드리워지는 디스플레이 객체들의 고도들에 따라 동적으로 실시간으로 렌더링되고 조절될 수 있다.

Description

동적 그래픽 인터페이스 셰도우들{DYNAMIC GRAPHICAL INTERFACE SHADOWS}
본 개시는 일반적으로 그래픽 사용자 인터페이스들 및 렌더링 3차원 효과들에 관한 것이다.
그래픽 사용자 인터페이스들은 종종 2차원 표면 상의 깊이의 착각(illusion of depth)을 제공하기 위해 셰도우잉 기법들(shadowing techniques)을 활용한다. 종종 그래픽 사용자 인터페이스들은 미리 정의된 사이즈 또는 셰도우(shadow)를 드리우거나(cast) 셰도우가 연관되는 객체로부터의 미리 정의된 거리와 같은 미리 정의된 특성들을 갖는 셰도우를 이용한다. 이들 기법들은 깊이의 착각을 제공할 수 있지만, 이들 정적 셰도우들은 그래픽 사용자 인터페이스 객체들의 윤곽들에 따라 조절하지 않고, 따라서 자연적 또는 현실적 외관 및 느낌을 제공하지 않는다.
동적 그래픽 인터페이스 셰도우들이 설명된다. 일부 구현들에서, 그래픽 사용자 인터페이스 디스플레이 객체들은 디스플레이 객체들에 변화하는 높이의 픽셀들을 가질 수 있는 3차원 표면을 제공하기 위해 고도 오프셋 정보(elevation offset information)로 구성될 수 있다. 일부 구현들에서, 픽셀 고도 오프셋 정보로 구성되는 디스플레이 객체들 위에 렌더링되는 셰도우들은 객체들의 3차원 표면을 반영하도록 조절될 수 있어 실재의 셰도우들에 더욱 근사화된다. 일부 구현들에서, 셰도우들은 그것들이 드리워지는 디스플레이 객체들의 고도들에 따라 동적으로 실시간으로 렌더링되고 조절될 수 있다.
특정 구현들은 적어도 다음의 이점들을 제공한다: 셰도우들은 더욱 실물과 똑같이 나타나고 사용자 인터페이스 요소들의 상대 위치들을 더 잘 전달할 수 있다. 픽셀당 고도 맵들(per-pixel elevation maps)은 복잡한 텍스처들 및 표면들의 모델링을 허용한다. 동적 셰도우들은 하드웨어 가속도를 허용하는 그래픽 프로세싱 유닛(graphical processing unit; GPU) 필터로서 구현될 수 있다. 그렇지 않으면 편평한 그래픽 사용자 인터페이스 요소들(flat graphical user interface elements)은 높이가 변하는 3차원 표면들을 갖도록 구성될 수 있다. 3차원 표면들 위에 렌더링된 셰도우들은 3차원 표면에 따라 왜곡될 수 있다.
하나 이상의 구현들의 상세들은 첨부 도면들 및 아래 설명에 제시된다. 다른 특징들, 양태들, 및 잠재적인 이점들은 설명 및 도면들과, 청구항들로부터 명백할 것이다.
도 1은 동적 셰도우들을 갖는 예시적인 그래픽 사용자 인터페이스를 도시한다.
도 2는 도 1의 그래픽 사용자 인터페이스에서의 객체들과 연관된 상이한 고도들의 예를 도시한다.
도 3은 그래픽 요소들이 픽셀 고도 오프셋 정보로 구성되는 예시적인 그래픽 사용자 인터페이스를 도시한다.
도 4는 픽셀 고도 오프셋 정보로 구성되는 예시적인 디스플레이 객체를 도시한다.
도 5는 픽셀 고도 맵을 제공하는 예시적인 그래픽 사용자 인터페이스 편집기를 도시한다.
도 6은 고도 오프셋 정보를 포함하는 픽셀 컬러 데이터의 예를 도시한다.
도 7은 디스플레이 객체들에 대한 동적 셰도우들을 발생하기 위한 예시적인 프로세스의 흐름도이다.
도 8은 픽셀 깊이 오프셋들을 구성하기 위한 예시적인 프로세스의 흐름도이다.
도 9는 도 1-8의 특징들 및 프로세스들을 구현하는 예시적인 시스템 아키텍처의 블록도이다.
다양한 도면들에서의 동일한 참조 번호들은 동일한 요소들을 표시한다.
현대의 컴퓨터 디스플레이들 및 그래픽 인터페이스들은 종종 실재의 3차원 객체들 및 공간들의 시뮬레이션을 시도한다. 종종, 3차원 시뮬레이션은 2차원 이미지에서의 깊이의 외관(appearance of depth)을 제공하기 위해 셰도우들의 이용을 통해 실현된다. 또한, 2차원 그래픽 인터페이스 상의 객체들의 배열은 객체들의 깊이 및/또는 레이어링(layering)을 제안(suggest)하는 데 이용될 수 있다. 예를 들어, 데스크톱 비유(desktop metaphor)는 흔히 윈도우들, 파일들, 이미지들, 아이콘들 및 다른 객체들을 배열하고 디스플레이하기 위해 컴퓨터 디스플레이들 상에 이용된다. 데스크톱 상의 객체들은 다른 객체들에 겹치거나(예를 들어, 겹치는 윈도우들) 또는 잘 보이지 않게 할 수 있다(예를 들어, 데스크톱 아이콘들 위에 배치된 윈도우들은 아이콘들을 가리거나 잘 보이지 않게 할 수 있다). 객체들의 겹침 및 가림은 객체들의 레이어링 또는 각각의 객체와 연관된 깊이 또는 고도를 제안할 수 있다. 예를 들어, 레이어링은 데스크톱 상의 객체들이 서로의 꼭대기에 쌓아 올려져 각각의 객체가 데스크톱의 상이한 고도에 배치되는 것을 사용자에게 제안할 수 있다. 데스크톱(또는 스크린, 또는 사용자)에 대한 객체의 고도(예를 들어, 높이 또는 깊이)는 3차원을 제안할 수 있다. 따라서, 그래픽 사용자 인터페이스는 X축을 따르는 수평 차원, Y축을 따르는 수직 차원 및 Z축을 따르는 고도 차원(예를 들어, Z축은 데스크톱 및 디스플레이 스크린에 수직임)을 갖는다고 할 수 있고, 디스플레이 객체들은 디스플레이 영역 내에 X, Y 및 Z 좌표들에 따라 배치될 수 있다.
일부 구현들에서, 객체들의 고도(예를 들어, 윈도우들, 아이콘들, 커서들, 사용자 인터페이스 요소들 등의 고도)는 더욱 현실적이고 동적으로 조절된 셰도우들을 제공하기 위해 객체 셰도우들을 조절하는 데 이용될 수 있다. 일부 구현들에서, 그래픽 사용자 인터페이스의 픽셀들(예를 들어, 디스플레이 객체들, 그래픽 요소들 등의 픽셀들)은 변하는 고도의 윤곽이 있는 표면들(contoured surfaces)을 갖는 사용자 인터페이스 요소들을 발생하기 위해 고도 오프셋으로 구성될 수 있다. 예를 들어, 픽셀 고도 오프셋은 디스플레이 객체에 윤곽이 있는 표면을 제공하기 위해 디스플레이 객체의 고도에 가산되는(또는 그로부터 감산되는) 고도 값일 수 있다. 일부 구현들에서, 픽셀 고도 오프셋은 그래픽 사용자 인터페이스 객체들 및 요소들의 윤곽이 있는 표면들에 적응하는 셰도우들을 발생하는 데 이용될 수 있다.
도 1은 동적 셰도우들을 갖는 예시적인 그래픽 사용자 인터페이스(GUI)(100)를 도시한다. GUI(100)는 컴퓨팅 디바이스(예를 들어, 데스크톱 컴퓨터, 태블릿 컴퓨터, 스마트폰, 랩톱 컴퓨터 등)의 디스플레이 상에 제시될 수 있는 사용자 인터페이스이다. GUI(100)는 데스크톱 그래픽 인터페이스("데스크톱")(102)를 포함할 수 있다. 예를 들어, 데스크톱 그래픽 인터페이스(102)는 컴퓨팅 디바이스 상의 애플리케이션들, 문서들 및 파일들에 대한 사용자 액세스를 제공하는 데 이용될 수 있는 데스크톱 비유를 제공할 수 있다. GUI(100)는 윈도우(104) 및 윈도우(106)를 포함할 수 있다. 예를 들어, 윈도우들(104 및 106)은 컴퓨팅 디바이스의 다양한 애플리케이션들의 사용자 인터페이스들을 제시하기 위한 애플리케이션 윈도우들일 수 있다. 일부 구현들에서, 윈도우들(104 및 106)은 상이한 고도들에서 배열 및/또는 계층화될 수 있다. 예를 들어, 데스크톱(102)은 0의 고도를 가질 수 있고, 윈도우(104)는 10의 고도를 가질 수 있고, 윈도우(106)는 20의 고도를 가질 수 있다. 일부 구현들에서, 윈도우들의 고도들은 윈도우들이 사용자에 의해 이동되거나 재배열될 때 동적으로 결정될 수 있다. 예를 들어, 사용자는 윈도우(104)가 가장 높은 윈도우가 되도록 윈도우(104)를 선택할 수 있다. 다른 윈도우들(예를 들어, 윈도우(106))은 윈도우(104)가 선택될 때 윈도우(104) 아래에(예를 들어, 더 낮은 고도에) 배열될 수 있다.
일부 구현들에서, 객체들의 고도는 컴퓨팅 디바이스에 의해 객체들에 할당된 순서에 기초하여 결정될 수 있다. 예를 들어, 컴퓨팅 디바이스는 GUI(100) 상에 디스플레이되는 객체들의 리스트 또는 어레이를 유지할 수 있다. 각각의 윈도우, 아이콘, 커서, 또는 다른 객체는 어레이에서의 위치를 점유할 수 있다. 그래픽 객체들의 디스플레이 위치(예를 들어, 고도, 레이어, 고도 등)는 어레이에서의 객체의 위치(예를 들어, 인덱스)에 대응할 수 있다. 예를 들어, 어레이에서의 제1 위치를 점유하는 객체는 (예를 들어, 가장 높은 고도를 갖는) 꼭대기에 디스플레이될 수 있고, 어레이에서의 제2 위치를 점유하는 객체는 제1의 것 아래에 디스플레이될 수 있고, 등등이다. 어레이의 중간으로부터의 객체가 선택될 때(예를 들어, 디스플레이된 윈도우가 사용자에 의해 선택되어 현재 작업중인 윈도우가 될 때), 선택된 객체는 어레이의 제1 위치로 이동될 수 있고, 어레이의 다른 객체들은 위치들을 시프트(shift)할 수 있다. GUI(100)는 어레이에서 디스플레이 객체들의 조절된 순서를 반영하도록 갱신될 수 있다(예를 들어, 선택된 윈도우는 GUI(100)에서 가장 높은 윈도우가 되는 고도를 얻을 것이다). 따라서, 그래픽 객체들은 어레이에서 객체들의 상대 위치들을 반영하는 GUI(100) 상의 고도들에 디스플레이될 수 있다.
GUI(100)는 커서(108)를 포함할 수 있다. 예를 들어, 커서(108)는 GUI(100), 데스크톱(102), 윈도우들(104 및 106), 아이콘들(110-122) 및/또는 GUI(100) 상에 디스플레이된 임의의 다른 객체와 상호작용하도록 사용자에 의해 활용될 수 있다. 사용자는 예를 들어, 커서(108)를 조작하여 윈도우(104)를 선택하고 윈도우(104)가 가장 높은 윈도우가 되게 할 수 있다. 커서(108)는 고도와 연관될 수 있다. 예를 들어, 커서(108)는 GUI(100)에 디스플레이된 임의의 객체의 가장 높은 고도를 가질 수 있어, 커서(108)는 항상 다른 그래픽 객체들의 꼭대기에 있다. 따라서, 데스크톱(102)이 0의 고도를 갖고, 윈도우(104)는 10의 고도를 갖고, 윈도우(106)는 20의 고도를 갖는 경우, 커서(108)는 예를 들어, 30의 고도를 가질 수 있다.
일부 구현들에서, 그래픽 사용자 인터페이스 객체들(예를 들어, 윈도우들(104 및 106), 커서(108), 아이콘들(110-122))은 객체들의 각각의 위치들(고도를 포함함) 및 시뮬레이션된 또는 검출된 광원의 위치(예를 들어, 각도)에 기초하여 셰도우들을 드리울 수 있다. 예를 들어, GUI(100) 상의 각각의 객체는 수평 위치(예를 들어, X축(140)을 따름), 수직 위치(예를 들어, Y축(142)을 따름) 및 고도(예를 들어, Z축(144)을 따름)를 가질 수 있다. 객체에 대해 발생된 셰도우의 위치는 광원의 위치 및 셰도우를 드리우는(casting) 객체(예를 들어, 가로막는 객체)와 셰도우가 드리워지는(fall) 객체(예를 들어, 가로막힌 객체) 사이의 고도의 차이에 따라 조절될 수 있다. 또한, 객체의 셰도우의 사이즈, 흐림 반경(blur radius) 및 불투명도(opacity)는 셰도우를 드리우는 객체로부터 셰도우가 얼마나 떨어져 있는지에 기초하여 조절될 수 있다.
일부 구현들에서, 커서(108)는 대응하는 드롭 셰도우(drop shadow)(130 또는 132)를 가질 수 있다. 예를 들어, 커서(108)가 GUI(100)를 이동할 때, 셰도우(예를 들어, 셰도우(130 또는 132))는 커서가 데스크톱 위를 떠다니고 있는 것처럼 보이도록 커서를 따라갈 수 있다. 일부 구현들에서, 셰도우(130, 132)의 사이즈 및 위치는 커서의 고도 및 셰도우가 드리워지는 객체의 고도에 기초하여 조절될 수 있다. 예를 들어, 커서(108)가 윈도우(106) 위에 있는 경우, 셰도우(130)의 사이즈 및 위치는 커서(108)의 고도와 윈도우(106)의 고도 사이의 차이에 기초하여 조절될 수 있다. 이 예에서, 커서(108) 및 윈도우(106)의 고도들의 차이는 작으므로, 셰도우(130)는 커서(108)와 가까이 배치되고 셰도우는 커서와 대략 동일한 사이즈를 가질 수 있다. 반대로, 윈도우(104)의 고도는 윈도우(106)의 고도보다 작으므로, 윈도우(104)와 커서(108) 사이의 고도 차이가 클수록, 결과적으로 셰도우(132)는 커서(108)로부터 더 멀리 배치된다. 부가적으로, 셰도우(132)의 흐림 반경, 불투명도 및 사이즈는 커서(108)와 윈도우(104) 사이의 고도의 차이를 고려하고 더욱 현실적인 셰도우 외관을 제공하도록 조절될 수 있다.
일부 구현들에서, 터치 스크린 인터페이스가 입력을 제공하는 데 이용될 수 있다. 예를 들어, 사용자는 손가락으로 터치 스크린 인터페이스를 터치할 수 있고, 터치 스크린 인터페이스 상의 접촉점은 커서 위치일 수 있다. 일부 구현들에서, 터치 위치와 연관된 디스플레이 객체는 디스플레이될 수 있다. 예를 들어, 돋보기, 또는 다른 디스플레이 객체가 터치 위치에 근접하게 디스플레이될 수 있다. 일부 구현들에서, 터치 위치와 연관된 디스플레이 객체는 동적 셰도우를 드리울 수 있다. 예를 들어, 돋보기가 디스플레이되는 경우, 돋보기와 연관된 셰도우가 발생될 수 있다. 일부 구현들에서, 디스플레이 객체가 터치 입력 위치에 대해 디스플레이되지 않을 수 있다. 일부 구현들에서, 동적 셰도우가 터치 스크린 인터페이스 상에 터치된 영역에 대해 발생될 수 있다. 예를 들어, 사용자가 터치 스크린 인터페이스를 손가락으로 터치할 때, 손가락에 의해 터치된 터치 스크린 인터페이스의 영역에 기초하여 동적 셰도우가 발생되어 디스플레이될 수 있다. 손가락에 의해 터치되는 터치 스크린 인터페이스의 영역이 10 픽셀 폭 및 20 픽셀 높이의 타원형 영역이면, 예를 들어, 타원형의 사이즈 및 위치에 기초하여 동적 셰도우가 발생될 수 있다. 타원형 터치 영역은 예를 들어, 디스플레이 객체(예를 들어, 커서(108))와 같이 동적 셰도우를 드리울 수 있다.
유사하게, 윈도우들(104 및 106)은 셰도우들(134 및 136)을 드리울 수 있다. 예를 들어, 셰도우(134)는 윈도우(104)와 데스크톱(102) 사이의 고도 차이에 기초하여 발생될 수 있다. 이 경우, 데스크톱(102)이 0의 고도를 갖기 때문에, 윈도우(104)의 고도는 셰도우(134)를 발생하는 데 이용될 수 있다. 셰도우(136)는 윈도우(106)에 대해 발생될 수 있다. 그러나, 셰도우(136)는 2개의 상이한 고도들(예를 들어, 윈도우(104) 및 데스크톱(102))을 갖는 표면들 위에 드리워진다. 예를 들어, 윈도우(106 및 104) 사이의 고도의 차이는 윈도우(106)와 데스크톱(102) 사이의 고도의 차이보다 작다. 따라서, 윈도우(104) 위에 드리워지는 셰도우(136)의 부분들은 데스크톱(102) 위에 드리워지는 셰도우(136)의 부분들과 상이한 차원들을 가질 것이다. 예를 들어, 데스크톱(102) 위에 발생되는 셰도우(136)의 부분들은 윈도우(104)의 더 가까운 표면 위에 발생되는 셰도우(136)의 부분보다 윈도우(106)로부터 더 멀리 있는 것으로 보일 수 있다. 부가적으로, 셰도우들의 흐림 반경 및 불투명도는 셰도우들을 드리우는 윈도우들과 셰도우들이 발생되는 객체들 사이의 고도 차이들에 기초하여 조절될 수 있다. 아이콘들(110-122)과 같은 다른 그래픽 객체들은 아이콘들의 고도에 기초하여 또한 조절될 수 있는 셰도우들을 드리울 수 있다.
일부 구현들에서, 디스플레이 객체들은 셰도우들을 잘 보이지 않게 할 수 있다. 예를 들어, 커서(108)의 셰도우가 (예를 들어, 커서(108)의 위치, 윈도우(106)의 고도 및 광원의 각도에 기초하여) 윈도우(106) 아래에 발생되어야 한다면, 윈도우(106)는 셰도우를 가로막거나 숨길 것이기 때문에 커서(108)에 대해서 셰도우가 발생되지 않을 것이다.
도 2는 그래픽 사용자 인터페이스(100)에서 객체들과 연관된 상이한 고도들의 예를 도시한다. 예를 들어, 도 2는 커서(108), 윈도우들(104 및 106), 아이콘들(110-122) 및 데스크톱(102)을 포함하는 GUI(100)의 측면도를 나타낼 수 있다. 도 2에서, 다양한 그래픽 객체들의 고도들(예를 들어, Z축(144)을 따름)은 분명하게 보일 수 있다. 예를 들어, 데스크톱(102)은 0의 고도를 가질 수 있고, 모든 다른 그래픽 객체들(예를 들어, 아이콘들(110-122), 윈도우(104), 윈도우(106), 커서(108) 등)은 데스크톱에 대한 고도들을 가질 수 있다. 대안적으로, 고도들은 각각의 객체가 사용자 또는 디스플레이 스크린(200)(예를 들어, 여기서 디스플레이 스크린(200)은 0의 깊이를 가짐)으로부터 떨어진 거리를 나타내는 깊이 값들에 대응할 수 있다.
그래픽 객체들은 디스플레이 스크린(200)과 데스크톱(102) 사이의 변화하는 고도들(또는 깊이들)에 배열될 수 있다. 예를 들어, 커서(108)는 인터페이스(100)의 모든 다른 객체들 위에 커서를 배치하는 고도 'Z1'(202)를 가질 수 있어, 커서(108)가 인터페이스(100)에 디스플레이된 다른 그래픽 객체들에 의해 잘 보이지 않게 되는 것을 방지한다. 윈도우(104)는 고도 'Z2'(204)를 가질 수 있다. 윈도우(106)는 윈도우(104)와 커서(108) 사이의 고도 'Z3'(206)를 가질 수 있다. 아이콘들(110-122)은 또한 연관된 고도들(또는 깊이들)을 가질 수 있다.
일부 구현들에서, 객체들에 할당된 고도들은 사용자 인터페이스(100) 상에 디스플레이된 다른 객체들에 대해 상대적일 수 있다. 예를 들어, 커서(108)는 미리 결정된 고도 'E'에 디스플레이되도록 구성될 수 있고, 다른 그래픽 객체들의 고도는 E와 관련하여 결정될 수 있다. 일부 구현들에서, 고도 차이는 디스플레이 객체들 사이에 간격을 제공하기 위해 고도 E로부터 감산 또는 가산될 수 있다. 고도 차이는 5 단위(예를 들어, 픽셀, 밀리미터, 인치 등)인 것으로 구성될 수 있다. 예를 들어, 윈도우(106)의 고도는 커서(108) 아래 5 단위인 것으로 결정될 수 있다. 예를 들어, 윈도우(104)의 고도는 커서(108) 아래 10 단위 및 윈도우(106) 아래 5 단위인 것으로 결정될 수 있다. 따라서, 그래픽 객체들이 그래픽 객체들의 순서가 유지되는 어레이형 데이터 구조로 유지되는 경우, 각각의 객체는 고도 차이 및 어레이에서의 객체의 위치에 따라 디스플레이될 수 있다. 예를 들어, 어레이에서의 각각의 디스플레이 객체는 어레이에서의 이전 디스플레이 객체 아래 5 단위에 배치될 수 있다. 일부 구현들에서, 고도들(또는 깊이들)은 데스크톱(102)(예를 들어, 0의 고도를 가짐)에 대해 또는 스크린(200)(예를 들어, 0의 깊이를 가짐)에 대해 결정될 수 있다. 일부 구현들에서, 고도 차이는 동적으로 결정될 수 있다. 예를 들어, 데스크톱(102)이 0의 고도를 갖고 스크린(200)이 50의 고도를 가지면, 디스플레이 객체들은 고도 차이를 결정하기 위해 디스플레이된 객체들의 수에 의해 스크린 고도 50을 나눔으로써 데스크톱(102)과 스크린(200) 사이에 고르게 간격을 두고 배치될 수 있다. 디스플레이 객체들에 대한 고도 차이들을 동적으로 결정하기 위한 다른 방법들이 이용될 수 있다.
일부 구현들에서, 그래픽 객체들의 고도들은 객체 셰도우들을 발생하는 데 이용될 수 있다. 일부 구현들에서, 그래픽 객체들의 고도들은 디스플레이 객체들과 연관된 셰도우들의 위치, 사이즈, 불투명도 및/또는 흐림 반경을 결정하는 데 이용될 수 있다. 예를 들어, 윈도우(104) 위에 커서(108)에 대한 셰도우를 발생하기 위해서, 고도 차이 'ΔZ1'(208)가 결정되어야 한다. 그렇게 하기 위해서, 고도 'Z2'(204)는 고도 'Z1'(202)로부터 감산될 수 있다. 일단 'ΔZ1'(208)이 계산되면, 커서(108)로부터의 셰도우의 수평 오프셋(예를 들어, X축(140)을 따름)은 광원이 커서(108)를 교차하는 (X축(140)을 따르는) 각도 θ의 탄젠트 및 계산된 값 'ΔZ1'(208)(예를 들어, ΔX1=ΔZ1/tan(θ))에 기초하여 결정될 수 있다. 수직 셰도우 오프셋들(예를 들어, Y축(142)을 따름)은 유사한 방식으로 계산될 수 있다. 일부 구현들에서, 셰도우 오프셋은 픽셀마다(on a per-pixel basis) 계산될 수 있다. 예를 들어, 커서(108)의 각각의 픽셀은 대응하는 셰도우 픽셀을 드리울 수 있다. 셰도우 픽셀의 위치는 계산된 셰도우 오프셋에 기초하여 결정될 수 있다. 예를 들어, 커서(108)의 픽셀이 수평 좌표 'x'에 있고 픽셀 오프셋은 5이면, 대응하는 셰도우 픽셀의 위치는 'x+5'일 수 있다. 따라서, 커서(108)(및 다른 디스플레이 객체들, 윈도우들, 아이콘들 등)에 대한 드롭 셰도우는 커서(108)의 사이즈, 모양 및 위치에 기초하여 실시간으로 발생될 수 있다.
일부 구현들에서, 광원이 시뮬레이션될 수 있다. 예를 들어, 광원의 위치 및 광이 스크린 상의 객체들을 교차하는 각도는 구성된 파라미터일 수 있다. 일부 구현들에서, 광원은 검출될 수 있다. 예를 들어, 카메라에 결합되는 컴퓨팅 디바이스가 카메라를 이용하여 컴퓨팅 디바이스의 외부의 광원을 검출하고 컴퓨팅 디바이스 또는 카메라에 대한 외부 광원의 위치를 계산 또는 도출할 수 있다. 따라서, 컴퓨팅 디바이스 및/또는 카메라가 외부 광원에 대해 이동될 때, 디스플레이 객체들에 대한 컴퓨팅 디바이스에 의해 발생된 동적 셰도우들은 컴퓨팅 디바이스와 외부 광원 사이의 상대 위치의 변화를 반영하도록 조절될 수 있다.
일부 구현들에서, 셰도우의 사이즈는 고도 차이(예를 들어, 셰도우를 드리우는 객체와 셰도우가 드리워지는 객체 사이의 고도들의 차이)가 증가함에 따라 증가될 수 있다. 예를 들어, 고도에서 5 픽셀들마다, 셰도우의 사이즈는 특정 퍼센티지에 의해, 또는 다른 메커니즘에 의해, 1 픽셀 증가될 수 있다. 일부 구현들에서, 셰도우의 불투명도는 고도 차이에 기초하여 조절될 수 있다. 예를 들어, 고도에서 3 픽셀들마다, 셰도우의 불투명도는 5 퍼센트(5%) 감소될 수 있다. 일부 구현들에서, 셰도우의 흐림 반경은 고도 차이에 기초하여 조절될 수 있다. 예를 들어, 고도에서 10 픽셀들마다, 흐림 반경은 20 퍼센트(20%) 증가될 수 있다. 일부 구현들에서, 사이즈, 불투명도 및/또는 흐림 반경에 대한 조절들은 셰도우의 위치가 결정된 후에 적용될 수 있다. 객체 고도들에 기초하여 셰도우들의 위치, 사이즈, 불투명도 및/또는 흐림 반경을 조절하기 위한 다른 메커니즘들이 구현될 수 있다.
일부 구현들에서, 디스플레이 객체(예를 들어, 윈도우, 아이콘들, 데스크톱 등)의 고도가 결정되면, 결정된 고도는 디스플레이 객체의 모든 픽셀에 할당된다. 예를 들어, 윈도우(106)가 40의 고도를 가지면, 윈도우(106)의 모든 픽셀은 40의 고도를 할당받을 수 있다. 윈도우(104)가 35의 고도를 가지면, 윈도우(104)의 모든 픽셀은 35의 고도를 할당받을 수 있다. 따라서, 겹치는 윈도우들(104 및 106)을 렌더링할 때, 윈도우(104)로부터의 픽셀 및 윈도우(106)로부터의 픽셀이 동일한 수평 및 수직 위치(예를 들어, X, Y 위치)를 점유한다면, 가장 큰 고도를 갖는 픽셀이 디스플레이될 수 있다. 이 경우, 윈도우(106)와 연관된 픽셀은 윈도우(104)가 오직 35의 고도를 갖는 동안 윈도우(106)가 40의 고도를 갖기 때문에 디스플레이될 것이다. 일부 구현들에서, 객체의 모든 픽셀에 계산된 객체 고도를 할당하는 것은, 편평한 표면(예를 들어, 윤곽 또는 텍스처 없이)을 갖는 객체가 생기게 할 것이다. 마찬가지로, 이들 편평한 객체들 위에 드리워지는 셰도우들은 또한 (예를 들어, 윤곽들, 텍스처들 등 없이) 편평하게 보일 것이다.
도 3은 그래픽 요소들이 픽셀 고도 오프셋 정보로 구성되는 예시적인 그래픽 사용자 인터페이스(300)를 도시한다. 일부 구현들에서, 그래픽 디스플레이 객체들(예를 들어, 윈도우들, 아이콘들, 데스크톱들, 그래픽 사용자 인터페이스들, 그래픽 요소들 등)은 디스플레이 객체의 모든 픽셀과 고도 오프셋 값을 연관시키는 픽셀 고도 오프셋 정보로 구성될 수 있다. 예를 들어, 픽셀 고도 오프셋 정보는 도 2와 관련하여 전술한 바와 같이, 객체의 결정된 고도로부터 감산 또는 가산될 수 있는 고도 값일 수 있다. 따라서, 일단 고도가 객체에 대해 결정되었다면, 결정된 고도는 객체에 대한 미리 구성된 픽셀 고도 오프셋 정보에 기초하여 조절될 수 있다.
일부 구현들에서, 픽셀 고도 오프셋 정보는 그래픽 디스플레이 객체들에 대해 윤곽들 및/또는 텍스처를 제공하도록 구성될 수 있다. 일부 구현들에서, GUI(300)는 픽셀 고도 오프셋 정보를 갖는 윈도우(302) 및 윈도우(304)를 포함할 수 있다. 예를 들어, 윈도우(302)는 전자 책 애플리케이션을 위한 그래픽 사용자 인터페이스를 제시할 수 있다. 전자 책 애플리케이션의 개발자는 도 4와 관련하여 더 상세하게 설명되는 바와 같이, 펴놓은 책(open book)의 윤곽들에 대응하는 고도 오프셋 정보를 갖는 윈도우(302)의 픽셀들을 구성할 수 있다. 일부 구현들에서, 윈도우(304)는 상이한 고도들과 그래픽 요소들을 연관시키기 위해 픽셀 오프셋 정보로 구성될 수 있다. 예를 들어, 윈도우(304)는 올라간 버튼(306)을 가질 수 있고, 버튼(306)의 픽셀들은 포지티브 고도 오프셋으로 구성된다. 윈도우(304)는 예를 들어 오목한 이미지(308)를 가질 수 있고, 여기서 오목한 이미지(308)의 픽셀들은 네거티브 고도 오프셋으로 구성된다. 일부 구현들에서, 윈도우들(302 및 304) 위에 드리워진 셰도우들은 픽셀 고도 오프셋 정보를 고려하여 발생될 수 있다. 따라서, 윈도우들(302 및 304) 위에 발생된 셰도우들은 윈도우들의 픽셀들에 할당된 픽셀 고도 오프셋 정보에 따라 윤곽이 있는, 텍스처링된(textured) 및/또는 다양화된 프리젠테이션을 가질 수 있다.
도 4는 픽셀 고도 오프셋 정보로 구성된 예시적인 디스플레이 객체(302)를 도시한다. 예를 들어, 디스플레이 객체(302)는 윤곽이 있는 표면(402)으로 구성될 수 있다. 윤곽이 있는 표면(402)은 고도 오프셋 정보로 디스플레이 객체(302)의 픽셀들을 구성함으로써 발생될 수 있다. 예를 들어, 윤곽이 있는 표면(402)의 점선의 각각의 점은 픽셀 및 디스플레이 객체(302)의 픽셀에 대한 대응하는 고도를 나타낼 수 있다. 예를 들어, 디스플레이 객체(302)가 전자 책 애플리케이션에 대한 그래픽 사용자 인터페이스인 경우, 디스플레이 객체(302)의 각각의 픽셀은 물리적 책의 윤곽들을 시뮬레이션하는 고도 오프셋들로 구성될 수 있다. 예를 들어, (예를 들어, 책의 시뮬레이션된 바인딩에서) 페이지의 측면에 있는 픽셀들에 대한 고도 오프셋들은 작은 오프셋들(404)을 가질 수 있고, 페이지의 중간 근처에 있는 픽셀들에 대한 고도 오프셋들은 더 큰 오프셋들(406)을 가질 수 있다. 전자 책 인터페이스가 컴퓨팅 디바이스의 스크린 상에 렌더링될 때, 픽셀 고도 오프셋들은 디스플레이 객체(302)에 대해 결정된 고도(412)로부터 가산(또는 감산)될 수 있다.
일부 구현들에서, 픽셀 고도 오프셋 정보는 드롭 셰도우들을 발생하는 데 이용될 수 있다. 예를 들어, 커서(108)는 디스플레이 객체(302) 상에 셰도우(410)를 드리울 수 있다. 디스플레이 객체(302)가 펴놓은 책의 윤곽들을 시뮬레이션하는 픽셀 고도 오프셋 정보로 구성되기 때문에, 셰도우(410)는 책의 윤곽들과 일치하도록 발생될 수 있다. 예를 들어, 셰도우(410)는 디스플레이 객체(302)에 대해 결정된 고도 및 디스플레이 객체(302)의 각각의 픽셀에 대해 구성된 픽셀 고도 오프셋 정보에 기초하여 발생될 수 있다. 커서(108)가 책 위로 이동될 때, 커서는 책의 윤곽들과 일치하도록 조절될 수 있어 실재의 셰도우들에 근사화된다.
일부 구현들에서, 디스플레이 객체에 대해 발생된 셰도우가 디스플레이 객체에 대한 입력에 기초하여 조절될 수 있다. 예를 들어, 커서(108)에 대한 셰도우가 전술한 바와 같이 발생될 수 있다. 사용자는 커서(108)에 대해(또는 그를 통해) 입력을 제공할 수 있다. 사용자는 커서(108) 아래의 디스플레이 객체가 선택 또는 그렇지 않으면 조작될 수 있도록 선택 동작(예를 들어, 마우스 클릭)을 수행할 수 있다. 예를 들어, 디스플레이 객체(302)는 펴놓은 책을 시뮬레이션하는 전자 책 애플리케이션에 대한 윤곽이 있는 그래픽 사용자 인터페이스를 제시할 수 있다. 디스플레이 객체(302)는 사용자가 커서(108)를 이용하여 책의 페이지를 넘길 수 있도록 구성될 수 있다. 사용자는 전자 책의 페이지의 넘김을 야기하도록 디스플레이 객체(302) 위에 커서(108)가 배치될 때 커서(108)(예를 들어, 마우스 클릭)에 대한 입력을 제공할 수 있다. 일부 구현들에서, 커서(108)와 연관된 드롭 셰도우는 디스플레이 객체(302)의 표면에 대해 커서를 낮추는 것을 시뮬레이션하도록 조절될 수 있다. 예를 들어, 커서(108)의 고도는 커서(108)의 고도가 디스플레이 객체(302)의 고도와 실질적으로 같을 때까지 조절될 수 있다. 커서(108)와 연관된 드롭 셰도우는 커서(108)의 고도의 변화에 따라 조절될 수 있다. 따라서, 커서의 드롭 셰도우는 그것이 커서 아래에 보이거나 또는 커서가 디스플레이 객체(302)의 표면을 터치하는 것으로 보일 때 사라질 때까지 커서에 더 가깝게 이동하도록 애니메이트(animate)될 것이다(예를 들어, 커서는 만약에 있다면 고도 오프셋을 포함하여, 디스플레이 객체(302)의 표면과 실질적으로 동일한 고도를 갖는다).
도 5는 구성 가능한 픽셀 고도 맵을 제공하는 예시적인 그래픽 사용자 인터페이스 편집기(500)를 도시한다. 일부 구현들에서, 그래픽 사용자 인터페이스 편집기(500)는 사용자 인터페이스 개발자가 그래픽 사용자 인터페이스 요소들 및 디스플레이 객체들에 대한 고도 오프셋 정보를 특정할 수 있게 할 수 있다. 예를 들어, 개발자는 애플리케이션 그래픽 사용자 인터페이스(502)를 설계할 수 있다. 애플리케이션 GUI(502)는 백그라운드 영역(504) 및 그래픽 요소들(506, 508 및 510)을 포함할 수 있다. 예를 들어, 그래픽 요소들(506, 508 및 510)은 그래픽 사용자 인터페이스에 포함될 수 있는 이미지들, 버튼들, 메뉴들 또는 임의의 다른 그래픽 요소일 수 있다. GUI(502)는 풀 컬러 인터페이스일 수 있다.
일부 구현들에서, 개발자는 그래픽 사용자 인터페이스(502)의 그레이 스케일 비트맵 디스플레이(gray-scale bitmap display)를 호출할 수 있다. 그레이 스케일 비트맵 디스플레이는 GUI(502)의 픽셀들의 고도들을 표시하는 풀 컬러 GUI(502)의 그레이 스케일 표현일 수 있다. 예를 들어, 픽셀의 그레이 스케일 값(예를 들어, 세기 레벨)은 픽셀의 고도에 대해 나타낼 수 있다. 일부 구현들에서, 세기 레벨들은 흑색(예를 들어, 루미넌스(luminance)의 완전 결여)과 백색(예를 들어, 루미넌스의 완전 존재) 사이의 범위에 대응하고, 퍼센티지(0-100%), 정수 값(예를 들어, 픽셀당 8비트가 이용되는 경우, 0-255), 또는 임의의 다른 표현으로서 표현될 수 있다. 일부 구현들에서, 흑색은 0 고도(또는 최대 고도)를 나타내고, 백색은 최대 고도(또는 최소 고도)를 나타낼 수 있다. 흑색과 백색 사이의 그레이 값들은 0과 최대 고도 사이의 고도들에 대응할 수 있다.
일부 구현들에서, 개발자는 그래픽 사용자 인터페이스(502)의 픽셀들에 고도 오프셋 값들을 할당하기 위해 그레이 스케일 비트맵 디스플레이의 픽셀들을 조절할 수 있다. 예를 들어, 개발자는 픽셀의 고도에서의 대응하는 변화를 야기하기 위해 픽셀의 그레이 스케일 값을 변화시킬 수 있다. 개발자는 임의의 비트맵 편집 기법(예를 들어, 선 그리기, 영역 채움 등)을 이용하여 픽셀의 그레이 스케일 값을 변화시킬 수 있다. 예를 들어, 개발자는 디스플레이 요소(506)를 선택하여 디스플레이 요소에 대해 45% 세기의 그레이 스케일 채움(gray-scale fill)을 표시하는 그래픽 사용자 인터페이스 편집기에 입력을 제공할 수 있다.
도 6은 고도 오프셋 정보를 포함하는 픽셀 컬러 데이터(500)의 예를 도시한다. 일부 구현들에서, 일단 고도 오프셋들(예를 들어, 그레이 스케일 값들)이 GUI(502)의 픽셀들에 할당되면, 고도 오프셋들은 픽셀 컬러 데이터(500)와 함께 저장될 수 있다. 픽셀 컬러 데이터는 픽셀에 대한 컬러 데이터를 저장하는 데 이용될 수 있는 다수의 비트들(예를 들어, 8 비트, 16 비트, 32 비트 등)로 저장될 수 있다. 예를 들어, 풀 컬러 GUI(502)가 발생될 때, GUI(502)의 각각의 픽셀에 대한 컬러 데이터는 32 비트 워드에 저장될 수 있고, 24 비트는 적색(502)(8 비트), 녹색(504)(8 비트) 및 청색(506)(8 비트)(RGB) 컬러 데이터를 위해 이용된다. 32 비트 워드의 남아있는 8 비트(Z 508)는 픽셀에 대한 고도 정보를 저장하는 데 이용될 수 있다. 예를 들어, 고도에 대응하는 픽셀의 그레이 스케일 값은 남아있는 8 비트에 저장될 수 있다. 일부 구현들에서, 픽셀 고도 오프셋 정보는 픽셀 컬러 데이터와 별개로 저장될 수 있다.
일부 구현들에서, GUI(502)가 디스플레이 스크린 상에 렌더링될 때, 픽셀 컬러 데이터(R 502, G 504, B 506)는 GUI(502)의 풀 컬러 디스플레이를 렌더링하는 데 이용될 수 있다. 일부 구현들에서, 셰도우들 및/또는 다른 3차원 효과들이 디스플레이 스크린 상에 렌더링될 때, 픽셀 고도 오프셋 정보(Z 508)는 셰도우들 및 3차원 효과들을 렌더링하는 데 이용될 수 있다. 따라서, 그래픽 사용자 인터페이스의 모든 픽셀은 고도 오프셋 정보로 구성될 수 있어 그래픽 사용자 인터페이스들이 윤곽이 있는 및/또는 텍스처링된 3차원 표면들로 구성될 수 있게 한다. 이 픽셀 고도 데이터는 실재의 셰도우들을 시뮬레이션 또는 근사화할 수 있는 동적 셰도우들을 렌더링하는 데 이용될 수 있다.
예시적인 프로세스들
도 7은 디스플레이 객체들에 대한 동적 셰도우들을 발생하기 위한 예시적인 프로세스(700)의 흐름도이다. 일부 구현들에서, 셰도우들은 디스플레이 객체들에 대해 계산된 고도들 및 디스플레이 객체들의 픽셀들에 대한 픽셀 고도 오프셋 정보에 기초하여 동적으로 발생될 수 있다. 예를 들어, 픽셀 고도 오프셋들은 디스플레이 객체 상의 윤곽이 있는, 텍스처링된 및/또는 기복이 있는(undulating) 표면들을 제공하기 위해 디스플레이 객체의 고도에 가산될 수 있다. 디스플레이 객체에 발생된 셰도우들은 픽셀 고도 오프셋 정보에 따라 디스플레이 객체의 윤곽이 있는, 텍스처링된 및/또는 기복이 있는 표면들을 반영 또는 표현하도록 동적으로 조절될 수 있다.
단계(702)에서, 그래픽 사용자 인터페이스 객체들에 대한 고도들(예를 들어, Z축 위치들, 좌표들, 값들 등)이 결정될 수 있다. 예를 들어, 윈도우들, 커서들, 아이콘들 및/또는 다른 사용자 인터페이스 디스플레이 객체들의 고도들이 결정될 수 있다. 일부 구현들에서, 디스플레이 객체의 고도는 다른 디스플레이 객체들에 대해 결정될 수 있다. 예를 들어, 사용자 인터페이스 상에 디스플레이된 그래픽 객체들이 리스트, 어레이, 또는 다른 수집 데이터 타입(collection data type)으로 관리되는 경우, 디스플레이 객체들은 도 2를 참조하여 전술한 바와 같이, 리스트의 디스플레이 객체들의 위치에 기초하여 고도에서 간격을 두고 배치될 수 있다.
단계(704)에서, 그래픽 사용자 인터페이스 객체들에 대한 픽셀 고도 오프셋 정보가 획득될 수 있다. 일부 구현들에서, 그래픽 디스플레이 객체들은 픽셀 고도 오프셋 정보로 구성될 수 있다. 예를 들어, 사용자 인터페이스 개발자는 디스플레이 객체(예를 들어, 윈도우, 애플리케이션 사용자 인터페이스, 아이콘 등)를 발생하고, 디스플레이 객체의 표면에 텍스처, 윤곽들, 기복들 및/또는 다른 표면 특성들을 제공하기 위해 픽셀 고도 오프셋 정보로 디스플레이 객체를 구성할 수 있다. 일부 구현들에서, 픽셀 고도 오프셋 정보로 디스플레이 객체를 구성함으로써, 사용자 인터페이스 개발자는 달리 편평한 디스플레이 객체를 취할 수 있고, 디스플레이 객체에 3차원 외관 및 느낌을 제공할 수 있다. 일부 구현들에서, 디스플레이 객체의 각각의 픽셀은 픽셀 고도 오프셋 정보로 개별적으로 구성될 수 있다. 일단 디스플레이 객체가 픽셀 고도 오프셋 정보로 구성되었다면, 픽셀 고도 오프셋 정보는 디스플레이 객체 및 셰도우들을 렌더링하기 위해 액세스되고 이용될 수 있다.
단계(706)에서, 셰도우들은 디스플레이 객체들에 대한 고도 및 픽셀 고도 오프셋 정보에 기초하여 발생될 수 있다. 일부 구현들에서, 픽셀 고도는 픽셀과 연관된 객체의 고도 및 픽셀에 대해 구성된 고도 오프셋에 기초하여 계산될 수 있다. 예를 들어, 디스플레이 객체의 픽셀이 5의 고도 오프셋을 갖고 디스플레이 객체가 40의 고도를 갖는다면, 픽셀의 고도는 45인 것으로 계산될 수 있다.
일단 픽셀 고도들이 계산되었다면, 픽셀 고도들은 동적 셰도우들을 발생하는 데 이용될 수 있다. 예를 들어, 계산된 픽셀 고도들에 기초하여 데스크톱 위에 가장 높은 고도를 갖는 각각의 디스플레이 객체의 픽셀들을 포함하는 통합 고도 비트맵(consolidated elevation bitmap)(예를 들어, 디스플레이를 렌더링하기 위해 이용되는 고도 비트맵)이 발생될 수 있다. 예를 들어, 복수의 디스플레이 객체들이 겹쳐질 수 있고 따라서 겹치는 객체들은 동일한 좌표들(예를 들어, X, Y 좌표들)을 갖는 픽셀들을 가질 수 있다. 그러나, 겹치는 픽셀들의 각각은 상이한 고도(Z 값/좌표, 고도 등)를 가질 수 있다. 일부 구현들에서, 가장 높은 고도를 갖는 픽셀들만이 통합 고도 비트맵에 포함될 것이다.
일부 구현들에서, 셰도우들은 픽셀마다 셰도우잉(shadowing)의 양을 결정하는 그래픽 프로세싱 유닛(GPU) 필터를 이용하여 발생될 수 있다. 예를 들어, 통합 고도 맵을 검색함으로써, 필터는 1 고도에서의 주어진 픽셀이 더 높은 고도에서의 픽셀에 의해 셰도우잉되는지를 결정할 수 있다. 픽셀이 셰도우잉되는 경우, GPU는 2개의 픽셀 사이의 상대 거리에 기초하여 세기 값을 계산할 수 있다. 세기 값은 그 다음에, 고도에서 가까운 픽셀들에 드리워지는 셰도우들은 더 선명하고, 더 멀리 떨어진 픽셀들에 드리워지는 셰도우들은 더 흐리도록, 셰도우의 불투명도 및 흐림 반경을 둘다 변조하는 데 이용될 수 있다.
단계(708)에서, 디스플레이 객체들 및 셰도우들을 포함하는 그래픽 사용자 인터페이스가 디스플레이될 수 있다. 예를 들어, 컴퓨팅 디바이스의 그래픽 프로세싱 유닛은 윈도우들, 커서들, 아이콘들, 다른 디스플레이 객체들 및 그것들의 셰도우들을 포함하는 사용자 인터페이스를 디스플레이 디바이스 상에 렌더링할 수 있다.
도 8은 디스플레이 객체들에 대한 픽셀 고도 오프셋들을 구성하기 위한 예시적인 프로세스(800)의 흐름도이다. 일부 구현들에서, 디스플레이 객체들에 대한 픽셀 고도 오프셋 정보는 디스플레이 객체들에 대응하는 그레이 스케일 비트맵을 편집함으로써 구성될 수 있다.
단계(802)에서, 그래픽 사용자 인터페이스 편집기가 디스플레이될 수 있다. 일부 구현들에서, 그래픽 사용자 인터페이스 편집기는 그래픽 사용자 인터페이스 요소들(예를 들어, 애플리케이션 그래픽 사용자 인터페이스들)을 발생하기 위해 사용자 인터페이스 개발자에 의해 이용될 수 있다. 그래픽 사용자 인터페이스 편집기는 구성하에서 그래픽 사용자 인터페이스의 풀 컬러 디스플레이를 제시할 수 있다.
단계(804)에서, 픽셀 고도 오프셋 비트맵이 디스플레이될 수 있다. 일부 구현들에서, 사용자는 그래픽 사용자 인터페이스 편집기에 입력(예를 들어, 메뉴 아이템 또는 툴바에 대한)을 제공하여 편집기가 그래픽 사용자 인터페이스와 연관된 고도 맵을 디스플레이하도록 할 수 있다. 예를 들어, 그래픽 사용자 인터페이스의 그레이 스케일 고도 비트맵 이미지가 디스플레이될 수 있다. 비트맵의 각각의 픽셀의 세기는 픽셀과 연관된 고도를 나타낼 수 있다. 예를 들어, 흑색은 0 고도에 대응하고 백색은 최대 고도에 대응한다면, 그레이 픽셀은 0(흑색)과 최대(백색) 고도 사이의 고도를 갖는 픽셀이다. 일부 구현들에서, 디스플레이 객체의 각각의 픽셀은 0의 디폴트 고도를 가질 수 있다. 그러나, 디스플레이 객체의 픽셀들이 고도 값으로 구성되었다면, 그레이 스케일 비트맵의 픽셀들은 픽셀에 대해 구성된 고도를 반영할 것이다(예를 들어, 픽셀은 구성된 고도에 기초하여 흑색, 백색, 또는 그레이를 디스플레이할 것이다).
단계(806)에서, 픽셀 고도 오프셋 정보는 픽셀 고도 오프셋 비트맵을 수정함으로써 조절될 수 있다. 일부 구현들에서, 그래픽 사용자 인터페이스 개발자는 그레이 스케일 고도 비트맵을 편집할 수 있다. 예를 들어, 개발자는 픽셀들의 세기를 변경하기 위해 비트맵을 편집할 수 있다. 비트맵의 편집은 알려진 비트맵 편집 기법들을 이용하여 수행될 수 있다. 예를 들어, 비트맵은 비트맵 영역 채우기, 선 그리기, 및 다른 비트맵 이미지 편집 기능들을 허용하는 비트맵 편집기를 이용하여 편집될 수 있다.
단계(808)에서, 픽셀 고도 오프셋 정보가 저장될 수 있다. 일부 구현들에서, 픽셀 고도 오프셋 정보는 디스플레이 객체에 대한 픽셀 컬러 데이터와 저장될 수 있다. 예를 들어, 픽셀에 대한 고도 데이터는 도 6을 참조하여 설명된 바와 같이, 픽셀에 대한 컬러 데이터를 저장하는 데 이용되는 동일한 데이터 구조에 저장될 수 있다.
예시적인 시스템 아키텍처
도 9는 도 1-8의 특징들 및 프로세스들을 구현하는 예시적인 시스템 아키텍처의 블록도이다. 아키텍처(900)는 퍼스널 컴퓨터들, 서버들, 스마트폰들, 미디어 플레이어들, 전자 태블릿들, 게임 콘솔들, 이메일 디바이스들 등을 포함하는(이것으로 한정되지 않음), 컴파일된 명령어들로부터 도출되는 소프트웨어 애플리케이션들을 실행하는 임의의 전자 디바이스 상에서 구현될 수 있다. 일부 구현들에서, 아키텍처(900)는 하나 이상의 프로세서들(902), 하나 이상의 입력 디바이스들(904), 하나 이상의 디스플레이 디바이스들(906), 하나 이상의 네트워크 인터페이스들(908) 및 하나 이상의 컴퓨터 판독 가능한 매체들(910)을 포함할 수 있다. 이들 컴포넌트들의 각각은 버스(912)에 의해 결합될 수 있다.
디스플레이 디바이스(906)는 LCD(Liquid Crystal Display) 또는 LED(Light Emitting Diode) 기술을 이용하는 디스플레이 디바이스들을 포함하는(이것으로 한정되지 않음) 임의의 알려진 디스플레이 기술일 수 있다. 프로세서(들)(902)는 그래픽 프로세서들 및 멀티 코어 프로세서들을 포함하는(이것으로 한정되지 않음) 임의의 알려진 프로세서 기술을 이용할 수 있다. 입력 디바이스(904)는 키보드(가상 키보드를 포함함), 마우스, 트랙볼, 및 터치 민감 패드 또는 디스플레이를 포함하는(이것으로 한정되지 않음) 임의의 알려진 입력 디바이스 기술일 수 있다. 버스(912)는 ISA, EISA, PCI, PCI Express, NuBus, USB, Serial ATA 또는 FireWire를 포함하는(이것으로 한정되지 않음) 임의의 알려진 내부 또는 외부 버스 기술일 수 있다. 컴퓨터 판독 가능한 매체(910)는 불휘발성 저장 매체(예를 들어, 광학 디스크들, 자기 디스크들, 플래시 드라이브들 등) 또는 휘발성 매체(예를 들어, SDRAM, ROM 등)를 포함하는(이것으로 한정되지 않음), 실행을 위한 프로세서(들)(902)에 명령어들을 제공하는 데 참여하는 임의의 매체일 수 있다.
컴퓨터 판독 가능한 매체(910)는 오퍼레이팅 시스템(예를 들어, Mac OS®, Windows®, Linux)을 구현하기 위한 다양한 명령어들(914)을 포함할 수 있다. 오퍼레이팅 시스템은 멀티 유저, 멀티 프로세싱, 멀티 태스킹, 멀티 스레딩, 실시간 등일 수 있다. 오퍼레이팅 시스템은 입력 디바이스(904)로부터의 입력을 인식하고; 디스플레이 디바이스(906)에 출력을 전송하고; 컴퓨터 판독 가능한 매체(910) 상의 파일들 및 디렉터리들을 추적하고; 직접 또는 I/O 컨트롤러를 통해 제어될 수 있는 주변 디바이스들(예를 들어, 디스크 드라이브들, 프린터들 등)을 제어하고; 버스(912)에서의 트래픽을 관리하는 것을 포함하는(이것으로 한정되지 않음) 기본적인 태스크들을 수행한다. 네트워크 통신 명령어들(916)은 네트워크 접속들(예를 들어, TCP/IP, HTTP, 이더넷 등과 같은 통신 프로토콜들을 구현하기 위한 소프트웨어)을 구축하고 유지할 수 있다.
그래픽 프로세싱 시스템(918)은 그래픽 및 이미지 프로세싱 능력들을 제공하는 명령어들을 포함할 수 있다. 예를 들어, 그래픽 프로세싱 시스템(918)은 도 1-8을 참조하여 설명되는 바와 같이 동적 그래픽 인터페이스 셰도우잉을 구현할 수 있다. 애플리케이션(들)(920)은 도 1-8을 참조하여 설명된 프로세스들을 이용하거나 구현하거나 동적 그래픽 인터페이스 셰도우잉을 지원하도록 구성되는 애플리케이션일 수 있다. 예를 들어, 애플리케이션(들)(920)과 연관된 그래픽 사용자 인터페이스들은 더욱 실물과 똑같은 방식으로 셰도우들을 시뮬레이션하는 것을 허용하는 픽셀 고도 오프셋 정보로 구성될 수 있다. 동적 그래픽 인터페이스 셰도우잉은 또한 오퍼레이팅 시스템(914)에서 구현될 수 있다.
설명된 특징들은 데이터 저장 시스템, 적어도 하나의 입력 디바이스, 및 적어도 하나의 출력 디바이스로부터 데이터 및 명령어들을 수신하고 거기에 데이터 및 명령어들을 전송하도록 결합된 적어도 하나의 프로그램 가능한 프로세서를 포함하는 프로그램 가능한 시스템에서 실행가능한 하나 이상의 컴퓨터 프로그램에서 유리하게 구현될 수 있다. 컴퓨터 프로그램은 특정 활동을 수행하거나 특정 결과를 가져오도록 컴퓨터에서 직접 또는 간접적으로 이용될 수 있는 명령어들의 세트이다. 컴퓨터 프로그램은 컴파일된 또는 해석된 언어들을 포함하는 임의의 형태의 프로그래밍 언어(예를 들어, Objective-C, Java)로 쓰여질 수 있고, 그것은 독립형 프로그램으로서 또는 모듈, 컴포넌트, 서브루틴, 또는 컴퓨팅 환경에서 이용하는 데 적절한 다른 유닛으로서 포함하는, 임의의 형태로 배치될 수 있다.
명령어들의 프로그램의 실행을 위한 적절한 프로세서들은 예시적으로, 임의의 종류의 컴퓨터의, 범용 및 특수 목적 마이크로프로세서들과, 단독 프로세서 또는 복수의 프로세서들 또는 코어들 중 하나를 둘다 포함한다. 일반적으로, 프로세서는 리드 온리 메모리 또는 랜덤 액세스 메모리 또는 둘다로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 필수 요소들은 명령어들을 실행하기 위한 프로세서 및 명령어들 및 데이터를 저장하기 위한 하나 이상의 메모리이다. 일반적으로, 컴퓨터는 또한 데이터 파일들을 저장하기 위한 하나 이상의 대용량 저장 디바이스들을 포함하거나, 그와 통신하도록 동작가능하게 결합될 것이고; 이러한 디바이스들은 내부 하드 디스크들 및 제거가능한 디스크들과 같은 자기 디스크들, 광자기 디스크들, 및 광학 디스크들을 포함한다. 컴퓨터 프로그램 명령어들 및 데이터를 유형으로 구현하는 데 적절한 저장 디바이스들은 예시적으로, EPROM, EEPROM, 및 플래시 메모리 디바이스들과 같은 반도체 메모리 디바이스들; 내부 하드 디스크들 및 제거가능한 디스크들과 같은 자기 디스크들; 광자기 디스크들; 및 CD-ROM 및 DVD-ROM 디스크들을 포함하는, 모든 형태의 불휘발성 메모리를 포함한다. 프로세서 및 메모리는 ASICs(application-specific integrated circuits)에 의해 보충될 수 있거나 그 안에 통합될 수 있다.
사용자와의 상호작용을 제공하기 위해서, 특징들은 사용자에게 정보를 디스플레이하기 위한 CRT(cathode ray tube) 또는 LCD(liquid crystal display) 모니터와 같은 디스플레이 디바이스와, 사용자가 컴퓨터에 입력을 제공할 수 있는 마우스 또는 트랙볼과 같은 포인팅 디바이스 및 키보드를 갖는 컴퓨터 상에 구현될 수 있다.
특징들은 데이터 서버와 같은 백엔드 컴포넌트를 포함하거나, 또는 애플리케이션 서버 또는 인터넷 서버와 같은 미들웨어 컴포넌트를 포함하거나, 또는 그래픽 사용자 인터페이스 또는 인터넷 브라우저를 갖는 클라이언트 컴퓨터와 같은 프론트엔드 컴포넌트를 포함하거나, 또는 그것들의 임의의 조합을 포함하는 컴퓨터 시스템에서 구현될 수 있다. 시스템의 컴포넌트들은 통신 네트워크와 같은 디지털 데이터 통신의 임의의 형태 또는 매체에 의해 접속될 수 있다. 통신 네트워크들의 예들은 예를 들어, LAN, WAN, 및 인터넷을 형성하는 컴퓨터들과 네트워크들을 포함한다.
컴퓨터 시스템은 클라이언트들 및 서버들을 포함할 수 있다. 클라이언트 및 서버는 일반적으로 서로 떨어져 있고, 통상적으로 네트워크를 통해 상호작용한다. 클라이언트와 서버의 관계는 각각의 컴퓨터들 상에서 실행되는 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램들에 의해 생긴다.
개시된 실시예들의 하나 이상의 특징들 또는 단계들은 API를 이용하여 구현될 수 있다. API는 호출하는 애플리케이션(calling application)과, 서비스를 제공하는, 데이터를 제공하는, 또는 연산 또는 계산을 수행하는 다른 소프트웨어 코드(예를 들어, 오퍼레이팅 시스템, 라이브러리 루틴, 함수) 사이에 전달되는 하나 이상의 파라미터를 정의할 수 있다.
API는 API 사양 문서에 정의된 호출 규약(call convention)에 기초하여 파라미터 리스트 또는 다른 구조를 통해 하나 이상의 파라미터들을 송신 또는 수신하는 프로그램 코드의 하나 이상의 호출들로서 구현될 수 있다. 파라미터는 상수, 키, 데이터 구조, 오브젝트, 오브젝트 클래스, 변수, 데이터 타입, 포인터, 어레이, 리스트, 또는 다른 호출일 수 있다. API 호출들 및 파라미터들은 임의의 프로그래밍 언어로 구현될 수 있다. 프로그래밍 언어는 프로그래머가 API를 지원하는 함수들에 액세스하는 데 활용할 용어 및 호출 규약을 정의할 수 있다.
일부 구현들에서, API 호출은 입력 능력, 출력 능력, 프로세싱 능력, 전력 능력, 통신 능력 등과 같은, 애플리케이션을 실행하는 디바이스의 능력들을 애플리케이션에 보고할 수 있다.
다수의 구현들이 설명되었다. 그럼에도, 다양한 수정들이 만들어질 수 있다는 것을 이해할 것이다. 예를 들어, 설명된 흐름들로부터, 다른 단계들이 제공될 수 있거나, 단계들이 제거될 수 있고, 설명된 시스템들에 다른 컴포넌트들이 부가되거나 그로부터 제거될 수 있다. 따라서, 다른 구현들은 다음의 청구항들의 범위 내에 있다.
따라서, 전술한 것에 따르면, 개시의 일부 예들은, 제1 그래픽 사용자 인터페이스 요소에 대한 고도 값을 결정하는 단계 - 상기 고도 값은 그래픽 사용자 인터페이스 디스플레이에 수직인 축을 따르는 거리에 대응함 - ; 상기 제1 그래픽 사용자 인터페이스 요소의 픽셀들에 대한 고도 오프셋 값들을 획득하는 단계; 결정된 고도 값 및 고도 오프셋 값들에 기초하여 제2 그래픽 사용자 인터페이스 요소와 연관된 셰도우를 발생하는 단계; 및 상기 제1 그래픽 사용자 인터페이스 요소 및 상기 셰도우를 디스플레이하는 단계를 포함하는 방법과 관련된다. 위에 개시된 예들 중 하나 이상에 대해 부가적으로 또는 대안적으로, 일부 예들에서 상기 제1 그래픽 사용자 인터페이스 요소는 오퍼레이팅 시스템의 윈도우이다. 위에 개시된 예들 중 하나 이상에 대해 부가적으로 또는 대안적으로, 일부 예들에서 상기 제1 그래픽 사용자 인터페이스 요소는 아이콘이다. 위에 개시된 예들 중 하나 이상에 대해 부가적으로 또는 대안적으로, 일부 예들에서 방법은, 상기 고도 값 및 상기 고도 오프셋 값들에 기초하여 상기 셰도우의 사이즈를 결정하는 단계; 및 결정된 사이즈에 기초하여 상기 셰도우를 발생하는 단계를 더 포함한다. 위에 개시된 예들 중 하나 이상에 대해 부가적으로 또는 대안적으로, 일부 예들에서 방법은, 상기 고도 값 및 상기 고도 오프셋 값들에 기초하여 상기 셰도우의 불투명도를 결정하는 단계; 및 결정된 불투명도에 기초하여 상기 셰도우를 발생하는 단계를 더 포함한다. 위에 개시된 예들 중 하나 이상에 대해 부가적으로 또는 대안적으로, 일부 예들에서 방법은, 상기 고도 값 및 상기 고도 오프셋 값들에 기초하여 상기 셰도우에 대한 흐림 반경을 결정하는 단계; 및 결정된 흐림 반경에 기초하여 상기 셰도우를 발생하는 단계를 더 포함한다.
개시의 일부 예들은, 그래픽 사용자 인터페이스 편집기에서, 그래픽 사용자 인터페이스를 디스플레이하는 단계; 상기 그래픽 사용자 인터페이스의 픽셀들에 대한 픽셀 고도 오프셋 값들을 특정하는 사용자 입력을 수신하는 단계; 및 상기 픽셀 고도 오프셋 값들을 저장하는 단계를 포함하는 방법과 관련된다. 위에 개시된 예들 중 하나 이상에 대해 부가적으로 또는 대안적으로, 일부 예들에서 방법은, 상기 그래픽 사용자 인터페이스의 고도 맵(elevation map)을 디스플레이하는 단계를 더 포함하고, 상기 고도 맵의 각각의 픽셀은 상기 그래픽 사용자 인터페이스의 대응하는 픽셀의 고도 오프셋을 나타내는 세기 값(intensity value)을 갖는다. 위에 개시된 예들 중 하나 이상에 대해 부가적으로 또는 대안적으로, 일부 예들에서 방법은, 상기 고도 맵의 하나 이상의 픽셀들에 대한 세기 값을 표시하는 입력을 수신하는 단계; 수신된 세기 값에 기초하여 고도 맵 픽셀들의 상기 세기 값들을 조절하는 단계; 상기 수신된 세기 값에 기초하여 대응하는 그래픽 사용자 인터페이스 픽셀들의 고도 오프셋을 조절하는 단계; 및 상기 수신된 세기 값들에 기초하여 상기 고도 맵의 디스플레이를 조절하는 단계를 더 포함한다.
개시의 일부 예들은, 하나 이상의 프로세서에 의해 실행될 때, 제1 그래픽 사용자 인터페이스 요소에 대한 고도 값을 결정하는 단계 - 상기 고도 값은 그래픽 사용자 인터페이스 디스플레이에 수직인 축을 따르는 거리에 대응함 - ; 상기 제1 그래픽 사용자 인터페이스 요소의 픽셀들에 대한 고도 오프셋 값들을 획득하는 단계; 결정된 고도 값 및 고도 오프셋 값들에 기초하여 제2 그래픽 사용자 인터페이스 요소와 연관된 셰도우를 발생하는 단계; 및 상기 제1 그래픽 사용자 인터페이스 요소 및 상기 셰도우를 디스플레이하는 단계를 야기하는 명령어들의 하나 이상의 시퀀스들을 포함하는 비-일시적(non-transitory) 컴퓨터 판독 가능한 매체와 관련된다. 위에 개시된 예들 중 하나 이상에 대해 부가적으로 또는 대안적으로, 일부 예들에서 상기 제1 그래픽 사용자 인터페이스 요소는 오퍼레이팅 시스템의 윈도우이다. 위에 개시된 예들 중 하나 이상에 대해 부가적으로 또는 대안적으로, 일부 예들에서 상기 제1 그래픽 사용자 인터페이스 요소는 아이콘이다. 위에 개시된 예들 중 하나 이상에 대해 부가적으로 또는 대안적으로, 일부 예들에서 상기 명령어들은 또한, 상기 고도 값 및 상기 고도 오프셋 값들에 기초하여 상기 셰도우의 사이즈를 결정하는 단계; 및 결정된 사이즈에 기초하여 상기 셰도우를 발생하는 단계를 야기한다. 위에 개시된 예들 중 하나 이상에 대해 부가적으로 또는 대안적으로, 일부 예들에서 상기 명령어들은 또한, 상기 고도 값 및 상기 고도 오프셋 값들에 기초하여 상기 셰도우의 불투명도를 결정하는 단계; 및 결정된 불투명도에 기초하여 상기 셰도우를 발생하는 단계를 야기한다. 위에 개시된 예들 중 하나 이상에 대해 부가적으로 또는 대안적으로, 일부 예들에서 상기 명령어들은 또한, 상기 고도 값 및 상기 고도 오프셋 값들에 기초하여 상기 셰도우에 대한 흐림 반경을 결정하는 단계; 및 결정된 흐림 반경에 기초하여 상기 셰도우를 발생하는 단계를 야기한다.
개시의 일부 예들은, 하나 이상의 프로세서에 의해 실행될 때, 그래픽 사용자 인터페이스 편집기에서, 그래픽 사용자 인터페이스를 디스플레이하는 단계; 상기 그래픽 사용자 인터페이스의 픽셀들에 대한 픽셀 고도 오프셋 값들을 특정하는 사용자 입력을 수신하는 단계; 및 상기 픽셀 고도 오프셋 값들을 저장하는 단계를 야기하는 명령어들의 하나 이상의 시퀀스들을 포함하는 비-일시적 컴퓨터 판독 가능한 매체와 관련된다. 위에 개시된 예들 중 하나 이상에 대해 부가적으로 또는 대안적으로, 일부 예들에서 상기 명령어들은 또한, 상기 그래픽 사용자 인터페이스의 고도 맵을 디스플레이하는 단계를 야기하고, 상기 고도 맵의 각각의 픽셀은 상기 그래픽 사용자 인터페이스의 대응하는 픽셀의 고도 오프셋을 나타내는 세기 값을 갖는다. 위에 개시된 예들 중 하나 이상에 대해 부가적으로 또는 대안적으로, 일부 예들에서 상기 명령어들은 또한, 상기 고도 맵의 하나 이상의 픽셀들에 대한 세기 값을 표시하는 입력을 수신하는 단계; 수신된 세기 값에 기초하여 고도 맵 픽셀들의 상기 세기 값들을 조절하는 단계; 상기 수신된 세기 값에 기초하여 대응하는 그래픽 사용자 인터페이스 픽셀들의 고도 오프셋을 조절하는 단계; 및 상기 수신된 세기 값들에 기초하여 상기 고도 맵의 디스플레이를 조절하는 단계를 야기한다.
개시의 일부 예들은, 컴퓨팅 디바이스의 터치 인터페이스에 대한 터치 입력을 수신하는 단계; 상기 터치 입력과 연관된 상기 터치 인터페이스의 영역을 결정하는 단계; 제1 그래픽 사용자 인터페이스 요소에 대한 고도 값을 결정하는 단계 - 상기 고도 값은 그래픽 사용자 인터페이스 디스플레이에 수직인 축을 따르는 거리에 대응함 - ; 상기 제1 그래픽 사용자 인터페이스 요소의 픽셀들에 대한 고도 오프셋 값들을 획득하는 단계; 상기 영역, 결정된 고도 값 및 고도 오프셋 값들에 기초하여 상기 터치 입력과 연관된 셰도우를 발생하는 단계; 및 상기 제1 그래픽 사용자 인터페이스 요소 및 상기 셰도우를 디스플레이하는 단계를 포함하는 방법과 관련된다.

Claims (19)

  1. 제1 그래픽 사용자 인터페이스 요소에 대한 고도 값(elevation value)을 결정하는 단계 - 상기 고도 값은 그래픽 사용자 인터페이스 디스플레이에 수직인 축을 따르는 거리에 대응함 - ;
    상기 제1 그래픽 사용자 인터페이스 요소의 픽셀들에 대한 고도 오프셋 값들을 획득하는 단계;
    결정된 상기 고도 값 및 상기 고도 오프셋 값들에 기초하여 제2 그래픽 사용자 인터페이스 요소와 연관된 셰도우(shadow)를 발생하는 단계; 및
    상기 제1 그래픽 사용자 인터페이스 요소 및 상기 셰도우를 디스플레이하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 제1 그래픽 사용자 인터페이스 요소는 오퍼레이팅 시스템의 윈도우인 방법.
  3. 제1항에 있어서, 상기 제1 그래픽 사용자 인터페이스 요소는 아이콘인 방법.
  4. 제1항에 있어서,
    상기 고도 값 및 상기 고도 오프셋 값들에 기초하여 상기 셰도우의 사이즈를 결정하는 단계; 및
    결정된 상기 사이즈에 기초하여 상기 셰도우를 발생하는 단계
    를 더 포함하는 방법.
  5. 제1항에 있어서,
    상기 고도 값 및 상기 고도 오프셋 값들에 기초하여 상기 셰도우의 불투명도(opacity)를 결정하는 단계; 및
    결정된 상기 불투명도에 기초하여 상기 셰도우를 발생하는 단계
    를 더 포함하는 방법.
  6. 제1항에 있어서,
    상기 고도 값 및 상기 고도 오프셋 값들에 기초하여 상기 셰도우에 대한 흐림 반경(blur radius)을 결정하는 단계; 및
    결정된 상기 흐림 반경에 기초하여 상기 셰도우를 발생하는 단계
    를 더 포함하는 방법.
  7. 그래픽 사용자 인터페이스 편집기에서, 그래픽 사용자 인터페이스를 디스플레이하는 단계;
    상기 그래픽 사용자 인터페이스의 픽셀들에 대한 픽셀 고도 오프셋 값들을 특정하는 사용자 입력을 수신하는 단계; 및
    상기 픽셀 고도 오프셋 값들을 저장하는 단계
    를 포함하는 방법.
  8. 제7항에 있어서,
    상기 그래픽 사용자 인터페이스의 고도 맵(elevation map)을 디스플레이하는 단계를 더 포함하고, 상기 고도 맵의 각각의 픽셀은 상기 그래픽 사용자 인터페이스의 대응하는 픽셀의 고도 오프셋을 나타내는 세기 값(intensity value)을 갖는 방법.
  9. 제8항에 있어서,
    상기 고도 맵의 하나 이상의 픽셀들에 대한 세기 값을 표시하는 입력을 수신하는 단계;
    수신된 상기 세기 값에 기초하여 고도 맵 픽셀들의 상기 세기 값들을 조절하는 단계;
    상기 수신된 세기 값에 기초하여 대응하는 그래픽 사용자 인터페이스 픽셀들의 고도 오프셋을 조절하는 단계; 및
    상기 수신된 세기 값들에 기초하여 상기 고도 맵의 디스플레이를 조절하는 단계
    를 더 포함하는 방법.
  10. 하나 이상의 프로세서에 의해 실행될 때,
    제1 그래픽 사용자 인터페이스 요소에 대한 고도 값을 결정하는 단계 - 상기 고도 값은 그래픽 사용자 인터페이스 디스플레이에 수직인 축을 따르는 거리에 대응함 - ;
    상기 제1 그래픽 사용자 인터페이스 요소의 픽셀들에 대한 고도 오프셋 값들을 획득하는 단계;
    결정된 고도 값 및 고도 오프셋 값들에 기초하여 제2 그래픽 사용자 인터페이스 요소와 연관된 셰도우를 발생하는 단계; 및
    상기 제1 그래픽 사용자 인터페이스 요소 및 상기 셰도우를 디스플레이하는 단계
    를 야기하는 명령어들의 하나 이상의 시퀀스들을 포함하는 비-일시적(non-transitory) 컴퓨터 판독 가능한 매체.
  11. 제10항에 있어서, 상기 제1 그래픽 사용자 인터페이스 요소는 오퍼레이팅 시스템의 윈도우인 컴퓨터 판독 가능한 매체.
  12. 제10항에 있어서, 상기 제1 그래픽 사용자 인터페이스 요소는 아이콘인 컴퓨터 판독 가능한 매체.
  13. 제10항에 있어서, 상기 명령어들은,
    상기 고도 값 및 상기 고도 오프셋 값들에 기초하여 상기 셰도우의 사이즈를 결정하는 단계; 및
    결정된 상기 사이즈에 기초하여 상기 셰도우를 발생하는 단계
    를 야기하는 컴퓨터 판독 가능한 매체.
  14. 제10항에 있어서, 상기 명령어들은,
    상기 고도 값 및 상기 고도 오프셋 값들에 기초하여 상기 셰도우의 불투명도를 결정하는 단계; 및
    결정된 상기 불투명도에 기초하여 상기 셰도우를 발생하는 단계
    를 야기하는 컴퓨터 판독 가능한 매체.
  15. 제10항에 있어서, 상기 명령어들은,
    상기 고도 값 및 상기 고도 오프셋 값들에 기초하여 상기 셰도우에 대한 흐림 반경을 결정하는 단계; 및
    결정된 상기 흐림 반경에 기초하여 상기 셰도우를 발생하는 단계
    를 야기하는 컴퓨터 판독 가능한 매체.
  16. 하나 이상의 프로세서에 의해 실행될 때,
    그래픽 사용자 인터페이스 편집기에서, 그래픽 사용자 인터페이스를 디스플레이하는 단계;
    상기 그래픽 사용자 인터페이스의 픽셀들에 대한 픽셀 고도 오프셋 값들을 특정하는 사용자 입력을 수신하는 단계; 및
    상기 픽셀 고도 오프셋 값들을 저장하는 단계
    를 야기하는 명령어들의 하나 이상의 시퀀스들을 포함하는 비-일시적 컴퓨터 판독 가능한 매체.
  17. 제16항에 있어서, 상기 명령어들은,
    상기 그래픽 사용자 인터페이스의 고도 맵을 디스플레이하는 단계를 야기하고, 상기 고도 맵의 각각의 픽셀은 상기 그래픽 사용자 인터페이스의 대응하는 픽셀의 고도 오프셋을 나타내는 세기 값을 갖는 컴퓨터 판독 가능한 매체.
  18. 제17항에 있어서, 상기 명령어들은,
    상기 고도 맵의 하나 이상의 픽셀들에 대한 세기 값을 표시하는 입력을 수신하는 단계;
    수신된 세기 값에 기초하여 고도 맵 픽셀들의 상기 세기 값들을 조절하는 단계;
    상기 수신된 세기 값에 기초하여 대응하는 그래픽 사용자 인터페이스 픽셀들의 고도 오프셋을 조절하는 단계; 및
    상기 수신된 세기 값들에 기초하여 상기 고도 맵의 디스플레이를 조절하는 단계
    를 야기하는 컴퓨터 판독 가능한 매체.
  19. 컴퓨팅 디바이스의 터치 인터페이스에 대한 터치 입력을 수신하는 단계;
    상기 터치 입력과 연관된 상기 터치 인터페이스의 영역을 결정하는 단계;
    제1 그래픽 사용자 인터페이스 요소에 대한 고도 값을 결정하는 단계 - 상기 고도 값은 그래픽 사용자 인터페이스 디스플레이에 수직인 축을 따르는 거리에 대응함 - ;
    상기 제1 그래픽 사용자 인터페이스 요소의 픽셀들에 대한 고도 오프셋 값들을 획득하는 단계;
    상기 영역, 결정된 고도 값 및 고도 오프셋 값들에 기초하여 상기 터치 입력과 연관된 셰도우를 발생하는 단계; 및
    상기 제1 그래픽 사용자 인터페이스 요소 및 상기 셰도우를 디스플레이하는 단계
    를 포함하는 방법.
KR1020120108286A 2011-11-29 2012-09-27 동적 그래픽 인터페이스 셰도우들 KR101636808B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/306,803 US9324183B2 (en) 2011-11-29 2011-11-29 Dynamic graphical interface shadows
US13/306,803 2011-11-29

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020160081062A Division KR102165124B1 (ko) 2011-11-29 2016-06-28 동적 그래픽 인터페이스 셰도우들

Publications (2)

Publication Number Publication Date
KR20130060113A true KR20130060113A (ko) 2013-06-07
KR101636808B1 KR101636808B1 (ko) 2016-07-07

Family

ID=47044832

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020120108286A KR101636808B1 (ko) 2011-11-29 2012-09-27 동적 그래픽 인터페이스 셰도우들
KR1020160081062A KR102165124B1 (ko) 2011-11-29 2016-06-28 동적 그래픽 인터페이스 셰도우들

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020160081062A KR102165124B1 (ko) 2011-11-29 2016-06-28 동적 그래픽 인터페이스 셰도우들

Country Status (5)

Country Link
US (2) US9324183B2 (ko)
EP (1) EP2600313A3 (ko)
KR (2) KR101636808B1 (ko)
CN (2) CN103198516B (ko)
HK (1) HK1224068A1 (ko)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9324183B2 (en) 2011-11-29 2016-04-26 Apple Inc. Dynamic graphical interface shadows
US9372593B2 (en) 2011-11-29 2016-06-21 Apple Inc. Using a three-dimensional model to render a cursor
US9229613B2 (en) 2012-02-01 2016-01-05 Facebook, Inc. Transitions among hierarchical user interface components
US9557876B2 (en) 2012-02-01 2017-01-31 Facebook, Inc. Hierarchical user interface
US9645724B2 (en) 2012-02-01 2017-05-09 Facebook, Inc. Timeline based content organization
US11073959B2 (en) * 2012-06-08 2021-07-27 Apple Inc. Simulating physical materials and light interaction in a user interface of a resource-constrained device
KR101961860B1 (ko) * 2012-08-28 2019-03-25 삼성전자주식회사 사용자 단말 장치 및 그 제어 방법
KR102186548B1 (ko) * 2013-08-21 2020-12-07 삼성전자주식회사 스크롤 실행의 화면 표시 방법, 장치 및 기록매체
US10096296B2 (en) * 2013-11-13 2018-10-09 Red Hat, Inc. Temporally adjusted application window drop shadows
US9986225B2 (en) * 2014-02-14 2018-05-29 Autodesk, Inc. Techniques for cut-away stereo content in a stereoscopic display
CN103870195B (zh) * 2014-03-03 2018-04-27 联想(北京)有限公司 一种信息提示方法及电子设备
US9679396B2 (en) 2014-05-30 2017-06-13 Apple Inc. Unitary shadows
US9576393B1 (en) * 2014-06-18 2017-02-21 Amazon Technologies, Inc. Dynamic rendering of soft shadows for interface elements
KR20160084146A (ko) * 2015-01-05 2016-07-13 삼성전자주식회사 사용자 입력의 제어 방법 및 상기 방법이 적용되는 전자장치
CN104933746B (zh) * 2015-05-21 2018-03-23 广东欧珀移动通信有限公司 一种为平面图片设置动态阴影的方法及装置
CN106257389B (zh) * 2015-06-19 2019-08-06 深圳超多维科技有限公司 实现文件夹图标交互的方法及触控终端
CN106708450B (zh) * 2015-07-14 2019-10-25 深圳超多维科技有限公司 画面显示方法、装置和终端设备
CN106970782A (zh) * 2016-01-14 2017-07-21 阿里巴巴集团控股有限公司 卡片式视图控件的交互处理方法及其装置
US10019851B2 (en) * 2016-10-25 2018-07-10 Microsoft Technology Licensing, Llc Positioning objects in three-dimensional graphical space
CN106814933B (zh) * 2016-12-15 2019-08-13 广州视源电子科技股份有限公司 窗口阴影显示方法及装置
CN107463366B (zh) * 2017-06-16 2020-08-25 兴业数字金融服务(上海)股份有限公司 一种基于移动App的界面动态化方法
US20190007672A1 (en) 2017-06-30 2019-01-03 Bobby Gene Burrough Method and Apparatus for Generating Dynamic Real-Time 3D Environment Projections
US10679404B2 (en) * 2017-10-04 2020-06-09 Google Llc Shadows for inserted content
USD862511S1 (en) * 2017-11-02 2019-10-08 Google Llc Display screen or portion thereof with transitional graphical user interface
USD851674S1 (en) * 2017-11-17 2019-06-18 Outbrain Inc. Electronic device display or portion thereof with animated graphical user interface
CN108010120A (zh) * 2017-11-30 2018-05-08 网易(杭州)网络有限公司 静态阴影的显示方法、装置、存储介质、处理器及终端
US10540941B2 (en) * 2018-01-30 2020-01-21 Magic Leap, Inc. Eclipse cursor for mixed reality displays
US11567627B2 (en) 2018-01-30 2023-01-31 Magic Leap, Inc. Eclipse cursor for virtual content in mixed reality displays
WO2019236344A1 (en) 2018-06-07 2019-12-12 Magic Leap, Inc. Augmented reality scrollbar
USD910055S1 (en) 2019-06-03 2021-02-09 Apple Inc. Electronic device with graphical user interface
CN111724313B (zh) * 2020-04-30 2023-08-01 完美世界(北京)软件科技发展有限公司 一种阴影贴图生成方法与装置
CN116958390A (zh) * 2022-04-19 2023-10-27 深圳市腾讯网络信息技术有限公司 一种图像渲染方法、装置、设备、存储介质及程序产品

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100454070B1 (ko) * 2001-01-31 2004-10-20 학교법인 중앙대학교 컴퓨터를 이용한 그림자를 포함한 실시간 툰 렌더링 방법
US6971071B1 (en) * 1999-06-10 2005-11-29 Microsoft Corporation System and method for implementing an image ancillary to a cursor
US7439975B2 (en) * 2001-09-27 2008-10-21 International Business Machines Corporation Method and system for producing dynamically determined drop shadows in a three-dimensional graphical user interface
KR100898990B1 (ko) * 2006-12-04 2009-05-25 한국전자통신연구원 3차원 공간에서 시간일관성을 이용한 실루엣 렌더링 장치및 방법

Family Cites Families (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6590573B1 (en) 1983-05-09 2003-07-08 David Michael Geshwind Interactive computer system for creating three-dimensional image information and for converting two-dimensional image information for three-dimensional display systems
AU632628B2 (en) 1989-11-13 1993-01-07 Apple Computer, Inc. Method and apparatus for a computer display system with a three dimensional cursor shadow
US5483261A (en) 1992-02-14 1996-01-09 Itu Research, Inc. Graphical input controller and method with rear screen image detection
US5880411A (en) 1992-06-08 1999-03-09 Synaptics, Incorporated Object position detector with edge motion feature and gesture recognition
US5488204A (en) * 1992-06-08 1996-01-30 Synaptics, Incorporated Paintbrush stylus for capacitive touch sensor pad
JPH0778267A (ja) * 1993-07-09 1995-03-20 Silicon Graphics Inc 陰影を表示する方法及びコンピュータ制御表示システム
US5526478A (en) 1994-06-30 1996-06-11 Silicon Graphics, Inc. Three dimensional model with three dimensional pointers and multimedia functions linked to the pointers
US5825352A (en) 1996-01-04 1998-10-20 Logitech, Inc. Multiple fingers contact sensing method for emulating mouse buttons and mouse operations on a touch sensor pad
US5880733A (en) 1996-04-30 1999-03-09 Microsoft Corporation Display system and method for displaying windows of an operating system to provide a three-dimensional workspace for a computer system
US5835079A (en) 1996-06-13 1998-11-10 International Business Machines Corporation Virtual pointing device for touchscreens
US6166718A (en) 1996-06-18 2000-12-26 Konami Co., Ltd. Video game system with vertical array of cursor images
US5995102A (en) 1997-06-25 1999-11-30 Comet Systems, Inc. Server system and method for modifying a cursor image
US6310610B1 (en) 1997-12-04 2001-10-30 Nortel Networks Limited Intelligent touch display
US7663607B2 (en) 2004-05-06 2010-02-16 Apple Inc. Multipoint touchscreen
US8479122B2 (en) 2004-07-30 2013-07-02 Apple Inc. Gestures for touch sensitive input devices
EP1058924B1 (en) 1998-01-26 2012-06-13 Apple Inc. Method and apparatus for integrating manual input
US6188391B1 (en) 1998-07-09 2001-02-13 Synaptics, Inc. Two-layer capacitive touchpad and method of making same
JP4542637B2 (ja) 1998-11-25 2010-09-15 セイコーエプソン株式会社 携帯情報機器及び情報記憶媒体
US6690372B2 (en) * 2000-05-31 2004-02-10 Nvidia Corporation System, method and article of manufacture for shadow mapping
US7000180B2 (en) * 2000-06-29 2006-02-14 Balthaser Online, Inc. Methods, systems, and processes for the design and creation of rich-media applications via the internet
JP4443012B2 (ja) * 2000-07-27 2010-03-31 株式会社バンダイナムコゲームス 画像生成装置、方法および記録媒体
US6642947B2 (en) 2001-03-15 2003-11-04 Apple Computer, Inc. Method and apparatus for dynamic cursor configuration
JP3800984B2 (ja) 2001-05-21 2006-07-26 ソニー株式会社 ユーザ入力装置
JP2003173237A (ja) 2001-09-28 2003-06-20 Ricoh Co Ltd 情報入出力システム、プログラム及び記憶媒体
US6903741B2 (en) * 2001-12-13 2005-06-07 Crytek Gmbh Method, computer program product and system for rendering soft shadows in a frame representing a 3D-scene
US6690387B2 (en) 2001-12-28 2004-02-10 Koninklijke Philips Electronics N.V. Touch-screen image scrolling system and method
US11275405B2 (en) 2005-03-04 2022-03-15 Apple Inc. Multi-functional hand-held device
US20040145603A1 (en) * 2002-09-27 2004-07-29 Soares Stephen Michael Online multimedia presentation builder and presentation player
KR20040087425A (ko) 2003-04-07 2004-10-14 주식회사 네트로폴리스 전자책 서비스 제공방법, 장치 및 그 기록매체
JP2008505379A (ja) 2004-06-29 2008-02-21 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 3次元タッチ型インタラクションにおけるタッチダウン型フィードフォワード
US9274807B2 (en) * 2006-04-20 2016-03-01 Qualcomm Incorporated Selective hibernation of activities in an electronic device
US7447998B2 (en) * 2006-05-04 2008-11-04 International Business Machines Corporation Graphical interface for tree view
US7675518B1 (en) * 2006-09-05 2010-03-09 Adobe Systems, Incorporated System and method for generating image shadows with ray-coherent integration of extruded transparency maps
US8749544B2 (en) 2007-09-26 2014-06-10 Autodesk, Inc. Navigation system for a 3D virtual scene
US7961202B2 (en) * 2007-10-26 2011-06-14 Mitel Networks Corporation Method and apparatus for maintaining a visual appearance of at least one window when a resolution of the screen changes
US8184096B2 (en) 2007-12-04 2012-05-22 Apple Inc. Cursor transitions
GB2462589B (en) * 2008-08-04 2013-02-20 Sony Comp Entertainment Europe Apparatus and method of viewing electronic documents
US8701040B2 (en) * 2008-09-29 2014-04-15 Microsoft Corporation Panoramic graphical user interface
US8806331B2 (en) * 2009-07-20 2014-08-12 Interactive Memories, Inc. System and methods for creating and editing photo-based projects on a digital network
JP5800501B2 (ja) 2010-03-12 2015-10-28 任天堂株式会社 表示制御プログラム、表示制御装置、表示制御システム、及び、表示制御方法
US20110289461A1 (en) 2010-05-20 2011-11-24 Joshua Morgan Jancourtz Method and sytem for rendering computer interface cursors
JP5589625B2 (ja) * 2010-07-08 2014-09-17 ソニー株式会社 情報処理装置、情報処理方法およびプログラム
US8605136B2 (en) * 2010-08-10 2013-12-10 Sony Corporation 2D to 3D user interface content data conversion
US8994718B2 (en) 2010-12-21 2015-03-31 Microsoft Technology Licensing, Llc Skeletal control of three-dimensional virtual world
US20120218395A1 (en) * 2011-02-25 2012-08-30 Microsoft Corporation User interface presentation and interactions
US9324183B2 (en) 2011-11-29 2016-04-26 Apple Inc. Dynamic graphical interface shadows
US9372593B2 (en) 2011-11-29 2016-06-21 Apple Inc. Using a three-dimensional model to render a cursor

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6971071B1 (en) * 1999-06-10 2005-11-29 Microsoft Corporation System and method for implementing an image ancillary to a cursor
KR100454070B1 (ko) * 2001-01-31 2004-10-20 학교법인 중앙대학교 컴퓨터를 이용한 그림자를 포함한 실시간 툰 렌더링 방법
US7439975B2 (en) * 2001-09-27 2008-10-21 International Business Machines Corporation Method and system for producing dynamically determined drop shadows in a three-dimensional graphical user interface
KR100898990B1 (ko) * 2006-12-04 2009-05-25 한국전자통신연구원 3차원 공간에서 시간일관성을 이용한 실루엣 렌더링 장치및 방법

Also Published As

Publication number Publication date
HK1224068A1 (zh) 2017-08-11
KR20160083831A (ko) 2016-07-12
CN103198516B (zh) 2016-01-13
CN103198516A (zh) 2013-07-10
KR102165124B1 (ko) 2020-10-13
EP2600313A2 (en) 2013-06-05
US20130135309A1 (en) 2013-05-30
CN105678837A (zh) 2016-06-15
US9324183B2 (en) 2016-04-26
US20160239180A1 (en) 2016-08-18
KR101636808B1 (ko) 2016-07-07
EP2600313A3 (en) 2017-09-20
CN105678837B (zh) 2019-06-04
US10691286B2 (en) 2020-06-23

Similar Documents

Publication Publication Date Title
KR102165124B1 (ko) 동적 그래픽 인터페이스 셰도우들
US10754531B2 (en) Displaying a three dimensional user interface
US8643569B2 (en) Tools for use within a three dimensional scene
US8059137B2 (en) Compositing desktop window manager
KR20120009564A (ko) 3차원 마우스 포인터 생성방법 및 생성장치
US20160041630A1 (en) Operations in a Three Dimensional Display System
EP2828831B1 (en) Point and click lighting for image based lighting surfaces
WO2012057897A1 (en) Animated page turning
CN105913481B (zh) 阴影渲染装置及其控制方法
US9483873B2 (en) Easy selection threshold
JP2019121238A (ja) プログラム、画像処理方法、及び画像処理装置
JP2016018363A (ja) 仮想空間平面上に配置したオブジェクトを表示制御するゲーム・プログラム
US20120327109A1 (en) Method For Displaying Contacts In Instant Messenger And Instant Messaging Client
JP2016016319A (ja) 仮想空間平面上に配置したオブジェクトを表示制御するゲーム・プログラム
WO2019080870A1 (zh) 交互界面的显示方法和装置、存储介质、电子装置
US11321889B1 (en) Multi-layer lighting source with textured lighting gel layer
CN117745962A (zh) 一种地质模型三维可视化方法
CN117036573A (zh) 渲染虚拟模型的方法、装置、存储介质及电子设备
CN117745892A (zh) 粒子生成表现控制方法、装置、存储介质及电子装置
KR20180003108A (ko) 3차원 렌더링 장치에서 시점을 기반으로 투명도를 조절하는 방법 및 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
A107 Divisional application of patent
FPAY Annual fee payment

Payment date: 20190530

Year of fee payment: 4