real-time rendering texturing lecture 02 marina gavrilova
TRANSCRIPT
Real-Time Rendering
TEXTURING
Lecture 02Marina Gavrilova
Brief Outline Basic Concept Texture Wrapping Magnification filter Minification filter Multi-Texturing Dynamic Texture Texture mapping methods
Concept of Texture Texture: Variation of surface
diffusion, color, glossiness and other reflective photometry
The heart of today’s computer graphics
Texture Pixel = Texel Polygon is filled using texel values. Texture coordinate associates a
screen pixel with a texel
Texturing a surface
Texture mapping
Texture mapping in computer games
Environment mapping
Alpha mapping
Bump mapping
Color texture
Multi-texturing
Basic Texturing concept Modify the value used in the
lighting equation Basic Texture = per pixel object
color Steps:
Assign UV texture coordinates to vertices of a polygon (i.e. triangle)
Interpolate texture UV coordinate for each fill pixel during rasterization of the triangle
Lookup texel value from texture using UV coord.
Use texel value in lighting equation
Texture Method
Texture pipeline used in rendering platforms to use hardware accelerations
U,V[0,1] scaled texel coordinate
Texture resolution is a power of 2 (i.e. 256 x 256 texels)
Texture Pipeline Compute object space location Use projector function to find (u,v) Use corresponding functions to find texel Apply value transform function Modify illumination equation value
Texture Rendering
Texture modes When UV value goes beyond the range
[0,1] i.e. uv= (-1,-1) (2,2) (see below) Allow simple and small textures to render
large complex objects
Tile Mirror Clamp Border
Three dimensional texture coordinate (u,v,w) 2D texture wrapping can
be difficult for complex object
3D texture mapping use (u,v,w) coordinate for texture address
Result is uniform texture distribution on a surface
Texture magnification When 1 texel = n
pixels (n>1)
Visual Pixelation effect prominent
Solution: apply magnification filter
No Filter
Bilinear
Bilinear No Filter
Bilinear Filtering Four pixel linear
Interpolation (2x2)
Fast but low quality
Bicubic Not yet used in realtime
graphics Up to 4x4 pixel interpolation Good quality Slow
Minification filter When n texel = 1 pixel Aliasing distortion is present Annoying artifact during
animation Solution: MIP mapping, min-filters
Min filters Nearest
MIP
Summed area
MIP Mapping (Base Concept) Have multiple copy of a texture with reduced resolution
(factor of 2) I.e. (256x256), (128,128), (64,64),…(1,1) Determine LOD from neighboring pixel UV difference
(spacing)
Anisotropic Filtering
Trilinear MIP-MAPPING Anisotropic Filtering
Texture caching and compression Complex scene require large amount of texture Texture Memory is limited Texture management: Load only smaller LODs
for distant objects Use Clip-maps: load a small segment of high
LOD texture S3TC (6:1) compression DirectX standard
Use two colors for a 4 color ramp Represent 16 pixels using 4 colors 2 bit per pixel, 16 bit per color Average 4 bit per
pixel
Multi-pass rendering
Rendering the same geometry several times
Integrate different photometric components
I.e. Quake III has 10 rendering passes
Multi-texturing Combine two or
more textures
Could be performed in one rendering pass
Pixel value is computed using values from different texture stages
Multi-texture & Pixel-shader
Texture Effects
Variety of realistic 3D effects can be created by
manipulating textures of a 3D geometry
Texture Animation Dynamic
animated texture
Store combined static frames as 1 image
Use different UVs to animate frames
Frame 5
UV=(0.25,0.25)
UV=(0.5,0.5)
Transparency Alpha mapping
+ =
Billboarding Create complex objects using
texture and simple geometry
Used extensively in particle rendering systems
Use faceted quads normal of the quad equals camera direction
Used frequently in games
High performance
Multi Textured Gloss Mapping
Reflection/Environment mapping
Blinn & Newells method:
Other environment mapping
Cube Mapping
Bump Mapping
Per-pixel normal Use cubemaps for
normal
Bump mapping
Use cubemap and multi-texture pass
Or use High level shading Language (HLSL) in nvidia
Other texture teqniques Detail Textures (i.e. flight simulator) Procedural Texture Anti-aliasing Motion blur Realistic shading Volumetric Texture Image processing using texture passes Exposure control (Dynamic Range)
End of Lecture 02
Questions?