Exploring Texture Filtering & Environment Maps: MipMaps, Anisotropic Filtering & Billboard, Assignments of Computer Science

This document delves into the concepts of texture filtering, specifically focusing on mipmaps, anisotropic filtering, and billboards. Topics include pyramid textures, linear vs. Nearest filtering, trilinear filtering, anisotropic filtering, environment maps, spherical environment maps, parabolic environment maps, cube environment maps, and billboards. The document also covers the works of gene miller, gerri's game, and paul debevec, as well as techniques like lightmaps and opengl lighting.

Typology: Assignments

Pre 2010

Uploaded on 08/30/2009

koofers-user-s3h
koofers-user-s3h 🇺🇸

10 documents

1 / 9

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
1
Texture Filtering
MipMaps
“Optimal” case
Minification Magnification
Pixel Footprint
pf3
pf4
pf5
pf8
pf9

Partial preview of the text

Download Exploring Texture Filtering & Environment Maps: MipMaps, Anisotropic Filtering & Billboard and more Assignments Computer Science in PDF only on Docsity!

Texture Filtering

MipMaps

“Optimal” case

Minification Magnification

Pixel Footprint

Pyramid Textures (Mipmapping)

Linear vs. Nearest

Trilinear Anisotropic

Gene Miller In practice

• Shiny spheres

Gene Miller

• Interface

(L. Williams 1985)

• Terminator 2 (1991)

Gerri’s Game Story of Reflection Mapping

Spherical Environment Maps

• Pros:

– Single texture (no “if’s”)

– Triangles don’t span texture boundaries

  • Per-vertex computation!

• Cons:

– Bad sampling

– Only works for single

viewpoint / view direction

Parabolic Environment Maps

Parabolic Environment Maps Nayar ‘

Cube Environment Maps

• Per-fragment

• Suported in HW

• No warp

(perspective maps)

Nvidia Cube Mapping

Billboards

up = arbitrary axis look = camera_pos - point_pos; right = up x look; look = right x up;

Billboards Hack

• Trees don’t face camera

Billboards Hack

• Trees don’t face

camera

• Use the Modelview

• Set rotation to identity

Billboards Hack 2

• Trees don’t face

camera

• Use the Modelview

• Make billboard

cylindrical

• Set part of rotation to

identity

Billboards Hack 3

  • Modify the verticies of the

Billboard quad

  • Reverses the orientations

in the Modelview Maxtrix

  • Draw quad using right/up

offsets

+ only get modelview once

  • Must xform all verticies

right (^) up

Billboards Correct

• Trees face camera

Billboards Correct

• Trees face camera

• Need

  • Object in world coords
  • Target position in world coords

• Assume

Right = [1,0,0]

Up = [0,1,0]

LookAt = [0,0,1]

Billboards Correct

Billboards Correct

objToCamProj is the projection to the XZ plane (y=0)

**1. Normalize objToCamProj

  1. aux=LookAt dot objToCamProj
  2. Up’= lookAt X objToCamProj
  3. glRotate(acos(aux), Up’[0], Up’[1], Up’[2]**

Billboards Correct

objToCamProj is the projection to the XZ plane (y=0)

**1. Normalize objToCamProj

  1. aux=LookAt dot objToCamProj
  2. Up’= lookAt X objToCamProj
  3. glRotate(acos(aux), Up’[0], Up’[1], Up’[2]**

Billboards Correct

objToCamProj is the projection to the XZ plane (y=0)

**1. Normalize objToCamProj

  1. aux=LookAt dot objToCamProj
  2. Up’= lookAt X objToCamProj
  3. glRotate(acos(aux), Up’[0], Up’[1], Up’[2]**

Tilt towards Camera

**1. Aux’= objToCamProj dot objToCam

  1. glRotate(acos(aux’), right[0], right[1],** right[2])

Billboards Correct

Object Position

objPosWC = camPos + (M1-1) * V