Research Article

GPU-Accelerated Rendering of Unbounded Nonlinear Iterated Function System Fixed Points

Table 2

Functions and inverses are discussed in Section 5.2 and used for per-vertex and per-pixel rendering, respectively. The Jacobian determinants are used in Section 6 for attractor density; only the forward direction is shown for the Jacobians. πœƒ stands for a r c t a n ( π‘₯ / 𝑦 ) or a r c t a n ( 𝑠 / 𝑑 ) , the reciprocal of their normal usage for compatibility with Draves’ large existing library of nonlinear fractals.
(a)

FunctionForward 𝑉 ( π‘₯ , 𝑦 ) , with π‘Ÿ = √ π‘₯ 2 + 𝑦 2 Inverse 𝑉 βˆ’ 1 ( 𝑠 , 𝑑 ) , with √ π‘Ÿ = 𝑠 2 + 𝑑 2 Jacobian

1. Sinusoidal ⎑ ⎒ ⎒ ⎣ ⎀ βŽ₯ βŽ₯ ⎦ s i n π‘₯ s i n 𝑦 ⎑ ⎒ ⎒ ⎣ s i n βˆ’ 1 𝑠 s i n βˆ’ 1 𝑑 ⎀ βŽ₯ βŽ₯ ⎦ plus multiples of πœ‹ c o s π‘₯ c o s 𝑦
2. Spherical ⎑ ⎒ ⎒ ⎣ π‘₯ 𝑦 ⎀ βŽ₯ βŽ₯ ⎦ / π‘Ÿ 2 ⎑ ⎒ ⎒ ⎣ 𝑠 𝑑 ⎀ βŽ₯ βŽ₯ ⎦ / π‘Ÿ 2 1 / π‘Ÿ 4
3. Swirl ⎑ ⎒ ⎒ ⎣ π‘₯ s i n π‘Ÿ 2 βˆ’ 𝑦 c o s π‘Ÿ 2 π‘₯ c o s π‘Ÿ 2 + 𝑦 s i n π‘Ÿ 2 ⎀ βŽ₯ βŽ₯ ⎦ ⎑ ⎒ ⎒ ⎣ 𝑠 s i n π‘Ÿ 2 + 𝑑 c o s π‘Ÿ 2 βˆ’ 𝑠 c o s π‘Ÿ 2 + 𝑑 s i n π‘Ÿ 2 ⎀ βŽ₯ βŽ₯ ⎦ 1
4. Horseshoe ⎑ ⎒ ⎒ ⎣ ⎀ βŽ₯ βŽ₯ ⎦ ( π‘₯ βˆ’ 𝑦 ) ( π‘₯ + 𝑦 ) 2 π‘₯ 𝑦 / π‘Ÿ √ 𝑦 = Β± ( π‘Ÿ 2 βˆ’ 𝑠 π‘Ÿ ) / 2 ; π‘₯ = 𝑦 ( 𝑠 + π‘Ÿ ) / 𝑑 2
5. Polar ⎑ ⎒ ⎒ ⎣ ⎀ βŽ₯ βŽ₯ ⎦ πœƒ / πœ‹ π‘Ÿ βˆ’ 1 ⎑ ⎒ ⎒ ⎣ ⎀ βŽ₯ βŽ₯ ⎦ ( 𝑑 + 1 ) s i n ( πœ‹ 𝑠 ) c o s ( πœ‹ 𝑠 ) 1 / ( πœ‹ π‘Ÿ )
7. Heart π‘Ÿ ⎑ ⎒ ⎒ ⎣ ⎀ βŽ₯ βŽ₯ ⎦ s i n ( πœƒ π‘Ÿ ) βˆ’ c o s ( πœƒ π‘Ÿ ) π‘Ÿ ⎑ ⎒ ⎒ ⎣ ⎀ βŽ₯ βŽ₯ ⎦ s i n ( ( a t a n 2 ( 𝑠 , βˆ’ 𝑑 ) + 2 πœ‹ π‘˜ ) / π‘Ÿ ) c o s ( ( a t a n 2 ( 𝑠 , βˆ’ 𝑑 ) + 2 πœ‹ π‘˜ ) / π‘Ÿ ) π‘Ÿ
8. Disc ⎑ ⎒ ⎒ ⎣ ⎀ βŽ₯ βŽ₯ ⎦ πœƒ / πœ‹ s i n πœ‹ π‘Ÿ c o s πœ‹ π‘Ÿ ⎑ ⎒ ⎒ ⎣ ⎀ βŽ₯ βŽ₯ ⎦ ( a t a n 2 ( 𝑠 , 𝑑 ) / πœ‹ + 2 π‘˜ ) s i n πœ‹ π‘Ÿ c o s πœ‹ π‘Ÿ πœƒ / ( πœ‹ π‘Ÿ )
10. Hyperbolic ⎑ ⎒ ⎒ ⎣ ⎀ βŽ₯ βŽ₯ ⎦ = ⎑ ⎒ ⎒ ⎣ ( s i n πœƒ ) / π‘Ÿ π‘Ÿ c o s πœƒ π‘₯ / π‘Ÿ 2 𝑦 ⎀ βŽ₯ βŽ₯ ⎦ ⎑ ⎒ ⎒ ⎣ √ ( 1 Β± 1 βˆ’ 4 𝑠 2 𝑑 2 𝑑 ⎀ βŽ₯ βŽ₯ ⎦ ) / 2 𝑠 c o s ( 2 πœƒ ) / π‘Ÿ 2
13. Julia Β± √ π‘Ÿ ⎑ ⎒ ⎒ ⎣ ⎀ βŽ₯ βŽ₯ ⎦ c o s ( πœƒ / 2 ) s i n ( πœƒ / 2 ) ⎑ ⎒ ⎒ ⎣ √ = Β± √ ( π‘Ÿ + 𝑦 ) / 2 π‘₯ / | π‘₯ | ⎀ βŽ₯ βŽ₯ ⎦ ( π‘Ÿ βˆ’ 𝑦 ) / 2 π‘Ÿ 2 ⎑ ⎒ ⎒ ⎣ ⎀ βŽ₯ βŽ₯ ⎦ s i n ( 2 πœƒ ) c o s ( 2 πœƒ ) = ⎑ ⎒ ⎒ ⎣ ⎀ βŽ₯ βŽ₯ ⎦ 2 𝑠 𝑑 ( 𝑠 βˆ’ 𝑑 ) ( 𝑠 + 𝑑 ) 1 / ( 4 π‘Ÿ )
14. Bent ⎧ βŽͺ βŽͺ βŽͺ ⎨ βŽͺ βŽͺ βŽͺ ⎩ [ π‘₯ 𝑦 ] 𝑇 𝑖 𝑓 π‘₯ β‰₯ 0 , 𝑦 β‰₯ 0 [ 2 π‘₯ 𝑦 ] 𝑇 𝑖 𝑓 π‘₯ < 0 , 𝑦 β‰₯ 0 [ π‘₯ 𝑦 / 2 ] 𝑇 𝑖 𝑓 π‘₯ β‰₯ 0 , 𝑦 < 0 [ 2 π‘₯ 𝑦 / 2 ] 𝑇 𝑖 𝑓 π‘₯ < 0 , 𝑦 < 0 ⎧ βŽͺ βŽͺ βŽͺ ⎨ βŽͺ βŽͺ βŽͺ ⎩ [ 𝑠 𝑑 ] 𝑇 𝑖 𝑓 𝑠 β‰₯ 0 , 𝑑 β‰₯ 0 [ 𝑠 / 2 𝑑 ] 𝑇 𝑖 𝑓 𝑠 < 0 , 𝑑 β‰₯ 0 [ 𝑠 2 𝑑 ] 𝑇 𝑖 𝑓 𝑠 β‰₯ 0 , 𝑑 < 0 [ 𝑠 / 2 2 𝑑 ] 𝑇 𝑖 𝑓 𝑠 < 0 , 𝑑 < 0 ⎧ βŽͺ βŽͺ βŽͺ ⎨ βŽͺ βŽͺ βŽͺ ⎩ 1 2 1 1 / 2
16. Fisheye ⎑ ⎒ ⎒ ⎣ 𝑦 π‘₯ ⎀ βŽ₯ βŽ₯ ⎦ 2 / ( π‘Ÿ + 1 ) ⎑ ⎒ ⎒ ⎣ 𝑑 𝑠 ⎀ βŽ₯ βŽ₯ ⎦ 1 / ( 2 βˆ’ π‘Ÿ ) 4 / ( 1 + π‘Ÿ ) 3
18. Exponential 𝑒 π‘₯ βˆ’ 1 ⎑ ⎒ ⎒ ⎣ ⎀ βŽ₯ βŽ₯ ⎦ c o s πœ‹ 𝑦 s i n πœ‹ 𝑦 ⎑ ⎒ ⎒ ⎣ ⎀ βŽ₯ βŽ₯ ⎦ l o g ( π‘Ÿ ) + 1 . 0 a t a n 2 ( 𝑑 , 𝑠 ) / πœ‹ πœ‹ 𝑒 2 π‘₯ βˆ’ 2
19. Power π‘Ÿ π‘₯ / π‘Ÿ βˆ’ 1 ⎑ ⎒ ⎒ ⎣ 𝑦 π‘₯ ⎀ βŽ₯ βŽ₯ ⎦ π‘Ÿ π‘Ÿ / 𝑠 βˆ’ 1 ⎑ ⎒ ⎒ ⎣ 𝑠 𝑑 ⎀ βŽ₯ βŽ₯ ⎦ π‘Ÿ 2 π‘₯ / π‘Ÿ βˆ’ 2 π‘₯ / π‘Ÿ

(b)

FunctionForward 𝑉 ( π‘₯ , 𝑦 ) InverseJacobian determinant

6.  Handkerchief π‘Ÿ ⎑ ⎒ ⎒ ⎣ ⎀ βŽ₯ βŽ₯ ⎦ s i n ( πœƒ + π‘Ÿ ) c o s ( πœƒ βˆ’ π‘Ÿ ) Nonelementary c o s 2 π‘Ÿ + ( 2 π‘₯ 𝑦 / π‘Ÿ ) βˆ’ π‘Ÿ s i n 2 π‘Ÿ
9. Spiral ⎑ ⎒ ⎒ ⎣ ⎀ βŽ₯ βŽ₯ ⎦ c o s πœƒ + s i n π‘Ÿ c o s πœƒ βˆ’ s i n π‘Ÿ / π‘Ÿ Nonelementary ( 1 βˆ’ π‘Ÿ c o s ( π‘Ÿ βˆ’ πœƒ ) + s i n ( π‘Ÿ βˆ’ πœƒ ) ) / π‘Ÿ 2
11. Diamond ⎑ ⎒ ⎒ ⎣ ⎀ βŽ₯ βŽ₯ ⎦ s i n πœƒ c o s π‘Ÿ c o s πœƒ s i n π‘Ÿ 32 root families ( c o s ( 2 π‘Ÿ ) + 2 𝑦 2 / π‘Ÿ 2 βˆ’ 1 ) / 2 π‘Ÿ
12. Ex π‘Ÿ ⎑ ⎒ ⎒ ⎣ s i n 3 ( πœƒ + π‘Ÿ ) + c o s 3 ( πœƒ βˆ’ π‘Ÿ ) 3 s i n 3 ( πœƒ + π‘Ÿ ) βˆ’ c o s 3 ( πœƒ βˆ’ π‘Ÿ ) 3 ⎀ βŽ₯ βŽ₯ ⎦ Nonelementary ( 6 π‘₯ 𝑦 + π‘Ÿ c o s 2 π‘Ÿ βˆ’ 3 π‘Ÿ 2 s i n 2 π‘Ÿ ) βˆ— ( βˆ’ 3 / ( 2 π‘Ÿ ) ) βˆ— ( s i n 2 π‘Ÿ + π‘₯ 𝑦 / π‘Ÿ 2 ) 2
15. Waves ⎑ ⎒ ⎒ ⎣ π‘₯ + π‘Ž 1 s i n ( π‘Ž 2 𝑦 ) 𝑦 + π‘Ž 3 s i n ( π‘Ž 4 ⎀ βŽ₯ βŽ₯ ⎦ π‘₯ ) Nonelementary 1 βˆ’ π‘Ž 1 π‘Ž 2 π‘Ž 3 π‘Ž 4 c o s ( π‘Ž 4 π‘₯ ) c o s ( π‘Ž 2 𝑦 )
17. Popcorn ⎑ ⎒ ⎒ ⎣ π‘₯ + π‘Ž 1 s i n ( t a n 3 𝑦 ) 𝑦 + π‘Ž 2 ⎀ βŽ₯ βŽ₯ ⎦ s i n ( t a n 3 π‘₯ ) Nonelementary 1 βˆ’ 9 π‘Ž 1 π‘Ž 2 c o s ( t a n 3 π‘₯ ) c o s ( t a n 3 𝑦 ) + s e c 2 ( 3 π‘₯ ) s e c 2 ( 3 𝑦 )
20. Cosine ⎑ ⎒ ⎒ ⎣ ⎀ βŽ₯ βŽ₯ ⎦ c o s ( πœ‹ π‘₯ ) c o s h 𝑦 βˆ’ s i n ( πœ‹ π‘₯ ) s i n h ( 𝑦 ) 16 root families πœ‹ / 2 ( βˆ’ c o s 2 πœ‹ π‘₯ + c o s h 2 𝑦 )