Advertisement
Guest User

Untitled

a guest
Feb 23rd, 2017
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.23 KB | None | 0 0
  1. #version 130
  2.  
  3. in vec3 vs_out_col;
  4. in vec3 vs_out_pos;
  5. out vec4 fs_out_col;
  6.  
  7. vec2 cplx_mul(vec2 a, vec2 b)
  8. {
  9. return vec2(a.x*b.x - a.y*b.y, a.y*b.x + a.x*b.y);
  10. }
  11.  
  12. vec2 cplx_div(vec2 a, vec2 b)
  13. {
  14. float c_sq = b.x*b.x;
  15. float d_sq = b.y*b.y;
  16.  
  17. return vec2((a.x*b.x + a.y*b.y) / (c_sq + d_sq),(a.y*b.x - a.x*b.y) / (c_sq + d_sq));
  18. }
  19.  
  20.  
  21. vec2 f(vec2 a)
  22. {
  23. vec2 sq = vec2(a.x*a.x - a.y*a.y, a.y*a.x + a.x*a.y);
  24. vec2 cub = vec2(a.x*sq.x - a.y*sq.y, a.y*sq.x + a.x*sq.y);
  25. return cub + sq;
  26. }
  27. vec2 df(vec2 a)
  28. {
  29. vec2 sq = vec2(a.x*a.x - a.y*a.y, a.y*a.x + a.x*a.y);
  30. return 3*sq + a;
  31. }
  32.  
  33. void main()
  34. {
  35. float x = vs_out_pos.x;
  36. float y = vs_out_pos.y;
  37.  
  38. vec2 z0 = vs_out_pos.xy;
  39. vec2 z = z0;
  40.  
  41. for (int i = 0; i < 30; ++i)
  42. z = z - cplx_div(f(z),df(z));
  43.  
  44. if ( length(z) <= 3 )
  45. fs_out_col = vec4(vs_out_col, 1);
  46. else
  47. discard;
  48. }
  49.  
  50. // 1. feladat: rajzoljuk ki fehérrel a téglalapot!
  51.  
  52. // 2. feladat: uniform változók - az alkalmazás állítsa be, hogy milyen színnel töltsünk ki!
  53.  
  54. // 3. feladat: rajzoljuk ki az origó középpontú, 1 sugarú kört! Mit kell tenni, ha nem a
  55. // körlapot, hanem csak a körvonalat akarjuk? Eml.: discard eldobja a fragmentet
  56.  
  57. // 4. feladat: komplex számok....
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement