1 / 22

What We’ll Be Covering Today:

What We’ll Be Covering Today:. Modified Butterfly Subdivision Texturing and Antialiasing Global Illumination via Radiosity. Modified Butterfly Subdivision. Based on Dyn/Levin/Gregory Butterfly Subdivision Adds rules for non-regular vertices Standard Butterfly is not C 1 at k=3 or k>7.

Download Presentation

What We’ll Be Covering Today:

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. What We’ll Be Covering Today: • Modified Butterfly Subdivision • Texturing and Antialiasing • Global Illumination via Radiosity

  2. Modified Butterfly Subdivision • Based on Dyn/Levin/Gregory Butterfly Subdivision • Adds rules for non-regular vertices • Standard Butterfly is not C1 at k=3 or k>7

  3. Mesh Data Structure • List of vertices • Each vertex has a set edges (vertices it is connected to) • sorted in order around vertex • Not guaranteed CCW (normal problems)

  4. Vertex Normals • Formulas from SIG2000 course notes • Problems with boundary edge rules • Possibly due to bad vertex orientation

  5. Starfish-like Thing

  6. Frog-ish Head

  7. Anti-Aliasing • Standard OpenGL Accumulation Buffer techniques • Helpful Tip: Don’t save your antialiasing example pictures as JPEG’s

  8. Texture Mapping • Calculate vertex texture coordinates using spherical projection • Issues to Deal with: • Texture coordinate problems • Polar Distortion

  9. Wrapped Texture Coordinates • Vertices can only have one texture coordinate • Some need two • Two Solutions: • Duplicate vertices (bad, fast) • Detect & Fix at render time (good, slow)

  10. At-Pole Texture Coordinates • Singularity at poles • entire line of texture on one point • OpenGL cannot handle this gracefully • Again, can be detected and corrected at render-time

  11. Polar Distortion Problem • Texture mapped like lines of lattitude / longitude • Lines get closer at poles • Distort texture to counter this effect • WARNING: distorted texture will not tile!

  12. Polar Distortion Solution

  13. Son Of Frog-ish Head

  14. Radiosity • Progressive Refinement (Shooting) • My machine only has 256 MB of RAM • Large Scenes == Thrashing • Throw away form factors after each ‘shot’ • Use hemicube to calculate form factors • Projecting faces – easy way and hard way

  15. Form Factors the Hard Way • Clip and project each poly onto faces of hemicube (geometrically) • Find pixels that intersect projected poly A HUGE WASTE OF PROGRAMMING EFFORT(and it’s really slow, too)

  16. Form Factors the Easy Way • Use OpenGL’s Z-buffer • Encode each face with a color • Graphics Hardware speeds this up • Can be less accurate than geometric method • Standard Z-Buffer accuracy problem

  17. Other Implementation Issues • Use double precision! • Dealing with summation of lots of tiny values • Single precision ‘loses light’ • Particularly for Fq’s in HemiCube • OpenGL and multi-threading do not really mix together so nicely…

  18. Progressive Refinement

  19. Low Hemicube Resolution

  20. Radiosity On Butterfly Surfaces

More Related