CN1252648C - 三维图象绘制方法 - Google Patents

三维图象绘制方法 Download PDF

Info

Publication number
CN1252648C
CN1252648C CNB98810847XA CN98810847A CN1252648C CN 1252648 C CN1252648 C CN 1252648C CN B98810847X A CNB98810847X A CN B98810847XA CN 98810847 A CN98810847 A CN 98810847A CN 1252648 C CN1252648 C CN 1252648C
Authority
CN
China
Prior art keywords
texture
data
pattern data
lattice sheet
pixel
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Lifetime
Application number
CNB98810847XA
Other languages
English (en)
Other versions
CN1278350A (zh
Inventor
K·于尔萨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of CN1278350A publication Critical patent/CN1278350A/zh
Application granted granted Critical
Publication of CN1252648C publication Critical patent/CN1252648C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F17/00Coin-freed apparatus for hiring articles; Coin-freed facilities or services
    • G07F17/0092Coin-freed apparatus for hiring articles; Coin-freed facilities or services for assembling and dispensing of pharmaceutical articles
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61JCONTAINERS SPECIALLY ADAPTED FOR MEDICAL OR PHARMACEUTICAL PURPOSES; DEVICES OR METHODS SPECIALLY ADAPTED FOR BRINGING PHARMACEUTICAL PRODUCTS INTO PARTICULAR PHYSICAL OR ADMINISTERING FORMS; DEVICES FOR ADMINISTERING FOOD OR MEDICINES ORALLY; BABY COMFORTERS; DEVICES FOR RECEIVING SPITTLE
    • A61J7/00Devices for administering medicines orally, e.g. spoons; Pill counting devices; Arrangements for time indication or reminder for taking medicine
    • A61J7/04Arrangements for time indication or reminder for taking medicine, e.g. programmed dispensers
    • A61J7/0409Arrangements for time indication or reminder for taking medicine, e.g. programmed dispensers with timers
    • A61J7/0481Arrangements for time indication or reminder for taking medicine, e.g. programmed dispensers with timers working on a schedule basis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/355Personalisation of cards for use
    • G06Q20/3552Downloading or loading of personalisation data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • 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
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F11/00Coin-freed apparatus for dispensing, or the like, discrete articles
    • G07F11/02Coin-freed apparatus for dispensing, or the like, discrete articles from non-movable magazines
    • G07F11/44Coin-freed apparatus for dispensing, or the like, discrete articles from non-movable magazines in which magazines the articles are stored in bulk
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61JCONTAINERS SPECIALLY ADAPTED FOR MEDICAL OR PHARMACEUTICAL PURPOSES; DEVICES OR METHODS SPECIALLY ADAPTED FOR BRINGING PHARMACEUTICAL PRODUCTS INTO PARTICULAR PHYSICAL OR ADMINISTERING FORMS; DEVICES FOR ADMINISTERING FOOD OR MEDICINES ORALLY; BABY COMFORTERS; DEVICES FOR RECEIVING SPITTLE
    • A61J7/00Devices for administering medicines orally, e.g. spoons; Pill counting devices; Arrangements for time indication or reminder for taking medicine
    • A61J7/04Arrangements for time indication or reminder for taking medicine, e.g. programmed dispensers
    • A61J7/0409Arrangements for time indication or reminder for taking medicine, e.g. programmed dispensers with timers
    • A61J7/0427Arrangements for time indication or reminder for taking medicine, e.g. programmed dispensers with timers with direct interaction with a dispensing or delivery system
    • A61J7/0436Arrangements for time indication or reminder for taking medicine, e.g. programmed dispensers with timers with direct interaction with a dispensing or delivery system resulting from removing a drug from, or opening, a container

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Business, Economics & Management (AREA)
  • Health & Medical Sciences (AREA)
  • Geometry (AREA)
  • Strategic Management (AREA)
  • Accounting & Taxation (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Business, Economics & Management (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Medical Informatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Animal Behavior & Ethology (AREA)
  • General Health & Medical Sciences (AREA)
  • Public Health (AREA)
  • Veterinary Medicine (AREA)
  • Software Systems (AREA)
  • Image Generation (AREA)

Abstract

根据三维图象数据绘制由绘制屏面的象素的对应颜色值代表的图象。三维图象数据包括多边形数据和纹理数据。纹理数据定义纹理,包括纹理尺寸数据和图案数据。图案数据代表纹理的多个实例。每个实例有不同的分辨率。图案数据构成纹理数据的绝大部分。一开始加载多边形数据、纹理尺寸数据和代表纹理的最低分辨率的实例的图案数据。用多边形及纹理尺寸数据来执行初始光栅化操作,生成并存储绘制屏面各个象素的标识符和纹理坐标。重复地执行一种显示-加载操作,一直到用绘制装置中现有的不同图案数据生成了绘制屏面所有象素的颜色值,或者已经加载了纹理的最高分辨率实例的至少一部分。在显示-加载操作中,用以前加载的纹理的最高分辨率实例的图案数据生成代表图象的颜色值。根据所存储的绘制屏面象素的纹理坐标,标识绘制至少部分具有更高分辨率的图象所要求的纹理的下一个更高分辨率实例的图案数据,并加载所标识的图案数据。

Description

三维图象绘制方法
本发明涉及的一种三维图象绘制装置及方法,特别适合根据通过诸如万维网的数据速率受限的网络或其它数据速率受限的介质传输的图象数据来绘制三维对象的图象。本发明特别涉及这样一种三维图象绘制装置及方法,它几乎立即生成三维对象的图象的低分辨率图象,然后继续再生成分辨率逐渐提高的图象,直到生成具有最佳分辨率的图象。
随着诸如VRML(虚拟现实造型语言)的图象程序设计语言的流行,代表三维图象的三维图象数据可以容易地通过诸如因特网的网络传输。
三维图象数据(3D图象数据)包括多边形数据和颜色数据。多边形数据指示定义位于虚拟三维空间(3D空间)中的三维对象(3D对象)的表面的多边形顶点的位置。各个多边形的外观可以用直接颜色数据和纹理数据这两类数据之一来定义。直接颜色数据指出一个赋予多边形的颜色值。纹理数据定义粘贴在多边形上的纹理的象素的纹理颜色值。
在三维图象处理中,3D空间中的每个3D对象,都以与某假设点与3D对象之间的距离和角度相称的方式,被投射在假设的二维表面上。在本说明书中,将假设的二维表面称为绘制屏面,将假设点称为视点。然后进行隐面去除,使得颜色值只赋予从视点可见的3D对象的部分。此外,如果需要,可以用综合了一个或多个光源的位置及亮度因素的亮度系数,对从视点可见的3D对象的部分的颜色值进行修改。
赋予多边形的直接颜色数据一般由三个颜色值组成,每个值表示红、绿、蓝三个基本添加色的一种。红、绿和蓝将被简记为R、G和B。类似地,定义粘贴在一个或多个多边形上的纹理的象素的纹理数据一般由三个颜色值组成,每个值表示红、绿、蓝三个基本添加色的一种。作为替代,可以使用诸如黄色、青色、深红色和黑色的不同颜色的颜色值。此外,对象外观的其它表达方式,诸如亮度和色差值,也可以作为替代用作颜色值。
如果用赋予的直接颜色数据来定义3D对象表面的颜色,直接颜色数据仅为每个多边形定义一种颜色。因此,当3D对象的表面有复杂的外观时,即使其拓扑简单,也必须将对象的表面划分成许多小多边形才能使其外观得到精确定义。多边形数目的增加,意味着几何计算中要用到非常多的数据。这极大降低了绘制速度。
纹理被用来克服刚才说明的问题。可以用纹理来定义3D对象的整个表面或者大部分这种表面的外观。纹理一般是表面外观的一个位映象图象,被粘贴在多边形的表面上。纹理用相对少量的数据就能精细地定义对象的表面的外观。纹理不但仅用一些多边形就能定义有诸如砖墙或大理石柱的重复图案的外观,而且也能定义施加到对象的表面的图象或部分图象。
如果将纹理粘贴到多边形上,就必须对定义纹理的外观的纹理数据进行转换,以便与视点与多边形之间的距离和角度相称。一般来说,这种转换是通过规定多边形的顶点的坐标并且还通过规定一个或多个坐标变换矩阵而进行的。
即使采用传统绘制技术,用纹理来定义对象的外观,也具有能够如上所述的用少量多边形来定义3D对象的表面上的复杂图案的优点。然而,纹理数据会构成相当数量的数据,当纹理复杂时尤其如此。
当通过网络从服务器向客户机计算机加载包括纹理数据的3D图象数据时,用户在图象显示之前可能不得不等待。特别是,如果是在传统网络环境中进行3D图象处理,则必须先加载所有的3D图象数据-即多边形数据和颜色数据,包括纹理数据,然后才能开始绘制计算。如果3D对象的外观是由复杂的纹理定义的,必须下载大量纹理数据来定义纹理,则加载3D图象数据所需的时间会长得烦人。结果,期间在屏幕上什么也不显示的延滞时间会长得令人不能接受,不可能快速地绘制图象。
已知有提供特殊格式的二维图象数据的技术能使标准二维图象以逐渐增加的分辨率被绘制出来。换言之,一开始显示的是低分辨率的图象。然后,顺序地以逐渐精细的分辨率再显示图象。以FLASHPIX商标出售的就是这些显示技术的其中之一,下文将作更加详细的说明。
然而,如果要在多边形上映射纹理来代表三维对象,则不能不加修改就应用根据二维图象数据来绘制图象的传统技术。这是因为如上所述的那样,必须按照一个或多个光源的位置并综合多边形与视点相对方位的因素来变换纹理。
所以,需要一种能够高速地、以对3D对象的各部分最优化的分辨率来绘制3D空间中的3D对象的图象的三维图象绘制装置及方法。
需要一种三维图象绘制装置及方法,它能够立即和迅速地绘制3D对象的低分辨率图象,并且-特别是在网络环境中-能够随着显示时间的持续而顺序地以逐渐精细的分辨率再显示图象。
最后,需要一种三维图象绘制装置及方法,它能够通过更有效地加载与图象各个部分显示时的实际分辨率有关的纹理数据来提供对各种计算资源的有效使用。
按照本发明的绘制装置根据三维图象数据绘制图象,并包含一个数据输入通道,一个基准缓冲器(reference buffer)和一个绘制引擎(rendering engine)。绘制装置通过数据通道接收三维图象数据。三维图象数据包括多边形数据和纹理数据。纹理数据定义纹理,包括纹理尺寸数据和图案数据。图案数据代表纹理的多个实例。每个实例有不同的分辨率。图案数据构成纹理数据的绝大部分。绘制装置一开始通过数据输入通道只接收多边形数据、纹理尺寸数据和代表纹理的最低分辨率的实例的图案数据。
基准缓冲器包括与绘制屏面的象素相对应的存储单元。
绘制引擎只用多边形及纹理尺寸数据来执行初始的光栅化操作(rasterizing operation),以便在基准缓冲器的每个存储单元中生成并存储绘制屏面一个象素的纹理坐标。绘制引擎另外还重复地执行一种显示-加载操作,一直到用绘制装置中当时存在的不同的图案数据生成了绘制屏面所有象素的颜色值,或者已经加载了纹理的最高分辨率实例的至少一部分。在显示-加载操作中,绘制引擎生成颜色值,标识绘制至少部分具有更高分辨率的图象所要求的纹理的下一个更高分辨率实例的图案数据,并导致被标识为绘制至少部分具有更高分辨率的图象所要求的图案数据通过通道被加载。绘制装置用绘制装置中现有的纹理的最高分辨率实例的图案数据生成颜色值。绘制装置根据在基准缓冲器中存储的纹理坐标来标识纹理的下一个更高分辨率实例的图案数据。
绘制装置另外还可以包含一个其中以金字塔形数据结构存储通过数据通道加载的图案数据的纹理存储器。金字塔形数据结构中包括的各层中存储纹理的各个实例的图案数据。
本发明也提供一种用于根据三维图象数据绘制由与绘制屏面的象素相对应的颜色值代表的图象的方法。三维图象数据包括多边形数据和纹理数据。纹理数据定义纹理,包括纹理尺寸数据和图案数据。图案数据代表纹理的多个实例。每个实例有不同的分辨率。图案数据构成纹理数据的绝大部分。在该方法中,一开始加载多边形数据、纹理尺寸数据和代表纹理的最低分辨率的实例的图案数据。用多边形及纹理尺寸数据来执行初始光栅化操作,生成绘制屏面各个象素的标识符和纹理坐标。重复地执行一种显示-加载操作,一直到用绘制装置中现有的不同图案数据生成了绘制屏面所有象素的颜色值,或者已经加载了纹理的最高分辨率实例的至少一部分。在显示-加载操作中,用以前加载的纹理的最高分辨率实例的图案数据生成代表图象的颜色值。根据所存储的绘制屏面象素的纹理坐标,标识绘制至少部分具有更高分辨率的图象所需的纹理的下一个更高分辨率实例的图案数据,并加载所标识的图案数据。
按照本发明的装置及方法,由于一开始仅加载多边形数据、纹理尺寸数据和代表纹理的最低分辨率的实例的图案数据,几乎没有延滞就生成代表低分辨率型图象的图象数据。代表更高分辨率型图象的图象数据随后生成。然而,代表更高分辨率型图象的图象数据,生成的速度比用传统装置或方法更快,这是因为,按照本发明的装置及方法只加载生成代表具有最佳分辨率的图象的图象数据所需的图案数据。所以,那些不需要纹理的更高分辨率实例就能以最佳分辨率绘制的图象部分的图案数据是不加载的。
图1是按照本发明的位于通过网络与服务器相连的客户机计算机中的三维图象绘制装置的框图。
图2表示一个二维纹理空间,其中,纹理的各个具有不同分辨率的实例是以相同尺寸(dimensions)定义的。
图3表示在按照本发明的绘制装置及方法中用来存储各个纹理的图案数据的金字塔型数据结构的结构。
图4表示一例在按照本发明的绘制装置及方法中用来确定其图案数据被用来生成绘制屏面的各象素的颜色值的纹理的实例的访问图(access map)。
图5表示一例在按照本发明的绘制装置及方法中用来控制图案数据的加载的格片加载列表(tile load list)。
图6A表示当纹理具有正方形的形状时,代表纹理实例的图案数据在格片中的排列方式。
图6B表示当纹理具有长方形的形状时,代表纹理实例的图案数据在格片中的排列方式。
图7A是表示按照本发明的绘图装置及方法所执行的主绘图例程的一个实施例的流程图。
图7B是表示按照本发明的绘图装置及方法所执行的主绘图例程的变体的流程图。
图8表示示例性的基准缓冲器单元的结构。
图9是表示图7A和7B中所示主例程的步骤S11中执行的子例程的详细内容的流程图。
图10是表示图7A和7B中所示主例程的步骤S14中执行的子例程的详细内容的流程图。
图11是表示图10中所示主例程的步骤S1404中执行的子例程的详细内容的流程图。
图12是表示图7A和7B中所示主例程的步骤S15中执行的子例程的详细内容的流程图。
图13表示由按照本发明的绘制装置及方法所执行的第一例绘制操作中使用的纹理的第1到第5实例TI1、TI2、TI3、TI4、TI5
图14A表示在图13中所示纹理的三角形部分TRI粘贴到小多边形上时存储在基准缓冲器中的一例纹理坐标。
图14B表示图14A中所示的存储在基准缓冲器中的纹理坐标与纹理的最低分辨率实例TI1的实例坐标之间的关系。实例TI1的实例坐标在P轴和Q轴方向有64个离散值。
图15A表示在图13中所示纹理的三角形部分TRI粘贴到大小约为图14A例中所示多边形的两倍的多边形上时存储在基准缓冲器中的一例纹理坐标。
图15B表示图15A中所示的存储在基准缓冲器中的纹理坐标与纹理的最低分辨率实例TI1以及较高分辨率实例TI2的实例坐标之间的关系。实例TI2的实例坐标在P轴和Q轴方向有128个离散值。
图16A表示在图13中所示纹理的三角形部分TRI粘贴到大小约为图14A例中所示多边形的四倍的多边形上时存储在基准缓冲器中的一例纹理坐标。
图16B表示图16A中所示的存储在基准缓冲器中的纹理坐标与纹理的实例TI1、TI2及TI3的实例坐标之间的关系。实例TI3的实例坐标在P轴和Q轴方向有256个离散值。
图17-20代表世界地图的纹理的四个不同实例,此外还显示每个实例被划分成的格片,以及其图案数据实际用于绘制图21-25中所示图象的那些格片。图17中所示实例具有最低分辨率,图20中所示实例具有最高分辨率。
图21-24表示当纹理的图17-20中所示的实例至少有一部分被连续粘贴到球面上时根据按照本发明的绘制装置及方法生成的颜色值而连续显示的图象的例子。
本发明涉及的三维图象绘制装置及方法,旨在用于3D图象数据的数据传输速率受限制的环境,如诸如因特网的网络。该三维图象绘制装置及方法绘制3D对象所占据的3D空间的二维图象。图象从用户所选择或3D图象数据所定义的视点看来是3D空间的。3D空间另外还可以由一个或多个也是用户所选择或3D图象数据所定义的光源照明。位于视点与3D空间之间的假设绘制屏面定义图象将要代表的视向和视界。绘制屏面被划分成象素,象素的排列最好对应于用来显示图象的象素的数量。例如,如果要在SVGA监视器的屏幕上显示图象,则最好将绘制屏面划分成800×600个象素。
三维图象绘制装置及方法为绘制屏面的每个象素计算一组颜色值。每组颜色值例如可以包括一个红色值、一个绿色值和一个蓝色值。另一方面,颜色值组也可以包括一个亮度值和两个色差值,或者非红、绿、蓝的颜色的颜色值。对于用单色显示器进行的显示,每组颜色值可以由单一的亮度值构成。然后根据这些颜色值来显示图象。
图1是按照本发明的绘制装置100的框图。绘制装置驻留在例如计算机102中。在实际实施例中,绘制装置可以构成位于计算机中的图形卡(未予示出)的一部分。另一方面,绘制装置也可以是一个插入或以其它方式与计算机的图形卡相连的硬件附件。作为另一种选择,计算机的现有硬件根据绘制程序操作时也可以用作绘制引擎。
如图所示,计算机102通过I/O端口104的连接而作为网络106的客户机。I/O端口直接或间接地与连接到绘制引擎和计算机的其它单元的总线108相连。
与网络106相连的还有包括存储3D图象数据的3D图象数据存储器的服务器110。3D图象数据存储器包括多边形数据存储器112和纹理数据存储器114。
多边形数据存储器112存储定义3D对象的表面拓扑的多边形数据。多边形数据定义多边形在3D空间中顶点的位置,另外还包括多边形的直接颜色数据或者施加到多边形的纹理的名称或地址。
纹理数据存储器114定义施加到一个或多个3D对象的一个或多个表面的全部或局部的纹理的纹理数据。定义每个纹理的外观的图案数据构成纹理数据的非常大的部分。每个纹理的纹理数据也包括纹理高度H、纹理宽度W、规定图案数据所能应用的纹理的实例的数目的层次数据(layer data)、以及纹理实例被划分成的格片的格片宽度TW和格片高度TH。纹理的各个实例有不同的分辨率,这将在下文详细说明。
另外或者作为替代方案,3D图象数据可以存储在计算机102中。在这种情况下,与存储器112和114相当的存储段位于计算机中的存储器(未予示出)中,直接或间接地与总线108相连。例如,从服务器加载的3D图象数据可以在计算机中高速缓存起来。
在绘制装置100中,绘制引擎120与总线108相连。绘制引擎执行根据3D图象数据进行绘制操作的绘制程序122。每个绘制操作生成一组根据其显示二维图象的颜色值。绘制引擎执行本发明的方法。绘制引擎可以用微处理器、数字数据处理器、一个或多个专用集成电路或通用集成电路来构成,可以包括使其能执行本文所述的处理的其它单元,诸如只读和随机存取存储器(未予示出)。
绘制装置100另外还包括由深度缓冲器(depth buffer)125和基准缓冲器126组成的纹理映射缓冲器(texture mapping buffer)124。深度缓冲器和基准缓冲器最好通过总线108连接到绘制引擎120。绘制装置用基准缓冲器126来存储由绘制引擎120执行的初始光栅化计算所生成的立即结果-下文将作详细说明。通过总线与绘制引擎相连的还有帧缓冲器127。帧缓冲器有一个生成端与视频输出端口118相连。由绘制装置100所生成的颜色值派生的视频信号就是通过视频输出端口馈送到监视器150去显示图象的。
深度缓冲器125、基准缓冲器126和帧缓冲器27最好各自由多个各能存储几个字节的数据的存储单元组成。每个存储单元最好对应绘制平面的一个象素。然而,缓冲器可以包括另外的存储单元,供选择绘制分辨率更高的图象。此外,如果例如要绘制较低分辨率的图象,或者绘制小于全屏的图象,则可以使用这些缓冲器的单元的子集。
绘制装置100也包括与总线108相连的纹理数据存储器130。纹理数据存储器划分成多个页。标注号132标识了其中一个示范页。每页中存储一个纹理的纹理数据。每个页划分成段,段中存储定义纹理的纹理数据的子集。在图1所示的例子中,也132包括图案数据储存库(PDS)134、格片加载列表(TLL-tile load list)136、格片间距阵列(TPA-tile pitch array)138、格片基阵列(TBA-tile base array)140和访问图阵列(AMA-access map array)142。纹理数据存储器的其它页的结构类似。
总之,将代表纹理的许多各有不同分辨率的实例的图案数据,存储在图案数据储存库134中。格片加载列表136含有由纹理划分成的每个格片的对应条目。条目指示格片的图案数据的获取状态,即,是否需要为绘制图象而加载格片的图案数据,图案数据是否已经加载。格片间距阵列138和格片基阵列140含有纹理的每个实例的对应条目。各条目分别指示在纹理实例的宽度方向上排列的格片数和纹理实例中第一个格片的格片号。访问图阵列142含有最近加载的纹理实例的每个格片的对应访问图。每个访问图含有格片的每个纹理象素的对应1位条目。访问图用来确定纹理的各格片的图案数据是否能绘制具有最佳分辨率的图象。下文将详细地说明纹理存储器的各页中存储的纹理数据。
如上所述,纹理的纹理数据包括代表纹理的许多各有不同分辨率的实例的图案数据。图2表示纹理200的实例202、203、204、205、206在所示二维纹理空间中是如何各有相同尺寸的。本例中显示了5个纹理实例。具体纹理可能有更多或更少的实例。实例用实例号k编号,分辨率最低的实例的编号为1。这个例子也显示了具有与纹理的原始实例(original instance)206的纹理象素对应的离散值的纹理空间坐标(p,q)。
每个纹理实例被划分成格片。各实例202-206的左边底部的格片分别由标注号207-211指示。因为每个实例是由不同数量的纹理象素组成的,而格片都是由相同数量的纹理象素组成的,所以每个纹理实例被划分成不同数量的格片。图2表示一例具有正方形形状的纹理,其中,最低分辨率的实例202被划分成单一的(40)格片,下一个更高分辨率的实例203被划分成4个(41)格片,下一个更高分辨率的实例204被划分成16个(42)格片,第K个实例被划分成4k-1个格片,依此类推。本例中,原始分辨率实例(original resolutioninstance)206划分成44个格片。为了简化示图,图2中没有显示纹理象素。
如上所述,在纹理的所有实例202-206中,所有格片都是由相同数量的纹理象素组成的。例如,格片可以各由一个64×64纹理象素的二维阵列组成。因为实例中的纹理象素的数量随着实例的层深从0增加到4呈指数级增加,所以每个纹理象素代表纹理空间的以指数级减少的部分。相应地,代表纹理的每个实例具有的分辨率随着实例的层深的增加而增加。本发明中代表纹理的多个实例的方法与传统的代表图象的多个实例的方法的不同点,在于纹理的最低分辨率实例202是由一个以上纹理象素组成的。
纹理的实例202-206被划分成的格片,每个都被赋予一个格片号t(其中t=0,1,…,)。下面的表0列举了所示例子中不同实例中的格片的格片号的范围:
  层深   格片号范围
  0   0
  1   1-4
  2   5-20
  3   21-84
  4   85-340
表0
图3表示金字塔型数据结构220的结构,代表每个纹理的不同实例的图案数据以这个结构在图1所示绘制装置100的纹理数据存储器130的各页132中的图案数据储存库134中存储。该多分辨率金字塔型数据结构是根据以FLASHPIX商标销售的传统二维图象系统建立的,后者用金字塔型数据结构来存储代表诸如相片之类的二维图象的数据。
在按照本发明的绘制装置及方法中,每个纹理实例的图案数据都以金字塔型数据结构存储,其中每个实例的图案数据被安置在与实例的层深相对应的不同层中。各层是按自顶层向下的顺序编号的,顶层的层号是0。金字塔型结构中的层的位置由层的层深描述。存储最低分辨率实例的图案数据的顶层具有的层深是0。图3所示例子中的存储最高分辨率实例的图案数据的层的层深是4。不过,视纹理的大小不同,金字塔型数据结构可以包括比该例所示的数量更多或更少的层数。
金字塔数据结构220的每层中的图案数据是纹理的一个实例的图案数据。由每层中的图案数据表示的纹理实例在由图案数据表示的纹理实例的一半的每个方向上有线性分辨率,并是由下一个更高层中存储的图案数据表示的纹理实例的两倍。
代表纹理的最高分辨率实例的图案数据构成了金字塔型数据结构220的底层226。一般来说,最高分辨率是与纹理的原始分辨率相同的。但是如果原始分辨率高于应用所需的最大分辨率,则最高分辨率可以低于原始分辨率。底层中4个相邻纹理象素的图案数据组合起来就生成了底层的上一层225中的一个纹理象素的图案数据。因此,层225中的图案数据代表一个在每个方向上的线性分辨率是底层的图案数据所代表的纹理实例的分辨率的一半的纹理实例。层225中图案数据的数量是底层中图案数据的四分之一。执行上述的组合过程,在其余层224-222的各层中由该层的下一层的图案数据生成图案数据。
在金字塔型数据结构220的顶层222中,代表纹理的图案数据是一个在水平方向上a个纹理象素和垂直方向上b个纹理象素的阵列。在一个实际实施例中,a=b=64。应当注意的是,金字塔型数据结构220不同于诸如MIP数据结构的传统金字塔型数据结构。在金字塔型数据结构220中,一个格片的图案数据构成了顶层。在传统金字塔型数据结构中,一个纹理象素的图案数据构成了顶层。
金字塔型数据结构220中顶层222下面的各层都被划分成正方形或长方形的格片,各由a×b纹理象素的阵列组成。底层226中的230表示一个示例性格片。如上所述,格片是从服务器110或者从位于客户机计算机102中的存储器(未予示出)加载图案数据时的加载单位(unit)。金字塔型数据结构的每层都被划分成4D个格片,其中D是层的层深,顶层222的层深是0。
金字塔型数据结构220中每层222-226中的图案数据一般构成一个代表纹理的图象映射(image map)。然而,在将图案数据通过例如网络106传输到绘制装置时,可能要将图象映射数据压缩,以减少传输时间。例如,可用JPEG压缩来压缩图象映射数据以生成传输用的图案数据。然而,在存储到金字塔型数据结构中之前要把压缩的图案数据解压成图象映射的形式。
按照本发明的绘制装置及方法以适当的分辨率高速地绘制3D对象的各部分。此外,本绘制装置及方法几乎不用等待时间就能立即绘制3D对象的低分辨率图象。特别是在网络环境中,随着显示时间的延续,至少一部分3D对象是以逐渐增加的分辨率绘制的。此外,本绘制装置及方法高效地只加载对象的可见部分的相关纹理数据。这极大地减少了绘制图象所需加载的图案数据的数量。
最后,本绘制装置及方法以最佳分辨率绘制图象。本绘制装置及方法能够以最高分辨率纹理的分辨率的相应分辨率绘制图象的所有各部分。然而,以最佳分辨率绘制图象时,是将那些不必以与最高分辨率纹理的分辨率相应的分辨率绘制的图象部分以较低的分辨率绘制。可以以较低的分辨率绘制的图象部分,包括那些小尺寸的、或者离视点远或与绘制屏面成角度的多边形的对应部分。以最佳分辨率绘制图象,减少了需要从服务器110加载的图案数据的数量,减少了绘制图象所需的时间。在本说明书中,所谓的以最佳分辨率绘制图象,指的是以这样一种绘制图象的方式,即并不是图象的所有部分都必须以与最高分辨率的纹理实例的分辨率相应的分辨率绘制。
为绘制最佳分辨率的图象而需要从服务器110加载的图案数据由位于纹理时间存储器130的各页132中的访问图阵列142来标识。访问图阵列含有由纹理划分成的每个格片的对应访问图。每个访问图包括格片的每个纹理象素的一个条目。访问图用来标识其图案数据能用来以最佳分辨率计算绘制屏面的每个象素的颜色值的纹理的实例。如果纹理的某实例的某格片的纹理象素之一的图案数据被用来计算绘制屏面的一个以上象素的颜色值,就表明要绘制更高分辨率的图象,就需要加载具有更高一级分辨率的纹理的实例中的相应格片的图案数据。这导致该格片在纹理数据存储器130的该纹理的页132中的格片加载列表136中的条目改变状态,指出必须加载该格片的图案数据。对以最佳分辨率绘制各部分图象所需的图案数据顺序地进行加载的过程,下文将结合图7A和7B作描述。
图4表示颜色值存储在帧缓冲器127的绘制屏面RS的象素、纹理的两个实例TIm和TIm+1以及纹理的实例TIm的格片T(n1)的访问图AM(n1)之间的关系。如以上结合图2所述的那样,纹理的每个实例被划分成许多格片。代表每个格片的图案数据是作为一个单位加载的。当格片的图案数据被加载时,该格片的访问图中的所有条目都被设置到相同状态-本例中是0。
在本例中,当绘制引擎120确定需要位于纹理的实例TIm的格片T(n1)中的纹理象素p的图案数据来计算绘制屏面的纹理象素ηx,y的颜色值时,它检测格片T(n1)中的纹理象素p的访问图AM(n1)中条目AMBx,y的状态。该条目的状态指示格片T(n1)中的纹理象素p的图案数据以前是否已经被用来过计算绘制屏面的另一个象素的颜色值。检测该条目的状态之后,绘制引擎将该条目的状态设置为1,表示纹理象素p的图案数据已经被用来过计算绘制屏面的象素的颜色值。在上述检测中,如果纹理象素p的访问图条目的状态表明指示格片T(n1)中的纹理象素p的图案数据以前已经被用来过计算绘制屏面的另一个象素-在本例中是邻近象素ηx+dx,y+dy-的颜色值,这表明在绘制屏面象素ηx,y和ηx+dx,y+dy的附近的图象部分,可以用具有更高分辨率的纹理实例即TIm+1的图案数据而绘制得具有更接近最佳分辨率的分辨率。于是,绘制引擎设置纹理的下一个更高实例TIm+1的格片T(n2)的格片加载列表条目的状态,指出必须加载该格片的图案数据。
以后,纹理的下一个更高分辨率实例TIm+1的格片T(n2)的图案数据被加载,这个格片的图案数据被用于计算绘制屏面象素的颜色值,然后,这个格片的访问图就可以指示,能用纹理的不同纹理象素的图案数据来计算绘制屏面象素ηx,y和ηx+dx,y+dy的颜色值。这将导致这部分图象被以最佳分辨率绘制。然而,如果格片T(n2)的访问图表明,仍然是用纹理的下一个更高分辨率实例TIm+1的相同纹理象素的图案数据来计算绘制屏面象素ηx,y和ηx+dx,y+dy的颜色值,则必须加载纹理的至少一个更高分辨率的实例(例如TIm+2、TIm+3等等)的图案数据,用来计算这些绘制屏面象素的具有最佳分辨率的颜色值。
如果纹理的下一个更高分辨率实例TIm+1的格片T(n2)的图案数据已经在图案数据储存库134中存在-如格片加载列表136中该格片的对应条目的状态所指示的那样,就能用这些图案数据来计算绘制屏面象素ηx,y和ηx+dx,y+dy的颜色值。如果格片加载列表指出,图案数据储存库中不存在纹理的下一个更高分辨率实例TIm+1的格片T(n2)的图案数据,则必须从服务器110的纹理数据存储器114加载该格片的图案数据。
图5中表示了一例格片加载列表TLL。如上所述,格片加载列表含有纹理的不同实例被划分成的每个格片的对应条目。条目指示格片的图案数据的状态,即绘制图象是否需要该格片的图案数据,该格片的图案数据是否已经加载。如果访问图表明,绘制图象需要纹理的下一个更高分辨率实例的格片的图案数据,则绘制引擎120就将格片加载列表中对应纹理的实例TIm+1的绘制屏面象素ηx,y和ηx+dx,y+dy的格片的对应条目的状态设置成指示该格片的图案数据应当在下次执行加载操作时加载。对应于该格片加载列表条目的格片T(n2)的图案数据是从上述的服务器110的纹理数据储存库114加载的。
在图5所示的例子中,格片加载列表TLL中的每个条目的结构是这样组织的,即用一个2位的代码来指示对应条目的图案数据的状态。例如,一开始可以将格片加载列表中的所有条目设置成00,表示对应条目的图案数据,绘制图象时不需要,并且尚未加载。如果格片的访问图指出,绘制图象时需要该格片的图案数据,则将该格片在格片加载列表中的条目设置成10,表示该格片的图案数据是需要的,但是尚未加载。在执行图案数据加载操作时,格片加载列表条目被设置成10的格片的图案数据被加载。图案数据加载操作将图案数据已经加载了的格片加载列表条目设置成11,表示格片的图案数据已经加载,现在存在于纹理数据存储器130的纹理页132中金字塔型数据结构134中对应该格片的位置中。格片加载列表条目最好按照格片号的顺序排列,从纹理的最低分辨率实例TI1、TI2、…的那些条目开始。在图5所示的例子中,构成纹理的实例TI1的单一格片的条目和构成纹理的实例TI2的4个格片的条目被设置成11(已经加载)。在构成纹理的实例TI3的16个格片的条目中,第一个格片的条目被设置成10(需要,但尚未加载),其余格片的条目依然被设置成00(未加载,不需要)。
从服务器110加载图案数据的过程是递归执行的,所以,具有比实例TIm+1有更高一级分辨率的纹理实例TIm+2的格片的图案数据是按与如上所述的相同的方式处理的。这就使图象能以逐渐增加的分辨率被显示。
现在将结合图1至12来说明按照本发明的所谓图象绘制装置及方法的最佳实施例的操作。
绘制引擎120根据绘制程序组122操作,执行下文将要描述的过程,以生成定义图象的颜色值。绘制引擎从多边形数据和共同构成3D图象数据的纹理数据的选定部分生成颜色值。
图6A表示图2中所示纹理200的实例TI1至TI3的格片的格片号t。表一表示层深D,构成实例的格片的总数Ntile,格片间距Tp、和格片基Tb。格片间距是在实例的水平方向排列的格片的数目。格片基是实例的编号最低的格片的格片号。编号最低的格片一般对应于实例的左边顶部格片的格片号。
 实例(图6A)  TI1   TI2   TI3
 层深D   0   1   2
 格片的总数Ntile   1   4   16
 格片间距Tp   1   2   4
 格片基Tb   0   1   5
表一
在图6A所示的例子中,构成纹理的实例TI1至TI3的格片是正方形的,在纵向上和横向上具有相等数目的纹理象素。然而,格片可以不是正方形,而是长方形的。图6B显示的例子中,构成实例的格片在垂直方向上的纹理象素的数目是水平方向上纹理象素的数目的一半。表二显示的是对应图6B中所示各实例的层深D,构成实例的格片的总数Ntile,格片间距Tp、和格片基Tb
  实例(图6B)   TI1   TI2   TI3
  层深D   0   1   2
  格片的总数Ntile   1   2   8
  格片间距Tp   1   2   4
  格片基Tb   0   1   3
表二
在这个实施例中,通过定义定格片号(t)和格片中的象素坐标(X,Y)来读取位于纹理的实例的格片T(t)中的纹理象素的图案数据P。格片T(t)中位于横向第X个位置和纵向第Y个位置的纹理象素由格片号(t)和格片坐标(X,Y)定义,即(t:X,Y),纹理象素的图案数据由P(t:X,Y)代表。
下面将结合图1、7A和7B,对图1中所示的绘制装置100所执行的操作作一概括说明。图7A表示一例由绘制引擎120根据绘制程序122执行的主例程。
在步骤S10,执行第一个加载操作。在这个步骤中,从位于服务器110的3D图象数据存储器116向客户机计算机102加载定义3D空间中对象的表面的多边形数据、每个纹理的定义纹理高度和宽度的数据、纹理的最低分辨率实例TI1的图案数据。特别来说,图案数据被存储在对应该纹理的纹理数据存储器130的页132中图案数据储存库134中金字塔型数据结构的顶层。第一个加载操作中,每个纹理的宽度和高度值以及该纹理的最低分辨率实例的图案数据,构成了定义该纹理的一小部分纹理数据。此外,多边形数据的数量也相对较少。所以,这个步骤的执行时间相对较短。
在步骤S11中,绘制引擎120对每个纹理执行数据结构初始化操作。该操作是根据纹理的宽度和高度值来执行的。在这个初始化操作中,用宽度和高度值来计算纹理的实例数(Nres)。也要计算或是从查找表(look-up table)读取格片间距Tp-即纹理每个实例的横向排列的格片的数目,格片基Tb-即每个实例的编号最低的格片的格片号。
初始化操作也用上述计算生成的结果和纹理高度及宽度值,在纹理数据存储器130的对应每个纹理的页132中,建立图案数据储存库134、格片加载列表136、格片基阵列138、格片间距阵列140和访问图阵列142的金字塔型数据结构。步骤S11中执行的处理将在下文中结合图9作更详细的说明。
在步骤S12中,绘制引擎120只用多边形数据来进行计算多边形在绘制屏面上的投影的传统几何计算。
在步骤S13中,绘制引擎120执行初始光栅化操作。在这个步骤中,将多边形在绘制屏面上的投影转换成与绘制屏面的象素对应的对象象素,进行隐面去除操作,计算绘制屏面所有象素的亮度系数。此外,计算与属于其外观由纹理数据定义的多边形的对象象素对应的那些绘制屏面象素的标识符和纹理坐标。最后,确定其余绘制屏面象素的颜色值。这些绘制屏面象素与属于其外观由直接颜色值定义的多边形的对象象素对应。为了简化以下的说明,将属于其外观由纹理数据定义的多边形的对象象素称为纹理数据象素,属于其外观由直接颜色值定义的多边形的对象象素称为直接颜色数据象素。
所执行的将多边形转换成对象象素的处理是传统方式的,这里不作说明。如果多边形的投影在绘制屏面上重叠,则有一个以上的对象象素与各绘制屏面象素对应。
隐面去除操作标识那些从视点不可见的对象表面或这种表面的部分。在此,绘制引擎首先将在深度缓冲器125中每个对应于绘制屏面某象素的单元中存储的深度值初始化为最大值。
绘制引擎然后为每个对象象素进行深度计算。深度计算计算对象象素(当前对象象素)与视点之间的距离。绘制引擎然后将由深度计算所计算出的深度值,与上次在深度缓冲器125的对应于该对象象素在绘制屏面中位置的单元中存储的深度值进行比较。如果当前对象象素的距离值大于深度缓冲器中存储的深度值,这表明当前对象象素位于缓冲器中存储的深度值所属对象象素(在先对象象素)的后面(因此被遮掩)。因为当前对象象素不能被从视点看见,所以它对绘制图象来说就是不相关的,于是其距离值就被丢弃。另一方面,如果当前对象象素的距离值小于深度缓冲器中存储的深度值,这表明当前对象象素位于在先对象象素的前面(因此遮掩在先对象象素)。在这种情况下,当前对象象素的距离值就被作为深度值采用,并存入深度缓冲器,替换在先对象象素的深度值。
当绘制引擎120采用当前对象象素的距离值作为替代的深度值并将该距离值存入深度缓冲器125时,它另外还确定当前对象象素的亮度系数。此外,如果当前对象象素是个纹理数据象素,则绘制引擎要为当前对象象素确定纹理标识符并计算纹理坐标。亮度系数、纹理标识符及纹理坐标将在下文作详细说明。绘制引擎然后将当前对象象素的亮度系数、纹理标识符和纹理坐标,存储在基准缓冲器126中与深度缓冲器中存储当前对象象素的深度值的单元的所在位置相对应的单元中。绘制引擎也生成一个象素类型位并在该单元存储象素类型位。象素类型位的状态指示在单元中存储的数据与纹理数据象素有关。基准缓冲器的单元的结构将在下文结合图8作说明。如果在深度缓冲器中用当前对象象素的深度值替换在先对象象素的深度值,则要在基准缓冲器的相应单元中的用当前对象象素的亮度系数、纹理标识符、纹理坐标和象素类型位替换在先对象象素的亮度系数、纹理标识符、纹理坐标和象素类型位。
最后,如果当前对象象素是个直接颜色数据象素,绘制引擎120就用当前对象象素的亮度系数乘以当前对象象素所属的多边形的多边形颜色数据,并将结果颜色值存储到基准缓冲器中与存储当前对象象素的深度值的深度缓冲器的位置相对应的单元。在这种情况下,绘制引擎生成其状态指示在单元中存储的数据与直接颜色数据象素有关的象素类型位,并将象素类型位存储在单元中。颜色值和象素类型位替换基准缓冲器的单元中以前存储的颜色值或亮度系数和象素类型位。在步骤S13中不能计算与纹理数据象素对应的绘制屏面象素的颜色值,因为执行步骤S13时,纹理的多数图案数据尚未加载。
绘制引擎120可以不是仅仅在当前对象象素不可见时才计算亮度系数等等,而可以无条件地为每个对象象素计算亮度系数,确定纹理标识符,计算纹理坐标或颜色值。在这种情况下,绘制引擎仅当也在深度缓冲器125中存储当前对象象素的深度值时,才将亮度系数、纹理标识符、纹理坐标或颜色值存储在基准缓冲器126的当前对象象素的单元中。
亮度系数是范围0至1的实数值,综合了诸如3D空间中光源的位置颜色和强度之类的因素。一般来说,要为对象象素计算三个一组的亮度系数,每个亮度系数与三原色红、绿、蓝之一对应。如果投射到多边形上的光的亮度低,多边形将显得较暗。此外,如果多边形的表面上是一种颜色,诸如红色,但是投射光的颜色是另一种颜色,诸如绿色,这就影响多边形的可见颜色。亮度系数一般是用已知技术根据从多边形数据存储器112加载的多边形数据中的一部分属性数据(property data)计算的。在计算亮度系数时,要用光源的颜色、亮度、位置和方向,任何背景光的颜色和亮度,以及视点的位置和方向等等作为因数。如果当前对象象素是直接颜色数据象素,就用当前对象象素的亮度系数乘以多边形的多边形颜色数据,得出一组颜色值,存储到基准缓冲器126的单元中。在步骤S14中,将该直接颜色值复制到帧缓冲器127中与当前对象象素在绘制屏面中的位置相对应的单元中。如果当前对象象素是纹理数据象素,则将当前对象象素的亮度系数存储到到基准缓冲器126的单元中。在步骤14中,将亮度系数乘以乘以一组纹理颜色值,得出一组颜色值。该颜色值被存储在帧缓冲器127中与对象象素在绘制屏面中的位置相对应的单元中。
纹理标识符标识其纹理数据将被用来确定对象象素的颜色值的纹理,可以是存储该纹理的纹理数据的纹理数据存储器的页的地址。纹理坐标是其图案数据将被用来确定对象象素的颜色值的纹理象素的坐标。
图8表示基准缓冲器126的示例性单元151的结构的例子。该单元包括4个域153、155、157、和159,它们有些存储多个数据项。象素类型位存储在域153中。象素类型位的状态指示单元中存储的数据与纹理数据象素还是与直接颜色数据象素有关。其余域中存储的数据视数据相关的对象象素是纹理数据象素还是直接颜色数据象素而不同,即视象素类型位的状态而定。如果单元151中存储的数据涉及纹理数据象素,则域153中存储的象素类型位被设置为例如1状态,标识纹理的纹理标识符存储在域155中,纹理坐标p、q存储在域157中,红色、绿色和蓝色亮度系数IR、IG和IB分别存储在域159中。如果单元151中存储的数据涉及直接颜色数据象素,则域153中存储的象素类型位被设置为例如0状态,域155和域157保留,红色、绿色和蓝色R、G和B分别存储在域159中。
当在步骤S13中执行了初始光栅化操作后,执行前进到步骤S14,这是由步骤S14、S15和S16构成的显示与加载循环的第一个步骤。这个循环一开始绘制并显示低纹理分辨率的图象,然后以逐渐增加的纹理分辨率连续地显示图象,一直到以最佳分辨率绘制出图象的所有部分。如上所述,最佳分辨率不必与纹理的最高分辨率相同,这是因为,施加到位于3D空间中远离视点的点的表面的纹理或者施加到位于3D空间中与视点成一定角度的点的表面的纹理,不必用纹理的最高分辨率实例的图案数据来绘制。观察者不可能觉察到用纹理的最高分辨率实例的图案数据绘制的这种图象部分与用纹理的较低分辨率实例的图案数据绘制的这种图象部分之间的差别。用纹理的较低分辨率实例的图案数据绘制这种图象部分加速了绘制过程,因为需要加载的图案数据更少了。
在步骤S14中,绘制引擎120检查基准缓冲器126的各单元151的域153中存储的象素类型位,判定单元中存储的数据涉及直接颜色数据象素还是纹理数据象素。如果单元中存储的数据涉及直接颜色数据象素,绘制引擎就将单元的域159中存储的颜色值复制到帧缓冲器127中的对应单元中。如果单元中存储的数据涉及纹理数据象素,绘制引擎就从单元的域155读取纹理标识符,从单元的域157读取纹理坐标(p,q)。绘制引擎然后到纹理标识符所标识的纹理数据存储器130的页132,从该页中存储的图案数据储存库134中,读取在由纹理空间坐标定义的位置存储的纹理数据。在由步骤S14、S15和S16构成的循环的第一次重复中,所读取的图案数据是纹理的最低分辨率实例TI1的图案数据。在该循环的以后的重复中,可以读取纹理的更高分辨率实例的图案数据。
绘制引擎120将读自图案数据储存器134的图案数据乘以在基准缓冲器126中与该绘制屏面象素对应的单元151的域159中存储的亮度系数,并将产生的该绘制屏面象素的颜色值存储在帧缓冲器127中与该绘制屏面象素对应的单元。对于每个对应纹理数据象素的绘制屏面象素,重复该过程,将颜色值存储在帧缓冲器中与该绘制屏面象素对应的单元中。
绘制引擎120也检查纹理当前实例的格片的访问图,以标识需要其图案数据来绘制更高分辨率图象的纹理的下一个更高实例的格片,并将所标识的下一个更高分辨率实例的格片设置为10(需要,但是尚未加载)。例如,在循环的第一次重复中,要检查最低分辨率实例TI1的格片的访问图,以标识需要其图案数据来绘制更高分辨率图象的下一个更高实例TI2的格片。
最后,读取在帧缓冲器127中存储的颜色值,根据颜色值生成一个视频信号。将该视频信号经视频输出端口118馈送到视频监视器150。视频监视器根据该视频信号,显示该代表3D空间中3D对象的二维图象。图象显示的是从视点可见的图象部分。步骤S14所执行的操作将在下文结合图10作详细说明。
在步骤S15中,绘制引擎120进行测试,判定是否需要纹理的下一个更高分辨率实例的任何图案数据来绘制更高分辨率的图象。例如,在循环的第一次重复中,该测试判定是否需要纹理的下一个更高分辨率实例TI2的任何图案数据来绘制更高分辨率的图象。该步骤中所进行的处理将在下文结合图12作详细说明。如果测试结果为否,表示步骤S14中生成的视频信号代表最佳分辨率的图象,则执行前进到步骤S17,在此停止。如果测试结果为是,则执行前进到步骤S16。
在步骤S16中,绘制引擎120通过网络106从服务器110中的纹理数据存储器114加载其格片加载列表条目在步骤S14中被设置为10的格片的图案数据。绘制引擎将该图案数据存储在客户机计算机102中与纹理数据存储器130中的该纹理对应的页132中的图案数据储存库134中的金字塔型数据结构的适当位置。加载过程最好使用名为网际成象协议(Internet Imaging Protocaol)的协议。这个协议也用于通过网络来传输FLASHPIXTM格式的图象。此外,绘制引擎还将其图案数据刚刚被加载的格片的格片加载列表条目设置为11,表示这些格片的图案数据现在存在于金字塔型数据结构中。在这个步骤中,绘制引擎也为每个其图案数据已经加载的格片创建一个访问图AM(t),其中t是格片号。访问图是在访问图阵列142中创建的,含有格片的每个纹理的对应条目。各条目的状态被初始化为0。
执行了步骤S16之后,执行返回到步骤S14,绘制引擎120开始由步骤S14-S16构成的显示与加载循环的第2次个重复。在第2次重复步骤S14中,绘制引擎用纹理的下一个更高分辨率实例TI2的图案数据来绘制图象。绘制引擎可以用最低分辨率实例TI1的有些图案数据来绘制那些不需要实例TI2的更高分辨率的部分图象,以达到最佳分辨率。生成新的颜色值,根据由新颜色值获得的视频信号,在监视器150上再次显示图象。再次显示的图象至少有的部分具有更高分辨率。
绘制引擎120重复执行由步骤S14-S16构成的显示-加载循环,一直到视频监视器150上至少有部分图象是用纹理的最高分辨率实例显示的。此时,图象的分辨率不可能进一步增加,步骤S15中进行的测试指出不需要加载另外的图案数据。如果这个条件得到满足,执行就前进到步骤S17,在此停止。
图7B表示图7A中所示主例程的一个变例。该变例是由绘制引擎120根据绘制程序122执行的。这个变例使用户能通过输入指令,改变视点、任何光源的位置及3D空间中一个或多个3D对象的位置中的任何一项或全部。该例程中与图7A所示例程中的部件对应的部件是以相同的标注号来指示的,这里就不再加以说明。然而为了简化图形,在图7B中缩短了对这类部件的描述。在图7B所示例程中,步骤S18被插在图7B所示例程的步骤S14与S15之间,例程还含有另外的步骤S19。步骤S18使用户能通过输入进行任何上述改变的指令来放弃绘制当前图象。绘制装置然后几乎立即地根据用户的指令而绘制新的图象。这样,用户就不必等到绘制装置结束绘制当前图象后才开始绘制新的图象。
在步骤S18中进行测试,判定用户是否输入了进行任何上述改变的指令。如果测试结果为否,表示用户没有输入这种指令,则执行前进到步骤S15,步骤S14-S16所构成的显示与加载循环的其余部分如上所述地执行。如果测试结果为是,表示用户输入了这种指令,则执行前进到步骤S19。
在步骤S19中,如果用户输入的指令需要,就转换形成3D对象的多边形的属性,重新对多边形进行坐标变换。执行然后返回到步骤S12,在此用改变的多边形重复进行几何计算,重新开始执行绘制图象的过程。
如果在步骤S15中进行的测试的结果为否,表示没有另外的图案数据要加载,则执行转移到步骤S17,该步骤重复地进行测试,判断用户是否输入了要求重新执行绘制图象的过程的指令。如上所述,如果用户输入这种指令,则测试结果为是,执行就前进到步骤S19。
图9表示的是在图7和8中所示主例程的步骤S11中执行的数据结构初始化子例程的细节。对在步骤S10中为其加载初始纹理数据的每个纹理都执行该子例程。
处理始于步骤S110。
在步骤S11中,绘制装置120访问纹理在纹理数据存储器130中的对应页132,读取构成其中存储的纹理数据的纹理宽度W、纹理高度H、格片宽度TW和格片高度TH。
在步骤S112中,确定图案数据储存库134、格片间距阵列138和格片基阵列140的金字塔型数据结构的结构特征,将格片间距和格片基的值分别存储到格片间距阵列和格片基阵列中。用纹理宽度W、纹理高度H、格片宽度TW和格片高度TH计算金字塔型数据结构的层数Nres,将要在金字塔型数据结构中存储的格片数Ntile、各层的格片间距Tp和各层的格片基Tp。格片间距是层中水平方向的格片数,格片基是编号最低的格片的格片号,例如层的左边顶部格片。
在纹理数据存储器130的该纹理的页132中创建一个以上确定的金字塔型数据结构的结构特征的存储器阵列,作为图案数据储存库134。创建两个单元数等于层数的存储器阵列,作为格片间距阵列138和格片基阵列140。格片间距值和格片基值分别存储在格片间距阵列和格片基阵列中。在执行主例程的步骤S10中的初始加载存在期间接收的最低分辨率实例TI1的图案数据-即格片T(0)的图案数据,被存储在纹理数据存储器130的该纹理的页132中的图案数据储存库134的金字塔型数据结构的顶层。
在步骤S113,在纹理数据存储器130的该纹理的页132中创建一个单元数等于Ntile的阵列,作为格片加载列表136。将格片加载列表的所有条目初始化为00(不需要,未加载)-除了格片TL1的对应条目,后者被初始化为11(需要,已经加载)。
在步骤S114,创建纹理的最低分辨率实例TI1的格片T(0)的访问图AM(0),作为纹理数据存储器130的该纹理的页132中的访问图阵列142的一个单元。访问图含有格片的每个纹理象素的对应条目。所有条目都被初始化为0。访问图阵列的另外单元以后在主例程的步骤S14中创建。
执行然后前进到步骤S115,就此返回到主例程。
图10表示主例程的步骤S14中所执行的子例程的细节。对于绘制屏面的每个象素都执行该例程。由子例程的当前循环所处理的绘制屏面象素将被称作当前象素。现在将结合图1、8和10来说明该子例程。在这个子例程中,绘制屏面的当前象素,以及基准缓冲器126和帧缓冲器127的对应当前象素的单元,是由一个象素计数器的值来指示的。
执行始于步骤S1400。
在步骤S1401中,绘制引擎访问基准缓冲器126的对应绘制屏面当前象素的单元151,读取该单元的域153中存储的象素类型位。
在步骤S1402中,绘制引擎检测该象素类型位,以判断绘制屏面当前象素是否对应于直接颜色数据象素。如果测试结果为是,执行就前进到下一段将作说明的步骤S1411。如果测试结果为否,表明绘制屏面当前象素的颜色值是用纹理的图案数据确定的,则执行前进到下文将作说明的步骤S1403。
在象素类型位指出绘制屏面当前象素对应于直接颜色数据象素时所要执行的步骤S1411中,绘制引擎将基准缓冲器126的域159中存储的绘制屏面当前象素的颜色值复制到帧缓冲器127的对应单元中。执行然后前进到步骤S1412,该步骤将在下文作说明。
现在将说明当象素类型位指出绘制屏面当前象素对应于纹理数据象素时所要执行的处理。在步骤S1403中,从单元的域155读取纹理标识符,从单元的域157读取纹理坐标(p,q,)。
在步骤S1404,绘制引擎执行下文将结合图11作说明的子例程,由纹理坐标(p,q,)来确定格片号t和格片坐标(X,Y)。格片坐标指示其图案数据将被用来确定绘制屏面当前象素的颜色值的格片的纹理象素。
在步骤S1405,绘制引擎从纹理数据存储器的由步骤S1403中所读取的纹理标识符指示的页中的图案数据储存库134读取图案数据P(t:X,Y)。所读取的图案数据是在金字塔型数据结构中对应于格片号为t的格片中的格片坐标(X,Y)的位置中存储的那些图案数据。
在步骤S1406中,绘制引擎进行测试,判断格片号t的访问图AM(t)中格片坐标(X,Y)的对应条目是否被设置为1。如果测试结果为否,则执行前进到下文将作说明的步骤S1409。如果测试结果为是,则执行前进到步骤S1407。该步骤进行的测试结果为是时,表明图案数据P(t:X,Y)已经被用于绘制屏面的另一个象素。这进而表明该分辨率是次优的,应当用纹理的下一个更高分辨率实例的格片T(t’)的图案数据来绘制分辨率更接近最佳分辨率的图象-如果存在这种更高分辨率实例的话。
在步骤S1407中,绘制引擎进行测试,判断是否存在更高分辨率的实例。如果测试结果为否,则执行前进到下文将作说明的步骤S1409。如果测试结果为是,表明存在更高分辨率的实例,则必须要加载位置与格片T(t)的坐标(p,q)对应的下一个更高分辨率实例的格片T(t’)的图案数据。执行前进到步骤S1408,在此将格片加载列表136中格片T(t’)的条目设置为10(需要,但是尚未加载),表示下次执行主例程的步骤S16时必须加载该格片的图案数据。格片T(t’)的格片加载列表条目,可能由于在图14所示子例程的以前的重复中处理的相邻绘制屏面象素需要该格片的图案数据,已经被设置成10。执行然后前进到步骤S1409。
在步骤S1409,绘制引擎120将格片号为t的格片的访问图AM(t)中的格片坐标(X,Y)的对应条目设置成1。这可能改变也可能不改变该条目的状态,具体要看是否该条目已经在在图14所示子例程的以前重复中被设置成1。执行然后前进到步骤S1410。
在步骤S1410,绘制引擎从基准缓冲器126的与当前绘制屏面象素对应的单元151的域159读取亮度系数IR、IG、IB,将亮度系数乘以在步骤S1405从图案数据储存库134读取的图案数据P(t:X,Y)。将结果颜色值存储在帧缓冲器127的与当前绘制屏面象素对应的单元中。执行然后前进到步骤S1412。
在步骤S1412,绘制引擎120进行测试,判断绘制屏面的所有象素的颜色值是否都已经存储到帧缓冲器127的各对应单元。如果测试结果为否,并非绘制屏面的所有象素的颜色值都已经存储到帧缓冲器127的各对应单元,则执行前进到步骤S1413,自此返回到主例程。如果测试结果为是,则执行前进到步骤S1414,将对绘制屏面象素奇数的象素计数器递增1。执行然后返回到步骤S1401,以便能生成另一个绘制屏面象素的颜色值并在帧缓冲器的对应单元存储起来。
图11是表示图10中所示子例程的步骤S1404中执行的由纹理坐标p、q计算格片号t和格片坐标(X,Y)的处理的细节的流程图。处理始于步骤S1450。
在步骤S1451,绘制引擎120从纹理数据存储器130中该纹理的对应页132中读取指示该纹理的实例的数目的值Nres。这个数目对应于该纹理的图案数据将要存储在的金字塔型数据结构134中的层数。
在步骤S1452,将指示当前正处理的实例的当前实例下标值tL设置为Nres。当前正处理的实例将被称为当前实例。
步骤S1453是步骤S1453-S1456所构成循环的第一个步骤。该循环将当前实例下标递减,以定位其图案数据已经加载了的纹理最高分辨率实例的纹理坐标(p,q)的对应格片。在步骤S1453,绘制引擎将Nres减去当前实例下标值tL,以生成实例差参数Y。然后,绘制引擎将涉及纹理最高分辨率实例的纹理坐标(p,q),转换成当前实例中的实例坐标(pL,qL),转换方法是将纹理坐标(p,q)除以2的实例差参数次方,即:
Y←Nres-tL
pL←p/2Y
qL←q/2Y
最后,绘制引擎分别计算实例坐标(pL,qL)位于的当前实例tL中格片的坐标(tX,tY),方法是将pL除以格片宽度TW后取结果商的整数部分,将qL除以格片高度TH后取结果商的整数部分,即:
tX←int(pL/TW)
tY←int(qL/TW)
例如,如果tL=Nres,Nres=5,TW=64,TH=64,p=511及a=512,则由于
tX=int(511/64)=7
tY=int(512/64)=8,
所以与纹理的最高分辨率实例中的纹理坐标(511,512)对应的格片是X方向上第7个格片和Y方向上第8个格片。
在步骤S1454,绘制引擎120计算实例坐标(pL,qL)所位于的当前实例tL中格片的格片号tn。格片号的计算,要用步骤S1454中计算的量以及从格片间距阵列和格片基阵列中对应当前层tL的位置读取的格片间距Tp(tL)和格片基Tb(tL)坐标(tX,tY)。绘制引擎在纹理数据存储器130的该纹理页的位置138和140存储格片间距阵列和格片基阵列。绘制引擎然后计算格片号tn,方法是确定格片间距与格片的Y坐标tY的积,然后将该积、格片基和格片的X坐标tX相加,即:tn=Tb(tL)+(Tb(tL)×tY)+tX
在步骤S1455,绘制引擎120进行测试,判断格片号为tn的格片的格片加载列表条目是否被设置为11。格片加载列表136存储在纹理数据存储器130的该纹理的页132中。格片加载列表条目被设置为11时,表明格片号为tn的格片的图案数据在图案数据储存库134中存在。如果测试结果为否,表明格片号为tn的格片的图案数据在图案数据储存库中不存在,则执行前进到将在下一段作说明的步骤S1456。否则,执行就前进到下文将作说明的步骤S1457。
在步骤S1456中,绘制引擎将当前实例下标值tL递减1,即tL←tL-1。执行返回到步骤S1453,重复由步骤S1453-S1456构成的循环,直到步骤S1455所执行的检测返回肯定结果。步骤S1455所执行的检测最终将会返回肯定结果,这是因为,在主例程的步骤S10中,加载了纹理的最低分辨率实例的图案数据。
在步骤S1457(如果格片号为tn的格片的图案数据在图案数据储存库134中存在就执行的步骤)中,绘制引擎120将格片号设置为tn,格片坐标X设置为pL除以格片宽度TW的商的余数,格片坐标Y设置为qL除以格片高度TH的商的余数,即:
t←tn
X←((pL/TW)的余数)
Y←((qL/TH)的余数)。
执行然后前进到步骤S1458,自此返回到上文结合图10所述的子例程。
图12是表示图7A和7B中所示主例程的步骤S15中执行的判断是否需要加载图案数据的子例程细节的流程图。处理始于步骤S150。
在步骤S151,绘制引擎120访问纹理数据存储器130。
在步骤S152,绘制引擎读取在纹理数据存储器130的一页132中存储的格片加载列表136。
在步骤S153,绘制引擎对步骤S152中所读取的格片加载列表进行测试,判定格片加载列表中是否有条目被设置成10(需要,但尚未加载)。如果测试结果为是,表明至少需要加载一个格片的图案数据,则执行前进到步骤S155。执行带着肯定结果从步骤S155返回主例程。如果测试结果为否,则执行前进到步骤S154。
在步骤S154,绘制引擎进行测试,判断它是否测试过纹理数据存储器130的所有页132中存储的格片加载列表136。如果测试结果为否,则执行前进到步骤S152,以便绘制引擎能测试纹理数据存储器另一页中存储的以前尚未测试的格片加载列表。如果测试结果为是,表明绘制引擎已经测试过纹理数据存储器的所有页中存储的格片加载列表,则执行前进到步骤S156。执行带着否定结果从步骤S156返回主例程。
如果图12所示步骤S15子例程的步骤S152中获得肯定结果,绘制引擎就执行主例程的步骤S16,绘制引擎的每次执行,使主例程的步骤S14中所标识的格片的图案数据被连续地从服务器110加载到纹理数据存储器130的对应各纹理的页132中的图案数据储存库134的金字塔型数据结构中。所加载的图案数据属于比上一次执行步骤S16时加载的图案数据所属纹理实例有更高一级分辨率的纹理实例。于是下一次执行主例程的步骤S14时,3D对象的至少部分图象是根据用该更高分辨率图案数据计算的颜色值显示的。
在上述图象绘制装置中,以最佳分辨率高速度地绘制3D对象的图象。尤其在网络环境中,随着显示时间的延续以逐渐增加的分辨率连续地绘制图象。
此外,在按照本发明的绘制装置中,每个步骤或每个过程都可以用在适当的CPU或DSP上运行的软件或者适当构造的硬件来实现。此外,还可以在例如在万维网或其它网络浏览器中,加载上述处理程序,作为绘制3D对象的图象的插件(plug-in)。
在3D对象的图象要打印的时候,要使用纹理的第1至第K个实例。然而,当3D对象的图象要在诸如监视器150的显示器上显示的时候,可以用纹理的第1至第(K-n)个实例,其中n是大于或等于1(unity)的整数。就是说,当在显示器上显示图象时,最高分辨率的图象部分的分辨率可能低于原始纹理的分辨率。
例一
例1描述的是,将纹理TI的第1至第5实例TI1、TI2、TI3、TI4和TI5的等腰直角三角形部分粘贴到形成位于3D空间的3D对象的部分表面的等腰直角多边形,并绘制和显示结果图象。还将描述逐渐放大该多边形时-例如当3D对象朝视点移动时所发生的那样-的效果。
图13表示二维纹理空间TS中纹理TI的第1至第5实例TI1、TI2、TI3、TI4和TI5。纹理的最高分辨率实例TI5的大小和分辨率与纹理空间TS中的相同。表3中表示了实例TI1-TI5的大小以及它们相对于最高分辨率实例TI5分辨率的线性分辨率。
  实例   大小(纹理象素)   相对于最高分辨率实例TI5的线性分辨率
  TI1(最低)   64×64   2-4
  TI2   128×128   2-3(=1/8)
  TI3   256×256   2-2(=1/4)
  TI4   512×512   2-1(=1/2)
  TI5   1024×1024   20(=1)
表3
二维纹理空间TS中的纹理坐标(p,q)在横向p轴上和纵向q轴上有1024个离散值,对应于纹理的最高分辨率实例TI5在每个方向上的1024个纹理象素。图13也表示了二维纹理空间TS中纹理TI的三角形部分TRI的顶点PA、PB和PB的纹理坐标。这些坐标分别是(512,256)、(512,512)和(768,512)。
图14A、14B和14C表示存储在基准缓冲器126中与该三角多边形要投射到的绘制屏面的部分对应的部分的单元的域157中的纹理坐标(p,q)。这些图中的每个方块代表对应一个绘制屏面象素的基准缓冲器的一个单元的域157。每个方块中都列出了对应单元的域157的内容,即二维纹理空间TS中的纹理坐标(p,q)。
在图14A中所示例子中,纹理的三角形部分将要粘贴的等腰直角三角形定义了对象的表面的较小部分。其原因例如是因为对象表面离视点较远。多边形的相等腰具有的长度相当于17个绘制屏面象素。为方便起见,将三角形的相等腰排列得与纹理空间TS的绘制屏面的横轴和纵轴平行。在主例程的步骤S10(图7A或7B)中,将纹理的最低分辨率实例TI1的图案数据从服务器110加载,并存储到纹理数据存储器130的该纹理的页132中图案数据储存库134中的金字塔型数据结构的最高层。然后,在主例程的步骤S13中执行的初始光栅化操作中,将对应于纹理的三角形部分TRI的纹理坐标(p,q)分配给基准缓冲器中对应于绘制屏面中该三角形的位置的部分的各单元。因为纹理的该三角形部分的大小是它要粘贴的多边形的大小的16倍,所以分配过程只将横向和纵向上的每16个纹理坐标之一分配给基准缓冲器的单元。结果,两个单元之间无论横向还是纵向的纹理坐标都相差16。如图14A中所示。
图14B表示图14A中所示基准缓冲器126的单元中存储的纹理坐标(p,q)是如何与纹理的最低分辨率实例TI1中的实例坐标(p1,q1)对应的。在纹理的最低分辨率实例中,实例坐标可以在横向和纵向上都只有64个离散值。对于图14A所示的基准缓冲器单元来说,纹理实例TI1的图案数据全部都是从纹理的最低分辨率实例TI1中不同的实例坐标(p1,q1)中读取的。由于每个三角形象素的颜色值是用从纹理的最低分辨率实例TI1中不同的实例坐标(p1,q1)中读取的图案数据计算的,所以对应该多边形的图象部分是以最佳分辨率绘制的。以最佳分辨率绘制这部分图象不需要加载纹理的任何更高分辨率实例的图案数据。
在图15A中所示的例子中,纹理的三角形部分TRI将要粘贴的等腰直角三角形,大约是上文结合图14A所述例子中的三角形大小的两倍。多边形的等腰具有的长度相当于33个绘制屏面象素。多边形大小的变大例如可能是对象表面被放到更接近视点的位置的结果。同样,在主例程的步骤S15中,从纹理的最低分辨率实例TI1中不同的实例坐标(p1,q1)中读取纹理实例TI1的所有图案数据。然后,在主例程的步骤S13中,将对应于纹理的三角形部分TRI的纹理坐标(p,q)分配给基准缓冲器中对应于绘制屏面中该三角形的位置的部分的各单元。因为纹理的该三角形部分的大小是它要粘贴的多边形的大小的8倍,所以分配过程将横向和纵向上的每8个纹理坐标之一分配给基准缓冲器的单元。结果,两个单元之间无论横向还是纵向纹理坐标都相差8。如图15A中所示。
图15B表示图15A中所示基准缓冲器126的单元中存储的纹理坐标(p,q)是如何与纹理的最低分辨率实例TI1中的实例坐标(p1,q1)以及纹理的次低分辨率实例TI2中的实例坐标(p2,q2)对应的。在纹理的实例TI2中,实例坐标可以在横向和纵向上都有128个离散值。在将纹理的实例TI1的实例坐标(p1,q1)分配给基准缓冲器中对应的各单元时,有些实例坐标(p1,q1)被分配给一个以上的基准缓冲器单元。例如,实例TI1的实例坐标(32,16)被分配给基准缓冲器中分配了纹理坐标(512,256)、(512,264)和(520,264)的3个相邻单元。这样,在用纹理的最低分辨率实例的图案数据第一次显示图象时,从相同的图案数据项生成对应绘制屏面象素的颜色值。结果,对应该三角形的图象部分是以次优分辨率绘制的。
绘制引擎120用对应该纹理的纹理数据存储器130的页132的访问图阵列142中存储的访问图AM(0)来检测纹理的实例TI1中的实例坐标(p1,q1)是否分配给了一个以上的基准缓冲器单元。在上文结合图10所述的子例程中,绘制引擎用访问图AM(0)来检测纹理的实例TI1中的实例坐标(p1,q1)是否有的被分配一次以上。如果有实例坐标(p1,q1)被分配一次以上,就将纹理的下一个更高分辨率实例TI2中的对应格片在格片加载列表136中的条目设置为10,以便在下次执行主例程的步骤S16中的加载操作时加载该格片的图案数据。
下一个更高分辨率实例TI2的图案数据在步骤S16中加载并存储到图案数据储存器134中金字塔型数据结构的次高层后,再次执行步骤S14时,就用纹理的该下一个更高分辨率实例TI2的图案数据来绘制该三角形所占据的图象部分。在这种情况下,纹理的该更高分辨率实例TI2的不同实例坐标(p2,q2)中的图案数据被赋予基准缓冲器的各单元。例如,纹理实例TI2的3个不同实例坐标(64,32)、(64,33)和(65,33)中的图案数据被分配给基准缓冲器中的分配了纹理坐标(512,256)、(512,264)和(520,264)的3个相邻单元。由于每个多边形象素的颜色值是用从纹理实例TI2的不同坐标中读取的图案数据计算的,所以,当用实例TI2的至少部分图案数据来第二次显示图象时,对应该多边形的图象部分是以最佳分辨率绘制的。以最佳分辨率绘制这部分图象不需要加载纹理的任何更高分辨率实例的图案数据。
在图16A中所示的例子中,纹理的三角形部分TRI将要粘贴的等腰直角三角形,大约是上文结合图14A所述例子中的三角形大小的4倍。多边形的等腰具有的长度相当于65个绘制屏面象素。多边形大小的变大例如可能是对象表面被放到相对接近视点的位置的结果。同样,在主例程的步骤S15中,从服务器110初始加载纹理的最低分辨率实例TI1所有图案数据,并将其存储在纹理数据存储器130的该纹理的页132中图案数据储存库134中金字塔型数据结构的适当部分中。然后,在主例程的步骤S13中,将对应于纹理的三角形部分TRI的纹理坐标(p,q)分配给基准缓冲器中对应于绘制屏面中该三角形的位置的部分的各单元。因为纹理的该三角形部分的大小是它要粘贴的多边形的大小的4倍,所以分配过程将横向和纵向上的每4个纹理坐标之一分配给基准缓冲器的单元。结果,两个单元之间无论横向还是纵向纹理坐标都相差4。如图16A中所示。
图16B表示图16A中所示基准缓冲器126的单元中存储的纹理坐标(p,q)是如何与纹理的最低分辨率实例TI1中的实例坐标(p1,q1)、纹理的实例TI2中的实例坐标(p2,q2)以及纹理的实例TI3中的实例坐标(p3,q3)对应的。在纹理的实例TI3中,实例坐标可以在横向和纵向上都有256个离散值。在将纹理的实例TI1和TI2中的实例坐标分配给基准缓冲器中对应的各单元时,实例的有些实例坐标(p1,q1)和(p2,q2)分别被分配给一个以上的基准缓冲器单元。这样,在用纹理的实例TI1和TI2的图案数据第一次和第二次显示图象时,有些绘制屏面象素的颜色值是从相同的图案数据项生成的。结果,对应该三角形的图象部分是以次优分辨率绘制的。
然而,在用纹理的更高分辨率实例TI3的图案数据来绘制图象时,纹理的该更高分辨率实例的不同实例坐标(p3,q3)中的图案数据被赋予基准缓冲器的各单元,如图16B中所示。由于将纹理实例TI3的不同实例坐标分配给了每个三角形象素,所以,当用实例TI3的至少部分图案数据来第三次显示图象时,对应该多边形的图象部分是以最佳分辨率绘制的。以最佳分辨率绘制这部分图象不需要加载纹理的任何更高分辨率实例的图案数据。
如果将纹理的三角形部分TRI粘贴到两倍于和四倍于上文结合图16A所述多边形的大小的三角形上,则分别要分两步和一步将纹理坐标(p,q)在纵、横两个方向分配给基准缓冲器126中对应多边形在绘制屏面中的位置的各单元。纹理的分辨率逐渐增加的实例TI1、TI2、TI3和TI4以及TI1、TI2、TI3、TI4和TI5,分别用来绘制该多边形所位于的图象部分。图象以逐渐增加的分辨率显示,最终以最佳分辨率显示。
例二
下面所说明的例子中,将代表世界地图的图象的纹理粘贴到球体的表面,绘制并显示代表地球的结果三维对象的图象。该说明参照图17-20和21-24。
在本例中,球体的表面由多边形(未予示出)定义。纹理的更高分辨率实例被粘贴到其方位平行于或接近平行于绘制屏面的那些多边形,纹理的较低分辨率实例被粘贴到其方位垂直于或接近垂直于绘制屏面的那些多边形。此外,当球体在3D空间中的位置改变,使得球体的外观大小增大时,要用更多的纹理的较高分辨率实例来绘制图象。当球体的外观大小减小时,要用更多的纹理的较低分辨率实例来绘制图象。
本例中,某纹理的4个实例TI1、TI2、TI3和TI4代表一个具有4级分辨率的世界地图,如图17-20所示。这些实例的纹理数据以FLASHPIX格式的单一纹理数据文件,存储在图1所示的服务器110中的纹理数据存储器114中。代表纹理将要粘贴到的球体的表面的多边形数据,存储在服务器中的多边形数据存储器112中。
本例中,代表世界地图的纹理不是正方形的,而是具有2∶1的纵横比(横向/纵向)。因此,每个实例TI1、TI2、TI3和TI4都有2∶1的纵横比。纹理的最高分辨率实例TI4具有的分辨率等于原始纹理的分辨率。如上所述,纹理的实例TI3、TI2和TI1每个的线性分辨率,是下一个更高分辨率实例的分辨率的一半,又是下一个更低分辨率实例的分辨率的两倍。
纹理的最高分辨率实例TI4如图20所示,是由横向上的512个纹理象素和纵向上的256个纹理象素构成的。本例中,将纹理的每个实例划分成各由64×64个纹理象素构成的格片。该最高分辨率实例被划分成总共32个格片,格片编号为T(11)、T(12)…T(42),排列成横向上8个格片和纵向上4个格片的矩形阵列。
纹理的实例TI3如图19所示,是由横向上的256个纹理象素和纵向上的128个纹理象素构成的。该实例被划分成总共8个格片,格片编号为T(3)、T(4)…T(10),排列成横向上4个格片和纵向上2个格片的矩形阵列。
纹理的实例TI2如图18所示,是由横向上的128个纹理象素和纵向上的64个纹理象素构成的。该实例被划分成总共2个格片,格片编号为T(1)、和T(2),排列成横向上2个格片和纵向上1个格片的矩形阵列。
纹理的实例TI1如图17所示,是由横向上的64个纹理象素和纵向上的32个纹理象素构成的。该实例被划分成编号为T(0)的1个格片。因为实例TI1是由横向上的64个纹理象素和纵向上的32个纹理象素构成的,而格片是由横向上的64个纹理象素和纵向上的64个格片构成的,所以纹理的该实例仅位于格片的顶半部或低半部。在所示例中,实例TI1仅位于格片T(0)的顶半部。
图21-24表示的是将纹理施加到球体去绘制图象时所显示的图象。
图21表示的是用纹理的最低分辨率实例TI1的图案数据绘制的地球图象。如上所述,纹理的最低分辨率实例TI1的图案数据即格片T(0)的图案数据,是从服务器110的纹理数据存储器114加载的,存储在对应该纹理的纹理数据存储器130的页132中的图案数据储存器134中金字塔型数据结构的次高层中。
当首次仅用纹理的实例TI1的图案数据来绘制图象时,图象的分辨率是不够的。因此,将用纹理的下一个更高分辨率实例TI2的图案数据第二次绘制图象所需要的图案数据加载在格片的单元中并存储在上述金字塔型数据结构中的适当位置。图22表示的是用纹理的实例TI2的图案数据数据绘制的地球图象。此时,纹理的实例TI2由两个格片组成。由于所绘制的部分纹理图象需要格片T(2)的图案数据,所以这个格片的图案数据被下载。格片T(1)的图案数据不被下载,因为不需要这些数据来绘制图象。格片T(1)的图案数据本当要施加的球体部分是从视点不可见的。
当用纹理的实例TI2的图案数据数据第二次绘制出地球图象时,图象的分辨率仍然不够。因此将第三次绘制具有更高分辨率的图象所需要的纹理的下一个更高分辨率实例TI3的图案数据加载在格片的单元中并存储在上述金字塔型数据结构中的第3层。
图23表示的是用纹理的实例TI3的图案数据绘制的地球图象。此时,纹理的实例TI3由8个格片组成。然而如图19中的粗框所指示的那样,只需要这些格片中的4个即格片T(5)、T(6)、T(9)和T(10)的图案数据来绘制图象。所以只加载这4个格片的图案数据。构成纹理的实例TI3的其余格片即格片T(3)、T(4)、T(7)和T(10)包括会施加到从视点不可见的球体部分的图案数据。因为不需要这些格片的图案数据来绘制地球图象,所以它们不被下载。图19显示,与传统方法需要8个格片的图案数据鲜明对照的是,按照本发明的绘制装置只加载4个格片的图案数据来绘制图象,因而能比传统绘制装置更快速地绘制图象。
当用纹理的实例TI3的图案数据数据第3次绘制出地球图象时,代表球体外围的图象部分是以最佳分辨率绘制的。然而代表球体中部的图象部分具有的分辨率仍然不够。因此,从服务器110的纹理数据存储器114加载纹理的最高分辨率实例TI4的某些格片的图案数据,将其存储在对应该纹理的纹理数据存储器130的页132中的图案数据储存库134中金字塔型数据结构的最低层。图24表示的是用纹理的实例TI3和TI4的图案数据绘制的地球图象。
纹理的实例TI4由32个格片组成。然而如图20中的粗框所指示的那样,只需要这些格片中的8个即格片T(16)、T(17)、T(24)、T(25)、T(26)、T(32)、T(33)和T(34)的图案数据来绘制图象。所以只加载这8个格片的图案数据。构成纹理的实例TI4的其余格片,不需要用来绘制图象,所以不被下载。图20显示,与传统方法需要32个格片鲜明对照的是,按照本发明的绘制装置只加载8个格片来绘制图象,因而能比传统绘制装置更快速地绘制图象。
在按照本发明的绘制装置中,随着所绘制图象的分辨率的提高,绘制图象所需的图案数据的数目与代表纹理的图案数据的总数之间的比率下降。与需要加载所有图案数据的传统绘制装置相比,这极大地加快了绘制具有最佳分辨率的图象的速度。
上述例子中,用具有4级分辨率的纹理的实例TI1、TI2、TI3和TI4来绘制地球的图象。地球图象第一次以低分辨率显示,分辨率逐渐增加的图象随后被顺序显示。然而,在用纹理的最高分辨率实例的图案数据绘制的图象中,部分图象可以用纹理的较低分辨率实例的图案数据来绘制而具有最佳分辨率。这进一步减少了需要加载的更高分辨率实例的图案数据的数目。
在传统绘制装置中,由于绘制计算要等到已经加载了所有纹理数据-包括构成纹理的最高分辨率实例TI4的所有格片的图案数据-之后才开始,所以要过大段时间后才第一次显示出3D对象-本例中是地球-的图象。若是用传统绘制装置来绘制上述例子,则在开始绘制计算之前要加载的图案数据的数目就会是32×64×64=131,062。相比之下,在按照本发明的绘制装置中,首先,一开始只将一个格片的图案数据从服务器110的纹理数据存储器114加载到客户机计算机102的纹理数据存储器130中。因此,从开始加载3D图象数据到显示3D对象的第一个图象之间消逝的时间被大大地缩短。用户几乎立即就能看到以纹理的最低分辨率实例TI1的分辨率显示的3D图象。此外,在用按照本发明的绘制装置来绘制刚刚说明的例子中的地球图象时,从服务器加载的图案数据的数目不多于纹理的实例TI1到TI4的一共14个格片的图案数据的数目。因此,按照本发明的绘制装置从服务器加载的图案数据的数目大大少于传统绘制装置所要求的32个格片的图案数据。按照本发明的系统的加载时间和对网络的使用都大大地较低。
本发明能高速地以最佳分辨率绘制由纹理定义其表面外观的3D对象的图象。本发明绘制对象的初始、低分辨率图象时几乎不费等待时间。特别是在网络环境中绘制3D对象的图象时,可以在一开始以低分辨率显示图象,然后以逐渐增加的分辨率重新显示图象。此外,由于只加载纹理每个实例中在绘制图象时实际需要的那些格片的图案数据,所以能更高效地利用各种资源,诸如网络资源。
尽管本说明书详细说明了本发明的示例性实施例,应当明白,本发明并不限于所说明的实施例,在后附的权利要求所界定的本发明的范围内可以作出各种改进。

Claims (7)

1.一种根据三维图形数据绘制图像的方法,所述图像由对应于绘制屏面的像素的颜色值代表,所述三维图形数据包括多边形数据,另外还包括定义纹理的纹理数据,所述纹理数据包括纹理大小数据和图案数据,所述图案数据代表纹理的多个实例,每个实例具有不同的分辨率,包括最低分辨率实例和最高分辨率实例,所述图案数据构成所述纹理数据的绝大部分,所述方法包含:
加载所述多边形数据、纹理大小数据和代表纹理的最低分辨率实例的图案数据;
使用所述多边形及纹理大小数据来执行初始光栅化操作,以便为所述绘制屏面的每个像素生成纹理标识符和纹理坐标并将其存储;
重复地执行一显示-加载操作,所述显示-加载操作包括:
使用以前加载的纹理的最高分辨率实例的图案数据来生成代表所述图像的颜色值,
根据为绘制屏面像素而存储的纹理坐标,标识纹理的次高分辨率实例的图案数据,这些图案数据是绘制具有更高分辨率的图像的至少一部分所需要的,和
加载所述被标识成绘制具有更高分辨率的图像的至少一部分所需要的图案数据,
重复地执行所述显示-加载操作,直到发生下列情况之一:(a)使用不同的图案数据生成了所述绘制屏面的所有像素的颜色值;(b)已经加载了纹理的最高分辨率实例的至少一部分的图案数据。
2.权利要求1的图像绘制方法,其中:
所述初始光栅化操作另外还为所述绘制屏面的像素中的一个像素生成亮度系数;
所述方法还包含为所述绘制屏面的所述一个像素将所述亮度系数与纹理标识符和纹理坐标存储在一起。
3.权利要求1或2的图像绘制方法,其中:
所述方法另外还提供一个具有金字塔型数据结构的纹理存储器,所述金字塔型数据结构包括这样的各层,在每一个层中存储着代表纹理的一个不同实例的图案数据;
加载所述图案数据包括将所述图案数据存储在所述纹理存储器的金字塔型数据结构的各层中的一个不同层中。
4.权利要求1或2的图像绘制方法,其中:
所述图案数据属于以矩形格片排列的纹理像素;
所述方法另外还包括:提供一种格片加载列表,所述格片加载列表含有对应每个格片的条目;和
标识所述纹理的次高分辨率实例的图案数据,包括:
检测包括如下纹理像素的格片,所述纹理像素的图案数据在最近执行过的生成步骤中被用来生成所述绘制屏面的一个以上邻近像素的颜色值;
为位于所述纹理的次高分辨率实例中如下位置的每一个格片把在所述格片加载列表中的对应条目设置成加载状态,所述位置对应于已使用过其图案数据来生成所述绘制屏面的一个以上邻近像素的颜色值的纹理像素,所述加载状态表明,所述纹理的次高分辨率实例的格片中的一个格片的图案数据是绘制具有更高分辨率的图像所需要的。
5.权利要求4的图像绘制方法,其中,加载被标识成需要的图案数据包括:
测试所述格片加载列表以标识被设置成加载状态的条目;
加载如下格片的图案数据,所述格片在所述格片加载列表中的条目被标识为设置成加载状态;和
将其图案数据在加载步骤中被加载过的格片在所述格片加载列表中的条目从加载状态改变成已加载状态,所述已加载状态表明用于所述格片的图案数据已经被加载。
6.权利要求4的图像绘制方法,其中:
所述方法另外还包括为其图案数据已经被加载的每个格片提供访问图,所述访问图包括对应所述格片之一的每一个纹理像素的条目,所述条目被初始化为第一状态;和
对所述格片进行检测包括:
测试对应其图案数据在最近执行过的生成步骤中被用来生成颜色值的每一个纹理像素的访问图条目是否处于第二状态,第二状态表明所述纹理像素之一的图案数据曾被用于生成所述绘制屏面的一个以上邻近像素的颜色值;和
在执行了所述测试步骤之后,将对应所述纹理像素之一的访问图条目设置成第二状态。
7.权利要求4的图像绘制方法,其中生成颜色值包括:
根据对应所述绘制屏面的一个像素的纹理坐标计算实例坐标,所述实例坐标与其图案数据在最近进行的加载步骤中被加载过的纹理的最高分辨率实例相关;
根据所述实例坐标来计算格片号和格片坐标;
读取在由所述格片号和格片坐标所指示的地址存储的图案数据;和
将读取步骤中读取的图案数据乘以像素的亮度系数,以生成颜色值。
CNB98810847XA 1997-10-31 1998-10-30 三维图象绘制方法 Expired - Lifetime CN1252648C (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP31587797 1997-10-31
JP315877/1997 1997-10-31
JP315877/97 1997-10-31
JP6466598A JPH11195132A (ja) 1997-10-31 1998-02-28 テクスチャマッピング用バッファ、3次元グラフィクス処理装置、3次元グラフィクス処理システム、3次元グラフィクス処理方法および処理プログラムが記憶された記憶媒体
JP64665/1998 1998-02-28
JP64665/98 1998-02-28

Publications (2)

Publication Number Publication Date
CN1278350A CN1278350A (zh) 2000-12-27
CN1252648C true CN1252648C (zh) 2006-04-19

Family

ID=26405763

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB98810847XA Expired - Lifetime CN1252648C (zh) 1997-10-31 1998-10-30 三维图象绘制方法

Country Status (7)

Country Link
US (1) US6184888B1 (zh)
EP (1) EP1025549B1 (zh)
JP (1) JPH11195132A (zh)
KR (2) KR20010031686A (zh)
CN (1) CN1252648C (zh)
DE (1) DE69804126T2 (zh)
WO (1) WO1999023610A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101178816B (zh) * 2007-12-07 2010-06-16 桂林电子科技大学 基于面采样的体绘制可视化方法

Families Citing this family (83)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000004496A1 (en) * 1998-07-17 2000-01-27 Intergraph Corporation Graphics processor with texture memory allocation system
JP2000293705A (ja) * 1999-04-01 2000-10-20 Mitsubishi Electric Corp 3次元グラフィックス用描画装置、3次元グラフィックス用描画方法および3次元グラフィックス用描画プログラムを記録した媒体
US6473090B1 (en) * 1999-11-03 2002-10-29 Evans & Sutherland Computer Corporation MIP mapping based on material properties
US6396503B1 (en) * 1999-12-31 2002-05-28 Hewlett-Packard Company Dynamic texture loading based on texture tile visibility
US6618053B1 (en) * 2000-01-10 2003-09-09 Vicarious Visions, Inc. Asynchronous multilevel texture pipeline
ATE329330T1 (de) * 2000-12-18 2006-06-15 Lightspace Technologies Inc Rasterung von dreidimensionalen bildern
JP2003016375A (ja) * 2001-06-29 2003-01-17 Matsushita Electric Works Ltd 対話型シミュレーションシステム、そのプログラム、シミュレーション支援方法
KR100420857B1 (ko) * 2001-07-12 2004-03-02 학교법인연세대학교 3차원 렌더링 프로세서의 픽셀 레스터라이재이션 처리방법 및 장치
JP2003076583A (ja) * 2001-09-04 2003-03-14 Fujitsu Ltd レンダリング計算処理状況監視プログラムおよび記憶媒体、装置、方法
KR20030039142A (ko) * 2001-11-12 2003-05-17 이한종 삼차원 디스플레이 장치
JP4083684B2 (ja) * 2002-01-23 2008-04-30 道彦 庄司 画像処理システムおよび画像処理装置
US7646927B2 (en) * 2002-09-19 2010-01-12 Ricoh Company, Ltd. Image processing and display scheme for rendering an image at high speed
JP2004213641A (ja) 2002-12-20 2004-07-29 Sony Computer Entertainment Inc 画像処理装置、画像処理方法、情報処理装置、情報処理システム、半導体デバイス、コンピュータプログラム
US8872833B2 (en) 2003-09-15 2014-10-28 Nvidia Corporation Integrated circuit configuration system and method
JP5006187B2 (ja) * 2004-03-23 2012-08-22 グーグル インコーポレイテッド デジタルマッピングシステムにおけるタイルの生成と供給
US7091982B2 (en) * 2004-05-14 2006-08-15 Nvidia Corporation Low power programmable processor
KR100469820B1 (ko) 2004-06-29 2005-02-03 엔에이치엔(주) 화면 갱신 방법 및 그 시스템
US7684598B2 (en) * 2004-07-16 2010-03-23 Siemens Aktiengesellschaft Method and apparatus for the loading and postprocessing of digital three-dimensional data
US8711156B1 (en) 2004-09-30 2014-04-29 Nvidia Corporation Method and system for remapping processing elements in a pipeline of a graphics processing unit
JP4284285B2 (ja) * 2005-02-24 2009-06-24 株式会社東芝 画像処理装置、画像処理方法および画像処理プログラム
US7280107B2 (en) 2005-06-29 2007-10-09 Microsoft Corporation Procedural graphics architectures and techniques
US8068117B2 (en) * 2005-06-30 2011-11-29 Microsoft Corporation Parallel texture synthesis by upsampling pixel coordinates
US7436412B2 (en) * 2005-08-24 2008-10-14 Qualcomm Incorporated Graphics engine with efficient interpolation
KR100714672B1 (ko) * 2005-11-09 2007-05-07 삼성전자주식회사 스플렛을 이용한 깊이 기반의 영상 렌더링 방법 및 그방법을 채용한 시스템
US8209201B1 (en) 2005-12-08 2012-06-26 Hewlett-Packard Development Company, L.P. System and method for correlating objects
US9123173B2 (en) 2005-12-15 2015-09-01 Nvidia Corporation Method for rasterizing non-rectangular tile groups in a raster stage of a graphics pipeline
US8390645B1 (en) 2005-12-19 2013-03-05 Nvidia Corporation Method and system for rendering connecting antialiased line segments
US9117309B1 (en) 2005-12-19 2015-08-25 Nvidia Corporation Method and system for rendering polygons with a bounding box in a graphics processor unit
US8781845B1 (en) 2006-03-27 2014-07-15 Hewlett-Packard Development Company, L.P. Service configuration management system and method
US8928676B2 (en) 2006-06-23 2015-01-06 Nvidia Corporation Method for parallel fine rasterization in a raster stage of a graphics pipeline
US8085264B1 (en) 2006-07-26 2011-12-27 Nvidia Corporation Tile output using multiple queue output buffering in a raster stage
US9070213B2 (en) 2006-07-26 2015-06-30 Nvidia Corporation Tile based precision rasterization in a graphics pipeline
US8237738B1 (en) 2006-11-02 2012-08-07 Nvidia Corporation Smooth rasterization of polygonal graphics primitives
US8300050B2 (en) 2006-11-28 2012-10-30 Adobe Systems Incorporated Temporary low resolution rendering of 3D objects
US8059124B2 (en) 2006-11-28 2011-11-15 Adobe Systems Incorporated Temporary non-tiled rendering of 3D objects
CN101617354A (zh) 2006-12-12 2009-12-30 埃文斯和萨瑟兰计算机公司 用于校准单个调制器投影仪中的rgb光的系统和方法
JP4987070B2 (ja) * 2007-04-11 2012-07-25 パナソニック株式会社 画像生成装置及び画像生成方法
WO2008147877A1 (en) * 2007-05-22 2008-12-04 Trimble Navigation Limited Handling raster image 3d objects
JP4980153B2 (ja) * 2007-06-21 2012-07-18 株式会社ソニー・コンピュータエンタテインメント 画像表示装置および画像表示方法
KR101345379B1 (ko) * 2007-06-28 2014-01-22 삼성전자주식회사 3차원 그래픽스 데이터 렌더링 방법 및 장치
US7925100B2 (en) * 2007-07-31 2011-04-12 Microsoft Corporation Tiled packaging of vector image data
US9064333B2 (en) 2007-12-17 2015-06-23 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US9418171B2 (en) * 2008-03-04 2016-08-16 Apple Inc. Acceleration of rendering of web-based content
US8289333B2 (en) 2008-03-04 2012-10-16 Apple Inc. Multi-context graphics processing
US8923385B2 (en) 2008-05-01 2014-12-30 Nvidia Corporation Rewind-enabled hardware encoder
KR100888155B1 (ko) * 2008-05-14 2009-03-10 팅크웨어(주) 텍스처 맵핑을 이용하여 3차원 지도를 표시하는 시스템 및방법
US8358317B2 (en) 2008-05-23 2013-01-22 Evans & Sutherland Computer Corporation System and method for displaying a planar image on a curved surface
US8702248B1 (en) 2008-06-11 2014-04-22 Evans & Sutherland Computer Corporation Projection method for reducing interpixel gaps on a viewing surface
JP5583127B2 (ja) * 2008-09-25 2014-09-03 コーニンクレッカ フィリップス エヌ ヴェ 三次元画像データ処理
US8077378B1 (en) 2008-11-12 2011-12-13 Evans & Sutherland Computer Corporation Calibration system and method for light modulation device
US8385669B2 (en) * 2009-03-04 2013-02-26 Microsoft Corporation Scalable mutable tiled multi-resolution texture atlases
KR100927128B1 (ko) * 2009-04-30 2009-11-18 주식회사 넥서스칩스 타일 더티 테이블을 이용한 3d 그래픽 처리 장치 및 처리 방법
JP5482394B2 (ja) * 2009-05-13 2014-05-07 セイコーエプソン株式会社 画像処理方法および画像処理装置
US9330494B2 (en) * 2009-10-26 2016-05-03 Pictometry International Corp. Method for the automatic material classification and texture simulation for 3D models
CN101789133B (zh) * 2010-01-27 2011-09-14 深圳市五巨科技有限公司 一种在移动终端中实现连续动画效果的方法和装置
US9331869B2 (en) 2010-03-04 2016-05-03 Nvidia Corporation Input/output request packet handling techniques by a device specific kernel mode driver
GB201004675D0 (en) * 2010-03-19 2010-05-05 Imagination Tech Ltd Memory management system
US9171350B2 (en) 2010-10-28 2015-10-27 Nvidia Corporation Adaptive resolution DGPU rendering to provide constant framerate with free IGPU scale up
US9641826B1 (en) 2011-10-06 2017-05-02 Evans & Sutherland Computer Corporation System and method for displaying distant 3-D stereo on a dome surface
US8243102B1 (en) 2011-10-12 2012-08-14 Google Inc. Derivative-based selection of zones for banded map display
CN103959339B (zh) * 2011-10-12 2018-02-02 谷歌公司 使用条带化以优化三维瓦片视图中的地图渲染
US10674135B2 (en) 2012-10-17 2020-06-02 DotProduct LLC Handheld portable optical scanner and method of using
US9332243B2 (en) 2012-10-17 2016-05-03 DotProduct LLC Handheld portable optical scanner and method of using
US9214138B2 (en) * 2012-12-28 2015-12-15 Microsoft Technology Licensing, Llc Redundant pixel mitigation
US9135742B2 (en) 2012-12-28 2015-09-15 Microsoft Technology Licensing, Llc View direction determination
US9025868B2 (en) * 2013-02-27 2015-05-05 Sony Corporation Method and system for image processing to determine a region of interest
CN105453559B (zh) * 2013-04-16 2017-12-29 点积公司 手持式便携光学扫描器及其使用方法
US9710894B2 (en) 2013-06-04 2017-07-18 Nvidia Corporation System and method for enhanced multi-sample anti-aliasing
CN103678631B (zh) * 2013-12-19 2016-10-05 华为技术有限公司 页面渲染方法及装置
KR102282189B1 (ko) 2014-07-02 2021-07-27 삼성전자 주식회사 밉맵 생성 방법 및 장치
US10410398B2 (en) * 2015-02-20 2019-09-10 Qualcomm Incorporated Systems and methods for reducing memory bandwidth using low quality tiles
US10244241B2 (en) * 2015-03-22 2019-03-26 Innova Plex, Inc. Pyramidal file structure and method of use thereof
US9704217B2 (en) 2015-04-20 2017-07-11 Intel Corporation Apparatus and method for non-uniform frame buffer rasterization
US9600909B2 (en) * 2015-07-20 2017-03-21 Apple Inc. Processed texel cache
EP3437072B1 (en) * 2016-03-28 2020-10-14 Sony Corporation System and method for rendering points without gaps
CN110114803B (zh) * 2016-12-28 2023-06-27 松下电器(美国)知识产权公司 三维模型分发方法、三维模型接收方法、三维模型分发装置以及三维模型接收装置
EP3435670A1 (en) * 2017-07-25 2019-01-30 Koninklijke Philips N.V. Apparatus and method for generating a tiled three-dimensional image representation of a scene
US10089796B1 (en) * 2017-11-01 2018-10-02 Google Llc High quality layered depth image texture rasterization
US11270474B2 (en) * 2018-12-05 2022-03-08 Sony Corporation Screen-tone look generator
US11481929B2 (en) * 2020-03-16 2022-10-25 Meta Platforms Technologies, Llc System and method for compressing and decompressing images using block-based compression format
US11523055B1 (en) * 2020-05-29 2022-12-06 Humane, Inc. Super resolution/super field of view (FOV) digital photography
CN112488901B (zh) * 2020-12-18 2024-05-07 创意信息技术股份有限公司 一种地理信息系统无感加载方法、装置、终端及存储介质
US20220203231A1 (en) * 2020-12-30 2022-06-30 Activision Publishing, Inc. Methods and Systems for Determining Decal Projections Intersecting Spacial Units in a Frame of a Game Space

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2684829A1 (fr) * 1991-12-04 1993-06-11 Philips Electronique Lab Methodes de synthese de signaux de texture et de transmission et/ou stockage de tels signaux, ainsi que dispositifs et systemes pour leur mise en óoeuvre.
US5438654A (en) * 1993-07-09 1995-08-01 Silicon Graphics, Inc. System and method for sharpening texture imagery in computer generated interactive graphics
US5490240A (en) * 1993-07-09 1996-02-06 Silicon Graphics, Inc. System and method of generating interactive computer graphic images incorporating three dimensional textures
US5596687A (en) * 1994-07-29 1997-01-21 David Sarnoff Research Center, Inc. Apparatus and method for addressing pixel values within an image pyramid using a recursive technique
US5760783A (en) * 1995-11-06 1998-06-02 Silicon Graphics, Inc. Method and system for providing texture using a selected portion of a texture map

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101178816B (zh) * 2007-12-07 2010-06-16 桂林电子科技大学 基于面采样的体绘制可视化方法

Also Published As

Publication number Publication date
KR20010031686A (ko) 2001-04-16
EP1025549A1 (en) 2000-08-09
DE69804126T2 (de) 2002-09-05
KR100516704B1 (ko) 2005-09-22
KR20010031608A (ko) 2001-04-16
WO1999023610A1 (en) 1999-05-14
EP1025549B1 (en) 2002-03-06
US6184888B1 (en) 2001-02-06
CN1278350A (zh) 2000-12-27
DE69804126D1 (de) 2002-04-11
JPH11195132A (ja) 1999-07-21

Similar Documents

Publication Publication Date Title
CN1252648C (zh) 三维图象绘制方法
CN1249632C (zh) 处理图像的方法和设备
CN1244076C (zh) 并行z缓冲器体系结构与透明度
CN1684104A (zh) 计算器系统中压缩及解压缩指令的方法与装置
CN1136517C (zh) 图象数据处理方法、图象数据处理装置
CN1288603C (zh) 图像处理器及其组件、和渲染方法
US6522336B1 (en) Three-dimensional graphics rendering apparatus and method
CN1773552A (zh) 计算机绘图之颜色资料的压缩系统及方法
CN1942896A (zh) 用图形处理单元处理图形操作的系统和方法
CN1138234C (zh) 图象生成的方法与设备
CN1893564A (zh) 图像特效设备、图形处理器和记录介质
CN1774727A (zh) 为像素确定覆盖掩模
CN1691069A (zh) 采用多图形处理器加速方格片元过滤的实时体绘制方法
CN101046891A (zh) 纹理映射设备和方法
CN1648948A (zh) 将位样型或比特流中数据压缩的方法
CN1698072A (zh) 对表示一个对象的二维距离场的一个区域进行反锯齿的方法及装置
CN1707522A (zh) 使用边缘数据位元遮罩的色彩压缩系统与方法
CN1932885A (zh) 三维图像处理
CN1801219A (zh) 使用平行处理以提高多模式过滤器性能的纹理过滤器
CN1770205A (zh) 基于纹理的像素打包
CN1620099A (zh) 图像处理装置、图像处理方法和程序
CN1560797A (zh) 减少z缓冲区流量的三维图形处理机制
CN1393001A (zh) 数据通信系统和方法、计算机程序以及记录介质
CN1685363A (zh) 任意形状图像的基于块的旋转
CN1719455A (zh) 基于色彩的彩色图像的区域分割技术

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.

Free format text: FORMER OWNER: HEWLETT-PACKARD CO. (US) P.O. BOX 10301, PALO ALTO CALIFORNIA U.S.A.

Effective date: 20120418

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20120418

Address after: Texas, USA

Patentee after: HEWLETT-PACKARD DEVELOPMENT Co.,L.P.

Address before: California, USA

Patentee before: Hewlett-Packard Co.

ASS Succession or assignment of patent right

Owner name: QUALCOMM INC.

Free format text: FORMER OWNER: HEWLETT PACKARD DEVELOPMENT CO., LLP

Effective date: 20131030

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20131030

Address after: California, USA

Patentee after: Qualcomm Inc.

Address before: Texas, USA

Patentee before: HEWLETT-PACKARD DEVELOPMENT Co.,L.P.

CX01 Expiry of patent term

Granted publication date: 20060419

CX01 Expiry of patent term