Bojkar\'s dev blog
mar 17

Teraz jak już mam obsÅ‚ugÄ™ shaderów to grzechem by byÅ‚o nie wykorzystać ich do post processingu. Ale do tego brakowaÅ‚o mi jeszcze jednej rzeczy: szybkiego renderowania do tekstury. WczeÅ›niej już to robiÅ‚em ale za pomocÄ… wolnych sposobów takich jak np. glCopyPixels. Na szczęście OpenGL wprowadziÅ‚ coÅ› o wiele szybszego, mianowicie: Frame Buffer Object. Rozszerzenie te daje nam możliwość “off screen” ‘owego renderowania sceny do tekstury ale nie tylko. Możliwy jest również zapis bufora głębokoÅ›ci czy stencil’a. UdaÅ‚o mi siÄ™ to zaimplementować do mojego renderera, a przy okazji napisaÅ‚em do testów, trzy proste efekty post processing’owe: bloom, grayscale i sephia. Poniżej zamieszczam screeny prezentujÄ…ce ten efekt (w lewym dolnym rogu jest renderowania scena przy pomocy FBO do maÅ‚ego kwadracika, w którym te efekty widać, a w tle scena renderowana “normalnie”)

mar 12

Jako, że ostatnio podłączyłem do silnika shadery, postanowiłem znaleźć jakieś wygodne narzędzie do ich tworzenia. Postanowiłem przetestować kilka programów: Typhoon ShaderDesigner 1.5.9.4, Nvidia Fx Composer 2.5 oraz AMD RenderMonkey 1.82. Głównymi cechami które bym chciał aby taki program posiadał, są: oczywiście obsługę GLSL, szybkość działania, prosty lecz posiadający sporo możliwości (zmiana mesha, dodawanie zmiennych, zarządzanie materiałami, itp), podpowiadanie składni.

Zacznijmy wiÄ™c od pierwszego programu czyli Typhoon ShaderDesigner w wersji 1.5.9.4. To byÅ‚ mój pierwszy program do tworzenia shaderów z jakim siÄ™ spotkaÅ‚em. Z caÅ‚ej trójki, program ten może siÄ™ pochwalić najlżejszÄ… instalkÄ…, która “waży” tylko 10mb. Niestety wiąże siÄ™ to z kilkoma minusami ale o tym za chwile. Program odpala siÄ™ w miarÄ™ szybko, zaraz po uruchomieniu ukazujÄ™ siÄ™ nam na pierwszy rzut oka proste i intuicyjne GUI. Niestety jak siÄ™ zagłębimy okaże siÄ™, że dodanie uniformów, czy tekstur już nie jest takie intuicyjne a wrÄ™cz dość ‘dzikie”. Wszystkie okna sÄ… oczywiÅ›cie dokowane, ale zmiana ich organizacji jest strasznie toporna, a do tego po zmianie i ponownym odpaleniu programu, uÅ‚ożenie jest dalej standardowe. Samo pisanie kodu oraz modifikacja materiałów jest bardzo fajna. Edytor posiada podpowiadanie skÅ‚adni, które dziaÅ‚a delikatnie mówiÄ…c dziwne, żyje swoim życiem, czasami zadziaÅ‚a a czasami nie. Jako meshe mamy kilka gotowych obiektów oraz możemy dodać wÅ‚asny ale niestety w ich wÅ‚asnym formacie (*.gsd) co w sumie dyskwalfikuje tÄ… opcjÄ™. Dużym minusem tej aplikacji jest to, że nie jest już po prostu rozwijana. PodsumowujÄ…c: proste, toporne, do napisania na szybko czegoÅ› prostego ale do ciekawszej zabawy imho nie bardzo.

