throbber
United States Patent [19]
`Migdal et al.
`
`[54] METHOD AND SYSTEM FOR PROVIDING
`TEXTURE USING A SELECTED PORTION
`OF A TEXTURE MAP
`
`[75]
`
`Inventors: Christopher Joseph MigdaL Mt. View;
`James L. Foran. Milpitas; Michael
`Timothy Jones. Los Altos;
`Christopher Clark Tanner. San Jose,
`all of Calif.
`
`[73] Assignee: Silicon Graphics, Inc •. Mountain View,
`Calif.
`
`[21] Appl. No.: 554,047
`
`Nov. 6, 1995
`
`[22] Filed:
`Int. Cl.6
`[51]
`..................................................... G06T 11/00
`[52] U.S. Cl ............................................................... 345/430
`[58] Field of Search ..................................... 395/128-132.
`395/125-127; 345/430
`
`[56]
`
`References Cited
`
`U.S. PATENf DOCUMENTS
`
`2/1988 Bunker et al ........................... 340n28
`4,727,365
`4,974,176 1111990 Buchner et al ......................... 364/522
`3/1992 Lathrop et al .......................... 395/130
`5,097,427
`2/1996 Foran et al.
`. ........................... 395/130
`5,490,240
`
`FOREIGN PATENf DOCUMENTS
`
`9/1991 European Pat. Off ..
`0 447 227 A2
`0 513 474 A1 1111992 European Pat. Off ..
`
`OTHER PUBLICATIONS
`
`Blinn, Jim. "Jim Blinn's Corner: The Truth About Texture
`Mapping," IEEE Computer Graphics & Applications, Mar ..
`1990. pp. 78-83.
`Foley et al., "17.4.3 Other Pattern Mapping Techniques."
`Computer Graphics: Principles and Practice, 1990. pp.
`826-828.
`
`111111
`
`1111111111111111111111111111111111111111111111111111111111111
`US005760783A
`[11] Patent Number:
`[451 Date of Patent:
`
`5,760,783
`Jun.2, 1998
`
`Cosman. M .. "Global Terrain Texture: Lowering the Cost."
`Proceedings of the 1994 !11Ulge VII Conference, Tempe.
`Arizona: The Image Society. pp. 53-64.
`Dungan. W. et al .. "Texture Tile Considerations for Raster
`Graphics," Siggraph '78 Proceedings (1978) pp. 130-134.
`Economy. R. et al .. 'The Application of Aerial Photography
`and Satellite Imagery to Flight Simulation," pp. 280-287.
`Foley et al .. Computer Graphics Principles and Practice,
`Second Edition, Addison-Wesley Publishing Company.
`Reading. Massachusetts (1990). pp. 742-743 and 826-828.
`Watt A.. Fundamentals of Three-Dimensional Computer
`Graphics, Addison-Wesley Publishing Company. USA
`(1989), pp. 227-250.
`Williams. L. "Pyramidal Parametrics." Computer Graphics,
`vol. 17. No. 3. Jul. 1983. pp. 1-15.
`Prii1Ull)' Examiner-Almis R. J ankus
`Attome)~ Agent, or Finn-Sterne. Kessler. Goldstein & Fox
`P.L.L.C.
`[57]
`
`ABSTRACT
`
`An apparatus and method for quickly and efficiently pro(cid:173)
`viding texel data relevant for displaying a textured image. A
`large amount of texture source data. such as photographic
`terrain texture. is stored as a two-dimensional or three(cid:173)
`dimensional texture MlP-map on one or more mass storage
`devices. Only a relatively small clip-map representing
`selected portions of the complete texture MIP-map is loaded
`into faster. more expensive memory. These selected texture
`MIP-map portions forming the clip-map consist of tiles
`which contain those texel values at each respective level of
`detail that are most likely to be mapped to pixels being
`rendered for display based upon the viewer's eyepoint and
`field of view. To efficiently update the clip-map in real-time,
`texel data is loaded and discarded from the edges of tiles.
`Attempts to access a texel lying outside of a particular
`clip-map tile are accommodated by utilizing a substitute
`texel value obtained from the next coarser resolution clip(cid:173)
`map tile which encompasses the sought texel.
`
`28 Claims, 14 Drawing Sheets
`
`X'
`' 540
`
`I
`a·
`/
`1------
`
`"'---- TEX1URE
`MIP-IMP
`330
`
`I CUBICAL PART
`
`PYRAI.iiOAL PART
`
`LOD[I.i+1] (
`~
`LOO[N) l
`
`Microsoft Corp. Exhibit 1007
`
`

`
`U.S. Patent
`
`Jun.2, 1998
`
`Sheet 1 of 14
`
`5,760,783
`
`/
`
`I
`
`I
`
`/
`
`/
`
`/ I I
`/I I
`
`/p L00[3]
`//.Eijt LOD[2]
`/ . / 'I/
`I
`I LOD[ 1 ]
`
`/
`
`/
`
`/
`
`/
`
`I
`
`I
`
`/
`
`/
`
`/
`
`/
`
`/
`
`/
`
`/
`
`/
`
`I
`
`I
`
`I
`
`I
`
`I
`
`I
`
`I
`
`I
`
`/
`
`I
`
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`1 LOD[O)
`
`FIG.1 A
`
`FIG.1 8
`
`BACKGROUND
`
`FOREGROUND
`
`Microsoft Corp. Exhibit 1007
`
`

