Autor Wątek: Rysowanie linii a'la sygnał dźwiękowy w Siri  (Przeczytany 1583 razy)

Offline Kuza

  • Użytkownik

# Wrzesień 15, 2015, 16:30:54
Witajcie,

Mam potrzebę stworzenia rysowania analogowego sygnału szybkozmiennego o jakości (60fps/AA) zbliżonej do tego co można zobaczyć na iOS w przypadku gdy uruchomimy tryb Siri:



Zastanawiam się nad zastosowaniem rozwiązania znanego z http://http.developer.nvidia.com/GPUGems3/gpugems3_ch25.html, ale ponieważ oparte jest na krzywych to boję się, że transformacja mojego sygnału na beziery może doprowadzić do nieakceptowalnych niedoskonałości - szczególnie przy stromych zboczach.

Do dyspozycji mam OpenGLES 2.0 (a wspiera go egzotyczny, choć mocny układ z Qt na pokładzie).

Ma ktoś może w tym temacie doświadczenie? Proponuję również pomoc odpłatną (zlecenie).

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Krzysiek K.

  • Moderator
    • DevKK.net

  • +1
# Wrzesień 15, 2015, 17:15:33
Cytuj
Zastanawiam się nad zastosowaniem rozwiązania znanego z http://http.developer.nvidia.com/GPUGems3/gpugems3_ch25.html, ale ponieważ oparte jest na krzywych to boję się, że transformacja mojego sygnału na beziery może doprowadzić do nieakceptowalnych niedoskonałości - szczególnie przy stromych zboczach.
Polecam raczej krzywe Catmulla-Roma, chyba że próbek będziesz miał więcej, niż wynosi rozdzielczość ekranu - wtedy trzeba raczej downsamplować, niż interpolować.

Offline Kuza

  • Użytkownik

# Wrzesień 15, 2015, 18:53:54
Dziękuje za odpowiedź. Czyli generalnie sama metoda tworzenia w ten sposób wykresów (jako przykład - sygnał audio w iOS) ma sens?

Offline DMX

  • Użytkownik

# Wrzesień 15, 2015, 19:51:33
Rysowanie wykresu fali sinusoidalnej jest za mało eleganckie? Można dodać do tej fali jakieś zakłócenia żeby nie wyglądała monotonnie.
EDIT:
chodziło mi o rysowanie piksel po pikselu bez używania krzywych.
« Ostatnia zmiana: Wrzesień 15, 2015, 19:53:06 wysłana przez DMX »

Offline Krzysiek K.

  • Moderator
    • DevKK.net

# Wrzesień 16, 2015, 09:11:00
Dziękuje za odpowiedź. Czyli generalnie sama metoda tworzenia w ten sposób wykresów (jako przykład - sygnał audio w iOS) ma sens?
Sama metoda - tak. Pytanie tylko jak ją zaimplementujesz. Jeśli masz zamiar z sygnału audio tworzyć krzywą (dane punktów kontrolnych, itp) a potem ją renderować, co gorsza jeśli to była krzywa 2D, to z sensem bym już polemizował. Wystarczy tutaj wpakować próbki dźwięku do tekstury i wyrenderować to w shaderze jako antyaliasowaną krzywą 1D (funkcję f(x)=y).