KR20070055420A - 그래픽 텍스쳐들의 디스플레이 - Google Patents

그래픽 텍스쳐들의 디스플레이 Download PDF

Info

Publication number
KR20070055420A
KR20070055420A KR1020067025882A KR20067025882A KR20070055420A KR 20070055420 A KR20070055420 A KR 20070055420A KR 1020067025882 A KR1020067025882 A KR 1020067025882A KR 20067025882 A KR20067025882 A KR 20067025882A KR 20070055420 A KR20070055420 A KR 20070055420A
Authority
KR
South Korea
Prior art keywords
textures
texture
virtual
display
content
Prior art date
Application number
KR1020067025882A
Other languages
English (en)
Inventor
데이비드 씨. 브라운리
레슬리 피터스
데이비드 게트만
니콜 모리스
Original Assignee
쓰리-비 인터내셔날 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US10/864,816 external-priority patent/US7423653B2/en
Application filed by 쓰리-비 인터내셔날 리미티드 filed Critical 쓰리-비 인터내셔날 리미티드
Publication of KR20070055420A publication Critical patent/KR20070055420A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/36Level of detail

Abstract

그래픽 텍스쳐를 디스플레이하는 방법은 하나 이상의 컨텐츠 엘리먼트들 중에서 특정 컨텐츠 엘리먼트에 대해 업데이트가 존재하는지 여부를 결정하는 단계 - 각각의 컨텐츠 엘리먼트는 하나 이상의 텍스쳐들과 연관됨 -; 상기 특정 컨텐츠 엘리먼트에 대해 업데이트가 존재하면, 정보가 연관된 상기 하나 이상의 텍스쳐들 중에서 특정 텍스쳐를 결정하는 단계; 상기 특정 텍스쳐를 획득하는 단계 - 상기 특정 텍스쳐는 상기 특정 컨텐츠 엘리먼트를 기초로 생성됨 -; 및 상기 특정 텍스쳐를 디스플레이하는 단계를 수행한다.

Description

