Real-Time Rendering TEXTURING Lecture 02 Marina Gavrilova.

Presentation on theme: "Real-Time Rendering TEXTURING Lecture 02 Marina Gavrilova."— Presentation transcript:

Real-Time Rendering TEXTURING Lecture 02 Marina 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 TileMirrorClampBorder

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 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-MAPPINGAnisotropic 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

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?