Houdini 16 Ocean

전체 글

(1)

Wanho Choi


(wanochoi.com)

Houdini 16 Ocean

(2)

FFT Ocean Algorithm

• Jerry Tessendorf’s paper (SIGGRAPH 2001)

(3)

Wind Waves

Wind-generated waves

• They result from the wind blowing over an area of fluid surface. • After the wind ceases to blow, wind waves are called swells.

More generally, a swell consists of wind-generated waves that are not significantly affected by the local wind at that time.

(4)

Wind Waves

(5)

Jean Baptiste Joseph Fourier

Théorie analytique de la chaleur (1822)

A continuous periodic function can be written as a sum of sine-waves

https://en.wikipedia.org/wiki/Fourier_series

f (x) = a0 + (ai cos(ix) + bi sin(ix))

i=1

(6)

Fourier Analysis / Synthesis Fourier Analysis Fourier Synthesis Fourier Analysis Fourier Synthesis Fourier Analysis Fourier Synthesis Fourier Analysis Fourier Synthesis https://commons.wikimedia.org/wiki/File:Fourier_synthesis.svg + = = = = + + + + +

(7)

Fourier Transform

(8)

FFT & IFFT

Fast Fourier Transform

Inverse Fast Fourier Transform

• The grid resolution must be a power of two.

(9)

Height Field Approach

http://matthias-mueller-fischer.ch/talks/GDC2008.pdf

(10)

Superposition

http://andrewmacthoughts.blogspot.kr/

http://geology.uprm.edu/MorelockSite/morelockonline/2-waves.htm http://misclab.umeoce.maine.edu/boss/classes/SMS_491_2003/Week_6.htm

(11)

Spectral Weights

• Ocean wave spectrum

• Phillips spectrum • Pierson-Moskowitz spectrum • JONSWAP spectrum Phillips spectrum Ph (k) = A exp(−1/ (kL) 2 ) k 4 k ⋅w 2

(12)

Dispersion Relationship

• Waves of different wavelengths travel at different phase speeds.

• Deep water:

• Finite depth water: • Shallow water:

ω (k) = gk

ω (k) = gk tanh(kD)

(13)

• Horizontal displacement

• 3D displacement (2D field)

Choppiness

(14)

• Bi-linear interpolation • Ocean patch

Ocean Patch & Interpolation

1 2 3 4 3 4 2 1 a b α 1 α β 1− β a = (1− α ) × 1 +α × 2 b = (1− α ) × 3 +α × 4 = (1− β ) × a +β × b = (1− α ) × (1− β ) × 1 +α × (1− β ) × 2 +(1− α ) × β × 3 +α × β × 4 ?

(15)

Ocean Patch Tiles

(16)
(17)
(18)

Grid Resolution

(19)
(20)
(21)
(22)
(23)
(24)
(25)
(26)
(27)
(28)
(29)
(30)
(31)
(32)
(33)
(34)
(35)
(36)
(37)
(38)
(39)
(40)
(41)
(42)
(43)
(44)
(45)
(46)
(47)
(48)
(49)
(50)
(51)
(52)
(53)
(54)
(55)
(56)
(57)
(58)
(59)
(60)
(61)
(62)
(63)
(64)
(65)
(66)
(67)
(68)
(69)
(70)
(71)
(72)

Ocean Foam Geometry Node

• This node creates foam particles that can be used to enhance rendering of an

ocean surface. The input is a one or more merged Ocean Spectrum layers that comprise the ocean.

• There are two modes for this SOP:

Emitter: Particles are created within a specified region based on various emission

criteria from the input ocean layers. These particles could then be fed into any custom particle simulation for emission.

Solver: Foam particles are created according to the various emission criteria then

run through a 2-D particle simulation that incorporates the ocean velocity and neighboring particle proximity to give realistic foam behavior. The output of this mode can be used directly for rendering foam with the Ocean Surface shader.

(73)
(74)
(75)
(76)
(77)
(78)
(79)
(80)
(81)
(82)
(83)
(84)
(85)
(86)

ocean_sample() vector ocean_sample ( string geometry, int phase, int frequency, int amplitude, float hscale, float time, int mode, int downsample, vector pos ) http://www.sidefx.com/docs/houdini/vex/functions/ocean_sample

(87)
(88)
(89)
(90)
(91)

수치

Updating...

관련 주제 :