1 / 17

CG Final Project

CG Final Project. 600410055 陳易志. GPU Programming. Fractal. Fractal. It has a fine structure at arbitrarily small scales. It is too irregular to be easily described in traditional Euclidean geometric language. It is self-similar. It has a simple and recursive definition. 2 example.

Download Presentation

CG Final Project

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. CG Final Project 600410055 陳易志

  2. GPU Programming Fractal

  3. Fractal • It has a fine structure at arbitrarily small scales. • It is too irregular to be easily described in traditional Euclidean geometric language. • It is self-similar. • It has a simple and recursive definition.

  4. 2 example Mandelbrot set Julia set

  5. Mandelbrot set Definition • wherec is a complex parameter. • Mandelbrot set M,

  6. Iterative algorithm Mandelbrot(x,y){ c = complex(x,y); z0=0; i=0; while(i<n){ zn+1 = zn2 + c; If(| zn+1 |>s)return false; i++;} return true; }

  7. Julia set • Difficult to give a definition. • Similar to mandelbrot set. • An example • quadratic polynomials • , • where c is a complex parameter.

  8. Iterative algorithm julia(x,y,c){ z0 = complex(x,y); while(ture){ zn+1 = zn2 + c; If(| zn+1 | is divergent)return false; i++; } return true; }

  9. problem • High computation • Per pixel • Iterate to n or infinity • Correctness • Can not iterate to infinity. • Do an approximation.

  10. Proposed method • Parallel computing in GPU • Per pixel • GLSL Fragment Processor • assume |z|>float.MAX_VALUE is divergent. • assume s=2.

  11. Result Mandelbrot set • N=400 • S=2

  12. Result (cont.) Julia set • N=200 • S=10^1.5

  13. demo Click image Click image

  14. demo Click image Click image

  15. limitation • Julia set is more difficult. • zn+1 = zn2 + c, grow very fast. • Increase iteration=>float bits is not enough. • single-precision vs. double-precision • 8 vs. 11 bits exponent • GLSL version 400 supports double, • but not all hardware support version 400.

  16. Future • Better graph card supports double. • Numerical algorithm

  17. resources • Julia set • Mandelbrot set • GLSL tutorial • GUIconcept

More Related