Real-Time Rendering TEXTURING Lecture 02 Marina Gavrilova

Preview:

Citation preview

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?

Recommended