`
`-...1 "' =
`
`~
`00
`'-I
`,..
`
`,..
`Ol
`
`s, -.a::..
`
`~
`~
`
`N
`
`,.. -~
`
`~
`.....
`
`N
`
`~ a
`
`~
`~
`•
`\Jl
`•
`Cj
`
`:
`I
`I
`:
`:
`:
`:
`I
`I
`:
`:
`I
`I
`I
`
`I
`I
`
`I
`:
`I
`I
`I
`:
`I
`:
`I
`'
`i
`1
`r-----r-POLYGON DESCil\EII9i'l _____ j_ __________ ,
`
`:
`I
`I
`:
`:
`'
`:------------------------
`
`~-----='
`
`222
`
`M~O~ ~·
`226
`TEXTURE
`SUBSYSTEM ~·
`RASTER
`224
`1
`ENGINE
`GEOMETRY
`
`SUBSYSTEM
`GRAPHICS
`
`/
`
`/
`
`,
`220
`
`1
`I
`I
`
`J
`
`L _____________________________________________ J
`.+--
`:
`
`T
`
`UNI
`
`f----
`
`BUFFER
`
`228 I
`
`I
`
`I
`
`I
`
`DISPLAY
`(
`232
`
`VIDEO 1--
`(
`230
`
`FRAME
`t
`
`I
`
`:
`I
`I
`
`___ j
`
`: :
`I
`:
`I
`:
`I
`:
`I
`I
`I
`I
`:
`I
`:
`I
`I
`I
`
`" 200
`
`MASS STORAGE
`
`DEVICE
`
`ROM
`
`2
`201
`
`I
`
`08
`
`C2
`
`7
`
`BUS
`
`206
`
`?
`
`I
`I
`I
`I
`I
`I __
`I
`-----------------------l
`
`FIG.2
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`L -
`
`216
`
`j.-..J
`
`ETC.
`SOUND
`
`PROCESSOR
`
`,__
`
`202
`
`1
`
`I
`f
`
`214
`
`HARD COPY I---(cid:173)
`
`DEVICE
`
`1
`
`212
`
`f--..J
`
`C
`ONTROL
`CURSOR
`
`--._.1
`
`KEYBOARD
`
`1
`1
`I
`I
`I
`I
`1
`I
`I
`
`204
`_.._. MEMORY
`
`MAIN
`
`I
`I
`1
`I
`1
`I
`r--------£8
`
`210
`
`DISPLAY
`
`rJ
`
`Microsoft Corp. Exhibit 1007
`
`

`
`~
`QIO
`.....:a
`._.
`=" c
`.....:a
`._.
`VI
`
`""'
`~ .....
`w
`~
`r.l). =(cid:173)
`I'D
`
`~
`
`~
`.....
`J'l
`~
`
`(D a
`~ =
`d • rJ1 •
`
`1!""'1'-
`
`300
`
`302
`
`..... , 301
`
`~--
`
`------
`-----------~ -,
`----------..,
`
`.. ,,, ':t• ·-~··· :'.;-·~ .. : .... '-.~ :;.~ -----------------_}--,
`
`:. " · ..... ,..
`
`..........
`
`---..J
`
`LOD[2] [------------------3f2-;_. ~::'; ..... ·. ,:' _,., ..... ~·· 1 ---------------,
`-----------------
`--------------
`-----------------~--,
`
`------------------------
`
`LOD[ 1] [---------------------3fi:... ,: .. , .... , ..... :.· .. : ·.
`
`•------------------------~!Q_
`LOD[O] r----------------------------
`
`r-------
`
`:
`CLIP-MAP :
`
`I
`I
`
`340
`
`0
`
`X
`
`'
`---------------------·." ............. :'" ... ·; · .. ~·.,t:··.,.··til, ... · --------------..r--..... .....
`
`330
`MIP-MAP
`~
`TEXTURE
`
`307
`
`LOD[N]
`
`LOD[M+ 1)
`
`FIG.3
`
`----_:--......... 305
`
`~-----~
`
`LOD[5) [ ~=====~} ~~·<:;.;;:i:;·~~;f·:?~; :\::;:~·~:
`
`.... 303
`
`--,
`
`:o o' ~~· -------~--.......... ... 304
`
`... • •• , ·: :.;:,·~·;"·
`
`.... ~~ 0 ',•, "'·,,
`
`I
`
`0 o
`
`----------'I oo
`
`'-•.1.·:·.;.:•·,':, • ·.::,· .,
`
`L-----
`
`LOD[4] ~------------3-1-4: ·· ... · .:.···· ..
`
`'I .... ~: ... :,:~•\;,""-,,•',
`-------31'3:.._ .·-;:-•.;.~·.:.;·,:-~ ................. ...
`..
`
`·, •
`
`-------------------;.•.,"";~'.,,',.,
`r-------
`
`PYRAMIDAL PART
`
`l
`I CUBICAL PART
`
`LOD[3] ~
`
`Microsoft Corp. Exhibit 1007
`
`

`
`QC w
`.....:1
`=" =
`,.
`
`.....:1
`,.
`01
`
`""""
`.~:>.
`~
`.~:>.
`
`rJ'J =(cid:173)~ a
`
`QCI
`\C)
`""""
`\C)
`~
`~
`
`~
`
`~ = ,....
`~ = ,....
`•
`00
`~ •
`
`16k
`
`X
`
`16k
`401
`
`1~~ 32k TEXELS
`
`X
`
`........ ,
`
`-...,
`
`1----
`
`•• --------..J
`--------~
`-----------...J
`
`..........
`LOD[1] ~--------------411~:~:::~.~~:·.··~·~·:-:: ···:.~:>;·.:;.::·:~: ------------...--....
`o ----------------.J
`LOD[O] ~------------------~f1o:q ~:;·:;:~·~:· ~:.~f''1·>:·':::' :-~··) ___ ------------~--
`
`'• ••
`
`t
`
`LOD 2 I
`
`]
`
`[
`
`r
`
`I,
`
`..............
`
`I
`
`'-------------------......... ,.
`
`I" o•,o(.o ,,o
`
`ooo
`
`..
`
`L----------------------·:• ,.._,, .. flo'
`
`""--
`
`0
`
`X
`
`CLIP-MAP
`
`440
`
`(410-415)
`
`TILES
`
`0t
`-s
`
`,..-----~ .... ,.:.,;\To: ., • •.
`. ..
`LOD[3] lr------4-1_3_" ,.·:._. .. ·:.·:· .. ;A:,.,.._,::_··~'· .. ,:···:;.
`L---------------'",, • • • .,., '""
`.,:'·.;;", ·: •. ·.:.: ·• ....... ··~: ··•;.·. :· ··, ..
`••,• ,• .:.•·<· .,
`412
`••• •' ,,....
`---------------
`
`"'----PHOTOGRAPHIC
`
`TEXTURE MAP
`
`430
`
`TERRAIN
`
`1k X 1k
`405
`
`/
`
`/
`
`FIG.4A
`
`/
`
`/
`
`' / v
`'
`'
`
`'
`
`'
`
`415 ........ ::...:~ •. · ~ ·;:, •.. ~, .. ;.,,,;., '·~··:r--.
`
`'.··:·.:."....,.'.;.,:,.,.~··: .... '·'I
`
`'
`
`LOD[5]
`LOD(4] ~-~1~:----.. :· ... .-, ............ ;; ·:·.-...,,.,: ... ::·;· __ _, --.. ,,
`,__________
`
`---;_
`
`_____ ....
`------;..._
`
`-
`
`~..
`
`'o .. 0 o
`
`<o
`
`. .
`
`f ,,.
`
`~· .. , 0 ,. 1 oil 0
`
`. . .. ...
`
`•
`
`4
`
`.....
`
`1
`
`l PYRAMIDAL PART
`
`1
`{1k x 1k TILES)
`CUBICAL PART
`
`Bk X Bk
`402
`
`2k X 2k
`404
`
`4k x 4k
`
`.... .... 403
`
`....
`
`Microsoft Corp. Exhibit 1007
`
`

`
`U.S. Patent
`
`Jun. 2, 1998
`
`Sheet 5 of 14
`
`5,760,783
`
`~
`N
`
`~ (
`
`I"')
`
`/~
`- /~
`v\
`
`N
`
`...:iiC
`
`- N
`
`...:iiC
`
`....:M:
`~
`
`....:M:
`CX)
`
`N
`
`~
`~--r-......
`
`X
`
`(
`
`Microsoft Corp. Exhibit 1007
`
`

`
`U.S. Patent
`
`Jun. 2, 1998
`
`Sheet 6 of 14
`
`5,760,783
`
`LOD[2]--
`8k X 8k
`402
`
`I
`
`401
`LOD[1]
`16k X 16k
`
`420'
`
`X'
`
`400 LOD[O]
`32k X 32k
`
`FIG.4C
`
`Microsoft Corp. Exhibit 1007
`
`

`
`"' 00 w
`,_. "' =" 0
`
`Ol
`
`,_.
`
`t:r' a
`
`[11
`
`""'
`.....
`~
`......:.
`
`330
`MIP-MAP
`TEXTURE
`
`\...__
`
`---...... 304
`
`QO
`~
`~ .....
`~
`
`~
`
`~ a
`~ = t"'t-
`
`•
`rJ1
`•
`Cj
`
`302
`
`300
`
`......... ,
`
`~---
`
`-.J
`
`-------r-
`-----__ IL------
`
`I
`1-----""'
`o'
`1
`I
`I
`
`I
`I 540
`X'
`
`FIG.5
`
`LOD[N]
`
`LOD[M+1]
`
`PYRAMIDAL PART
`
`l
`
`1 CUBICAL PART
`
`'-------------------"f-::..:...:::..;:::.....:.......:tf>:.::t;.;~r..;..:.:.....::..o.+
`1
`... ------------------+ ....... ,.-,....,,....,,.-!,....,...,......,h---r-+-
`
`313
`
`... ----------------------+==-=---=-~._,.._,......,,...J:,....+
`
`:.;::::;::~·~>~·.-:-"''· :··-~· .,:·
`LOD[ 1] [===== ================~[f · ,· ... ·, ... ,~~-. · ..
`
`LOD[2] ~ __________________ 3_1_?_
`
`I
`
`I
`1(310-319)
`: TILES
`
`~----------------
`1
`r---
`
`LOD(O)
`
`r---~---T---r---,
`
`0
`
`I
`
`/
`
`i ...
`I /
`'
`X
`
`I
`I
`
`I
`I
`
`I
`I
`:
`CLIP-MAP :
`
`340
`
`Microsoft Corp. Exhibit 1007
`
`

`
`U.S. Patent
`
`Jun.2, 1998
`
`Sheet 8 of 14
`
`5,760,783
`
`I
`
`r--------.....--'
`I b
`N
`tO
`
`-N c.o
`
`-N c.o
`
`N
`N
`tO
`
`N
`N c.o
`
`0
`0
`tO
`
`0::::
`
`~ LL.I u
`(/') -X
`---,-
`1
`I
`I
`
`,/
`o~
`
`Microsoft Corp. Exhibit 1007
`
`

`
`0\ =
`
`~
`~
`.....:.
`._.
`
`.....:.
`._.
`til
`
`"' ~
`C" f!
`
`~
`.......
`
`00
`
`~
`
`.......
`...,N
`~
`
`~
`
`300
`
`(0 a
`~ =
`0 • 00 •
`
`.......
`
`I ---
`
`::,!·:-·::. ... ~· .. ""· ..... 0. 'II ··.·t.· ,,
`
`... 301
`=========---------:--...... ,
`
`. . . . . . . ··~. • .. ;~':. ------------=== == = }-..... ,
`
`.. ,t, :ft I•
`
`,: .. ::· .. ,·~· ··" .... ·· .. ~-~:·.;• ... : .... ·-..~ ------------
`
`. \
` .. ~-~..'r,-:.t,.~::.~·~;:~·.=~::;,~.;~.::-::~:~;1 --_;---...... , 306
`.. ::·.,. ··: 1·,·: ..... ·=-·: ;.;. ,.
`lJLh-:=~~::::·:::.· '.~.f .. ~:·'"·IT·
`~>· .:~ ... :.:·,<·.·:~-... '.··~·: .. ~· • .' :·<~ _____ ---
`~~·:•: : ; · ... :·:\,. ···t .. ..
`l.--=--:--:-:r:--:r::"""• T"'?'?_:~,_~.:: .. ::r·t--------}--......
`: = = = = = = = = = = =}-......... , 303
`~::~(.::.::; .;·~ ·>·:.i.:~~.:::;.~~-i::;.::;_~ 1
`i >·;· ? -'''·>''<:' >l ---============r-----302
`
`330
`MIP-MAP
`TEXTURE
`
`\...__
`
`308
`
`307
`
`319
`
`..... , 305
`
`'304
`
`~ ---,
`···I -----~---
`
`..J
`
`-
`
`~L
`
`.. . )
`
`I·~ ....... ,.
`
`\
`
`----------,
`
`~ ~ .:: ··<·=-~~r ~!;..:: :~~;:\~~ · -~:. · :1/ ~~ .. • .. \·
`{310-319):
`:
`TILES
`
`"-
`
`340 -.....j
`:
`:
`PI
`I
`r---------------1
`
`I
`
`CUP-MA
`
`FIG.7
`
`LOD[N]
`
`LOD[M+1]
`
`PYRAMIDAL PART
`
`j
`
`1 CUBICAL PART
`
`LOD[1] [===========JQ~===--~ 312
`
`L-----------------
`LOD[O] r-~----------------
`1
`
`700
`
`Microsoft Corp. Exhibit 1007
`
`

`
`U.S. Patent
`
`Jun. 2, 1998
`
`Sheet 10 of 14
`
`5,760,783
`
`START
`
`800
`
`STORE TEXTURE MIP-MAP IN A MASS ~BlO
`STORAGE DEVICE
`
`SELECT A CUP-MAP PORTION OF THE
`TEXTURE MIP-MAP BASED ON THE FIELD OF
`VIEW AND EYEPOINT LOCATION OF THE
`DISPLAY IMAGE RELATIVE TO THE TEXTURE
`PATIERN
`
`820
`r--
`
`830
`STORE THE CLIP-MAP IN A TEXTURE MEMORY ~
`
`APPLY TEXTURE TO IMAGE BY MAPPING TEXEL r-J40
`DATA FROM THE STORED CLIP-MAP TO
`CORRESPONDING PIXEL DATA
`
`DISPLAY
`NEW
`IMAGE
`
`HAS
`FIELD OF VIEW
`OR EYEPOINT
`LOCATION
`CHANGED?
`
`NO
`
`850
`~
`YES
`
`UPDATE TEXEL DATA IN
`FRINGES OF TILES IN
`THE CLIP-MAP TO
`TRACK CHANGES IN
`FIELD OF VIEW AND/OR
`EYEPOINT LOCATION
`
`FIG.8A
`
`Microsoft Corp. Exhibit 1007
`
`

`
`U.S. Patent
`
`Jun.2, 1998
`
`Sheet 11 of 14
`
`5,760,783
`
`APPLY TEXTURE
`TO NEW IMAGE ROUTINE
`
`INPUT POLYGON
`DESCRIPTION AND
`TEXTURE COORDINATES
`
`CALCULATE A LEVEL
`OF DETAIL FOR
`EACH PIXEL
`
`841
`
`842
`
`DffiRMINE THE LOD MAP
`INCLUDING TEXEL DATA
`AT AN APPROPRIATE
`RESOLUTION FOR
`EACH PIXEL
`
`843
`
`846
`
`MAP SUBSTITUTE TEXEL DATA
`FROM TILE NEAREST IN LEVEL
`NO
`~---~ OF DETAIL ENCOMPASSING THE
`TEXEL DATA AT A COARSER
`RESOLUTION TO
`CORRESPONDING PIXEL DATA
`
`845
`
`847
`
`MAP TEXEL DATA FROM THE
`CLOSEST LOD TILE TO
`CORRESPONDING PIXEL DATA
`
`STORE TEXEL AND SUBSTITUTE
`TEXEL DATA FROM THE CLIP-MAP
`WITH CORRESPONDING PIXELS
`DATA IN FRAME BUFFER
`FOR DISPLAY
`YES
`
`(
`
`GO TO STEP )
`
`FIG.BB
`
`Microsoft Corp. Exhibit 1007
`
`

`
`=" =
`
`~
`-...!
`,.
`
`.....:1
`._.
`01
`
`~ ""'
`~
`N
`~
`
`!'t> a
`t:r
`00
`
`~
`p
`~
`
`~
`
`;.,..
`
`~ a
`~ ~
`•
`00.
`d •
`
`L.L.V
`
`BUFFER
`FRAME
`;
`
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`
`I
`
`224
`
`FIG.9
`
`SUBSYSTEM
`
`',, ___ RASTER
`
`___ _j
`
`\
`I
`--,--
`
`-----
`
`----
`
`940-------------
`
`L-------
`I
`
`: TEXTURE PROCE?SOR 900
`r-----------------------------------,
`
`930
`
`FILTER
`TEXTURE
`
`-?-
`
`I
`I
`I
`I
`I
`I
`
`I
`I
`I
`I
`I
`i
`
`MANAGER
`MEMORY
`TEXTURE
`
`DRAM
`
`LOD
`
`COORDINATES
`
`TEXEL
`
`~-----------------------------~-----------J
`
`PIXEL DATA
`
`920
`
`~ GENERATOR
`
`.,1
`
`PIXEL
`
`---:-GENERATOR
`TEXTURE
`
`I
`I
`I
`I
`I
`
`(x,y)
`
`wl;
`
`\
`
`I
`I
`: TRIANGLE
`I
`I
`
`I ;s
`
`BUS
`
`ENGINE
`GEOMETRY
`
`(
`
`201
`BUS
`
`Microsoft Corp. Exhibit 1007
`
`

`
`~
`
`.....:e oc
`=". c ,..
`.....:e
`,..
`Ol
`
`..... ...
`..... w
`.....
`('l)
`('l)
`t:r'
`rJ1
`
`0 ......,
`
`00
`\C
`\C
`.....
`_p
`""'" ~
`
`~ a
`~ ......
`00 •
`~
`
`FIG.1 0
`
`TM
`TO
`
`COMPRESSION
`COORDINATE
`
`QUAD
`~
`1060
`
`I)
`
`(\
`
`GENERATION
`
`BLOCK
`
`LOD
`
`\
`
`r-
`{\
`
`NORMALIZER
`
`DIVIDER
`
`AND
`
`( 1030
`
`(1020
`
`( 1010
`
`CONVERSION
`
`SCAN
`
`.........
`
`COEFFICIENTS
`
`ITERATION
`GENERATE
`
`1-
`
`NORMALIZE
`
`AND
`ROTATE
`TRIANGLE
`
`10t0
`
`1140
`
`GENERATOR 240
`(X,Y) FROM PIXEL
`
`SCREEN SPACE
`DESCRIPTION IN
`
`TRIANGLE
`
`9
`~5
`8
`JS
`NGLE
`TRIA
`
`/\100
`
`VALUE
`
`pixOO, pix01, pix1 0, pix11
`______..
`
`TEXEL COORDINATES
`
`PIXEL QUAD
`
`Microsoft Corp. Exhibit 1007
`
`

`
`~
`QC
`........
`._.
`0
`Q'\
`........
`._.
`til
`
`""'
`
`~
`
`.....
`s,
`.....
`('tl a
`00 =(cid:173)
`
`~
`
`~
`
`~
`.....
`-P
`~
`
`~ = ......
`~ = ......
`~ • r.n •
`
`--TEXTURE
`
`950
`FILTER
`
`IANAGER
`~
`ORY
`~
`TEXTURE
`
`vg
`
`FIG.11
`
`DRAM
`
`'(7
`
`..().
`
`MEMORY CONTROLLER
`
`( 1130
`
`DATA
`TEXTURE
`
`ADDRESSES
`TEXTURE
`
`TEXTURE DATA
`
`GENERATOR
`ADDRESS
`
`VALUE
`LOD
`v
`
`'
`
`VALUE
`AND LOD
`PIXEL QUAD
`DECOMPRESS
`
`_\
`9
`10
`
`GENERATOR
`TEXTURE
`FROM
`
`TEXEL COORDINATES
`
`{PIXEL QUAD
`
`1110,
`
`Microsoft Corp. Exhibit 1007
`
`

`
`5,760.783
`
`1
`METHOD AND SYSTEM FOR PROVIDING
`TEXTURE USING A SELECTED PORTION
`OF A TEXTURE MAP
`
`BACKGROUND OF THE INVENI10N
`1. Field of the Invention
`The present invention pertains to the field of computer
`graphics. More particularly. the present invention relates to
`an apparatus and method for providing texel data from
`selected portions of a texture MIP-map (referred to herein as
`a clip-map).
`2. Related Art
`Computer systems are commonly used for displaying
`graphical objects on a display screen. These graphical 15
`objects include points. lines, polygons, and three dimen(cid:173)
`sional solid objects. By utilizing texture mapping
`techniques. color and other details can be applied to areas
`and surfaces of these objects. In texture mapping. a pattern
`image, also referred to as a "texture map," is combined with 20
`an area or surface of an object to produce a modified object
`with the added texture detail. For example, given the outline
`of a featureless cube and a texture map defining a wood
`grain pattern, texture mapping techniques can be used to
`''map" the wood grain pattern onto the cube. The resulting 25
`display is that of a cube that appears to be made of wood. In
`another example. vegetation and trees can be added by
`texture mapping to an otherwise barren terrain model.
`Likewise. labels can be applied onto packages or cans for
`visually conveying the appearance of an actual product. 30
`Textures mapped onto geometric surfaces provide motion
`and spatial cues that surface shading alone might not pro(cid:173)
`vide. For example. a sphere rotating about its center appears
`static until an irregular texture or pattern is affixed to its
`surface.
`The resolution of a texture varies. depending on the
`viewpoint of the observer. The texture of a block of wood
`displayed up close has a different appearance than if that
`same block of wood were to be displayed far away.
`Consequently. there needs to be some method for varying 40
`the resolution of the texture (e.g .• magnification and
`minification). One approach is to compute the variances of
`texture in real time, but this filtering is too slow for complex
`textures and/or requires expensive hardware to implement.
`A more practical approach first creates and stores a 45
`MIP-map (multum in parvo meaning "many things in a
`small place"). The MIP-map consists of a texture pattern
`pre-filtered at progressively lower or coarser resolutions and
`stored in varying levels of detail (LOD) maps. See. e.g .. the
`explanation of conventional texture MIP-mapping in Foley so
`et al .. Computer Graphics Principles and Practice, Second
`Edition, Addison-Wesley Publishing Company, Reading,
`Mass. (1990), pages 742-43 and 826-828 (incorporated by
`reference herein).
`FIG. lA shows a conventional set of texture LOD maps 55
`having pre-filtered texel data associated with a particular
`texture. Four different levels of detail (LOD[O]-LOD[3]m)
`are shown. Each successive coarser texture LOD has a
`resolution half that of the preceding LOD until a unitary
`LOD is reached representing an average of the entire high 60
`resolution base texture map LOD[O]. Thus, in FIG. lA,
`LOD[O] is an 8x8 texel array; LOD[ 1) is a 4x4 texel array;
`LOD[2] is a 2x2 texel array; and LOD [3] is a single lxl
`texel array. Of course, in practice each LOD can contain
`many more texels, for instance, LOD[O] can be 8kx8k, 65
`WD[ 1] 4kx4k. and so forth depending upon particular
`hardware or processing limits.
`
`35
`
`2
`The benefit of MIP-mapping is that filtering is only
`performed once on texel data when the MIP-map is initially
`created and stored in LOD maps. Thereafter. texels having
`a dimension commensurate with pixel size are obtained by
`5 selecting the closest LOD map having an appropriate reso(cid:173)
`lution. By obtaining texels from the pre-filtered LOD maps,
`filtering does not have to be performed during run-time.
`More sophisticated filtering operations can be executed
`beforehand during modeling without delaying real-time
`10 operation speed.
`To render a display at the appropriate image resolution. a
`texture LOD is selected based on the relationship between
`the smallest texel dimension and the display pixel size. For
`a perspective view of a landscape 100. as shown in FIG. lB.
`the displayed polygonal image is "magnified" in a fore(cid:173)
`ground region relative to polygonal regions located closer to
`the center horizon and background along the direction
`indicated by the arrow. To provide texture for pixels in the
`closest foreground region. then. texels are mapped from the
`finest resolution map LODIO]. Appropriate coarser LODs
`are used to map texel data covering pixels located further
`away from the viewer's eyepoint. Such multi-resolution
`texture MIP-mapping ensures that texels of the appropriate
`texture LOD gets selected during pixel sampling. To avoid
`discontinuities between images at varying resolutions. well(cid:173)
`known techniques such as linear interpolation are used to
`blend the texel values of two LODs nearest a particular
`image pixel.
`One significant drawback to conventional MIP-mapping.
`however. is the amount of memory consumed by the various
`texture LOD maps. Main memory in the form of a dynamic
`random access memory (DRAM) or a static random access
`memory (SRAM) is an expensive and inefficient site for a
`large texture MIP-map. Each additional level of detail map
`at a higher level of detail requires four times more memory.
`For example. a 16x16 texture array having 256 texture
`picture elements (texels), is four times bigger than an 8x8
`texture array which has 64 texels. To put this increase in
`perspective, a texture MIP-rnap having six levels of detail
`requires over 4.096 times more memory than the texture
`map at the finest resolution. Implementing large texture
`MIP-maps quickly becomes an expensive luxury. In
`addition, for large texture MIP-rnaps. many portions of the
`stored MIP-map are not used in a display image.
`Memory costs become especially prohibitive in photo(cid:173)
`graphic texture applications where the source texture, such
`as. satellite data or aerial photographs. occupy a large
`storage area. Creating a pre-filtered MIP-rnap representation
`of such source texture data further increases memory con(cid:173)
`sumption.
`This problem is further exacerbated by the fact that in
`order to increase the speed at which images are rendered for
`display, many of the high-performance computer systems
`contain multiple processors. A parallel. multiple processor
`architecture typically stores individual copies of the entire
`MIP-map in each processor memory.
`Thus, there is a need to efficiently implement large texture
`maps for display purposes so as to minimize attendant
`memory and data retrieval costs. Visual quality must not be
`sacrificed for memory savings. Final images in an improved
`texture mapping system need to be virtually indistinguish(cid:173)
`able from that of images generated by a traditional MIP-rnap
`approach.
`There is also a need to maintain real-time display speeds
`even when navigating through displays drawn from large
`texture maps. For example, flight simulations must still be
`
`Microsoft Corp. Exhibit 1007
`
`

`
`5.760.783
`
`3
`perlormed in real-time even when complex and voluminous
`source data such as satellite images of the earth or moon. are
`used to form large texture motifs.
`
`SUMMARY OF THE INVENITON
`
`25
`
`35
`
`The present invention pertains to an apparatus and method
`for providing texture by using selected portions of a texture
`MIP-map. The selected portions are referred to herein as a
`clip-map. Texel data relevant to a display image is stored.
`accessed. and updated efficiently in a clip-map in texture
`memory.
`Entire texture MIP-maps are stored onto one or more
`mass storage devices, such as hard disk drives, optical disk
`drives, tape drives, CD drives, etc. According to the present
`invention. however, only a clip-map needs to be loaded into 15
`a more expensive but quicker texture memory (e.g ..
`DRAM). Two dimensional or three dimensional texture data
`can be used. The clip-map is identified and selected from
`within a texture MIP-map based upon the display viewer's
`current eyepoint and field of view. The clip-map is com- 20
`posed of a set of selected tiles. Each tile corresponds to the
`respective portion of a texture level of detail map at or near
`the current field of view being rendered for display.
`Virtually unlimited. large amounts of texture source data
`can be accommodated as texture MIP-maps in cheap, mass
`storage devices while the actual textured image displayed at
`any given time is readily drawn from selected tiles of
`corresponding clip-maps stored in one or more texture
`memories. In one example. the clip-map consists of only 6 30
`million texels out of a total of 1.365 billion texels in a
`complete texture MIP-map-a savings of 1.36 billion texels!
`Where texture information is represented as a 8-bit color
`value, a texture memory savings of 10.9 gigabits (99.6%) is
`obtained.
`According to another feature of the present invention,
`real-time flight over a large texture map is obtained through
`efficient updating of the selected clip-maps. When the eye(cid:173)
`point of a viewer shifts. the edges of appropriate clip-map
`tiles stored in the texture memory are updated along the
`direction of the eyepoint movement. New texel data for each
`clip-map tile is read from the mass storage device and loaded
`into the texture memory to keep the selected clip-map tiles
`in line with the shifting eyepoint and field of view. In one
`particularly efficient embodiment. when the eyepoint moves
`a distance equal to one texel for a particular LOD. one texel
`row of new texture LOD data is added to the respective
`clip-map tile to keep pace with the direction of the eyepoint
`movement. The texel row in the clip-map tile which encom(cid:173)
`passes texel data furthest from the moving eyepoint is
`discarded.
`In a further feature of the present invention. a substitute
`texel value is used when an attempt is made to access a texel
`lying outside of a particular clip-map tile at the most
`appropriate resolution. The substitute texel value is obtained
`from the next coarser resolution clip-map tile which encom(cid:173)
`passes the texel being sought. The substitution texel that is
`chosen is the one closest to the location of the texel being
`accessed. Thus, this approach returns usable texel data from
`a clip-map even when mapping wayward pixels lying out- 60
`side of a particular clip-map tile. Of course, for a given
`screen size, the tile size and tile center position can be
`calculated to guarantee that there would be no wayward
`pixels.
`Finally, in one specific implementation of the present 65
`invention, texture processing is divided between a texture
`generator and a texture memory manager in a computer
`
`4
`graphics raster subsystem. Equal-sized square tiles simplify
`texel addressing. The texture generator includes a LOD
`generation block for generating an LOD value identifying a
`clip-map tile for each pixel quad. A texture memory manager
`5 readily accesses the texel data from the clip-map using tile
`offset and update offset information.
`Further embodiments, features, and advantages of the
`present inventions, as well as the structure and operation of
`the various embodiments of the present invention, are
`10 described in detail below with reference to the accompany(cid:173)
`ing drawings.
`BRIEF DESCRIPTION OF THE FIGURES
`The accompanying drawings. which are incorporated
`herein and form a part of the specification, illustrate the
`present invention and, together with the description, further
`serve to explain the principles of the invention and to enable
`a person skilled in the pertinent art to make and use the
`invention.
`In the drawings:
`FIG. lA shows a conventional multi-resolution MIP-map
`covering four levels of detail.
`FIG. lB shows a conventional example of a polygon
`perspective of a landscape to which texture MIP-mapping
`can be applied.
`FIG. 2 shows a block diagram of an example computer
`graphics system implementing the present invention.
`FIG. 3 shows a side view of a ten-level texture MIP-map
`and the selected tiles that constitute a clip-map according to
`the present invention.
`FIG. 4A shows a side view of the first six levels of a
`clip-map for photographic terrain texture in one example of
`the present invention.
`FIG. 4B shows the progressively larger areas of a terrain
`texture covered by coarser tiles in the present invention.
`FIG. 4C shows three LOD-maps and associated clip-map
`tile areas relative to an observer's field of view.
`FIG. 5 shows the shifting of selected tiles in a clip-map to
`track a change in the viewer eyepoint.
`FIGS. 6A and 6B illustrate an efficient updating of clip-
`40 map tiles according to the present invention to follow
`eyepoint changes.
`FIG. 7 shows obtaining a substitute texel value from the
`next closest clip-map tile having the highest resolution
`according to the present invention.
`FIGS. SA and 8B are flowcharts describing steps for
`obtaining a textured display image using a texture clip-map
`according to the present invention.
`FIGS. 9 to 11 are block diagrams illustrating one example
`of a computer graphics subsystem implementing the present
`invention.
`FIG. 9 shows a raster subsystem including a texture
`processor having a texture generator and a texture memory
`manager according to the present invention.
`FIG. 10 shows a block diagram of the texture generator in
`FIG. 9.
`FIG. 11 shows a block diagram of the texture memory
`manager in FIG. 9.
`The present invention will now be described with refer(cid:173)
`ence to the accompanying drawings. In the drawings, like
`reference numbers indicate identical or functionally similar
`elements. Additionally, the left-most digit(s) of a reference
`number identifies the drawing in which the reference num(cid:173)
`ber first appears.
`
`45
`
`50
`
`55
`
`D~AllEDD~RIPTIONOFT~
`PREFERRED EMBODIMENTS
`I. Overview and Discussion
`II. Terminology
`
`Microsoft Corp. Exhibit 1007
`
`

`
`5.760.783
`
`5
`
`m. Example Environment
`IV. Computer Graphics System
`V. Texture MIP-Mapping
`VL Selecting Portions of a Texture MIP-Map
`Vll. Photographic Terrain Texture
`Vffi. Updating the Clip-Map During Real-Time Operation
`IX. Efficiently Updating the Clip-Map
`X. Substitute Texel Data
`XI. Overall Clip-Map Operation
`Xll. Specific Implementation
`XDI. Square Clip-Map Tiles Example
`XIV. Conclusion
`
`6
`textures drawn from multi-resolution texture MIP-maps.
`Moreover, sophisticated texture motifs covering a large area.
`such as satellite data and aerial photographs. are preferred to
`fully exploit the advantages of the clip-map system and
`5 method described herein. As would be apparent to a person
`skilled in the pertinent art. the present invention applies
`generally to different sizes and types of texture patterns
`limited only by the imagination and resources of the user.
`Although the present invention is described herein with
`10 respect to two-dimensional texture mapping. the present
`invention can be extended to three-dimensional texture
`mapping when the requisite additional software and/or hard(cid:173)
`ware resources are added. See e.g. the commonly-assigned.
`U.S. patent application Ser. No. 08/088.716. now U.S. Pat.
`15 No. 5.490.240 (Attorney Docket No. 15-4-99.00
`(1452.0140000), filed Jul. 9. 1993. entitled "A System and
`Method of Generating Interactive Computer Graphic Images
`Incorporating Three Dimensional Textures." by James L.
`Foran et al. (incorporated herein by reference in its entirety).
`
`I. Overview and Discussion
`The present invention provides an apparatus and method
`for efficiently storing and quickly accessing texel data
`relevant for displaying a textured image. A large amount of
`texture source data is stored as a multi-resolution texture
`MIP-map on one or more mass storage devices. Only a
`relatively small clip-map representing selected portions of 20
`the complete texture MIP-map is loaded into faster. more
`expensive texture memory. These selected texture MIP-map
`portions include tiles which contain those texel values at
`each respective level of detail that are most likely to be
`mapped to pixels being rendered for display.
`When the eyepoint or field of view is changed, the tiles
`stored in the texture memory are updated accordingly. In one
`efficient embodiment for updating the clip-map in real-time,
`new texel data is read from the mass storage device and
`loaded into the fringes of tiles to track shifts in the eyepoint. 30
`To maintain the size of the clip-map, tile texel data corre(cid:173)
`sponding to locations furthest away from a new eyepoint is
`discarded. Anomalous attempts to access a texellying out(cid:173)
`side of a particular clip-map tile are accommodated by
`utilizing a substitute texel value obtained from the next 35
`coarser resolution clip-map tile which encompasses the texel
`being sought.
`
`N. Computer Graphics System
`Referring to FIG. 2, a block diagram of a computer
`graphics display system 200 is shown. System 200 drives a
`graphics subsystem 220 for generating textured display
`25 images according to the present invention. In a preferred
`implementation. the graphics subsystem 220 is utilized as a
`high-encl interactive computer graphics workstation.
`System 200 includes a host processor 202 coupled
`through a data bus 201 to a main memory 204. read only
`memory (ROM) 206. and mass storage device 208. Mass
`storage device 208 is used to store vast amounts of digital
`data relatively cheaply. For example. the mass storage
`device 208 can consist of one or more hard disk drives.
`floppy disk drives. optical disk drives. tape drives. CD ROM
`drives, or any number of other types of storage devices
`having media for storing data digitally.
`Different types of input and/or output (110) devices are
`also coupled to processor 202 for the benefit of an interactive
`user. An

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket