Czy ktoś mógłby zaimplementować daną animację w przykładzie modułu cieniującego WebGL? Byłoby wspaniale dla ludzi uczących się WebGL jak ja.Jak zaimplementować tę spiralę obrotową w WebGL?
Źródło: http://dvdp.tumblr.com/post/2664387637/110109
Czy ktoś mógłby zaimplementować daną animację w przykładzie modułu cieniującego WebGL? Byłoby wspaniale dla ludzi uczących się WebGL jak ja.Jak zaimplementować tę spiralę obrotową w WebGL?
Źródło: http://dvdp.tumblr.com/post/2664387637/110109
I zostały wdrożone animacji na http://www.brainjam.ca/stackoverflow/webglspiral.html. Otrzymasz komunikat "WebGL nie jest obsługiwany", jeśli twoja przeglądarka nie obsługuje WebGL. Jest dostosowany z sandbox created by mrdoob. Podstawową ideą jest pokazanie prostokątnej powierzchni (składającej się z dwóch trójkątów) i zastosowanie modułu cieniującego na powierzchni.
Rzeczywisty kod shaderów jest następujący:
uniform float time;
uniform vec2 resolution;
uniform vec2 aspect;
void main(void) {
vec2 position = -aspect.xy + 2.0 * gl_FragCoord.xy/resolution.xy * aspect.xy;
float angle = 0.0 ;
float radius = length(position) ;
if (position.x != 0.0 && position.y != 0.0){
angle = degrees(atan(position.y,position.x)) ;
}
float amod = mod(angle+30.0*time-120.0*log(radius), 30.0) ;
if (amod<15.0){
gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);
} else{
gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);
}
}
Spirala zmienia rozmiar z okna przeglądarki, ale można łatwo zdecydować się na stałym rozmiarze płótnie zamiast.
Aktualizacja: Tak dla zabawy, tutaj jest dokładnie to samo wdrożenie w jsfiddle: http://jsfiddle.net/z9EmN/
Awesome :) thank you – zproxy
Wersja ShaderToy: https://www.shadertoy.com/view/4tfGD4 – Michaelangel007
ah tak. Widziałem wersję Shadertoy i pomyślałem. hej lat temu zapytałem o to na stackoverflow. i oto jest. :) – zproxy
Oto niektóre eksperymenty HTML Canvas w tym kierunku, aby pomóc. Kluczem jest praca we współrzędnych biegunowych: [Spiral 1] (http://phrogz.net/tmp/canvas_spiral_1.html), [Spiral 2] (http://phrogz.net/tmp/canvas_spiral_2.html), [ Spiral 3] (http://phrogz.net/tmp/canvas_spiral_3.html), [Spiral 4] (http://phrogz.net/tmp/canvas_spiral_4.html). – Phrogz
i [Spiral 5] (http://phrogz.net/tmp/canvas_spiral_5.html), nieco bliżej tego projektu. – Phrogz
Spodziewamy się, że spróbujesz rozwiązać ten problem samemu, zamiast poprosić społeczność o znalezienie dla ciebie kompletnego rozwiązania. Jeśli masz jakiś kod, który nam pokazuje, który pokazuje ci jakikolwiek wysiłek (nawet jeśli jest nie tak), zaktualizuj swoje pytanie i oznacz flagę, aby ponownie otworzyć. Dzięki. – Kev