Wątek przeniesiony 2017-10-13 16:00 z Newbie przez furious programming.

Kurs podstaw renderowania grafiki 2D, tłumaczący działanie programów okienkowych

0

Witam, poszukuję kursu, który nauczy mnie podstaw renderowania grafiki 2D, a także pomoże mi zrozumieć bardziej zaawansowane kody i mechanizm działania programów okienkowych. Umiem już podstawy programowania obiektowego w C++ i Javie, ale to niestety nie wystarcza w przypadku większości kursów uczących pisania programów graficznych. Niestety kursy, które znalazłem wybiegają za bardzo w przód z poziomem wiedzy. Potrzebny mi jest kurs, który uczy od podstaw programowania aplikacji graficznych w Javie lub C++. Zastanawiam się nad kursami OpenGL lub DirectX (chociażby WARP z 2004), ale nie wiem czy tematyką trafią one w moje główne zainteresowanie, czyli grafika 2D. Jeśli ktoś jest w stanie wskazać jakiś kurs lub dać jakąś sugestię, co do wyboru kursu, wyłbym wdzięczny.

1

Na początek ogarnij Windows BGI with Mouse: http://winbgim.codecutter.org/

Poniższy kurs nie jest idealny, ale daje radę:

0

Dzięki za te linki. Przyjrzałem się tej bibliotece i przyda się podczas tworzenia prototypu mojego programu i obmyślania, jak to wszystko złożyć w całość.

Natomiast aby stworzyć finalną wersję programu potrzebna jest mi obsługa całej palety kolorów i możliwość dorobienia GUI. Program ma wczytywać dane z bufora i przetwarzać je na punkty graficzne wyświetlane po kolei, aż do uzyskania pełnego obrazu. Potrzebna mi by była dość prosta biblioteka graficzna bo tak na prawdę jedyne elementy graficzne w programie to punkty rysowane po kolei w oknie. Z kolei Direct3D czy OpenGL to zaawansowane biblioteki zasięgiem idącym daleko daleko poza skalę moich tymczasowych zainteresowań. Co więc może być następnym krokiem po BGI?

1
Kacper Gutowski napisał(a):

Co więc może być następnym krokiem po BGI?

Myślę, że QT. Za pomocą QT możesz stworzyć sobie aplikację okienkową z GUI, a dzięki komponentowi QPainter będącego częścią QT możesz renderować grafikę.

1
Kacper Gutowski napisał(a):

Zastanawiam się nad kursami OpenGL lub DirectX (chociażby WARP z 2004), ale nie wiem czy tematyką trafią one w moje główne zainteresowanie, czyli grafika 2D.

Większość kursów OpenGL będzie dotyczyła grafiki 3D, ale nie ma problemu by pod OpenGL rysować „na płasko”, czyli z zerową współrzędną z i bez perspektywy (glOrtho w fixed-function pipeline).

Słowem - 2D to 3D na płasko.

0

@Haskell: Dzięki za wskazanie Qt. Przydatna biblioteka.

@Azarien: Z rysowaniem na płasko to wiem, że istnieje coś takiego, użyję go w późniejszej fazie projektu.

Rysowanie obrazu na razie ogarnąłem przy pomocy kursów Qt. Udało mi się wygenerować prosty szum w okienku. Kolejna rzecz - kodowanie audio. Qt zawiera biblioteki audio, ale tu także jest potrzebna podstawowa wiedza o właściwościach cyfrowego dźwięku i jego generowania. Jako że chcę generować dźwięk niskopoziomowo, tu też potrzebne mi jest źródło wiedzy o kodowaniu pojedynczych sampli; a także o dekodowaniu ich z dowolnego urządzenia wejściowego. Dodatkowo w późniejszym etapie potrzebna mi będzie optymalizacja grafiki, jako że generowanych będzie kilkaset tysięcy punktów na sekundę. Zastanawiam się więc nad przejściem do nauki OpenGL żeby "ogarnąć" te wszystkie aspekty, no i będzie to wiedza na przyszłość. Czy to dobry pomysł żeby zacząć pracę przy OpenGL?

Ponadto z czasem będzie mi potrzebne renderowanie wideo w kodeku H.264 / H.265 i odczytywanie strumienia wideo w tym samym kodeku. Czy SDL będzie dobrą biblioteką do takich rozwiązań?

0

Sprecyzuj może, czy potrzebna jest przenośność programu na inne platformy niż Windows, czy też nie.
Bo jeśli nie to do audio/video masz np. DirectShow, czyli kodeki „zainstalowane w systemie”.

0

Niepotrzebna. W zasadzie to jeśli DirectShow wspiera manipulację strumieniami (łącznie z kodowaniem na żywo) to mi wystarczy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1