그래픽 텍스쳐들의 디스플레이{DISPLAYING GRAPHICAL TEXTURES}
본 발명은 일반적으로 컴퓨터 그래픽에 관한 것이다. 본 발명은 구체적으로는 그래픽 텍스쳐를 디스플레이하는 것에 관한 것이다.
컴퓨터 그래픽의 특정 클래스는, 유저가 시스템과 상호작용(intereact)하고 있을 때, 많은 수의 상이한 그래픽 텍스쳐를 실시간으로 빨리 디스플레이할 것이 요구된다. 예를 들어 발명의 명칭이 "Information Display"이고 David Gettman 등에 의해 2003년 12월 3일 출원된 공동 계류중인 출원 번호 10/727,799는 HTML 문서 또는 웹 페이지로부터 주어진 텍스쳐가 가상 빌딩의 측벽들에 디스플레이되는 가상 도시를 포함하는 가상의 3차원 환경을 항행하는(navigate) 브라우저를 일 측면으로 기재하고 있다.
이 환경에서, 유저가 가상 도시를 통해 항행할 때 브라우저는 텍스쳐를 디스플레이할 것이 요구된다. 많은 수의 가상 빌딩을 갖는 가상 도시에서, 잠재적으로 저장되고 디스플레이되는 텍스쳐의 수는 매우 많고, 각 텍스쳐는 가령 1Mb 또는 그 이상으로 클 수 있다. 유저가 가상의 3차원 환경을 항행할 때 실시간 디스플레이용의 이러한 고해상도 텍스쳐의 수천 개를 저장하는 것은 통상의 개인 컴퓨터 시스템에서 현재 이용가능한 것보다 더 많은 메인 메모리를 요할 것이다. 일부 개인 컴퓨터는 전용의 디스플레이 메모리 설비를 갖는 그래픽 디스플레이 카드를 사용하지만, 이러한 카드의 메모리 용량은 일반적으로 너무 작아서 보여지는 모든 텍스쳐들에 대하여 모든 고해상도 텍스쳐들을 저장할 수 없다.
이러한 텍스쳐들은 대용량 기억장치 또는 캐쉬에 저장될 수 있지만, 디스플레이 시간에 이러한 기억장치로부터 텍스쳐들을 로딩하는 것은 유저에 대하여 허용할 수 없는 시간 지연을 발생시킬 것인데, 이는 이러한 기억장치가 비교적 느린 속도로 수행하기 때문이다. 따라서, 일부 텍스쳐들은 디스크 레이턴시(latency)로 인하여 필요로 될 때 메인메모리 또는 디스플레이 메모리에서 이용가능하지 않을 수 있다. 필요한 것은, 일부 텍스쳐들이 가상 환경에서 멀리 떨어진 것처럼 보여서 텍스쳐들이 사용자의 관찰 지점에 대하여 주어질 때 텍스쳐들의 많은 세부사항이 그 관찰 지점으로부터 보이지 않는 환경에서, 고해상도 텍스쳐의 디스플레이를 관리하는 더 나은 방법이다.
또한, 이러한 환경에서 일부 텍스쳐들은 사용자의 견지에서 최전경(foreground)에 디스플레이되고 다른 텍스쳐들은 더욱 떨어져 디스플레이된다. 실제감 있는 디스플레이를 제공하기 위하여, 시스템은 고해상도로 최전경을 디스플레이할 것이 요구된다; 그러나, 보다 먼 텍스쳐들은 동일한 해상도를 가질 필요가 없다. 이러한 환경에서, 모든 텍스쳐들을 하나의 높은 레벨의 해상도로 저장하여 텍스쳐들이 먼 거리에서 디스플레이될 때 저해상도로 텍스쳐들을 표현하는 것은 입력 소스에 있어서 비효율적이고 비용이 들 것이다. 가상의 3차원 환경에서 텍스쳐들의 위치에 따라서 변하는 해상도 요건을 갖는 텍스쳐를 다루는 보다 나은 방법이 필요하다.
게다가, 텍스쳐들에 대한 소스 내용, 가령 HTML 문서 또는 웹 페이지는, 시간에 따라 변할 수 있다; 가령 HTML 문서 또는 웹 페이지를 공급하는 온라인 웹사이트의 소유자 또는 운영자가 문서 또는 페이지에 변경을 가한다. 비록 이러한 변경은 시스템의 사용 중에 임의의 시간에 발생할 수 있지만, 유저의 관찰 지점이 변할 때마다 또는 텍스쳐들을 다시 줄 필요가 있을 때마다 소스 내용을 검색(retrieve)하는 것은 비실용적이다.
본 발명은, 일 측면에서, 모든 텍스쳐들이 어느 일 시간에 볼 수 있는 것이 아닌 다수의 그래픽 텍스쳐들의 디스플레이를 관리하는 방법으로서, 상기 방법은, 고해상도 텍스쳐들의 하나 이상의 풀(pool)을 생성하고 메모리 내에 저장하는, 기계로 실행되는 단계; 가상의 3차원 환경에 있는 다각형들에 텍스쳐들을 디스플레이하는, 기계로 실행되는 단계 - 상기 텍스쳐들의 하나 이상은 3차원 환경의 관찰자에게 정보의 내용을 디스플레이하고 정보의 내용을 전달하며, 이러한 텍스쳐들의 하나 이상은 하이 레벨의 상세로 보여질 수 있고, 상기 텍스쳐들의 하나 이상은 거의 유사한 치수(dimension)를 가지며, 관찰자는 텍스쳐들의 하나 이상과 상호작용할 수 있으며; 상기 텍스쳐들의 배열은 하나 이상의 소스들에 정의되며, 상기 텍스쳐들과 연관된 상기 정보의 내용은 하나 이상의 원격 소스들로부터 유도될 수 있으며; 상기 가상의 3차원 환경은 하나 이상의 채널들을 포함하며, 정보의 내용을 디스플레이하는 상기 텍스쳐들의 하나 이상은 채널들을 따라 정렬됨 - 를 포함하는, 다수의 그래픽 텍스쳐들의 디스플레이를 관리하는 방법을 포함한다.
일 특징에 따르면, 특정 텍스쳐를 디스플레이하는 단계는 가상의 3차원 환경에 있는 다각형상에 특정 텍스쳐를 디스플레이하는 단계를 포함한다. 다른 특징에 따르면, 이러한 다각형들의 메이저는 규칙적인 네 개 측부의 '쿼드(quad)'이다.
다른 특징에 따르면, 텍스쳐들의 하나 이상의 캐쉬들이 저장 매체상에서 생성된다. 텍스쳐들은 원격 소스로부터 다운로드된 컨텐츠로부터 생성된 후 이러한 캐쉬들에 저장되거나, 원격 소스들로부터 다운로드된 텍스쳐들의 사본들이다. 이들은 이들이 이용가능하게 될 때, 또는 모두 함께 프로그램 종료될 때 저장되어도 좋다. 텍스쳐들은 캐쉬로부터 로드되어 프로그램 개시시에 또는 요구시에 디스플레이를 위해 사용된다. 다른 특징에 따르면 프로그램은 상이한 3차원 환경들에 대한 캐쉬를 현재 디스플레이되는 것에 거주시킬 수 있다. 또 다른 특징에 따르면, 캐쉬에서 제공되는 현재의 가상의 3차원 환경에 관한 텍스쳐들 모두가 그 가상의 3차원 환경으로의 진입시에 상기 캐쉬로부터 로드된다.
다른 특징에 따르면 텍스쳐들의 캐쉬는 메인 메모리에 유지될 수 있다.
다른 특징에 따르면 텍스쳐들은 압축될 수 있다. 텍스쳐들은 저장 매체상에 압축된 형태로 유지될 수 있고 메인 메모리내에 로드될 때 압축해제될 수 있다. 다른 특징에서, 텍스쳐들은 메모리내에 압축된 형태로 유지될 수 있고 그래픽 카드의 제어로 전달되기 전에 압축해제될 수 있다. 또 다른 특징에서, 텍스쳐들은 그래픽 카드상에서 압축된 형태로 유지될 수 있고 카드에 의해 디스플레이를 위해 요구될 때 압축해제될 수 있다.
또 다른 특징에 따르면, 시스템은, 하나 이상의 컨텐츠 요소들 가운데 특정 컨텐츠 요소에 대하여 업데이트가 존재하는 지 여부를 결정하는 단계 - 각각의 컨텐츠 요소는 하나 이상의 텍스쳐들과 연관됨 -, 업데이트가 존재한다면, 관련된 텍스쳐 또는 텍스쳐들을 업데이트하는 단계를 수행할 수 있다. 텍스쳐가 국부적으로 이용가능하지 않다면 업데이트에 대해 적합한 것으로 생각될 수 있다.
또 다른 특징에 있어서, 하나 이상의 소스 컨텐츠 요소가 동시에 처리되는 것을 허용하는 텍스쳐 생성 풀에 대한 소스 컨텐츠가 생성될 수 있다. 그러한 풀은 단일 업데이트 또는 텍스쳐의 생성을 제공하거나, 컨텐츠 요소들에 포함되어 있는 정보에 기초한 업데이트들의 연속적인 스트림을 제공하기 위하여 사용될 수 있다.
다른 특징에 따르면, 생성 풀 엔트리들은 디스플레이 풀 엔트리들과 관련될 수 있어서, 디스플레이 풀 엔트리들의 일부는 텍스쳐들을 생성하기 위하여 유보된다. 그러한 엔트리들은 높은 텍스쳐 우선순위를 갖는 텍스쳐들에 의해 이용될 수 있다.
다음을 포함하나 이에 제한되지는 않는 다양한 이벤트들은 텍스쳐들을 업데이트되게 한다: 3차원 환경에서 텍스쳐의 위치의 변경, 연관된 컨텐츠 소스의 변경, 연관된 텍스쳐 소스로의 맵핑, 애니메이션 또는 다른 동적 정보를 포함하는 컨텐츠 소스, 유저 또는 연령이나 언어 선호와 같은 유저의 특징과의 상호작용의 변경, 또는 가상의 3차원 환경내의 유저의 위치 및/또는 관점의 변경.
추가적인 특징에 있어서, 텍스쳐는 그 텍스쳐를 업데이트하고 있는 상태, 가령 로드 또는 생성이 보류중(pending)이거나, 진행중(in progress)이거나, 또는 실패했음을 지시하는 것에 기초하여 변경될 수 있다.
텍스쳐로의 상술한 업데이트들 중 어느 것도 재생성되고 있는 텍스쳐, 또는 원격 소스로부터 다운로드되고 있는 텍스쳐로 귀결될 수 있다.
또한 추가적인 특징에 있어서, 시스템은 고해상도 텍스쳐를 대신하여 낮은 해상도 텍스쳐를 디스플레이할지를 하나 이상의 기준에 의해 결정하는 단계를 수행할 수 있다. 하나 이상의 저해상도 텍스쳐는 각각의 고해상도 텍스쳐에 대해 할당될 수 있다. 이러한 저해상도 텍스쳐들은 대용량 기억 시스템에 저장될 수 있고/있거나 네트워크를 통해 다운로드될 수 있다. 낮은 우선순위의 텍스쳐들의 다운로드는 정의된 텍스쳐 우선순위에 기초하여 지시될 수 있고, 이러한 우선순위는 가상의 3차원 환경에서 관찰자의 위치에 기초할 수 있다.
또 다른 특징에 따르면, 각각의 저해상도 텍스쳐는 대응하는 고해상도 텍스쳐와 동일한 시간에 생성될 수 있다. 상이한 특징에 따라서, 각각의 저해상도 텍스쳐는 네트워크를 통해 클라이언트 컴퓨터 시스템에 다운로드될 수 있다. 추가적인 특징에 있어서, 각 고해상도 텍스쳐에 대응하는 보다 저해상도인 텍스쳐들의 하나 이상의 보다 큰 풀들이 생성된다.
또 다른 특징에 있어서, 다각형들은 캐쉬로부터의 로드 및 저장, 업데이트 생성, 프로세싱, 라이브 업데이트 제공, 소스 컨텐츠 다운로드, 완전한 텍스쳐 다운로드, 또는 환경을 관리하는 다른 특징들 중 임의의 것의 다양한 옵션들에 대한 할당된 텍스쳐 우선순위이다. 그러한 우선순위들은, 유저의 위치 및 세계에 있는 관측점, 텍스쳐가 가까운 미래에 볼 수 있게 될 것 같은지 여부, 소스 컨텐츠는 텍스쳐가 최종생성된 이후로 업데이트 되었거나 또는 텍스쳐를 동적으로 업데이트되게 할 정보를 포함하는지 여부를 포함하는 수많은 기준에 기초하여 할당될 수 있다. 각각의 동작은 그 자신의 우선순위의 설정을 가질 수 있다 - 비록 이들이 유사할 것 같지만, 캐쉬로부터의 로딩에 관한 우선순위가 생성을 위한 것과 동일할 것은 필요하지 않다.
또 다른 특징에 있어서, 보다 높은 텍스쳐 우선순위를 갖는 다각형은 고해상도 풀에 있는 할당된 엔트리들이며, 나머지 다각형의 일부는 할당된 저해상도 텍스쳐들이다.
다른 특징에 있어서, 네트워크를 통하여 클라이언트 컴퓨터 시스템으로 다운로드되며, 다운로드 후에 클라이언트 컴퓨터 시스템을 이용하여 구성 및 표현된다. 또 다른 특징에 있어서, 컨텐츠는 하나 이상의 엔티티(entity)에 의해 소유되거나 제어된다. 또 다른 특징에 있어서, 소스 컨텐츠는 인터넷 페이지, 텔레비전 스크릿샷, 휴대폰 페이지, 게임 스크린샷, 이미지, 문서, 또는 비디오 컨텐츠 중 하나 이상을 포함한다.
또 다른 특징에 있어서, 시스템은 사용자가 가상 환경과 상호작용 함으로써 가상의 3차원 환경내의 텍스쳐들의 위치를 변경하는 것을 차단하는 단계를 수행할 것이다.
또 다른 특징에 있어서, 특정 텍스쳐들과 연관된 다각형이 이용가능하게 될 필요가 있는지를 결정할 때; 텍스쳐를 생성하는 단계가 완결되었다면, 특정 텍스쳐가 디스플레이되며; 텍스쳐를 생성하는 단계가 완결되지 않았다면, 제2의 특정 텍스쳐가 디스플레이된다. 제2의 텍스쳐는 낮거나 높은 해상도의 텍스쳐일 수 있고, 제1의 텍스쳐의 보다 빠른 버전에 관련된거나 제1 텍스쳐에 기초하지 않은 대안의 텍스쳐들의 존재하는 집합으로부터 선택될 수 있다.
또 다른 특징에 있어서, 특정 텍스쳐들과 연관된 다각형이 이용가능하게 될 필요가 있는지를 결정할 때; 텍스쳐가 메모리내에 있다면, 특정 텍스쳐가 디스플레이되며; 텍스쳐가 메모리내에 없다면, 메모리내에 있는 그 텍스쳐를 획득하기 위한 프로세스가 개시되며, 그 로드가 완결되지 않은 동안 제2의 특정 텍스쳐가 디스플레이된다. 또 다른 특징에 있어서, 텍스쳐를 획득하는 프로세스는 로컬 저장 매체로부터 텍스쳐를 로딩하는 단계를 포함한다. 또 다른 특징에 있어서, 텍스쳐를 획득하는 단계는 네트워크로부터 텍스쳐를 다운로드하는 단계를 포함한다.
또 다른 특징에 있어서, 하나 이상의 텍스쳐 풀들은 텍스쳐들의 로드 및 생성에 전용이며 별도의 텍스쳐 풀이 텍스쳐들의 디스플레이를 다루기 위해 생성된다; 텍스쳐가 종결될 때, 이를 생성하는 것은, 생성된 텍스쳐가 디스플레이 풀에 이미 있는 텍스쳐들 중 하나보다 더욱 긴급하게 관찰을 요한다면, 디스프레이 텍스쳐 풀에 있는 엔트리를 교체할 것이다; 로드/생성 풀에 있는 엔트리는 그 후 다른 텍스쳐들에 의해 유저를 위해 방출될 것이다.
본 발명은 첨부하는 도면의 도면들에서 제한의 방식이 아니라 예시적인 방식에 의해 도시되며 유사한 도면부호는 유사한 요소를 지시한다.
도 1A는 그래픽 텍스쳐를 디스플레이하는 예시적인 시스템을 도시하는 블록도이다.
도 1B는 실시예가 사용될 수 있는 예시적인 가상공간 브라우징 시스템의 블록도이다.
도 1C는 가상의 3차원 환경에서 텍스쳐를 디스플레이할 것을 준비하는 프로세스의 하이레벨 개관을 제공하는 흐름도이다.
도 2는 텍스쳐들을 동적으로 업데이트하는 프로세스를 도시하는 흐름도이다.
도 3은 동적으로 업데이트된 쿼드들을 다루는 프로세스를 도시하는 흐름도이다.
도 4는 동적으로 업데이트된 쿼드들을 다루는 프로세스를 도시하는 흐름도이다.
도 5는 텍스쳐들을 로드하거나 저장하는 프로세스를 도시하는 흐름도이다.
도 6은 본 발명의 실시예가 구현된 컴퓨터 시스템을 도시하는 블록도이다.
그래픽 텍스쳐들을 디스플레이하는 방법 및 장치가 기재된다. 다음의 기재에서, 설명의 목적을 위하여, 여러 구체적인 세부 사항들이 본 발명의 완전한 이해를 제공하기 위하여 제시된다. 그러나, 기술분야에서 숙달된 지식을 가진자에게는 이러한 구체적인 세부사항 없이도 본 발명이 실시될 수 있음이 명백할 것이다. 다른 예에서, 공지된 구조 및 디바이스들은 본 발명을 불필요하게 흐리지 않기 위하여 블록도 형태로 도시된다.
실시예들은 다음의 아웃라인에 따라서 본원에 기재된다:
구조적 개관
기능적 개관
하드웨어 개관
확장 및 대안
구조적 개관
도1A는 그래픽 텍스쳐들을 디스플레이하는 예시적인 시스템을 도시하는 블록도이다. 용어 "텍스쳐"는 소스 내용, 가령 HTML 문서 또는 웹 페이지 또는 다른 상호작용하는 컨텐츠와 같은 소스 컨텐츠로부터 미리 주어졌던 디지털 비트맵 이미지를 말한다. 디스플레이 및 생성 모듈(110)은 로딩 및 저장 모듈(120)과 통신상으로 결합된다. 디스플레이 및 생성(generation) 모듈(110)과 로딩 및 저장(saving) 모듈(120)은 각각 하나 이상의 컴퓨터 프로그램, 명령어들, 또는 본 명세서에서 개시한 기능들을 수행하도록 함께 기능하는 기타 소프트웨어 엘리먼트들을 포함한다. 대체로, 디스플레이 및 생성 모듈(110)은 컴퓨터 디스플레이에 텍스쳐들을 디스플레이하고 생성하기에 적합하다. 로딩 및 저장 모듈(120)은 본 명세서에서 설명한 방법에 따라 필요할 때 텍스쳐들을 메모리에 그리고 메모리로부터 각각 로딩 및 저장하기에 적합하다.
도 1B는 일 실시예가 사용될 수 있는 예시적인 가상 공간 브라우징 시스템의 블록도이다. 컴퓨터(1001A)는 3차원 가상 공간 브라우저(1001B)와 운영 시스템(518)을 호스팅한다. 또한 컴퓨터(1001A)는 디스플레이 메모리(1008A)를 갖는 디 스플레이 카드(1008A) 및 주 메모리(1007A)를 포함한다. 디스플레이 카드(1008A)는 디스플레이 정보의 저장을 위해 주 메모리(1007A)의 일부를 사용할 수 있다. 컴퓨터(1001A)는 하나 이상의 네트워크(510)를 통해 어플리케이션 서비스 제공자(505) 및 저장된 컨텐츠(506)를 호스팅하는 하나 이상의 컨텐츠 서비스 제공자들(502)에 직접 또는 간접적으로 통신연결된다. 일 실시예에서, 어플리케이션 서비스 제공자(505)는 게트만(Gettman) 등에 개시된 타입의 시티 서버(city server)를 포함한다. 컴퓨터(1001A)는 소스 컨텐츠 디스크 캐쉬(1021) 및 2차 페이지 캐쉬(1020)를 포함하거나 액세스할 수 있다. 컴퓨터(1001A)는 디스플레이(1009) 상에 텍스쳐 및 기타 그래픽 이미지들 또는 서브젝트 매터(subject matter)를 디스플레이한다. 일 실시예에서, 컴퓨터(1001A)는 PCI 버스에 기반한 개인용 컴퓨터, 워크스테이션, PDA, TV 셋톱 박스, 이동전화기 등을 포함한다.
3차원 가상 공간 브라우저(1001B)는 초기화 로직(1002), 가상 공간 디스플레이 로직(1004), 캐쉬-입/출력(I.O) 스레드(thread)(1006), 윈도우 생성 스레드(1022), 및 제어/렌더링 스레드(1012)를 포함한다. 스레드(1006,1022,1012)는 본 명세서에서 개시한 기능들을 수행하기 위해 운영 시스템(518)과 함께 가상 공간 디스플레이 로직(1004)에 의해 대량생산된다.
대체로, 초기화 로직(1002)은 디스플레이 카드(1008A)에 질문을 보내고(interrogate), 어떤 그래픽 기능이 디스플레이 카드에 의해 제공되는지를 결정하고, 필요에 따라 파라미터값들의 제공을 포함하는 기능들을 턴온 또는 턴오프하며, 이용가능한 성능(capability) 및 자원에 기반한 카드의 사용을 조절한다. 그래픽 카드의 다양한 브랜드(brand)가 상이한 타입의 디스플레이 기능을 제공하고 이로써 3차원 가상 공간 브라우저(1001b)가 다수의 상이한 종류의 그래픽 카드와 상호작용하게(inter-operate) 하기 때문에 상기 초기화 로직(1002)의 성능이 제공된다. 예컨대, 디스플레이 카드(1008A)는 디스플레이하는 그래픽 이미지의 표현을 개선하기 위해 비-위신호(anti-aliasing) 기능을 제공할 수 있다. 초기화 로직(1002)은 디스플레이 카드(1008A)의 비-위신호 기능의 존재를 검출하고 카드가 상기 기능을 적절히 구성하는 설정(setting)을 제공할 수 있다.
또한, 일 실시예에서, 가상 공간 디스플레이 로직(1004)은 디스플레이 메모리에 있는 비교적 적은 수의 고해상도 텍스쳐와 비교적 많은 수의 저해상도 텍스쳐를 디스플레이하기 위해 디스플레이 메모리(1008B)와 상호작용한다. 이러한 방식으로, 디스플레이 메모리(1008B)는 가상 3차원 환경의 특정 사용자 뷰포인트(viewpoint) 부근에 있는 가상 위치와 관련하는 고해상도 텍스쳐를 저장하도록 연속적으로 업데이트되며, 이는 비교적 적은 수의 고해상도 텍스쳐 뿐만 아니라 사용자 뷰포인트와 관련한 거리에서 보이는 텍스쳐이며, 이는 많은 수의 저해상도 텍스쳐이다. 디스플레이 메모리(1008B)의 올바른 수의 텍스쳐를 유지하기 위한 기술은 본 명세서에서 추가로 개시된다.
일 실시예에서, 컨텐츠 서비스 제공자(502의 컨텐츠(506)는 하나 이상의 HTML 문서 또는 웹(Web) 페이지를 포함한다. 컴퓨터(1001A)는 네트워크(510)를 통해 컨텐츠 서비스 제공자(502)와 통신함으로써 어느때나 컨텐츠(506)의 업데이트된 사본을 얻을 수 있다. 또한, 컨텐츠(506)는 소스 컨텐츠 디스크 캐쉬(1021)를 이 용하여 컴퓨터(1001A)에 부분적으로 캐싱될 수 있다. 예컨대, 소스 컨텐츠 디스크 캐쉬(1021)는 HTML 문서 또는 웹 페이지와 같은 최근에 사용된 소스 컨텐츠, 또는 가상 3차원 환경의 사용자의 그 다음 현재(then-current) 뷰포인트와 관련한 뷰의 현재 필드(current field) 내에 있거나 가상 3차원 환경의 사용자 위치에 의해 지시되는 사용자 다음에 뷰잉되기 쉬운 텍스쳐들을 생성하는데 사용된 소스 컨텐츠를 저장할 수 있다.
캐쉬-I/O 스레드(1006)는 텍스쳐들을 로딩하고 텍스쳐들을 텍스쳐 캐쉬(1020)에 페이징(paging)하기에 적합하다. 또한 캐쉬-I/O 스레드(1006)는 소스 컨텐츠(506)로부터 생성된 업데이트된 텍스쳐들을 텍스쳐 캐쉬(1020)에 저장하기에 적합하다. 텍스쳐 생성 스레드(1022)는 소스 컨텐츠 디스크 캐쉬(1021)를 적절히 이용하여 컨텐츠 서비스 제공자(502)로부터 컨텐츠(506)를 검색하고(retrieve) 이러한 컨텐츠에 기초하여 텍스쳐를 생성하기에 적합한다. 제어 & 렌더링 스레드(1012)는 시스템 엘리먼트들의 전체적인 제어 및 텍스쳐를 디스플레이 카드(1008A) 및 디스플레이 카드의 성능에 따른 디스플레이 메모리(1008B)에 렌더링하기에 적합하다.
도 1C는 가상 3차원 환경에서 텍스쳐들을 디스플레이하도록 준비하기 위한 프로세스의 높은-레벨 개관(overview)을 제공하는 흐름도이다. 단계(130)에서, 제 1 텍스쳐 풀(pool)과 제 2 텍스쳐 풀이 생성되고 메모리에 저장된다. 한가지 방법으로서, 각각의 텍스쳐가 정의되고 동일한 소스 컨텐츠로부터 유도되고 고해상도 텍스쳐 및 저해상도 텍스쳐를 포함하는 2개의 버젼으로 저장된다. 이용가능한 메 모리 또는 디스플레이 메모리 중 하나는 매우 적은 고해상도 텍스쳐의 비교적 적은 풀과 저해상도 텍스쳐의 비교적 큰 풀을 저장한다. 각각의 풀에 대한 크기는 특별한 제한이 없다. 작은 풀은 주로 가상 3차원 환경에서 사용자의 현재 또는 장래의 뷰포인트에 근접한 텍스쳐들을 포함한다. 큰 풀은 주로 사용자 뷰포인트와 관련한 거리에서 비유적인 텍스쳐를 포함한다. 선택적인 실시예에서, 큰 텍스쳐 풀은 텍스쳐를 로딩 및 생성하기 위한 풀과 텍스쳐를 디스플레이하기 위한 독립 풀로 분리된다.
일 실시예에서, 모든 가능한 텍스쳐의 저해상도 버젼은 컴퓨터(1001A)용 디스크 저장 매체와 같은 디스플레이 클라이언트와 관련된 로컬 대용량 저장 매체에 저장된다. 컨텐츠 서비스 제공자(502) 또는 어플리케이션 서비스 제공자(505)는 가상 환경에서 모든 디스플레이 위치(예컨대 가상 시티의 디스플레이 윈도우)에 대한 저해상도 텍스쳐들을 주기적으로 생성하고 동시에 저해상도 텍스쳐들을 3차원 가상 공간 브라우저(1001B)에 제공한다. 예컨대, 브라우저(1001B)는 시작 또는 초기화 시간에, 또는 설치 프로세스와 별도로 모든 저해상도 텍스쳐들을 다운로드하고 저장할 수 있다. 그 결과, 브라우저(1001B)는 사용자의 뷰포인트에 근접한 디스플레이 위치들 및 저해상도 텍스쳐들이 컨텐츠 서비스 제공자로부터 수신된 이후에 소스 컨텐츠들이 바뀐 먼(distant) 윈도우에 대한 고해상도 텍스쳐들을 생성하는 것만을 필요로 한다. 브라우저가 고해상도 텍스쳐를 생성할 때, 업데이트된 저해상도 텍스쳐를 생성한다.
이러한 방법의 변형으로서, 만약 텍스쳐 생성이 임의의 텍스쳐를 위해 필요 하다면, 임의 수의 고해상도 텍스쳐 풀 엔트리들이 능동적인(active) 생성을 수행하는 텍스쳐들을 위해 보유(reserve)될 수 있다. 고해상도 텍스쳐들의 제한된 수의 엔트리들이 존재하기 때문에, 엔트리들은 높은 텍스쳐 우선순위 값들을 갖는 객체들에 부여된다.
단계(136)에서, 가상 3차원 환경이 생성된다. 가상 3차원 환경의 각각의 쿼드(quad)에는 쿼드 식별자(identifier)가 제공된다. 각각의 텍스쳐는 텍스쳐 식별자를 갖는다. 텍스쳐 식별자는 각각의 사분면에 부여된다.
단계(138)에서, 텍스쳐 우선순위 값이 결정되고 각각의 쿼드에 부여된다. 텍스쳐 우선순위 값은 텍스쳐가 가상 환경에서 디스플레이되는 현재의 우선순위 순서를 나타낸다. 일 실시예에서, 텍스쳐 우선순위 값은 쿼드이 보이는지, 사용자가 목표로서 이러한 쿼드을 선택했는지, 이러한 쿼드가 뷰어로부터 얼마나 멀리 있는지, 그리고 이러한 쿼드가 뷰어에 대해 어떤 각도로 있는지와 같은 다수의 인자(factor)에 기초한다. 각각의 텍스쳐 우선순위 값은 뷰어의 그 당시 위치와 뷰잉 각도 및 사용자 상호작용에 기초하여 주기적으로 다시 계산된다. 또한, 텍스쳐 풀의 엔트리들은 최적의 사용을 위해 다시 할당된다. 특히, 뷰어의 가상 뷰포인트로부터 너무 멀리 떨어져 있는 텍스쳐들에 대한 텍스쳐의 엔트리들은 버려진다. 바뀐 소스 컨텐츠에 기초한 텍스쳐는 소스 컨텐츠로부터 다시 생성될 수 있다.
단계(134)에서, 상태 값이 고해상도 텍스쳐 풀의 각각의 텍스쳐에 부여된다. 상태 값의 사용은 다른 문단에서 다시 설명된다.
상기 방법에서, 디스플레이 위치가 사용자 뷰포인트로부터 뷰잉할 때, 브라 우저(1001B)는 텍스쳐 캐쉬 저장 매체로부터 가시적인 디스플레이 위치를 위한 고해상도 텍스쳐를 검색하고 이들을 디스플레이한다. 만약 이러한 텍스쳐들을 위한 소스 컨텐츠는 최종 디스플레이 시간 이후에 바뀐다면, 고해상도 텍스쳐는 다시 생성되고 디스플레이될 수 있다. 재생성 프로세스는 저장 매체로부터 고해상도 텍스쳐를 로딩 및 디스플레이하는 것보다 너무 느린 것으로 예견되며 대신에 잠재적으로 가상 환경의 추가의 고해상도 텍스쳐를 디스플레이하는데 사용될 수 있는 메모리를 모두 사용한다. 따라서, 대안적인 방법으로서, 모든 고해상도 텍스쳐의 생성은 서버에 의해 수행될 수 있고 브라우저(1001B)는 각각의 텍스쳐가 뷰잉될 때 네트워크 접속을 통해 서버에 각각의 고해상도 텍스쳐를 다운로드할 수 있다.
또한 한가지 방법으로서, 쿼드와 관련한 고해상도 텍스쳐 풀 엔트리는 디스플레이가 필요할 때 로딩된 고해상도 텍스쳐를 갖지 않지만, 해당하는 고해상도 텍스쳐가 디스크에서 이용할 수 있다면, 저해상도 텍스쳐가 사용되고 디스플레이되며 고해상도 텍스쳐는 로딩이 계획된다.
일 실시예에서, 저해상도 텍스쳐는 하기와 같이 저해상도 텍스쳐 풀에 부여된다. 사용자 뷰포인트로부터의 뷰잉되는 모든 쿼드, 또는 고해상도 텍스쳐가 로딩되지 않는 소정 거리 내에 있는 쿼드에는 저해상도 텍스쳐 풀의 엔트리가 제공된다. 메모리에 존재하지 않는 저해상도 텍스쳐 풀의 엔트리에 부여된 저해상도 텍스쳐는 로딩이 계획된다.
또한 실시예는 각각의 텍스쳐가 디스플레이 성능을 향상시키고 뷰어의 가상 위치가 이동하는 동안 보다 우수한 디스플레이 품질을 제공하기 위해 다중 이미지 해상도 또는 '미니맵(minimap)'을 포함하는 표준 기술을 사용한다.
따라서, 상기 방법들은 이미지 세부 사항의 레벨이 모델에 대한 가상 다각형의 수를 바꾸거나 각각의 텍스쳐 객체 내의 다수의 이미지 해상도들을 가짐으로써 바뀌는 종래 방법과 대조적으로, 바뀌는 해상도를 갖는 다수 버젼의 텍스쳐들을 사용한다.
일 실시예에서, 주 메모리(1007A)는 텍스쳐 뱅크 리스트(1007B)를 포함한다. 텍스쳐 뱅크 리스트(1007B)는 사용할 때, 로딩을 위해 설정할 때 또는 생성할 때 그 당시에 있는 모든 이용가능한 고해상도 텍스쳐를 식별하거나 참조하는 데이터 구조이다. 일 실시예에서, 어떤 텍스쳐가 텍스쳐 뱅크 내에 있는지 그리고 하기 설명하는 주(main) 스레드와 하기 설명처럼 로딩 및 저장을 위한 작업자 스레드 사이의 좌표화를 위해 하기 3개의 데이터 구조가 사용된다. 선택적인 실시예에서, 2개의 풀 - 텍스쳐를 로딩하고 생성하기 위한 텍스쳐 뱅크 및 텍스쳐를 디스플레이하기 위해 사용된 재료 뱅크가 존재할 수 있다.
첫째로, LiveQuadGeneratePriorityList 구조는 우선순위에 의해 순서화된, 라이브(live)되기에 적절한 쿼드의 리스트를 저장한다. 라이브 쿼드는 세상(world)에 보인 것이며 그 텍스쳐는 소스 컨텐츠에 포함된 정보에 기초하여 반복적으로 업데이트된다. 두번째로, QuadGeneratePriorityList는 우선순위에 의해 순서화된 생성을 보장하기에 충분히 근접한 유효하지 않거나 구식의(out-of-date) 텍스쳐들을 갖는 쿼드 리스트를 저장한다. 세번째로, QuadDisplayPriorityList는 유효한 텍스쳐들을 갖고 디스플레이하기에 적절한 쿼드의 리스트를 저장한다. 이러한 문맥상, "디스플레이하기에 적절한"이란 문구는 쿼드들이 사용자의 뷰포인트가 뷰어에게 보여지기에 충분히 근접한 것을 의미한다. 쿼드의 리스트는 우선순위에 의해 순서화되고, 메모리 또는 디스크의 유효 텍스쳐를 갖지 않는 임의의 쿼드을 포함하지 않는다. 구식 텍스쳐를 갖는 쿼드는 QuadGeneratePriorityList와 QuadDisplayPriorityList 상에 있을 수 있다.
기능적 개관
그래픽 텍스쳐 - 주 스레드의 디스플레이
도 2는 텍스쳐의 업데이트을 처리하기 위한 프로세스를 도시하는 흐름도이다. 도 3은 동적으로 업데이트된 쿼드를 처리하기 위한 프로세스를 도시하는 흐름도이다. 도 4는 동적으로 업데이트된 텍스쳐를 처리하기 위한 프로세스를 도시하는 흐름도이다. 도 5는 텍스쳐들을 로딩 또는 저장하기 위한 프로세스를 도시하는 흐름도이다. 도 2, 도 3, 도 4 및 도 5의 다양한 실시예들은 텍스쳐와 관련한 외부 컨텐츠의 변화에 기초하여 빠르게 업데이트될 수 있고 사용자 뷰포인트가 가상 3차원 환경 내에서 네비게이팅하거나 가상 공간 브라우저와 상호작용할 때 빠르게 디스플레이될 수 있는 그래픽 텍스쳐를 디스플레이하기 위한 기술들을 제공한다. 비록 도 2, 도 3, 도 4, 및 도 5 각각은 경우(event)들의 소정 흐름을 도시하지만, 본 발명의 실시예들은 이러한 단계 또는 이러한 흐름으로 제한되지 않는다. 추가의 단계들이 수행될 수 있고, 단계들이 생략되고, 단계들이 동시에 또는 다른 순서로 수행될 수 있다.
일 실시예에서, 도 2, 도 3, 도 4의 프로세스는 가상 디스플레이 로직(1004) 의 일부로서 주 프로세싱 스레드로 구현된다(도 1).
먼저 도 2를 참조하면, 텍스쳐의 업데이트을 처리하기 위한 프로세스는 단계(202)에서 특정한 또는 미리-정의된 시간이 경과하였는지를 결정하는 단계를 포함한다. 특정한 시간은 텍스쳐의 디스플레이를 위한 적절한 업데이트 주기(frequency)를 제공하도록 선택된다. 예컨대, 일 실시예에서 특정한 시간은 0.1초가 되어 디스플레이는 초당 10회 업데이트된다.
만약 그렇다면, 그 다음에 단계(204)에서 프로세스는 하나 이상의 텍스쳐 업데이트이 이용가능한지를 결정한다. 이러한 문맥에서, 업데이트은 새로운 텍스쳐, 또는 텍스쳐 내에서 변화된 소스 컨텐츠를 말한다. 예컨대, 도 1B와 관련하여, 컴퓨텨(1001A)는 컨텐츠(506)의 현재 사본을 제공하도록 컨텐츠 서비스 제공자(502)에게 요청하고, 윈도우 생성 스체드(1022)는 상기 소스 컨텐츠를 처리하고 제어 및 렌더링 스레드(1012)를 위해 업데이트된 텐스쳐를 제공한다. 만약 텍스쳐가 제공하는 쿼드 중 어떠한 것도 '라이브(live)'가 아니라면, 단계(204)는 소스 컨텐츠의 프로세싱 말미에서만 진짜인 것으로 평가하고, 제어는 세상(world)에서 텍스쳐를 업데이트하는 단계(206)로 통과한다. 만약 텍스쳐가 제공되는 하나 이상의 쿼드이 '라이브'라면, 단계(204)는 소스 컨텐츠의 초기 프로세싱의 말미에서만 진짜인 것으로 평가하고, 다음에 소스 컨텐츠가 뷰잉된 텍스쳐의 변화가 요구되는지를 결정할 때 임의 횟수로 반복된다. 일다 다운로드된 일부 소스 컨텐츠가 애니메이팅된 이미지와 같은 웹 페이지와 같은 텍스쳐를 업데이트할지를 결정하는데 요구된 모든 정보를 포함할 수 있다. 다른 소스 컨텐츠는 컨텐츠 서비스 제공자(502)에 의해 공개된 이벤트를 승낙하는(subscribe) 프로세스를 정의할 수 있으며, 이벤트는 뉴스 티커(news ticker)처럼 텍스쳐에 대한 업데이트이 필요할 때를 나타낸다.
따라서, 이러한 방법은 애니메이팅된 이미지, 비행기 출발 또는 도착 정보와 같은 능동적인 시각 컨텐츠를 포함하거나 뉴스 스토리 또는 최근 특정 매물값과 같이 단순히 주기적으로 업데이트되는지, 동적으로 변하는 어떤 형태의 소스 컨텐츠에 대해서도 특정 시간 동안 다수의 업데이트들이 처리될 수 있게 한다.
일 실시예에서 블록(206)의 텍스쳐 업데이트는 동적으로 업데이트된 쿼드의 프로세싱 단계를 포함한다. 이러한 문맥에서, "쿼드"는 텍스쳐를 디스플레이할 수 있는 4-측면을 갖는 객체이다. 일 실시예에서, 쿼드는 가상 시티에 디스플레이되는 가상 빌딩의 표면이어서, 쿼드 내에 텍스쳐를 디스플레이하는 것은 가상 빌딩의 디스플레이 윈도우 내에 텍스쳐의 컨텐츠를 디스플레이하는 외형을 제공한다.
특정 실시예들에서, 동일한 텍스쳐는 다수의 쿼드상에 표시될 수 있다. 각 텍스쳐는 고유 식별자를 제공하고, 각 쿼드은 고유 식별자를 제공한다. 3차원 가상 공간 브라우저(1001B)에 의해 유지되는 쿼드 리스트 데이터 구조는 통합된 쿼드상에 표시되는 텍스쳐가 어떤 것인지 식별하는 텍스쳐 식별자에 대한 각 쿼드 식별자를 측량한다. 또한, 텍스쳐 리스트 데이터 구조는 하나 이상의 쿼드들에 대한 특정 텍스쳐 식별자를 측량한다.
도 3은 극적으로 업데이트된 쿼드들을 다루는 공정을 도시하는 흐름도이다. 도 3을 참조하여, 단계(302)에서, 특정된 또는 미리 한정된 시간 주기가 경과하면 결정을 위하여 테스트가 수행된다. 단계(302)는 도 3의 공정이 타이머 또는 스케 쥴에 따라 반복적으로, 또는 사건에 응답하여 수행될 수 있음을 폭넓게 보이도록 의도된다. 일 실시예에서, 단계(302)는 도 3의 공정이 매 초마다 3차례 반복되도록 1/3-초 타이머와 통합된다.
특정된 시간이 경과하면, 그 후 단계(304)에서 쿼드 생성 리스트가 업데이트된다. 쿼드 생성 리스트는 소스 데이터로부터 생성되거나 업데이트되는 그들의 텍스쳐를 가질 필요가 있는 쿼드들을 식별하는 3차원 가상 공간 브라우저(1001B)에 의해 유지되는 데이터 구조이다. 단계(304)의 효과는 쿼드들이 생성될 필요가 있는지를 판단하고, 만약 그렇다면 쿼드들을 생성 리스트에 부가하는 것이다.
단계(306)에서, 텍스쳐 뱅크(bank)가 참고되고, 어떤 텍스쳐들이 생성을 완료하였는지를 판단하기 위하여 테스트가 수행된다. 만약 그렇다면, 그 후 컨트롤(control)은 텍스쳐가 쿼드 디스플레이 리스트에 부가됨을 참조하여 완전한 쿼드들에서 단계(320)로 나아간다. 따라서, 완전한 쿼드들은 상기 공정에서 나중에 디스플레이에 제공가능하게 된다. 상기 완료된 텍스쳐와 통합된 텍스쳐 뱅크 엔트리는 또한 단계(318)에서 텍스쳐 캐쉬에 저장될 필요가 있는 텍스쳐를 지정하기 위하여 업데이트된다. 단계(316)에서, 단계(306)의 테스트가 참이라면 완전한 쿼드들은 상기 쿼드 생성 리스트로부터 제거된다.
그러나, 단계(306)의 테스트가 거짓이라면, 또는 결국 완전한 쿼드들이 단계(320, 318, 316)의 루프(loop)에서 처리된다면, 그 후 컨트롤은 텍스쳐 뱅크에서 식별된 임의의 쿼드을 위해 어떠한 타임아웃(timeout)이 발생하는지 판단하기 위하여 테스트가 수행되는 단계(308)로 넘어간다. 단계(308)의 목적은 쿼드가 특정한 시간 주기 내에서 생성되고 표시되지 않는지를 판단하는 것이다. 이러한 경우 방법에 의하여 상이한 쿼드가 동일한 자원을 이용하여 처리될 수 있도록 상기 공정은 불완전한 쿼드에 의해 사용되는 자원을 회복하는 것이 바람직하다. 단계(308)의 테스트가 참이라면, 그 후 단계(322)에서 통합된 쿼드는 쿼드 생성 리스트로부터 제거된다.
단계(308)에 의해 판단되는 바에 따라 눈에 띄는 타임아웃이 없으면, 그 후 단계(310)에서 쿼드 디스플레이 리스트는 업데이트된다. 쿼드 디스플레이 리스트는 어떤 쿼드들이 표시되기에 가장 적합한지를 확인한다. 예를 들어, 일 실시예에서 쿼드 디스플레이 리스트는 눈에 보이지 않는 쿼드들을 포함하지 않는다. 따라서, 쿼드 디스플레이 리스트에 대한 변화는 가상 3차원 환경에서 사용자 또는 관찰자의 가상 위치에 의해 주로 구동된다.
단계(312)에서 텍스쳐 뱅크는 쿼드 디스플레이 리스트에 기초하여 업데이트된다. 예를 들어, 일 실시예에서 단계(312)는 적어도 사용자를 위한 관점의 현재 필드에 적합한 쿼드으로 참조되는 텍스쳐 뱅크의 5개까지의 엔트리들을 판단하는 단계 및 현재 텍스쳐 뱅크에 있지 않은 쿼드 디스플레이 리스트의 상부로부터 쿼드들로부터의 텍스쳐들로 언급되는 엔트리로 그들을 교체하는 단계를 수반한다. 새롭게 할당된 텍스쳐 뱅크 엔트리들은 메모리 또는 기억 장치로부터 로딩될 필요가 있음을 가리키는 상태 값(state value)과 함께 부가된다.
단계(314)에서, 소스 컨텐츠로부터 발생되거나 재-발생될 텍스쳐를 위한 컨텐츠 소스들은 텍스쳐 뱅크의 엔트리들에 할당된다. 일 실시예에서 컨텐츠 소스들 은 쿼드 생성 리스트 데이터 구조로부터 획득될 수 있다. 단계(314)는 텍스쳐 뱅크에 들어가야 할 텍스쳐를 더욱 한정하는 효과를 가진다.
도 4는 동적으로 업데이트된 텍스쳐들을 처리하는 프로세스를 도시하는 흐름도이다. 단계(402)에서, 미리 정의된 시간이 경과했는지 판단하기 위하여 테스트가 수행된다. 일 실시예에서, 단계(402)는 도 4의 프로세스가 매 초마다 10번 반복되도록 하기 위하여 0.1초의 기간을 갖는 타이머를 실행한다. 만약 그렇지 않다면, 그 후 도 4의 프로세스는 단계(416)에서 종결된다.
타이머가 경과한다면, 그 후 단계 406에서, 이전에 요구되는 로드로 표시되는 텍스쳐 뱅크의 텍스쳐가 완료된 로딩을 갖고, 현재는 디스플레이 카드 메모리로 로딩되는지 여부를 판단하기 위하여 테스트가 수행된다. 만약 그렇다면, 그 후 단계(408)에서 텍스쳐는 가상 3차원 환경에서 사용되고, 단계(410)에서 텍스쳐와 통합된 텍스쳐 뱅크 엔트리는 '눈에 보이는 것'으로 표시되며, 이는 그것이 현재 가상 3차원 환경에서 사용되고, 사용자의 관점이 변한다면 다른 텍스쳐에 의해 어떤 점에서 교체될 자격이 있어 또 다른 텍스쳐가 그 텍스쳐 뱅크 엔트리를 더욱 적절한 사용할 수 있음을 뜻한다.
결국 로딩된 텍스쳐들은 단계(406, 408, 410)의 루프에서 처리되고, 임의의 텍스쳐가 저장된 것으로 표시되었는지를 판단하기 위하여 단계(412)에서 테스트가 수행된다. 만약 그렇다면, 그 후 텍스쳐는 단계(414)에서 텍스쳐 뱅크에서 눈에 보일 수 있도록 설정된다. 이러한 텍스쳐들은 관찰자 또는 사용자의 관점으로부터 너무 멀어진다면 제거될 수 있다.
텍스쳐의 로딩 및 저장-워커 스레드(worker thread)
도 5는 텍스쳐의 로딩 또는 저장 프로세스를 도시하는 흐름도이다. 일 실시예에서, 도 5의 프로세스는 3차원 가상 공간 브라우저(1001B)의 가상 공간 디스플레이 로직(1004)의 워커 스레드에서 실행된다. 도 5의 프로세스는 도 1의 카드(1008)와 같은 컴퓨터의 비디오 디스플레이 카드로 텍스쳐들을 로딩하기 위하여 적용될 수 있다. 대안적으로, 도 5의 프로세스는 디스플레이를 구동하기 위하여 사용되는 공유 메모리 또는 디스플레이에 링크(link)되거나 디스플레이에 의하여 참조되는 임의의 다른 적절한 저장 공간의 텍스쳐 뱅크로 텍스쳐들을 로딩하기 위하여 사용될 수 있다. 도 5의 프로세스는 특히 큰, 고-해상도 텍스쳐들을 로딩하고 저장하는데 적합하다.
단계(502)에서, 테스트는 임의의 텍스쳐들이 로딩 또는 저장이 요구됨을 가리키는 상태값과 함께 텍스쳐 뱅크에 부가된다. 만약 텍스쳐가 이와 같이 텍스쳐 뱅크에 부가되지 않는다면, 그 후 단계(504)에서 도 5의 프로세스는 대기하고, 연산을 중단하거나, 지정된 작은 시간 주기동안 "휴식"한다(sleep).
그렇지 않으면, 로딩 또는 저장을 위하여 텍스쳐 뱅크에 부가되는 각 텍스쳐를 위하여 단계(506, 508, 510, 512)들의 루프가 수행된다. 단계(506)에서, 부가된 텍스쳐는 로딩 또는 저장을 위하여 선택된다. 단계(508)에서, 선택된 텍스쳐는 그 후-현재 진행중인 로딩 또는 저장 연산에 따라 텍스쳐 뱅크에 부가된다. 단계(510)에서, 텍스쳐는 적절하게 디스크와 같은 대용량 저장소로부터 로딩되거나 또는 대용량 저장소로 저장된다. 단계(512)에서, 로딩되거나 저장됨에 따라 텍스쳐 가 부가된다.
현재 동작중인 텍스쳐 뱅크 엔트리를 지시함으로써, 워커 스레드는 메인 스레드(main thread)가 워커 스레드가 그것의 현재 텍스쳐 뱅크 엔트리상에 동작하는 중에 사용자의 관점의 변화를 초래하는 업데이트된 쿼드 우선순위들에 기반하여 다른 텍스쳐 뱅크 엔트리들의 로딩-요구 상태 및 저장-요구 상태를 취소하는 것을 허용한다.
일반적으로, 도 5의 방법은 선택적으로 텍스쳐들을 메모리로 로딩하고 디스플레이될 정렬된 리스트에 기반하여 텍스쳐들을 디스플레이하는 방법을 제공한다. 예를 들어, 디스플레이 카드(1008)가 상대적으로 작은 메모리 공간을 가질 때, 도 5의 프로세스는 관찰자, 단지 사용자 또는 가상 3차원 환경내의 브라우저의 가상 위치의 바로 앞에 위치한 텍스쳐들만을 로딩하기 위하여 사용될 수 있다. 대안적으로, 디스플레이 카드(1008)가 큰 메모리 공간을 가질 때, 많은 개수의 텍스쳐들이 텍스쳐 뱅크에 부가되고, 도 5의 프로세스를 이용하여 이어서 디스플레이될 수 있다.
로딩 또는 저장을 위한 텍스쳐들의 세트를 위한 정보는 텍스쳐 풀(pool)에 직접 유지되거나 연산 큐로서 유지될 수 있다. 큐는 메인 스레드에 동작의 순서 이상의 더 많은 컨트롤을 제공하고, 또한 더 큰 전체 크기의 텍스쳐 풀에 더욱 효율적이다.
도 5에 대한 대안으로서, 다양한 다른 방법들이 사용될 수 있다. 가상 혼경이 다수의 작은 텍스쳐들을 포함한다면, 그 후 관찰자가 여기저기 이동함에 따라 메모리에 최적의 세트를 확보하는 것은 계산적 비용 및 디스크로부터의 다수의 상대적으로 작은 아이템들의 로딩의 두 가지 측면 모두에 있어 비교적 비용이 많이 들 수 있다. 제 1 방법에 따르면, 작은 텍스쳐들은 메모리로 매핑(map)하는 단일 파일로 저장된다. 이러한 방법의 변형에서, 파일은 개방 상태로 유지되고 각각의 작은 텍스쳐는 파일에서의 적절한 위치를 검색함으로써 적절한 시간에 판독된다. 이러한 변형된 방법은 단지 디스크상의 텍스쳐들의 배열에 영향을 미치고 디스크 오버헤드(overhead)를 감소시킨다.
제 2 방법에서, 가상 환경은 예컨대 큰 그리드(grid)를 가상 환경상으로 개념적으로 오버레잉(overlay)함으로써, 그리고 단일 그리드 사각형(square)의 모든 객체들을 그룹화함으로써 다수의 섹션들로 나누어진다. 관찰자와 가장 가까운 섹션들의 텍스쳐들은 메모리에 유지된다. 관찰자가 여기저기 이동함에 따라, 텍스쳐들의 전체 섹션들은 폐기되고, 새로운 섹션들이 로딩된다. 이러한 방법은 메모리의 작은 텍스쳐들에 필수적인 계산의 계산적 오버헤드를 현저하게 감소시킨다.
제 3 실시예에서, 전술한 두 개의 대안적인 방법들은 혼합되고, 단일 섹션의 텍스쳐들은 동일한 파일에 함께 저장된다. 모든 섹션들에 대한 단일 파일 또는 각 섹션이 대한 하나의 파일을 사용하는 것이 가능하다. 이러한 방법의 문제점은 텍스쳐가 하나 이상의 객체상에 사용된다면 다수의 섹션들에 사용될 수 있고, 한번 이상의 저장을 요구한다는 점이다.
대안적인 제4 실시예에서, 텍스쳐들은 주 메모리에 압축된 형식으로, 필요에 따라 비압축된 형식으로 남겨진다. 이러한 방법은 텍스쳐들이 필요로 하는 계산의 계산적 비용을 감소시키기 위하여 제 2 방법과 결합될 수 있으나, 비압축 텍스쳐들의 계산적 비용은 그 이점을 능가한다.
제 5 실시예에서, 다수의 텍스쳐들은 단일 하드웨어 텍스쳐로 패킹된다(pack). 예를 들어, 다수의 그래픽 카드들은 픽셀에서 이미지 폭 및 길이가 파워 오브 투(power of two)(예컨대, 256, 512, 1024, 2048)로 표현되는 텍스쳐들만을 처리할 수 있다. 원하는 크기가 이러한 크기들 중 하나가 아니라면, 그 후 하드웨어 텍스쳐에 할당된 메모리의 일부는 버려진다. 이러한 버려짐을 방지하기 위하여, 메모리는 실제 텍스쳐 크기보다 "넓게" 또는 "길게" 할당되고, 이러한 메모리는 다수의 원하는 텍스쳐들을 저장한다. 예를 들어, 원하는 텍스쳐가 100×64 픽셀이라면, 시스템은 512×64의 하드웨어 텍스쳐들을 할당하고, 수평적으로 하드웨어 텍스쳐들을 가로지르는 다섯 개의 원하는 텍스쳐들을 패킹할 수 있다. 디스플레이 시간에 시스템은 하드웨어 텍스쳐로부터 원하는 영역을 선택한다. 상기 경우에, 이전에 4개를 남겨두었던 공간으로 5개의 텍스쳐들이 끼워넣어짐에 따라 20%까지 하드웨어 텍스쳐 메모리 사용이 감소된다. 이러한 방법은 상기 방법들 중 어느 것과도 결합될 수 있다.
제6 실시예에서, 텍스쳐들은 디스크 공간을 절약하고 텍스쳐들을 로딩하거나 저장하는데 거리는 디스크 활성화 시간을 감소시키기 위하여 디스크상에서 압축된다. 이러한 방법은 텍스쳐를 저장하기 위한 준비 시간 및 후-로딩 시간을 감소시킬 수 있지만, 디스크 활성화가 제한된 요소이고 CPU 처리 전원이 제공가능하다면 이러한 교체(trade-off)는 적절하다. 이러한 방법의 사용은 텍스쳐들의 크기의 차 이에 따라 상기 제1 또는 제3 방법의 사용을 복잡하게 할 수 있다: 동일한 텍스쳐가 재-발생되고 재-저장된다면 대개 그 크기가 변할 수 있다. 텍스쳐의 크기가 커지면, 그 후 텍스쳐는 더이상 필드의 동일한 공간내로 끼워넣어질 것이다. 텍스쳐가 재-발생에 따라 작아진다면, 이것은 끼워넣어지지만 공간을 낭비하지 않을 것이다.
상태값들의 사용
상기 설명된 방법들은 텍스쳐 뱅크의 엔트리들이 스레드들이 텍스쳐 뱅크들을 처리하는 방법을 결정할 수 있도록 하는 상태값들과 함께 부가될 수 있음을 나타낸다. 일 실시예에서, 유효한 상태값들은 Available, Visible, Last Visible, Generating, Loading 및 Saving을 포함한다. Available의 상태값은 유효한 텍스쳐가 텍스쳐 뱅크 엔트리와 통합되지 않음을 나타낸다. Visible의 상태값은 통합된 텍스쳐 뱅크 엔트리가 메모리에 로딩된 텍스쳐를 갖고 가상 환경에 통합된 쿼드이 높은 텍스쳐 우선값(priority value)을 가짐을 뜻한다. Last Visible의 상태값은 텍스쳐는 프로세스가 마지막으로 체크된 시간을 눈으로 볼 수 있으나, 통합된 쿼드은 더 이상 높은 텍스쳐 우선순위을 갖지 않음을 뜻한다.
Generating의 상태값은 텍스쳐 컨텐츠가 텍스쳐 뱅크 엔트리를 위해 발생됨을 뜻한다. Loading의 상태값은 텍스쳐가 쿼드에 할당되고 고-해상도 텍스쳐가 디스크 또는 네트워크 저장장치와 같은 저장 위치에 존재하고, 상기 저장 위치로부터 로딩되도록 예정된다. 엔트리가 Loading의 상태값을 갖는 반면, 통합된 쿼드은 가상 3차원 환경에 저-해상도 텍스쳐를 사용한다.
Saving의 상태값은 발생이 텍스쳐를 위하여 완료되고 저장되는 프로세스에 있음을 뜻한다. 통합된 쿼드이 저장 프로세스 중에 가상 3차원 환경에서 보이는 곳에 있다면 텍스쳐가 표시될 수 있다. 일단 저장되면, 풀 엔트리는 쿼드 텍스쳐 우선순위에 따라 Visible 또는 Available로 변경된다.
일 실시예에서, 3개의 로딩 상태 및 3개의 저장 상태가 본 명세서에 설명된 메인 스레드와 워커 스레드 사이의 태스크(task)들을 처리하기 위하여 사용된다:
1. 요구되는(메인 스레드에 의해 설정된) 동작(로딩 또는 저장);
2. 진행중인(워커 스레드에 의해 설정된) 동작(로딩 또는 저장);
3. 완료된(워커 스레드에 의해 설정된) 동작(로딩 또는 저장).
메인 스레드는 로딩 또는 저장을 위하여 텍스쳐 뱅크의 다수의 엔트리들을 부가할 수 있다. 텍스쳐 우선순위가 변화하면, 그 후 메인 스레드는 아직 동작하지 않은 워커 스레드에서 현재 진행중이지 않은 임의의 태그(tag)들을 취소할 수 있다. 현재 진행중인 동작은 취소될 수 없다.
여러 눈에 띄는 로딩 및 저장 연산들이 존재할 때, 워커 스레드는 저장 연산들이 수행될 필요가 있을 때, 또는 역(converse)이 발생할 때조차 모든 로딩 연산들이 실행될 수 있도록 연산들의 균형을 맞출 수 있다. 로딩 연산들이 항상 우선으로 주어진다면, 그 후 관찰자가 적어도 하나의 로딩이 항상 눈에 띄는 것이 확실할 정도로 충분히 빠르게 움직일 때 저장 연산들은 발생하지 않을 것이다. 관찰자가 가상 환경에서 순항(navigating)을 멈출 때까지 이것은 텍스쳐들의 스톨링(stalling) 발생의 프로세스를 초래할 수 있다. 이것은 언제든 보이는 곳에 다수 의 큰 텍스쳐들을 최대화할 것이나, 큰 텍스쳐들이 아직 발생되지 않은 환경의 섹션으로의 관찰자의 이동 가능성을 증가시킬 것이다.
대안적으로, 항상 저장 연산들에 우선순위이 부여되고, 그 후 발생 속도가 최대화될 때, 발생 프로세스들로부터 부가적인 디스크 트래픽을 초래하고, 또한 로딩 가능한 디스크 대역폭을 감소시킨다. 이것은 큰 텍스쳐들이 존재하지 않는 영역으로의 관찰자의 이동 기회를 최소화할 것이나, 이동 중에 보이는 곳의 다수의 큰 텍스쳐들을 감소시킬 것이다.
제 1 방법에서, 임의의 로딩 연산들이 눈에 띈다면, 그 후 적어도 특정 갯수의 로딩 연산들이 각 저장 연산들 사이에 수행되도록 요구된다. 결과적으로, 이것은 연속적인 저장 연산들의 최대 갯수를 제한하고, 따라서 관찰자가 눈에 띄는 로딩 연산들을 갖는 객체로의 상당히 가까운 접근하는 것을 허용하기에 충분히 길도록 로딩 연산들을 저지하지 않는다.
텍스쳐 발생
텍스쳐 발생은 두 가지 방법을 이용하여 일어날 수 있다. 첫번째로, 텍스쳐가 손실되거나 통합된 소스 컨텐츠에 대하여 구식이기 때문에 텍스쳐는 재-발생될 것이다. 두번째로, 테스쳐를 표시하는 쿼드은 보이는 곳에 매우 가까울 수 있고 유효한 쿼드으로서 부가될 수 있기 때문에 텍스쳐가 재-발생될 수 있고, 쿼드상에 표시된 상기 텍스쳐는 소스 컨텐츠에 포함된 정보에 기반하여 끊임없이 업데이트될 수 있다. 후자의 방법은 쿼드가 예컨대 애니메이션을 표시하는 것을 가능하게 한다.
방법들 중 하나로, 소스 컨텐츠에서의 변화는 텍스쳐 재생성을 유도한다. 예를 들어, 통상적인 웹 브라우저에 디스플레이될 수 있는 소스 컨텐츠는 가상 메모리 윈도우에 렌더링되어, 이러한 가상 메모리 윈도우에 대한 업데이트는 쿼드 상에 디스플레이되는 텍스쳐에서 이루어질 수 있다. 업데이트는 애니메이팅되는 이미지(animated image)와 같이, 웹 페이지의 상태 변화를 포함할 수 있다. 3차원 가상 디스플레이 브라우저(100B)는 텍스쳐에 대한 소스 컨텐츠를 포함하는 웹 페이지를 로딩하고, 상기 웹 페이지를 HTML 소스 코드로 해석하고, 이러한 해석에 의해 어떤 텍스쳐 업데이트가 이루어지는지를 결정하기 위해 모질라(Mozilla)와 같은 종래의 웹 브라우저를 구현하는 소프트웨어 엘리먼트와 통합될 수 있다.
일 실시예에서, 웹 페이지가 로딩됨에 따라 생성되는 업데이트는 페이지 로드가 완료될 때까지 대기될 수 있다. 침범 영역(area affected)과 같이, 웹 페이지에 의해 요구되는 각각의 업데이트의 세부사항들(details)은 3차원 가상 공간 브라우저(1001B)를 통과한다. 3차원 가상 공간 브라우저(100B)는 생성 소스 당 메모리에 하나의 비트맵을 유지하며, 침범 영역으로부터 메모리의 적절한 비트맵으로 판독된다. 시간 마다 비트맵은 종래의 브라우저에 의한 결정에 따라 변하여, 고-해상 텍스쳐가 재생성된다. 관련 페이지 로드가 완료되거나 또는 생성 소스가 활성 상태(live state)로부터 선택되기 때문에 생성 소스가 비활성화되는 경우, 저-해상 버전의 텍스쳐가 생성되어, 비트맵 데이터가 대용량 저장기에 저장된다.
큰 텍스쳐 풀(pool)에 대해 동적 컨텐츠 생성(dynamic content generation)은 2개의 방법(approaches)을 이용하여 미리형성될 수 있다. 제 1 방법에서, 각각 의 생성 소스는 항상 고-해상 텍스쳐 풀의 엔트리를 갖는다. 생성이 완료될 때까지, 엔트리는 생성된 컨텐츠에 대한 임의의 이전 버전을 나타낸다. 이전 컨텐츠가 없다면, 텍스쳐 풀 엔트리는 생성이 완료될 때까지 가상 3차원 환경에서 효과적으로 사용되지 않는다. 제 2 방법에서, 생성 소스는 고-해상 텍스쳐 풀의 엔트리를 자동적으로 수신하지 않는다. 이는 주어진 텍스쳐가 고-해상 텍스쳐 풀(오브젝트가 폐쇄되어 도시됨에 따라), 및 생성 소스( 모두에 있을 수 있다는 것을 의미하나, 이는 보증되지 않게 발생할 수 있다. 고-해상 텍스쳐 풀의 엔트리를 갖는 생성 소스는 상기 제 1 방법과 동일한 방식으로 처리된다. 고-해상 텍스쳐 풀의 엔트리를 갖지 않는 생성 소스가 일단 생성을 완료하면, 생성된 텍스쳐는 풀에서 다음 이용가능한 엔트리속으로 바람직하게 카피된다.
애플리케이션 노트(APPLICATION NOTES)
본 발명의 방법들(approaches)은 다수의 커다란 텍스쳐가 이용되는 가상의 3차원 환경에서 텍스쳐를 디스플레이하는데 특히 유용하다. 예를 들어, 가상의 3차원 환경은 가상 도시의 가상 거리들 또는 가상 상점에서 가상 통로와 같은 일련의 채널들을 포함할 수 있다. 텍스쳐 및 이들의 배열은 메타데이터 또는 마크업 언어 표현을 기초하여 본 발명의 시스템에서 외부적으로 정의된다.
본 발명의 방법들은 예를 들어, 비디오 게임의 배경 환경에서, 또는 게임 캐릭터의 일부로서 시각적 목적을 위해 텍스쳐의 디스플레이를 나타내는 다른 방법들과는 상반되게, 텍스쳐가 정보 컨텐츠를 제공하는 환경에서 유용하다. 본 발명의 방법들은 하이퍼링크된 문서들과 유사하게 사용자 상호작용을 제공하는 텍스쳐들과 이용될 수 있다. 본 발명의 방법에서, 정보-보유 텍스쳐는 단지 환경을 나타내기 보다는 가상의 3차원 환경을 형성 또는 한정하는데 이용된다.
본 발명의 방법들은 다수의 텍스쳐가 평탄한 가상 표면 또는 다각형상에서 렌더링될 때 유용한다. 텍스쳐들에 대한 소스 컨텐츠는 원격 소스 또는 로컬 소스로부터 야기될 수 있다. 텍스쳐들에 대한 소스 컨텐츠는 큰 그룹들의 제 3 자들(third parties)에 의해 차지 또는 제어될 수 있다. 소스 컨텐츠는 인터넷 페이지, 텔레비젼 스크린샷, 모바일 폰 페이지, 게임 스크린샷, 이미지, 문서, 또는 비디오 컨텐츠 등을 포함할 수 있다. 텍스쳐는 외부 컨텐츠에 따라 동적으로 변할 수 있다. 리모트 소스는 텍스쳐가 사용되고 있고 사용자 세션(session) 동안 이들이 상기 환경에 위치되는 것을 다시 한정할 수 있다. 다중의 움직이는 텍스쳐가 제공될 수 있다.
일 실시예에서, 사용자는 상기 환경과의 상호작용에 의해 가상 환경내에서 컨텐츠 또는 텍스쳐 위치를 변형시킬 수 없다.
하드웨어 개요(HARDWARE OVERVIEW)
도 6은 본 발명이 실행될 수 있는 컴퓨터 시스템(600)을 나타내는 블록도이다. 컴퓨터 시스템(600)은 버스(602) 또는 정보 통신을 위한 다른 통신 메커니즘, 및 정보를 프로세싱하도록 버스(602)와 결합되는 프로세서(604)를 포함한다. 또한 컴퓨터 시스템(600)은 프로세서(604)에 의해 실행되는 정보 및 명령을 저장하도록 버스(602)에 결합되는 랜덤 액세스 메모리(RAM) 또는 다른 동적 저장 소자와 같은 메인 메모리(606)를 포함한다. 메인 메모리(606)는 프로세서(604)에 의해 실행되 는 명령들이 실행되는 동안 일시적인 변수들(variables) 또는 다른 중간 정보를 저장하는데 이용된다. 컴퓨터 시스템(600)은 프로세서(604)에 대한 정적 정보 및 명령을 저장하기 위해 버스(602)에 결합되는 ROM(608) 또는 다른 정정 저장 소자를 더 포함한다. 자기 디스크 또는 광학 디스크와 같은 저장 소자(610)가 제공되며 정보 및 명령을 저장하기 위해 버스(602)에 결합된다.
컴퓨터 시스템(600)은 버스(602)를 통해 컴퓨터 사용자에게 정보를 디스플레이하기 위해, CRT와 같은 디스플레이(612)와 결합될 수 있다. 디스플레이 메모리(611B)를 가지는 디스플레이 카드(611A)는 디스플레이(612)를 구동시키기 위해 버스(602)에 결합된다. 수문자(alphanumeric) 및 다른 키들을 포함하는 입력 소자(input device)가 프로세서(604)에 대한 정보 및 명령 선택의 통신이 이루어지도록 버스(602)에 결합된다. 다른 형태의 사용자 입력 소자로는 마우스, 트랙볼과 같은 커서 제어기(616), 또는 프로세서(604)에 대한 방향 정보 및 명령 선택의 통신 및 디스플레이(612) 상의 커서 이동을 제어하기 위한 커서 방향 키가 있다. 통상적으로 이러한 입력 소자는 상기 소자가 평면의 위치들을 특정화시키도록 허용하는 제 1 축(예를 들어, x) 및 제 2 축(예를 들어, y)의 2개 축에 2가지 등급의 자유도를 갖는다.
본 발명은 본 명세서에 개시된 기술들을 구현하는 컴퓨터 시스템(600)의 사용에 관한 것이다. 본 발명의 일 실시예에 따라, 이들 기술은 메인 메모리(606)에 포함된 하나 이상의 명령들의 하나 이상의 시퀀스를 수행하는 프로세서(604)에 응답하여 컴퓨터 시스템(600)에 의해 수행된다. 이러한 정보는 저장 소자(610)와 같 은, 또 다른 기계-판독가능 매체로부터 메인 메모리(606)에서 판독된다. 메인 메모리(606)에 포함된 시퀀스 명령들의 수행은 프로세서(604)가 본 명세서에 개시된 프로세스 단계들을 수행하게 한다. 대안적 실시예에서, 하드와이어드(hard-wired) 회로가 적절히 사용되거나 또는 본 발명을 실행하기 위한 소프트웨어 명령들과 조합하여 사용될 수 있다. 따라서, 본 발명의 실시예들은 하드웨어 회로 및 소프트웨어의 임의의 특정한 조합으로 제한되지 않는다.
본 명세서에서 이용되는 "기계-판독가능 매체(machine-readable medium)"란 용어는 기계가 특정 형태로 동작하게 하는 데이터 제공에 관련되는 임의의 매체로 간주된다. 컴퓨터 시스템(600)을 이용하여 구현되는 실시예에서, 다양한 기계-판독가능 매체는, 예를 들어, 실행을 위해 프로세서(604)에 명령들을 제공하는 단계를 수반한다. 이러한 매체는, 제한되지 않지만, 비휘발성 매체, 휘발성 매체 및 투과성(transmission) 매체를 포함하는 다양한 형태를 취할 수 있다. 비휘발성 매체는 예를 들어, 저장 소자(610)와 같은 광학 또는 자기 디스크들을 포함한다. 휘발성 매체로는 메인 메모리(606)와 같은 동적 메모리가 포함된다. 투과성 매체로는 버스(602)를 포함하는 와이어를 갖춘 동축 케이블, 구리 와이어 및 광섬유를 포함한다. 또한 투과성 매체는 전파(radio-wave) 및 적외선 데이터 통신 동안 생성된 것들과 같이, 음파 또는 광파 형태를 취할 수도 있다.
공통되는 형태의 기계-판독가능 매체는 예를 들어, 플로피 디스크, 플렉시블 디스크, 하드 디스크, 자기 테입 또는 임의의 다른 자기 매체, CD-ROM, 임의의 다른 광학 매체, 펀치 카드, 페이퍼 테입, 홀 패턴을 갖는 임의의 다른 물리적 매체, RAM, PROM 및 EPROM, FLASH-EPROM, 임의의 다른 메모리 칩 또는 카트리지, 하기 개시되는 반송파(carrier wave), 또는 컴퓨터가 판독할 수 있는 임의의 다른 매체를 포함한다.
다양한 형태의 기계-판독가능 매체는 실행을 위해 프로세서(604)에 대해 하나 이상의 명령의 하나 이상의 시퀀스를 운반하는 단계를 수반할 수 있다. 예를 들어, 명령들은 원격 컴퓨터의 자기 디스크상에서 초기에 운반될 수 있다. 원격 컴퓨터는 동적 메모리에 정보를 장착하고 모뎀을 이용하여 텔레폰 라인에 대해 명령을 전송할 수 있다. 컴퓨터 시스템(600)에 대한 로컬 모뎀은 텔레폰 라인상에서 데이터를 수신할 수 있고 데이터를 적외선 신호로 전환하는 적외선 송신기를 이용할 수 있다. 적외선 검출기가 적외선 신호로 운반된 데이터를 수신하고 적절한 회로가 버스(602) 상에 데이터를 배치한다. 버스(602)는 명령들을 검색하고 실행하는 프로세서(604)로부터 메인 메모리(606)으로 데이터를 운반한다. 메인 메모리(606)에 의해 검색된 명령들은 프로세서(604)에 의한 실행 이전 또는 이후에 저장 소자(610)에 선택적으로 저장될 수 있다.
또한 컴퓨터 시스템(600)은 버스(602)에 결합된 통신 인터페이스(618)를 포함한다. 통신 인터페이스(618)은 로컬 네트워크(622)에 결합된 네트워크 링크(620)에 대한 2-웨이 데이터 통신 결합을 제공한다. 예를 들어, 통신 인터페이스(618)는 해당 형태의 텔레폰 라인에 데이터 통신 접속을 제공하는 ISDN(integrated services digital network) 카드 또는 모뎀일 수 있다. 또 다른 예로서, 통신 인터페이스(618)는 호환성 LAN에 데이터 통신 접속을 제공하는 근거리 통신망(local area network)일 수 있다. 또한 무선 링크가 실행될 수도 있다. 임의의 실시예에서, 통신 인터페이스(618)는 다양한 형태의 정보를 나타내는 디지털 데이터 스트림을 운반하는 전기, 전자기 또는 광학 신호를 전송하고 수신한다.
통상적으로 네트워크 링크(620)는 하나 이상의 네트워크를 통해 다른 데이터 소자에 데이터 통신을 제공한다. 예를 들어, 네트워크 링크(620)는 로컬 네트워크(622)를 통해 인터넷 서비스 프로바이더(ISP)(626)에 의해 동작하는 데이터 장비 또는 호스트 컴퓨터(624)에 대한 접속을 제공할 수 있다. 결국 ISP(626)는 현재 통상적으로 "인터넷"(628)으로 간주되는 월드 와이드 패킷 데이터 통신 네트워크를 통한 데이터 통신 서비스를 제공한다. 로컬 네트워크(622) 및 인터넷(628) 모두는 디지털 데이터 스트림을 운반하는 전기, 전자기 또는 광학 신호를 이용한다. 다양한 네트워크를 통한 신호들 및 네트워크 링크(620) 상의 신호들 및 통신 인터페이스(618)를 통한 신호들은 컴퓨터 시스템(600)에 대해 디지털 데이터를 운반하며, 예시적으로 정보를 전송하는 반송파 형태이다.
컴퓨터 시스템(600)은 메세지를 전송하고 네트워크(들), 네트워크 링크(620) 및 통신 인터페이스(618)를 통해 프로그램 코드를 포함하는 데이터를 수신할 수 있다. 예를 들어 인터넷에서, 서버(630)는 인터넷(628), ISP(626), 로컬 네트워크(622) 및 통신 인터페이스(618)를 통해 애플리케이션 프로그램에 대해 요청된 코드를 전송할 수 있다.
수신된 코드는 수신됨에 따라 프로세서(604)에 의해 실행되고/실행되거나 저장 소자(610), 또는 이후 실행을 위해 다른 비휘발성 저장기에 저장된다. 이러한 방식에서, 컴퓨터 시스템(600)은 반송파 형태의 애플리케이션 코드를 얻을 수 있다.
연장 및 대안(EXTENSIONS AND ALTERNATIVES)
지금까지 설명에서, 본 발명은 본 발명의 특정 실시예들을 참조하였다. 그러나, 본 발명에 대한 다양한 변형 및 변경이 이루어질 수 있다. 예를 들어, 다양한 실시예에서, 다중 크기의 텍스쳐들이 상기 개시된 방법들과 조합되어 사용될 수 있다. 압축된 텍스쳐는 디스플레이 카드에서 디스플레이되기 직전에 압축해제(decompression)가 수행되도록 본 명세서에서 개시된 고해상도 또는 저 해상도 텍스쳐를 이용할 수 있다. 텍스쳐 저장 크기를 감소시키기 위해 공격적 손실 압축(aggressive lossy compression)가 이용될 수 있다. 인-메모리 캐쉬(in-memory cache)가 제공될 수 있다. 다수의 상이한 작은 텍스쳐가 전체 저장 크기를 감소시키기 위해 유니트로서 조합되고 저장될 수 있다. 따라서, 일 실시예에서, 가상 3차원 환경의 인접한 윈도우들에 대한 텍스쳐들이 단일 텍스쳐로서 혼합되고 렌더링도리 수 있다. 비-텍스쳐 정보 또는 벡터들의 설명은 텍스쳐의 근사치를 생성하는데 이용되는 텍스쳐와 관련하여 저장될 수 있다. 따라서, 상세한 설명 및 도면은 제한적인 의미보다는 도시적인 의미로 간주되어야 한다.

Claims (63)

  1. 모든 텍스쳐들이 임의로 동시에 보이지 않는 다수의 그래픽 텍스쳐들의 디스플레이를 관리하는 방법으로서,
    고해상도 텍스쳐들의 하나 이상의 풀들(pools)을 메모리에서 생성 및 저장하는 단계; 및
    가상 3차원 환경에서 다각형들 상에 상기 텍스쳐들을 디스플레이하는 단계 - 하나 이상의 상기 텍스쳐들은 정보 컨텐츠(informational content)를 디스플레이하고 상기 3차원 환경의 뷰어에 정보 컨텐츠를 전달하며, 하나 이상의 상기 텍스쳐들은 높은 레벨의 세부도(detail)에서 보여질 수 있고, 하나 이상의 상기 텍스쳐들은 대략적으로 유사한 치수들을 가지며, 뷰어는 하나 이상의 상기 텍스쳐들과 상호작용할 수 있으며,
    상기 텍스쳐들의 배치는 하나 이상의 소스들에 규정되고, 상기 텍스쳐들과 연관되는 정보 컨텐츠는 하나 이상의 원격 소스들로부터 유도될 수 있으며,
    상기 가상 3차원 환경은 하나 이상의 채널들을 포함하고, 상기 정보 컨텐츠를 디스플레이하는 하나 이상의 상기 텍스쳐들은 상기 채널들을 따라 정렬됨 -
    를 포함하는 그래픽 텍스쳐들의 디스플레이 관리 방법.
  2. 제 1 항에 있어서, 하나 이상의 상기 텍스쳐들이 디스플레이되는 하나 이상의 다각형들 중에서 각각의 다각형에 대해 텍스쳐 우선순위 값(priority value)을 할당하는 단계, 및 상기 텍스쳐 우선순위 값을 할당된 텍스쳐에 할당하는 단계를 더 포함하는 것을 특징으로 하는 그래픽 텍스쳐들의 디스플레이 관리 방법.
  3. 제 2 항에 있어서, 상기 연관되는 텍스쳐의 위치가 보여지는지 여부, 상기 위치가 뷰어의 위치로부터 얼마나 떨어져 있는지, 및 상기 뷰어의 위치에 대한 각도를 기반으로 상기 텍스쳐 우선순위 값을 결정하는 단계를 더 포함하는 것을 특징으로 하는 그래픽 텍스쳐들의 디스플레이 관리 방법.
  4. 디스플레이를 위해 사용되는 그래픽 텍스쳐들의 지속성을 관리하는 방법으로서,
    저장 매체에서 텍스쳐들의 하나 이상의 캐쉬들을 생성하는 단계;
    가상 3차원 환경에서 다각형들 상에 상기 텍스쳐들을 디스플레이하는 단계 - 다수의 상기 텍스쳐들은 정보 컨텐츠를 디스플레이하고 상기 가상 3차원 환경의 뷰어에 정보 컨턴츠를 전달하며, 하나 이상의 상기 텍스쳐들은 높은 레벨의 세부도에서 보여질 수 있고, 상기 텍스쳐들의 대부분은 대략적으로 유사한 치수들을 가지며, 뷰어는 하나 이상의 상기 텍스쳐들과 상호작용할 수 있고,
    상기 텍스쳐들의 배치는 상기 방법을 구현하는 기계로부터 분리된 하나 이상의 소스들에서 규정되며, 상기 텍스쳐들과 연관되는 컨텐츠는 하나 이상의 원격 소스들로부터 유도될 수 있고,
    상기 가상 3차원 환경은 하나 이상의 채널들을 포함하고, 정보 컨텐츠를 디 스플레이하는 다수의 상기 텍스쳐들은 상기 채널들을 따라 정렬됨 -; 및
    상기 가상 3차원 환경내에서 후속 검색 및 디스플레이를 위해 저장 매체상의 캐쉬에 하나 이상의 텍스쳐들을 저장하는 단계
    의 기계-구현되는 단계들을 포함하는 그래픽 텍스쳐들의 지속성 관리 방법.
  5. 제 4 항에 있어서, 상기 가상 3차원 환경으로부터 빠져나올 때 현재의 가상 3차원 환경에 관련된 상기 텍스쳐들을 캐쉬에 저장하는 단계를 더 포함하는 것을 특징으로 하는 그래픽 텍스쳐들의 지속성 관리 방법.
  6. 제 4 항에 있어서, 각각의 텍스쳐들이 생성되거나 다운로딩된 이후 상기 텍스쳐들을 저장하는 단계를 더 포함하는 것을 특징으로 하는 그래픽 텍스쳐들의 지속성 관리 방법.
  7. 제 4 항, 제 5 항 또는 제 6 항 중 어느 한 항에 있어서, 저장된 상기 텍스쳐들은 현재 디스플레이된 가상 3차원 환경 이외에 상이한 가상 3차원 환경에 관련되는 것을 특징으로 하는 그래픽 텍스쳐들의 지속성 관리 방법.
  8. 제 4 항 내지 제 7 항 중 어느 한 항에 있어서, 상기 저장 매체에 대한 저장을 명령하기 위해 상기 텍스쳐들에 우선순위 값들을 할당하는 단계, 및 상기 저장 단계를 수행할 때 상기 우선순위 값들을 사용하는 단계를 더 포함하는 것을 특징으 로 하는 그래픽 텍스쳐들의 지속성 관리 방법.
  9. 제 1 항 내지 제 8 항 중 어느 한 항에 있어서, 상기 캐쉬에서 상기 텍스쳐들을 저장하기 이전에 상기 텍스쳐들을 압축하는 단계 및 상기 캐쉬로부터 상기 텍스쳐들을 로딩할 때 상기 텍스쳐들을 압축해제하는 단계를 더 포함하는 것을 특징으로 하는 그래픽 텍스쳐들의 지속성 관리 방법.
  10. 제 1 항 내지 제 9 항 중 어느 한 항에 있어서, 디스플레이를 위해 상기 텍스쳐들을 유지하는데 사용되는 메모리의 제 2 영역 및 상기 메인 캐쉬를 위해 사용되는 상기 저장 매체 사이의 컴퓨터 메인 메모리의 제 1 영역에 형성되는 부가적인 캐쉬에 상기 텍스쳐들을 저장하는 단계를 더 포함하는 것을 특징으로 하는 그래픽 텍스쳐들의 지속성 관리 방법.
  11. 제 10 항에 있어서, 상기 메인 메모리 캐쉬에 상기 텍스쳐들을 압축하는 단계 및 디스플레이를 위해 상기 텍스쳐들을 유지하는데 사용되는 메모리의 제 2 영역에 상기 텍스쳐들을 복사하기 이전에 상기 텍스쳐들을 압축해제하는 단계를 더 포함하는 것을 특징으로 하는 그래픽 텍스쳐들의 지속성 관리 방법.
  12. 디스플레이를 위해 사용되는 그래픽 텍스쳐들의 업데이트를 관리하는 방법으로서,
    가상 3차원 환경에서 다각형들 상에 상기 텍스쳐들을 디스플레이하는 단계 - 다수의 상기 텍스쳐들은 정보 컨텐츠를 디스플레이하고 상기 가상 3차원 환경의 뷰어에 정보 컨텐츠를 전달하며, 하나 이상의 상기 텍스쳐들은 높은 레벨의 세부도에서 보여질 수 있고, 상기 텍스쳐들의 대부분은 대략적으로 유사한 치수들을 가지며, 뷰어는 하나 이상의 상기 텍스쳐들과 상호작용할 수 있으며,
    상기 텍스쳐들의 배치는 상기 방법을 구현하는 기계로부터 분리된 하나 이상의 소스들에서 규정되고, 상기 텍스쳐들과 연관된 컨텐츠는 하나 이상의 원격 소스들로부터 유도될 수 있으며,
    상기 가상 3차원 환경은 하나 이상의 채널들을 포함하고, 정보 컨텐츠를 디스플레이하는 다수의 상기 텍스쳐들은 상기 채널들을 따라 정렬됨 -;
    하나 이상의 컨텐츠 엘리먼트들 중에서 특정 컨텐츠 엘리먼트에 대해 업데이트가 존재하는지 여부를 결정하는 단계 - 각각의 컨텐츠 엘리먼트는 하나 이상의 텍스쳐들과 연관됨 -; 및
    임의의 업데이트들이 존재하면, 관련 텍스쳐 또는 텍스쳐들을 업데이트하는 단계
    를 포함하는 그래픽 텍스쳐들의 업데이트 관리 방법.
  13. 제 12 항에 있어서, 업데이트를 요구하는 것으로서 상기 방법을 구현하는 상기 기계 상에서 국부적으로 이용가능하지 않은 텍스쳐를 고려하는 단계를 더 포함하는 것을 특징으로 하는 그래픽 텍스쳐들의 업데이트 관리 방법.
  14. 제 12 항 또는 제 13 항에 있어서, 동시에 처리되는 하나 이상의 소스 컨텐츠 엘리먼트를 허용하는 텍스쳐 생성 풀에 대한 소스 컨텐츠가 생성되는 것을 특징으로 하는 그래픽 텍스쳐들의 업데이트 관리 방법.
  15. 제 14 항에 있어서, 상기 텍스쳐 생성 풀의 엔트리들은 상기 컨텐츠 엘리먼트들에 포함된 정보를 기반으로 텍스쳐의 단일 업데이트 또는 생성, 또는 업데이트들의 연속 스트림을 제공하는데 사용될 수 있는 것을 특징으로 하는 그래픽 텍스쳐들의 업데이트 관리 방법.
  16. 제 14 항 또는 제 15 항에 있어서, 하나 이상의 기준을 기초로 텍스쳐들에 대한 라이브 우선순위(live priority)를 할당하는 단계 및 컨텐츠 엘리먼트들로부터 상기 텍스쳐들을 생성하기 위해 하나 이상의 생성 풀 엔트리들을 예약하는 단계를 더 포함하는 것을 특징으로 하는 그래픽 텍스쳐들의 업데이트 관리 방법.
  17. 제 16 항에 있어서, 상기 텍스쳐를 디스플레이하는 다각형이 보여질 수 있거나 매우 가까운 미래에 보여질 수 있는지 여부를 기반으로 상기 라이브 우선순위를 결정하는 단계를 더 포함하는 것을 특징으로 하는 그래픽 텍스쳐들의 업데이트 관리 방법.
  18. 제 16 항 또는 제 17 항에 있어서, 상기 텍스쳐가 동적으로 업데이트되도록 하는 정보를 텍스쳐에 대한 상기 소스 컨텐츠가 포함하고 있는지 여부를 기초로 상기 라이브 우선순위를 결정하는 단계를 더 포함하는 것을 특징으로 하는 그래픽 텍스쳐들의 업데이트 관리 방법.
  19. 제 12 항 내지 제 18 항 중 어느 한 항에 있어서, 특정 컨텐츠 엘리먼트들을 위해 임의의 업데이트들을 처리하기 위한 우선순위의 규칙(order)을 결정하는 단계, 그 우선순위에 따라 상기 관련 텍스쳐들을 업데이트하는 단계를 더 포함하는 것을 특징으로 하는 그래픽 텍스쳐들의 업데이트 관리 방법.
  20. 제 12 항 내지 제 19 항 중 어느 한 항에 있어서, 상기 가상 3차원 환경내에서 하나 이상의 상기 텍스쳐들의 위치가 변경되는 것을 특징으로 하는 그래픽 텍스쳐들의 업데이트 관리 방법.
  21. 제 12 항 내지 제 20 항 중 어느 한 항에 있어서, 상기 텍스쳐들 중 하나는 연관된 컨텐츠 소스에 대한 상기 텍스쳐의 맵핑의 변화 결과로서 변경되는 것을 특징으로 하는 그래픽 텍스쳐들의 업데이트 관리 방법.
  22. 제 12 항 내지 제 20 항 중 어느 한 항에 있어서, 상기 텍스쳐들 중 하나는 연관된 컨텐츠 소스의 변화 결과로서 변경되는 것을 특징으로 하는 그래픽 텍스쳐 들의 업데이트 관리 방법.
  23. 제 12 항 내지 제 20 항 중 어느 한 항에 있어서, 상기 텍스쳐들 중 하나는 애니메이션 또는 다른 동적 정보를 포함하는 상기 컨텐츠 소스의 결과로서 변경되는 것을 특징으로 하는 그래픽 텍스쳐들의 업데이트 관리 방법.
  24. 제 12 항 내지 제 20 항 중 어느 한 항에 있어서, 상기 텍스쳐는 상기 사용자와의 상호작용 또는 상기 사용자의 특성의 결과로서 변경되는 것을 특징으로 하는 그래픽 텍스쳐들의 업데이트 관리 방법.
  25. 제 24 항에 있어서, 상기 뷰어 특성은 상기 뷰어의 나이 또는 언어 선호도일 수 있는 것을 특징으로 하는 그래픽 텍스쳐들의 업데이트 관리 방법.
  26. 제 12 항 내지 제 20 항 중 어느 한 항에 있어서, 상기 텍스쳐는 상기 가상 3차원 환경내에서 상기 사용자의 위치 및/또는 뷰포인트(viewpoint)의 변화 결과로서 변경되는 것을 특징으로 하는 그래픽 텍스쳐들의 업데이트 관리 방법.
  27. 제 12 항 내지 제 20 항 중 어느 한 항에 있어서, 상기 텍스쳐는 상기 텍스쳐의 업데이트 상태를 기초로 변경되는 것을 특징으로 하는 그래픽 텍스쳐들의 업데이트 관리 방법.
  28. 제 27 항에 있어서, 상기 상태는 "로딩 보류(load pending)", "생성 보류(generate pending)", "로딩 진행(load in progress)", "생성 진행(generat in progress)", "로딩 실패(load failed)", 또는 "생성 실패(generate failed)" 중 하나인 것을 특징으로 하는 그래픽 텍스쳐들의 업데이트 관리 방법.
  29. 제 12 항 내지 제 27 항 중 어느 한 항에 있어서, 상기 텍스쳐의 변화는 생성되는 새로운 텍스쳐를 초래하는 것을 특징으로 하는 그래픽 텍스쳐들의 업데이트 관리 방법.
  30. 제 12 항 내지 제 27 항 중 어느 한 항에 있어서, 상기 텍스쳐 변화는 원격 소스로부터 다운로딩되는 새로운 텍스쳐를 초래하는 것을 특징으로 하는 그래픽 텍스쳐들의 업데이트 관리 방법.
  31. 제 1 항 및 제 12 항에 있어서, 텍스쳐들을 액티브하게 생성하기 위해 하나 이상의 상기 텍스쳐 풀 엔트리들을 예약하는 단계를 더 포함하는 것을 특징으로 하는 그래픽 텍스쳐들의 업데이트 관리 방법.
  32. 제 2 항 또는 제 31 항에 있어서, 텍스쳐들을 액티브하게 생성하기 위해 하나 이상의 상기 텍스쳐 풀 엔트리들을 예약하는 단계, 및 높은 우선순위 텍스쳐들 에 상기 예약된 텍스쳐 풀 엔트리들을 할당하는 단계를 더 포함하는 것을 특징으로 하는 그래픽 텍스쳐들의 업데이트 관리 방법.
  33. 디스플레이를 위해 사용되는 그래픽 텍스쳐들을 관리하는 방법으로서,
    가상 3차원 환경에서 다각형들 상에 상기 텍스쳐들을 디스플레이하는 단계;
    각각의 텍스쳐와 연관된 하나 이상의 저해상도 텍스쳐들을 구비하는 단계 - 다수의 상기 텍스쳐들은 정보 컨텐츠를 디스플레이하고 상기 가상 3차원 환경의 뷰어에 정보 컨텐츠를 전달하며, 하나 이상의 상기 텍스쳐들은 높은 레벨의 세부도에서 보여질 수 있고, 상기 텍스쳐들의 대부분은 대략적으로 유사한 치수들을 가지며, 뷰어는 하나 이상의 상기 텍스쳐들과 상호작용할 수 있으며,
    상기 텍스쳐들의 배치는 상기 방법을 구현하는 기계로부터 분리된 하나 이상의 소스들에서 규정되고, 상기 텍스쳐들과 연관된 컨텐츠는 하나 이상의 원격 소스들로부터 유도될 수 있으며,
    상기 가상 3차원 환경은 하나 이상의 채널들을 포함하고, 정보 컨텐츠를 디스플레이하는 다수의 상기 텍스쳐들은 상기 채널들을 따라 정렬됨 -; 및
    하나 이상의 기준을 기초로 고해상도 텍스쳐를 대신하여 저해상도 텍스쳐를 디스플레이할지 여부를 결정하는 단계
    를 포함하는 그래픽 텍스쳐들의 관리 방법.
  34. 제 33 항에 있어서, 대용량(mass) 저장 시스템에 상기 저해상도 텍스쳐들을 저장하는 단계를 더 포함하는 것을 특징으로 하는 그래픽 텍스쳐들의 관리 방법.
  35. 제 33 항 또는 제 34 항에 있어서, 네트워크를 통해 하나 이상의 상기 고해상도 텍스쳐들에 해당하는 저해상도 텍스쳐를 다운로딩하는 단계를 더 포함하는 것을 특징으로 하는 그래픽 텍스쳐들의 관리 방법.
  36. 제 35 항에 있어서, 상기 저해상도 텍스쳐들의 다운로딩을 위해 우선순위 규칙을 규정하는 단계 및 그 우선순위에 따라 저해상도 텍스쳐들을 다운로딩하는 단계를 더 포함하는 것을 특징으로 하는 그래픽 텍스쳐들의 관리 방법.
  37. 제 36 항에 있어서, 상기 우선순위는 상기 가상 3차원 환경에서 상기 뷰어의 위치를 기초로 하는 것을 특징으로 하는 그래픽 텍스쳐들의 관리 방법.
  38. 제 12 항 또는 제 33 항에 있어서, 해당하는 고해상도 텍스쳐와 동일한 시간에서 각각의 저해상도 텍스쳐를 생성하는 단계를 더 포함하는 것을 특징으로 하는 그래픽 텍스쳐들의 관리 방법.
  39. 제 1 항 및 제 33 항에 있어서, 해당하는 저해상도 텍스쳐들의 더 큰 하나 이상의 풀들이 부가적으로 생성되는 것을 특징으로 하는 그래픽 텍스쳐들의 관리 방법.
  40. 제 1 항 내지 제 39 항 중 어느 한 항에 있어서, 상기 컨텐츠는 클라이언트 컴퓨터 시스템에 대한 네트워크 상에서 다운로딩되고, 다운로딩 이후 상기 클라이언트 컴퓨터 시스템을 이용하여 구조화되어 랜더링되는 것을 특징으로 하는 그래픽 텍스쳐들의 관리 방법.
  41. 제 1 항 내지 제 40 항 중 어느 한 항에 있어서, 네트워크에 대하여 클라이언트 컴퓨터 시스템에 완성 텍스쳐를 다운로딩하는 단계를 더 포함하는 것을 특징으로 하는 그래픽 텍스쳐들의 관리 방법.
  42. 제 41 항에 있어서, 완성 텍스쳐들의 다운로딩에 대한 우선순위 규칙을 할당하는 단계 및 상기 우선순위에 따라 상기 완성 텍스쳐들을 다운로딩하는 단계를 더 포함하는 것을 특징으로 하는 그래픽 텍스쳐들의 관리 방법.
  43. 제 1 항 내지 제 42 항 중 어느 한 항에 있어서, 상기 컨텐츠는 하나 이상의 엔티티(entity)에 의해 차지(owned) 또는 제어되는 것을 특징으로 하는 그래픽 텍스쳐들의 관리 방법.
  44. 제 1 항 내지 제 43 항 중 어느 한 항에 있어서, 상기 가상 환경과 상호작용함으로써 사용자가 상기 가상 3차원 환경내에서 텍스쳐들의 할당을 변경하는 것을 차단하는 단계를 더 포함하는 것을 특징으로 하는 그래픽 텍스쳐들의 관리 방법.
  45. 제 1 항 내지 제 44 항 중 어느 한 항에 있어서, 상기 소스 컨텐츠는 인터넷 페이지들, 텔레비젼 스크린샷들, 휴대전화 페이지들, 게임 스크린샷들, 이미지들, 문서들, 또는 비디오 컨텐츠 중 하나 이상을 포함하는 것을 특징으로 하는 그래픽 텍스쳐들의 관리 방법.
  46. 제 2 항 및 제 36 항에 있어서, 더 높은 텍스쳐 우선순위를 갖는 상기 다각형들은 상기 고해상도 텍스쳐 툴에서 할당된 엔트리들이고, 나머지 다각형들의 일부는 할당된 저해상도 텍스쳐들인 것을 특징으로 하는 그래픽 텍스쳐들의 관리 방법.
  47. 제 1 항 내지 제 46 항 중 어느 한 항에 있어서, 상기 방법은,
    다각형이 이용될 필요가 있는지 여부를 결정하는 단계 - 상기 다각형은 특정 텍스쳐와 연관됨 -;
    상기 텍스쳐를 생성하는 단계가 종료되었으면, 상기 특정 텍스쳐를 디스플레이하는 단계;
    상기 텍스쳐를 생성하는 단계가 종료되지 않았으면, 제 2 특정 텍스쳐를 디스플레이하는 단계를 더 포함하는 것을 특징으로 하는 그래픽 텍스쳐들의 관리 방법.
  48. 제 1 항 내지 제 47 항 중 어느 한 항에 있어서, 상기 방법은,
    다각형이 이용될 필요가 있는지 여부를 결정하는 단계 - 상기 다각형은 특정 텍스쳐와 연관됨 -;
    상기 텍스쳐가 메모리에 있으면, 상기 특정 텍스쳐를 디스플레이하는 단계;
    상기 텍스쳐가 메모리에 있지 않으면, 상기 텍스쳐를 획득하는 프로세스를 메모리로 개시하는 단계 및 상기 로딩이 종료되지 않는 동안 제 2 특정 텍스쳐를 디스플레이하는 단계를 더 포함하는 것을 특징으로 하는 그래픽 텍스쳐들의 관리 방법.
  49. 제 4 항 또는 제 48 항에 있어서, 상기 텍스쳐를 획득하는 프로세스는 로컬 저장 매체로부터 상기 텍스쳐를 로딩하는 단계를 포함하는 것을 특징으로 하는 그래픽 텍스쳐들의 관리 방법.
  50. 제 48 항에 있어서, 상기 텍스쳐를 획득하는 프로세스는 네트워크로부터 상기 텍스쳐를 다운로딩하는 단계를 포함하는 것을 특징으로 하는 그래픽 텍스쳐들의 관리 방법.
  51. 제 4 항, 제 49 항 또는 제 50 항 중 어느 한 항에 있어서, 상기 텍스쳐들을 로딩하기 위해 각각의 텍스쳐에 우선순위 값이 할당되고, 상기 우선순위 값은 상기 텍스쳐들의 로딩에 사용되는 것을 특징으로 하는 그래픽 텍스쳐들의 관리 방법.
  52. 제 4 항 또는 제 48 항에 있어서, 캐쉬에서 존재하는 현재의 가상 3차원 환경에 관련된 하나 이상의 상기 텍스쳐들은 상기 가상 3차원 환경으로의 엔트리시 상기 캐쉬로부터 로딩되는 것을 특징으로 하는 그래픽 텍스쳐들의 관리 방법.
  53. 제 4 항 또는 제 48 항에 있어서, 캐쉬에서 존재하는 현재의 가상 3차원 환경에 관련된 상기 텍스쳐들은 상기 캐쉬로부터의 요구시 로딩되는 것을 특징으로 하는 그래픽 텍스쳐들의 관리 방법.
  54. 제 47 항 또는 제 48 항에 있어서, 상기 제 2 특정 텍스쳐는 이전 버전의 상기 제 1 특정 텍스쳐를 기반으로 하는 것을 특징으로 하는 그래픽 텍스쳐들의 관리 방법.
  55. 제 47 항 또는 제 48 항에 있어서, 상기 제 2 특정 텍스쳐는 상기 제 1 특정 텍스쳐를 기초로 하지 않는 현존하는 세트의 선택적 텍스쳐들로부터 선택되는 것을 특징으로 하는 그래픽 텍스쳐들의 관리 방법.
  56. 제 47 항 또는 제 48 항에 있어서, 상기 제 2 특정 텍스쳐는 고해상도 텍스쳐를 포함하는 것을 특징으로 하는 그래픽 텍스쳐들의 관리 방법.
  57. 제 47 항 또는 제 48 항에 있어서, 상기 제 2 특정 텍스쳐는 저해상도 텍스쳐를 포함하는 것을 특징으로 하는 그래픽 텍스쳐들의 관리 방법.
  58. 제 1 항 또는 제 47 항 또는 제 48 항에 있어서,
    로딩에 전용되는 메모리에서 하나 이상의 풀들을 생성하고 텍스쳐들을 생성하는 단계; 및
    텍스쳐들을 디스플레이하기 위해 메모리에서 별도의 풀을 생성하는 단계를 더 포함하는 것을 특징으로 하는 그래픽 텍스쳐들의 관리 방법.
  59. 제 58 항에 있어서, 텍스쳐의 생성이 종료되는 것을 검출하는 단계;
    상기 생성된 텍스쳐가 상기 디스플레이 풀의 적어도 하나의 텍스쳐들 보다 더 디스플레이를 위해 최적화되는지를 결정하는 단계;
    디스플레이를 위해 적어도 최적화된 상기 디스플레이 풀에서 상기 텍스쳐를 결정하는 단계 및 디스플레이 텍스쳐 풀 엔트리를 상기 생성된 텍스쳐로 대체하는 단계;
    상기 로딩/생성 풀에서 생성하기 위해 이전에 사용된 상기 엔트리를 다른 텍스쳐들에 대해 이용가능하게 하는 단계를 더 포함하는 것을 특징으로 하는 그래픽 텍스쳐들의 관리 방법.
  60. 하나 이상의 프로세서들에 의해 실행될 때, 상기 하나 이상의 프로세서들이 제 1 항 내지 제 59 항 중 어느 한 항에 따른 단계들을 수행하도록 하는 명령어들의 하나 이상의 시퀀스들을 포함하는 컴퓨터 판독가능한 매체.
  61. 그래픽 이미지를 디스플레이하기 위한 수단; 및
    제 1 항 내지 제 59 항 중 어느 한 항에 따른 단계들에서 인용된 기능들을 수행하기 위한 수단
    을 포함하는 컴퓨터 장치.
  62. 하나 이상의 프로세서들;
    상기 하나 이상의 프로세서들에 통신되게 결합된 하나 이상의 메모리들; 및
    하나 이상의 프로세서들에 의해 실행될 때, 상기 하나 이상의 프로세서들이 제 1 항 내지 제 59 항 중 어느 한 항에 따른 단계들을 수행하도록 하는 명령어들의 하나 이상의 시퀀스들을 포함하는 하나 이상의 컴퓨터 판독가능한 매체
    를 포함하는 컴퓨터 장치.
  63. 제 1 항 내지 제 59 항 중 어느 한 항의 방법을 수행할 수 있는 명령어들의 하나 이상의 시퀀스들을 포함하는 컴퓨터 프로그램.
KR1020067025882A 2004-06-08 2004-07-23 그래픽 텍스쳐들의 디스플레이 KR20070055420A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/864,816 US7423653B2 (en) 2003-07-25 2004-06-08 Displaying graphical textures
US10/864,816 2004-06-08

Publications (1)

Publication Number Publication Date
KR20070055420A true KR20070055420A (ko) 2007-05-30

Family

ID=34958061

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067025882A KR20070055420A (ko) 2004-06-08 2004-07-23 그래픽 텍스쳐들의 디스플레이

Country Status (6)

Country Link
EP (1) EP1754197A1 (ko)
JP (1) JP2008502064A (ko)
KR (1) KR20070055420A (ko)
CN (1) CN1961339A (ko)
CA (1) CA2567631A1 (ko)
WO (1) WO2005122096A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200027004A (ko) * 2017-07-21 2020-03-11 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 게임 렌더링 방법, 및 게임 자원 파일 생성 방법, 장치, 및 기기

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7961192B2 (en) * 2006-08-01 2011-06-14 Nvidia Corporation Multi-graphics processor system and method for processing content communicated over a network for display purposes
EP2330561A1 (en) * 2009-12-04 2011-06-08 Alcatel Lucent Method for browsing a 3 dimensional virtual environment
US8593475B2 (en) * 2010-10-13 2013-11-26 Qualcomm Incorporated Systems and methods for dynamic procedural texture generation management
US9786094B2 (en) * 2012-03-19 2017-10-10 Electronics For Imaging, Inc. Method and apparatus for creating a dimensional layer for an image file
CN103077129B (zh) * 2012-12-31 2016-07-13 上海算芯微电子有限公司 信息处理方法与装置
GB2539241B (en) * 2015-06-11 2019-10-23 Advanced Risc Mach Ltd Video processing system
CN106843709B (zh) * 2015-12-04 2020-04-14 阿里巴巴集团控股有限公司 根据实时信息显示展现对象的方法和装置
CN106780292A (zh) * 2016-12-12 2017-05-31 中国航空工业集团公司西安航空计算技术研究所 一种低开销纹理对象管理方法
CN109448094B (zh) * 2018-09-21 2022-07-15 苏州蜗牛数字科技股份有限公司 一种纹理图集调度方法
CN109671147B (zh) * 2018-12-27 2023-09-26 网易(杭州)网络有限公司 基于三维模型的纹理贴图生成方法及装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3452512B2 (ja) * 1993-06-10 2003-09-29 株式会社ナムコ ゲーム装置及びゲーム用の画像生成方法
EP0890925A3 (en) * 1997-06-30 1999-03-31 Sun Microsystems, Inc. Computer system including a three-dimensional graphics accelerator which includes improved texture mapping capabilities
JP3365293B2 (ja) * 1998-02-12 2003-01-08 株式会社日立製作所 Dram,ロジック混載lsiを使ったキャッシュメモリ及びそれを用いたグラフィックスシステム
US6232981B1 (en) * 1998-03-26 2001-05-15 Silicon Graphics, Inc. Method for improving texture locality for pixel quads by diagonal level-of-detail calculation
US6525737B1 (en) * 1998-08-20 2003-02-25 Apple Computer, Inc. Graphics processor with pipeline state storage and retrieval
JP2000215324A (ja) * 1999-01-21 2000-08-04 Mitsubishi Electric Corp マルチユ―ザ型テクスチャ使用3次元空間表示装置、空間表示方法及び空間表示方法記録媒体
JP2001022948A (ja) * 1999-07-08 2001-01-26 Sega Corp 画像処理装置および画像処理方法、並びに記録媒体
JP4530312B2 (ja) * 2000-07-27 2010-08-25 株式会社バンダイナムコゲームス ゲームシステム及び情報記憶媒体
JP4704558B2 (ja) * 2000-12-25 2011-06-15 三菱電機株式会社 3次元空間データ送信表示システム、3次元空間データ送信方法、3次元空間データ送信方法をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体、3次元空間データ送信表示方法、及び3次元空間データ送信表示方法をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2003294457A (ja) * 2002-04-04 2003-10-15 Matsushita Electric Ind Co Ltd ナビゲーション装置
AU2003245713A1 (en) * 2002-07-10 2004-01-23 Harman Becker Automotive Systems Gmbh System for texturizing electronic representations of objects

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200027004A (ko) * 2017-07-21 2020-03-11 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 게임 렌더링 방법, 및 게임 자원 파일 생성 방법, 장치, 및 기기
US11344806B2 (en) 2017-07-21 2022-05-31 Tencent Technology (Shenzhen) Company Limited Method for rendering game, and method, apparatus and device for generating game resource file

Also Published As

Publication number Publication date
WO2005122096A1 (en) 2005-12-22
CN1961339A (zh) 2007-05-09
EP1754197A1 (en) 2007-02-21
JP2008502064A (ja) 2008-01-24
CA2567631A1 (en) 2005-12-22

Similar Documents

Publication Publication Date Title
US7423653B2 (en) Displaying graphical textures
US5956039A (en) System and method for increasing performance by efficient use of limited resources via incremental fetching, loading and unloading of data assets of three-dimensional worlds based on transient asset priorities
CN101401087B (zh) 交替图形集的高效编码
US8996987B2 (en) List view optimization
US7925100B2 (en) Tiled packaging of vector image data
US6983283B2 (en) Managing scene graph memory using data staging
US9373308B2 (en) Multi-viewport display of multi-resolution hierarchical image
US10423527B2 (en) Memory management and image display for mobile devices
US5973699A (en) System and method for increasing the performance for real-time rendering of three-dimensional polygonal data
US10540077B1 (en) Conserving processing resources by controlling updates to damaged tiles of a content page
US7283135B1 (en) Hierarchical tile-based data structure for efficient client-server publishing of data over network connections
EP1876569A1 (en) Data structure for expressing video object, program for generating data structure for expressing video object, method for generating data structure for expressing video object, video software development device, image processing program, video processing method, video processing device, and recordin
US20120268465A1 (en) Image file generation device, image processing device, image file generation method, image processing method, and data structure for image files
CN102447901B (zh) 用于处理要传送到远程计算设备的图形数据的方法和系统
KR20040035585A (ko) 제한된 밴드폭 통신 채널을 위해 최적화된 동적 표시절두체에 대한 네트워크 이미지 배달 시스템 및 방법
KR20140105609A (ko) 온라인 게이밍
KR20070055420A (ko) 그래픽 텍스쳐들의 디스플레이
US20220004405A1 (en) 3D API Redirection for Virtual Desktop Infrastructure
US20190080017A1 (en) Method, system, and device that invokes a web engine
CN117270834A (zh) 地图渲染方法、装置、电子设备和存储介质
Ding et al. Remote visualization by browsing image based databases with logistical networking
KR20160019526A (ko) 그래픽 동작들 통합
CN115330919A (zh) 用于动态显示的持久粒子轨迹的渲染
US11798199B2 (en) Method and apparatus for configuring spatial information
CN113663328A (zh) 画面录制方法、装置、计算机设备及存储介质

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid