Shadertoy 'Creation' λΆμ
19 Dec 2018 β’ 0 CommentsβCreation by Silexarsβ by Danguafer
Β
λμ
μ€λμ Shadertoy μ μΈκΈ° μμ΄λ μ€ νλμΈ βCreationβ μ λΆμν΄λ³΄λ €κ³ ν©λλ€. μ£Όμμ λΉΌλ©΄ μ΄ 19νμ 짧μ μ½λμ΄μ§λ§ μμ μ΄λ―Έμ§μμ λ³΄μ€ μ μλ―μ΄ λ¨μνλ€λ λλμ λ³λ‘ λ€μ§ μμ΅λλ€.
Shadertoy λΆ μμ΄λ λΆμμμ μλμΉ μκ² λ§€μ° κΈ΄ κΈμ μΌκΈ° λλ¬Έμ μ΄λ²μλ μ¬μ΄κ°λ μλ―Έμμ μ‘°κΈ μ§§μ μ½λλ₯Ό 골λμ΅λλ€. νμ§λ§ μ΄λ² μ½λλ λ§€μ° μΈκΈ°μλ μ½λλ‘, Shadertoy μμ μ‘°νμλ 13λ§ν(μ 체 4μ), βlikeβ λ₯Ό λ°μ μκ° 410ν(μ 체 15μ)λ λ©λλ€. μ΄λ κ² μ λͺ ν μ½λλ₯Ό λΆμνλ €λ κΈ΄μ₯λ μ’ λ©λλ€. κΌΌκΌΌνκ² ν μ€ ν μ€ λΆμν΄λ³΄λλ‘ νκ² μ΅λλ€.
Β
κΈ°λ³Έ μ½λλ€
βCreationβ μ 체 μ½λ
4, 5 νμ define λΆλΆμ
λλ€. Shadertoy μμλ \(\pi, \sqrt{2}\) κ°μ μμ£Ό μ°μ΄λ λ³μλ₯Ό μ μ₯νκΈ° μν΄μλ μ°μ΄μ§λ§ μ΄λ κ² μ½λλ₯Ό μΆμ½νκ±°λ λ λμκ°μ Code golf λ₯Ό νκΈ° μν΄μλ μ°μ
λλ€. Code golf λ κ°μ μΌμ κ°μ₯ 짧μ κΈΈμ΄μ μ½λλ‘ μννκΈ° μν΄ μ½λλ₯Ό μμΆνλ κ²½μμ μΈ κ²μμ
λλ€. λ€λ§ μ΄λ° μ½λμ μμΆμ΄ λ무 μ¬νλ©΄ μ½λλ₯Ό κ±°μ λͺ» μμλ³Ό μ λκ° λ μλ μμ΅λλ€. μ¬κΈ°μλ μμ μ½λλ₯Ό μμ±ν λ ν μ μλ μ½λλ κ°κΈμ μ½λλ₯Ό νμ΄μ μ¬μ©νλλ‘ νκ² μ΅λλ€. μΌλ¨ t
λ time
μΌλ‘, r
μ resolution
μΌλ‘ μ°κ² μ΅λλ€.
9νμμ z=t
λ₯Ό λ£κ³ μμ΅λλ€. μ°λ¦¬λ t
λμ time
μ μ°λ©΄ λκ² μ΅λλ€.
10νμμλ for loop λ₯Ό i=0,1,2
μμ λλ¦¬κ³ μμ΅λλ€. Shadertoy μμ μ¬μ©νλ GLSL μ Fragment shader μμλ λ€λ₯Έ λ§μ νλ‘κ·Έλλ° μΈμ΄λ€μ²λΌ for loop κ° κ°λ₯ν©λλ€. μ λ μ²μμ for loop κ° λλ κ±Έ λ³΄κ³ λλμ΅λλ€. ν½μ
λ¨μμ΄κ³ λ³λ ¬ μ²λ¦¬λλ μμ΄λλΌμ μ΄μ©μ§ for loop λ μλ κ² κ°μκΈ° λλ¬Έμ
λλ€.
for loop μ κ³μ° κ²°κ³Όλ 18νμμ λ§λ¬΄λ¦¬λκ³ , c
λ°°μ΄μ 0, 1, 2 λ²μ§Έ μ리μ κ°κ° κ°μ λ£μ΄μ€λλ€. 20νμ μ΄μ§ 보면 μ€μ λ‘ μ»¬λ¬κ°μ λ°ννλ fragColor
μμ vec4(c/l, t)
κ°μ μ¬μ©ν©λλ€. μ΄κ²μ vec4(c[0]/l, c[1]/l, c[2]/l, t)
μ κ°μ΅λλ€. for loop λ₯Ό 3ν λλ¦° μ΄μ κ° RGB μ»¬λ¬ κ°μ λ°λ‘ κ³μ°νκΈ° μν΄μμλ€λ κ²μ μ μ μμ΅λλ€.
11-14 νμμλ μ§κΈκΉμ§ λ§μ΄ λ΄€λ boilerplate code λ₯Ό λ€λ£¨κ³ μμ΅λλ€. λ€λ§ uv
μ p
λ₯Ό λμμ μ μνκ³ μκ³ , for loop μμμ μλ‘κ² μ μνκ³ μλ€λ μ μ μ£Όλͺ©ν΄μ£ΌμκΈ° λ°λλλ€. μμμ μ΄ν΄λ³Έ κ²μ²λΌ for loop λ RGB μ±λμ λ°λ‘ κ³μ°νκ³ μκ³ uv
, p
μ’νλ λ
립μ μΌλ‘ κ³μ°νκ² λ©λλ€.
15νμ time
μ for loop λ₯Ό λ λλ§λ€ .07
μ λν΄μ£Όκ³ μμ΅λλ€. R μ±λμ .07
, G μ±λμ .14
, B μ±λμ .21
μ΄ λν΄μ§κ² λ©λλ€. ν리μ¦μ ν΅κ³Όν λ μμ΄ μ°λλλ μ€νμ ν΄λ³Έ μ μ΄ μμΌμ κ°μ? μ΄κ²μ μμμ°¨ ν¨κ³Ό(Chromatic aberration)λΌλ κ²μΌλ‘, 15νμ μ½λλ μ΄λ₯Ό κ°λ¨ν λ²μ μΌλ‘ μ¬ννλ κ²μ
λλ€. βCreationβ μ μ μ§ μ΄λ―Έμ§λ₯Ό 보면 R, G, B κ° μμμ°¨ ν¨κ³Όμ²λΌ μ΄μ§ μ°¨μ΄λκ² λ°°μ΄λλ κ²μ νμΈν μ μμ΅λλ€.
16νμ length(p)
λ p
벑ν°μ κΈΈμ΄λ₯Ό κ³μ°ν©λλ€. distance
λ‘λ length
λ₯Ό κ³μ°ν μ μμ΅λλ€. diatance
λ λ μ μ¬μ΄μ 거리λ₯Ό κ³μ°νκ³ , 거리λ 곧 κΈΈμ΄μ΄κΈ° λλ¬Έμ length(p1 - p2) == distance(p1, p2)
κ° λ©λλ€. μ¬κΈ°μ λμ¨ length(p)
λ length(p - 0) == distance(p, 0)
κ³Ό κ°λ€κ³ μκ°ν μ μμ΅λλ€. μ¦ μμ κ³Ό p μ¬μ΄μ 거리, λλ μμ μ μ€μ¬μΌλ‘ νλ νλ¦Ών μμ μμμ΄λΌκ³ λ§ν μ μμ΅λλ€.
κ·ΈλΌ μ§κΈκΉμ§ μ΄ν΄λ³Έ μ½λλ€ μ€ νμν κ²λ§ λ¬Άμ΄μ κ·Έλ €λ³΄κ² μ΅λλ€.
μμͺ½μ κ²μμμ΄κ³ λ°κΉ₯μͺ½μΌλ‘ κ°μλ‘ λ°μμ§λ μμ΄ μκ²Όμ΅λλ€. μ΄ μμ step μ΄λ floor λ₯Ό μ¬μ©ν΄μ λ¨κ³λ₯Ό λνλ΄λλ‘ ννν μλ μμ΅λλ€. βCreationβ μ ν΅μ¬ μ½λλ μ΄ μμ λ³νμμΌμ μλ¦λ€μ΄ ν¨ν΄μ λ§λλλ€. κ·Έ λ°©λ²μ μ§κΈ λ°λ‘ μμλ³΄κ² μ΅λλ€.
Β
17ν
17νκ³Ό 18νμ΄ μ΄ μ½λμ ν΅μ¬μ λλ€. μ΄ μ½λμ μ리λ₯Ό μμλ΄λ €λ©΄ μ΄ λ νμ ꡬμ±μμλ₯Ό μ΄λ¦¬μ 리 λ°κΏλ³΄λ€λ³΄λ©΄ λΉλ°μ΄ ν릴 κ²μ λλ€. μλλ©΄ μ»€νΌ ν μκ³Ό ν¨κ» μ²μ²ν μ΄ λΈλ‘κ·Έ ν¬μ€νΈλ₯Ό μ½μ΄λ³΄λ λ°©λ²λ μκ² μ΅λλ€.
uv+=p/l*(sin(z)+1.)*abs(sin(l*9.-z*2.));
λ¨Όμ 17νλΆν° μμλ³΄κ² μ΅λλ€. λ¨Όμ λμ λλ κ²μ μκ»΄λλ uv
λ₯Ό λλμ΄ μ¬μ©νλ κ²μ
λλ€. uv
λ 12νμμ p
μ κ°μ 볡μ¬νκ³ κ·Έ λ€μλ p
λ§ κ³μ°νλ€κ°, λλμ΄ uv
λ₯Ό μ¬μ©ν©λλ€. uv
λ 0.0~1.0
μ¬μ΄μ κ°μ κ°μ§κ³ μμ΅λλ€.
μ¬κΈ°μ p/l
, sin(z)+1.
, abs(sin(l*9.-z*2.))
λ₯Ό μλ‘ κ³±ν΄μ λν΄μ€λλ€. 볡μ‘ν΄ λ³΄μ΄μ§λ§ νλμ© μ΄ν΄λ³΄κ² μ΅λλ€.
첫λ²μ§Έ νλΆν° μ΄ν΄λ³΄λ©΄ p/l
μ
λλ€. p λ -0.5~0.5
μ¬μ΄μ κ°μΌλ‘, κ°μ΄λ°κ° (0,0)
μΌλ‘ κ°μ₯ μμ xy
κ°μ κ°μ§λλ€. μ΄κ²μ l
λ‘ λλ μ€λλ€. l
μ μμμ λ΄€λ κ°μ΄λ°κ° κ²μμμΈ μμ
λλ€. κ²λ€λ κ²μ κ°μ΄ μλ€λ λ»μ
λλ€. λ°λΌμ μ΄ μμ λΆλͺ¨κ° κ°μ₯ μκΈ° λλ¬Έμ κ°μ΄λ°κ° κ°μ₯ ν° κ°μ κ°μ§ κ²μ΄λΌκ³ μΆμΈ‘ν μ μμ΅λλ€.
κ·ΈλΌ νλ² κ·Έλ €λ³΄κ² μ΅λλ€.
12νμμλ p/l
μ κ²°κ³Όλ₯Ό μΌλ¨ κ·Έλ €μ€λλ€. p
κ° vec2
μ΄κΈ° λλ¬Έμ μ΅μ’
컬λ¬μ λ€μ΄κ°λ 4κ°μ λ²‘ν° μ€ R, G μ±λμ μ°¨μ§νκ³ μμ΅λλ€. μμΈ‘λλ‘ κ°μ΄λ°μμ κ°μ₯ ν° κ°μ 보μ¬μ£Όκ³ μκΈ° λλ¬Έμ μμμ΄ μ μΌ λλ ·ν©λλ€.
κ·Έλ°λ° μμ μ μ€μ¬μΌλ‘ x+ λ°©ν₯κ³Ό y+ λ°©ν₯μ μμμ λ§€μ° λλ ·ν΄μ κ±°μ 1μ κ°κΉμ΄ κ°μ΄ λμ€λ κ² κ°μ΅λλ€. μ΄λ₯Ό νμΈνκΈ° μν΄ 13νμ μ£Όμμ ν΄μ ν΄λ³΄λ©΄, μ€μ λ‘ p/l
μ x
λ \(x \ge 0.0\) μ΄κ³ \(y \simeq 0.0\) μΈ κ΅¬κ°μμ 1.0
μ κ°κΉμ΄ ν° κ°μ κ°μ΅λλ€. μ λ μ²μμλ μ΄ λΆλΆμ΄ μ μ΄ν΄κ° μλμ΅λλ€λ§, μ¬μ€ l=length(p)
μ΄κΈ° λλ¬Έμ l
μ p.y=0
μΌ λ p.x
μ κ°μ κ°μ΄ λκΈ° λλ¬Έμ 1.0
μ΄ λλ κ² λ§μ΅λλ€. (\(l = \sqrt{p.x^2+p.y^2}\)) κ·Έλ¦¬κ³ p.y
κ° μμ£Ό μμ κ°μ΄ λλ x+ μΆ μ£Όλ³μμ μ¬μ ν 1μ κ°κΉμ΄ κ°μ κ°μ΅λλ€.
14νμ μ£Όμμ ν΄μ ν΄λ³΄λ©΄ μ΄ μ¬μ€μ μ§κ΄μ μΌλ‘ μ μ μμ΅λλ€. x+, y+ μΆμμ p/l
μ 0.999 μ΄μμ κ°μ κ°μ΅λλ€.
15νμ μ€μ λ‘ uv
μ p/l
μ λνλ©΄ μ΄λ€ κ°μ΄ λλμ§λ₯Ό λνλ
λλ€. 16νμ μ£Όμμ ν΄μ νλ©΄ 1μ κ°κΉμ΄ κ°μ΄ μ΄λ€ λ²μμ μλμ§λ₯Ό μ’ λ μ§κ΄μ μΌλ‘ νμ
ν μ μμ΅λλ€.
κ·ΈλΌ λλ²μ§Έ νμΈ sin(z)+1.
λ₯Ό μ΄ν΄λ³΄κ² μ΅λλ€. z
λ time
μ΄κ³ , R,G,B μ±λμ κ°κ° .07
, .14
, .21
μ κ°μ λν΄μ€μ μμμ°¨ ν¨κ³Όλ₯Ό λΈλ€κ³ μμμ μ€λͺ
λλ Έμ΅λλ€. sin
μ μ΄λ€ μ
λ ₯μ΄ λ€μ΄κ°λ -1.0~1.0
μ κ°μ μΆλ ₯νκ³ , μ¬κΈ°μ 1μ λνλ©΄ 0.0~2.0
μ κ°μ μΆλ ₯ν©λλ€.
μΌλ¨ μμμ°¨ ν¨κ³Όλ λμ€μ λ£λλ‘ νκ³ , μ§κΈμ sin(time)+1.
μ p/l
μ κ³±ν λ€μ uv
μ λν΄λ³΄κ² μ΅λλ€.
time
μ΄ λ€μ΄κ°μ μλμ μΈ λ³νκ° μκ²Όμ΅λλ€. p/l
μ 0λ°°μμ 2λ°°κΉμ§ uv
μ λν΄μ§λλ€. μ΄ λΆλΆμ λ¨μν΄μ μ€λͺ
ν κ²μ΄ λ³λ‘ μμ΄ λ³΄μ
λλ€.
μΈλ²μ§Έ νμ abs(sin(l*9.-z*2.))
μ
λλ€. μ΄κ²λ z
λ₯Ό time
μΌλ‘ μΉννμ¬ κ³μ°ν΄λ³΄κ² μ΅λλ€. μμ΄ λ³΅μ‘νλ νλμ© νμ΄μ μ€λͺ
νκ² μ΅λλ€.
μΌλ¨ length(p)*9.
κ°μ RGB μ±λμ λͺ¨λ λ£μ΄λ³΄λ©΄ μμ£Ό μμ κ²μμ μμ΄ μκΈ°λ κ²μ λ³Ό μ μμ΅λλ€. μ²μμ length(p)
κ°μ RGB μ±λμ λ£μμ λλ³΄λ€ μμ΄ ν¨μ¬ μμμ‘μ΅λλ€. μμ κ°μ κ±°μ μ¬λΌμ§κ³ λλΆλΆ ν° κ°μ΄ λ κ²μ
λλ€.
13 νμ μ£Όμμ ν΄μ ν΄λ³΄λ©΄, κ²μ νλ©΄λ§ λ³΄μ΄λ κ²μ μ μ μμ΅λλ€. μκ°μ λΉ λ₯΄κ² μ¦κ°νλ κ°μ΄κΈ° λλ¬Έμ l κ°μ μμκ°μ μμκ° λμ΄μ κ²μμλ§ λ³΄μ΄λ κ²μ λλ€. κ·ΈλΌ μ¬κΈ°μ sin μ μμ΄ 14νμ μ£Όμμ ν΄μ ν΄λ³΄λ©΄ μ΄λ¨κΉμ?
μ κΈ°νκ²λ μμ μμ λ°κΉ₯μΌλ‘ λ»μ΄λκ°λ λμ€ν¬ ν¨ν΄ μ΄ λμ΅λλ€. λ°λλ‘ -time * 2.
λμ +time * 2.
λ₯Ό λ£μ΄λ³΄λ©΄ μμ μΌλ‘ λ€μ΄κ°λ λμ€ν¬ ν¨ν΄μ΄ λμ΅λλ€. βCreationβ μμ λ³Ό μ μλ μμ μμ λμμ΄ λ»μ΄λκ°λ λ―ν λλμ ν¨ν΄μ λ°λ‘ μ΄ μμμ λΉλ‘―λ©λλ€.
length(p)
λ€μ κ³±ν΄μ§λ 9
λ₯Ό λ€λ₯Έ κ°μΌλ‘ λ³νμν€λ©΄ κ° λμ€ν¬μ κ΅΅κΈ°λ₯Ό μ‘°μ ν μ μμ΅λλ€. κ΅΅κΈ°κ° μμμ§λ©΄ μλκ° λλ €μ§κ³ , κ΅΅μ΄μ§λ©΄ μλκ° λΉ¨λΌμ§λλ€. -time
μ κ³±ν΄μ§λ 2
λ μλμ κ΄κ³λλ λ³μμ
λλ€. μ«μκ° μ»€μ§μλ‘ μλκ° λΉ¨λΌμ§λλ€. 60 μ λλ‘ λμΌλ©΄ μΈμ΄ν€λΈλ¦ν λΆμκΈ°μ νλ©΄μ λ³Ό μ μμ΅λλ€.
15νμ μ΄ μμ abs λ₯Ό μμμ λ²μλ₯Ό 0.0~1.0
μΌλ‘ λ°κΎΌ κ²μ
λλ€. λ§μμ μ΄λμ λ λΆλΆμ μμμ§κ³ λ°μ λΆλΆμ΄ λμ΄λ κ²μ λ³Ό μ μμ΅λλ€.
μ΄μ 17νμμ μ΄ μΈ κ°μ νμ λͺ¨λ κ³±ν λ€μμ uv
μ λν΄μ€λλ€. μ£Όμμ ν΄μ νλ©΄, μμ μμλΆν° λ°κΉ₯μͺ½μΌλ‘ νΌμ Έλκ°λ λ¬Όκ²°μ΄ λνλ¬λ€κ° μ¬λΌμ§λ κ²μ νμΈν μ μμ΅λλ€. (μ°Έκ³ : 17νμμλ μμμ μΌλ l
λμ μ length(p)
λ₯Ό μ¨μ λ³μκ° μ€μΌλμ§ μλλ‘ νμ΅λλ€.) μ΄κ²λ§μΌλ‘λ λ©μ§ κ² κ°μ΅λλ€λ§, μ΄μ μλ μ½λμ 18νμ μ½ν μλ λ§μ§λ§ λΉλ°μ νμ΄μ μ΄ μ½λμ μ리λ₯Ό μ¨μ ν μ°λ¦¬μ κ²μΌλ‘ λ§λ€μ΄λ³Ό μ°¨λ‘κ° λμμ΅λλ€.
λ§μ§λ§ μ£Όμμ ν΄μ νλ©΄ μ΄λ° λͺ¨μ΅μ΄ λ©λλ€.
Β
18ν
μμ μ¬κΈ°λ 볡μ‘ν©λλ€.
c[i]=.01/length(abs(mod(uv,1.)-.5));
μμ νλμ© νμ΄λ³΄κ² μ΅λλ€. μΌλ¨ λλμ΄ c
λ°°μ΄μ κ°μ λ£κ³ μκΈ° λλ¬Έμ λ―Έλ€λλ for loop λ₯Ό ꡬνν΄μΌ ν κ² κ°μ΅λλ€. κ·Έλ¦¬κ³ μμͺ½λΆν° λ€μ¬λ€λ³΄λ©΄, mod(uv, 1.)
μ΄ λ³΄μ
λλ€.
mod(a, b)
λ a
λ₯Ό b
λ‘ λλ λλ¨Έμ§μ
λλ€. b
κ° 1
μΌ λ, μ μλΌλ©΄ mod
κ°μ λΉμ°ν 0μ΄κ² μ§λ§, μμ΄λκ° λ€λ£¨λ μ€μμμλ μμμ μ λνλ
λλ€. μ΄κ²μ μ μ¬ λλ€κ°μ κ³μ°ν λ λ΄€λ fract
λ₯Ό μκ°λκ² ν©λλ€. μ¬μ€ mod(x, 1.)
μ fract(x)
μ λμΌν©λλ€. μμ κ·Έλνμμ 2νμ μ£Όμμ ν΄μ ν΄μ λ μμ΄ κ°μ κ°μΈ κ²μ νμΈν μ μμ΅λλ€.
κ·Έλ¦¬κ³ μ¬κΈ°μ -.5
λ₯Ό ν΄μ£Όλ©΄, λ²μλ -0.5~0.5
κ° λ κ²μ΄κ³ , abs
μ°μ°μ ν΄μ£Όλ©΄ 0.0~0.5
κ° λ κ²μ
λλ€. 3, 4 νμ μ£Όμμ ν΄μ ν΄μ μ΄ μ°μ°μ λ°λΌκ° μ μμ΅λλ€. 4νκΉμ§ μ€λ©΄ κ·Έλνλ μμ£½μμ£½ν μΌκ°νμ΄ λ°λ³΅λλ μ° λͺ¨μμ΄ λ©λλ€.
μλ κ°μ΄ uv
μ΄λ―λ‘ μ무 κ²λ μλ uv
μ μ΄λ° μ°μ°μ νλ©΄ μ΄λ€ λͺ¨μ΅μ΄ λλμ§ μμ΄λλ‘λ κ·Έλ €λ³΄κ² μ΅λλ€.
R, G μ±λμ abs(mod(uv,1.)-.5)
λ₯Ό λ£μΌλ©΄ μμͺ½μ μ΄λ‘κ³ λ°κΉ₯μͺ½μΌλ‘ κ°μλ‘ λ°μμ§λ ννμ νλ©΄μ λ³Ό μ μμ΅λλ€. μλ uv
μ λ²μλ 0.0~1.0
μ΄κΈ° λλ¬Έμ μμ κ·Έλνμμ κ°μ΄ 0.5 μμ μμν΄μ 0μΌλ‘ κ°λ€κ° λ€μ 0.5 λ‘ κ°λ κ²μ νμΈνλ€λ©΄, νλ©΄μ μμ΄ μ΄λ κ² λ°°μΉλλ κ²μ μ΄ν΄νμ€ μ μμ κ²μ
λλ€.
κ·Έ λ€μ 13νμ μ£Όμμ ν΄μ ν΄λ³΄λ©΄, νλ©΄ ν¬κΈ°μ λ°λΌ μ½κ° μμΌλ‘ λλ¦° κ²μμ μμ΄ νμ±λλ κ²μ λ³Ό μ μμ΅λλ€. μ΄κ²μ uv
μλ p
μλ λ¬λ¦¬ νλ©΄ λΉμ¨μ λν μ²λ¦¬(resolution.x/resolution.y
λ₯Ό κ³±ν΄μ£Όλ κ²)λ₯Ό ν΄μ£Όμ§ μμκΈ° λλ¬Έμ
λλ€. μ΄λ° λΆκ· νν¨μ΄ βCreationβ μ μ λλ©μ΄μ
μ€κ°μ μ½κ° λλ¦° νμμ΄ λ±μ₯νκ² νμ¬ μκ°μ νλΆν¨μ λν΄μ€λλ€.
14νμ μ£Όμμ ν΄μ ν΄λ³΄λ©΄ μμ£Ό μμ λΆμ μμ λ³Ό μ μμ΅λλ€. κΈ°μ‘΄μ κ°μ μμλ‘ κ³±ν΄μ£Όκ³ μμ£Ό μμ κ°μΈ .01
λ§ λΆμμ λ¨κ²ΌκΈ° λλ¬Έμ 0λ³΄λ€ μ»€μ λμ 보μ΄λ κ°μ λ©΄μ μ λ§€μ° μμμ‘μ΅λλ€.
μ΄μ μ§κΈκΉμ§ λͺ¨μ μ λ³΄λ‘ 18 νμ΄ μ΄λ€ μλ―ΈμΈμ§ ν΄μν΄λ³΄μλ©΄ μμ£Ό μ’μ νμ μμμ λ§λλ κ²μ
λλ€. νμ§λ§ μ΄ μ’μ νμ μμμ 17νμμ λ°λ uv
λ₯Ό κΈ°λ°μΌλ‘ νκΈ° λλ¬Έμ λμ€ν¬ ννλ‘ μμ μμ λ°κΉ₯μͺ½μΌλ‘ νΌμ§ μ μμ΅λλ€. κ·ΈλΌ μ΄μ λ§μ§λ§μΌλ‘ 17, 18 νμ μ‘°ν©νλ©΄ βCreationβ μ΄ μ¬νλ κ²μ
λλ€.
μΌλ¨ for loop λ₯Ό κ±°μ³μ time
μ .07
μ© λν΄μ€ νμ c[i]=uv.x;
λ‘ uv
μ€ νλμ κ°λ§ λ£μ΄λ³΄μμ΅λλ€. μμμ μ€λͺ
λλ Έλ μμμ°¨ ν¨κ³Όκ° ν¬λ―Ένκ² λ³΄μ΄λ κ²μ νμΈν μ μμ΅λλ€. μμμ°¨ ν¨κ³Όλ νΉν λ¬Όκ²°μ΄ μ»€μ§λ©΄μ μ¦μλ€κΈ° μμν λ κ°μ₯ μ 보μ
λλ€.
μ΄κΈ° μΈν (18, 21ν μ£Όμ)
21νμ μ£Όμμ ν΄μ ν΄λ³΄κ² μ΅λλ€. 20νμ c κ°μ RGB μ±λμ κ·Έλλ‘ λ£μ΄μ£Όκ³ μμ§λ§, βCreationβ μλ 21νμ²λΌ λ§μ§λ§μ c/l
μ λ£μ΄μ€λλ€. l=length(p)
λ‘ λ°κΉ₯μͺ½μΌλ‘ κ°μλ‘ ν° κ°μ΄κΈ° λλ¬Έμ, μ΄κ²μΌλ‘ c
λ₯Ό λλ μ£Όλ©΄ μ΄λ―Έμ§μ νλ¦Ών λΆλΆμ΄ μ¬λΌμ§κ³ constrast κ° λλ ·ν΄μ§λ κ²μ λ³Ό μ μμ΅λλ€. κ·Έλ¦¬κ³ μμμ°¨ ν¨κ³Όλ λ μ§ν΄μ§λλ€.
21ν μ£Όμ ν΄μ (18ν μ£Όμ)
λ€μ 21νμ μ£Όμμ²λ¦¬νκ³ , 18νμ μ£Όμμ ν΄μ ν΄λ³΄λ©΄ μμμ°¨ ν¨κ³Όλ₯Ό λνλ΄λ RGB μ μμ μ λ€μ΄ μμ μμ λ°κΉ₯μͺ½μΌλ‘ νΌμ Έλκ°λ κ²μ λ³Ό μ μμ΅λλ€. 18νμ μμ 보μ¬λλ¦° κ²μ²λΌ μ΄λ―Έμ§λ₯Ό μμ νμμΌλ‘ λͺ¨μμ£Όλ ν¨κ³Όλ₯Ό κ°μ§λ§, 18νμ κ³μ°νλ uv
λ time
μ κΈ°λ°μΌλ‘ νλ z
κ°μ μν΄ λ³νκΈ° λλ¬Έμ μμ λ°κΉ₯μͺ½μΌλ‘ νΌμ§κ² λ©λλ€.
18ν μ£Όμ ν΄μ (21ν μ£Όμ)
μ΄μ λ§μ§λ§μΌλ‘ 21νμ μ£Όμλ ν΄μ νλ©΄, μμλ μ λ€μ΄ 컀μ§λ κ²μ λ³Ό μ μμ΅λλ€. l
μ μμ μ£Όλ³μμ λ§€μ° μμ κ°μ΄κΈ° λλ¬Έμ μ΄ κ°μΌλ‘ λλ κ°μ 컀μ§κ² λ©λλ€. λ°λΌμ μ 체μ μΈ κ΄μ μ ν¬κΈ°κ° 컀μ§κ³ λν
μΌμ΄ μ΄μλκ² λ©λλ€.
λͺ¨λ μ£Όμ ν΄μ (μ΅μ’ μ΄λ―Έμ§)
μ΄κ²μΌλ‘ Creation
μ λΆμμ λ§μΉκ² μ΅λλ€. λ€μμλ λ©μ§ μ΄λ―Έμ§μ ν¨κ» λμμ€κ² μ΅λλ€. κΈ΄ κΈ μ½μ΄μ£Όμ
μ κ°μ¬ν©λλ€.