home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #16 / NN_1992_16.iso / spool / comp / sys / sgi / 11264 < prev    next >
Encoding:
Internet Message Format  |  1992-07-23  |  3.6 KB

  1. Path: sparky!uunet!dtix!darwin.sura.net!mips!odin!fido!babar.asd.sgi.com!mtj
  2. From: mtj@babar.asd.sgi.com (Michael Jones)
  3. Newsgroups: comp.sys.sgi
  4. Subject: Re: RealityEngine texturing question
  5. Keywords: texture VGX RealityEngine
  6. Message-ID: <nlnv390@fido.asd.sgi.com>
  7. Date: 23 Jul 92 18:24:05 GMT
  8. References: <1992Jul23.035752.3604@thunder.mcrcim.mcgill.edu>
  9. Sender: news@fido.asd.sgi.com (Usenet News Admin)
  10. Organization: Silicon Graphics, Inc.
  11. Lines: 58
  12.  
  13. In article <1992Jul23.035752.3604@thunder.mcrcim.mcgill.edu>, panisset@thunder.mcrcim.mcgill.edu (Jean-Francois Panisset) writes:
  14.  
  15. |> I saw the glossies for RealityEngine, and I would sure want one... 
  16.  
  17. Me too.
  18.  
  19. |> My question is the following: on VGX/VGXT, the texture coordinates are
  20. |> specified at the vertices of a polygon using the t2?() commands. The
  21. |> intermediate s,t texture coordinates are then computed for the pixels
  22. |> inside the polygon using linear interpolation between the "real" values
  23. |> at the vertices. Since this does not yield the exact texture coordinates
  24. |> (you need to do a per-pixel division to get those), you end up having to
  25. |> subdivide your polygons (the name of the call to do this automatically
  26. |> escapes me at this point), which is not always a satisfying solution.
  27.  
  28. VGX performs linear interpolation of texture coorinates across polygons, 
  29. so the half-way point of a texture will be half-way along an edge in
  30. screen-space, which is incorrect when edges are viewed in perspective.
  31. Polygon subdivision achieves a piece-wise linear approximation, and is
  32. activated via the scrsubdivide() GL entry point.
  33.  
  34. VGXT performs the desired per-pixel perspective correction so that the
  35. half-way point of the texture is half-way along the edge in world-space
  36. rather than screen-space. This is the proper thing to do, and is what
  37. earns it the "T for Texture" suffix in its name. This process is complex
  38. and is why texture has been considered expensive in terms of performance.
  39.  
  40. |> So the question is: does RealityEngine do a per-pixel division to get
  41. |> the exact s,t coordinates, or does it still rely on polygon subdivision
  42. |> to approximate the real answer?
  43.  
  44. RealityEngine continues to support per-pixel perspective correction, and
  45. provides support for three-dimensional textures as well (3 coordinates).
  46. The RealityEngine provides "deluxe" texture support including tri-linear
  47. interpolation, perspective correction, and so on at full rated speed. It
  48. does not approximate the real answer -- it computes the real answer at 80,
  49. 160, or 320 million shaded, textured, anti-aliased pixels per second.
  50.  
  51. |> Also, does it do any form of directional filtering in the mip-map for
  52. |> edge-on polygons, and if not, how does it determine the level of detail
  53. |> from which to fetch the texture pixels: does it select it based on the
  54. |> largest or smallest dimension of the pixel once projected on the polygon?
  55.  
  56. Non isotropic filtering can be achieved at the user level by selecting one
  57. of several MIP-map hierarchies derived from appropriate rectangular source
  58. images. For example, rather than using a 128x128 road texture, one might
  59. select a 64x256 source image that would, when viewed obliquely, produce 
  60. somewhat "square" texel-space footprints -- avoiding "premature blur".
  61.  
  62. When presented with the choice between the largest and smallest dimension,
  63. the resulting choice is between a pixel which is too blurred or one which 
  64. will exhibit point-sampling artifacts. The preferred choice is blurred,
  65. which means that the map of smaller size (== larger filter radius) will 
  66. be used.
  67.  
  68. -- Michael Jones    mtj@sgi.com  415.390.1455  M/S 7U-550
  69.             Silicon Graphics, Advanced Systems Division
  70.             2011 N. Shoreline Blvd., Mtn. View, CA 94039-7311
  71.