Kolejna aplikacją, którą testowałem był Fx Composer firmy Nvidia. Jest to najcieższą aplikacja z całej trójki (waga instalki 230mb), co również widać po szybkości odpalania aplikacji. Na moim już lekko leciwym sprzęcie potrafi się odpalać dobre pare sekund co nie jest fajne. Jak już poczekamy te kilka sekund ukazuje się nam całą aplikacja, od razu widać, że mamy do czynienia z czymś poważniejszym niż ShaderDesigner GUI jest dość mocno rozbudowane a przy tym w miarę intuicyjne. Tutaj również posiadamy dokujące się okna ale ich konfiguracja jest o wiele łatwiejsza i dokładniejsza, bez problemu ułożymy sobie układ do własnych potrzeb. Na pierwszy rzut oka widać rozbudową listę assetów (światła, meshe, tekstury itp), rozbudowane edytory materiałów oraz tekstur. Przejdźmy do najważniejszej rzeczy czyli edytora kodu. Kolorowanie składni oraz numerowanie linii kodu jest niemal identyczne jakie mamy w Visual Studio, czyli ładne i czytelne. Edytor posiada podpowiadanie składni i w przeciwieństwie do ShaderDesignera działa bardzo dobrze. Jednak mimo wielu zalet program ma jeden duży minus, który go dyskwalfikuję w moim przypadku: brak standardowej obsługi GLSL. Dlatego też postanowiłem spróbować jeszcze jednego programu:

AMD RenderMonkey. Powiem szczerze, że fimie Nvidia bardziej cenie od firmy ATI i majac nie za dobre doÅ›wiadczenie ze sterownikami ATI oraz ich kartami graficznymi za którymi również nie za bardzo przepadam, myÅ›laÅ‚em że ich soft jest sporo gorszy od Fx Composera. Ale pozory mogÄ… mylić i tak byÅ‚o w tym przypadku. Waga instalki jest po Å›rodku reszty programów – 99mb, czyli do “przeÅ‚kniÄ™cia”. Minusem jest to, że trzeba mieć konto (darmowe) na amd aby móc pobrać program (dodatkowo nie wiem czemu ale z ich serwerów Å›ciÄ…gaÅ‚o mi Å›rednio tylko 30kb/s). Program odpala siÄ™ równie szybko jak ShaderDesigner. Interfejs graficzny przypomina mi GUI z Visual Studio 6.0 czyli bez polotu ale użytecznie. Tutaj również mamy okna dokowalne, czyli mamy dowolnÄ… możliwość zmiany poÅ‚ożenia oraz rozmiaru gui.  Na pierwszy rzut oka mamy maÅ‚o opcji, ale na szczęście to tylko zÅ‚udzenie. W prosty i intuicyjny sposób możemy dodać tekstury, modele (tutaj możemy dodać dowolny mesh w popularnych formatach, np: 3ds, obj), zmienne, itp. Niestety można trochÄ™ ponarzekać na edytor kodu. Pierwsza rzecz to kolorowanie skÅ‚adni. SÅ‚owa kluczowe sÄ… Å‚adnie kolorowane, podobnie jak w Visual studio na kolor morski, ale nie które staÅ‚e takie jak np. gl_Position kolorowane na różowo to trochÄ™ przesada… co najgorsze nie udaÅ‚o mi siÄ™ znaleźć opcji zmiany kolorów kolorowania, także musimy żyć z tym różowym kolorem. Podpowiadanie skÅ‚adni jest niestety też nie za najlepsze. Ogólnego podpowiadania nie udaÅ‚o mi siÄ™ uruchomić, natomiast podpowiadanie skÅ‚adowych obiektów dziaÅ‚a już ok.  Brakuje mi też numerowania linii kodu, i też nie udaÅ‚o mi siÄ™ znaleść w opcjach włączenie tego.

Podsumowując wybrałem RenderMonkeya. Po pierwsze obsługują dobrze GLSL, działa dość szybko (w przeciwieństwie do Fx Composera), jest prosty a zarazem posiada dużo potrzebnych opcji. Ma dobrze rozbudowane dodawanie tekstur oraz zmiennych. Ten program zrobił na mnie największe wrażenie i będę go używał.

P.S. Namawiam wszystkich koderów do brania udziału w SCENE.PL Code Compo. Ja też postaram się wziąść udział i na pewno pochwale się swoja produkcją. Szczegóły: http://www.scene.pl/