Água infinita
Um barco a vela atravessa água cristalina; o vento muda as ondas e o sol acende o brilho. ondas de Gerstner · cáusticas · bloom
Um barco a vela atravessa água cristalina; o vento muda as ondas e o sol acende o brilho. ondas de Gerstner · cáusticas · bloom
Modo Visual: iluminação por HDRI, oclusão de ambiente, bloom, profundidade de campo e qualidade que se ajusta ao seu aparelho. Modo Leve: sem pós-processamento, para celular, notebook fraco e para estudar a técnica.
Quatro ondas somadas movem cada ponto da superfície em círculos, o que afina as cristas como no mar de verdade. A mesma soma roda na placa de vídeo e em JavaScript, então o barco flutua exatamente na água desenhada.
y = Σ A·sin(k·(d·p) − ω·t), ω = √(g·k)O fundo é uma função conhecida (ilha + dunas). A coluna d’água em cada pixel mistura areia, turquesa e azul profundo, e as cáusticas aparecem só no raso.
Ondinhas pequenas inclinam a normal; quando o reflexo aponta para o sol, o pixel passa do branco e o bloom transforma isso em faíscas.
A espuma aparece onde a superfície de Gerstner se espreme (o jacobiano chega perto de dobrar), em faixas finas cortadas por ruído esticado na direção da onda, e cresce com o vento.
espuma ∝ Σ Q·k·A·sin θCasco, convés, vela latina, remos, cabos e esteira são gerados em código. A escota acompanha o ângulo da vela e a vela enche conforme o vento.
As gaivotas são boids: cada uma só olha as vizinhas (separação, alinhamento, coesão) e um ponto que circula a ilha. O capim e os arbustos são instâncias assentadas na mesma função do fundo e balançam no shader com rajadas que atravessam a ilha.