# Niebo skończone
Sun
30
Sep 2007
Uff! Napisałem dzisiaj chmury i tym samym skończyłem całe niebo. Chmury się animują i oczywiście są liczone na GPU. Nakręciłem nawet filmik :)
Comments | #rendering #video #gallery #engine #productions Share
# Kuriozalny filtr graficzny
Sat
29
Sep 2007

Zadanie jest takie: Daną mamy teksturę, która w jednym z kanałów (tutaj: czerwony) ma pewne dowolne informacje. Trzeba je skopiować do pozostałych kanałów tak, żeby powstała tekstura w odcieniach szarości. Jak to zrobić? Zmiana na teksturę czarno-białą poleceniem Desaturate odpada, bo uśrednia wartości RGB powodując przyciemnienie tekstury, a po dostosowaniu poziomów pewną utratę informacji.
Choć to zaskakujące, takiej prostej funkcji nie posiada żaden z programów graficznych, które mam zainstalowane w swoim komputerze! Ani ACDSee 5.0, ani Paint, ani GIMP, ani też DirectX Texture Tool czy nawet IrfanView, który potrafi przynajmniej zamieniać miejscami kanały. Przepisanie koloru do kanału alfa jest wykonalne w GIMP-ie (chociaż dużym wysiłkiem).
Czy ktoś wie, jak to zrobić? Nie czekając na odpowiedź zaczynam pisanie swojego programu do przetwarzania tekstur :P
NOWE: Kolejny potrzebny mi filtr, którego nie mogę zlokalizować: rozmycie (Blur) z zawinięciem na granicach, żeby tekstura pozostała bezszwowa (Seamless). Ale wiem już jak to wykombinować w GIMP-ie.
Comments | #algorithms #rendering #graphics #tools Share
# Niebo #2
Fri
28
Sep 2007
Dalsze prace nad renderowaniem nieba. Dziś napisałem ciała niebieskie (Słońce, Księżyc lub jakieś dowolne planety) oraz gwiazdy. Odkomentowałem też i połączyłem z niebem efekt Lens Flare.
Comments | #rendering #gallery #productions #engine Share
# It's a Big Sky!
Thu
27
Sep 2007
Zabrałem się za kolejny punkt z listy TODO mojego silnika, mianowicie za renderowanie nieba. Po przeglądnięciu artykułów ze strony vterrain.org (działy Sky/Atmosphere i Clouds) napisałem na razie gradient tła. Najtrudniejsze będą oczywiście chmury.
Comments | #rendering #gallery #engine #productions Share
# Hello Scene !
Mon
24
Sep 2007
Poczytałem trochę o demoscenie i napisałem swoje pierwsze intro 4k. Nie jest wprawdzie zbyt ambitne, bo pokazuje tylko trójkąt, ale na początek dobre i to :) Najlepsze, że zajmuje tylko 1082 bajty. Do pobrania: HelloScene.exe.

Comments | #demoscene #c++ #rendering Share
# Napisałem teren
Fri
21
Sep 2007
Nie napisałem ostatnio nic mądrego na blogu, a to dlatego, że zajmowałem się pisaniem wczytywania, generowania, renderowania, optymalizownia tudzież kolidowania terenu. To pierwsza z rzeczy związanych z wizualizacją otwartych przestrzeni. Po wyczytaniu/wymyśleniu kilku ciekawych rozwiązań, napisaniu tego wszystkiego, zintegrowaniu z resztą silnika (co nie było łatwe - MainShader.fx ma już 907 linii i zaczynam się w nim gubić :) oraz pokonaniu brzydkiego błędu graficznego (pomogło zwiększenie głębi Z-bufora do 24 bitów) i rozwiązaniu kwestii kolizji promienia z terenem, wreszcie skończyłem. Żeby było ciekawie, postanowiłem tym razem udokumentować poszczególne etapy tworzenia tego modułu w postaci galerii screenów: Galeria - Teren.
Comments | #rendering #gallery #productions #engine Share
# Własne słowa kluczowe w Visual C++
Wed
19
Sep 2007
Chcesz, żeby edytor w Visual C++ podświetlał jakieś twoje dodatkowe identyfikatory jako słowa kluczowe? Da się zrobić. Wystarczy:
Jakie słowa wpisać? Na przykład twoje lub nie twoje nazwy najczęściej używanych typów (string, DWORD, uint16 itp.) albo makr. Pewnie masz wiele swoich pomysłów.
Comments | #visual studio #c++ Share
# Dev.Mag and others
Sun
16
Sep 2007
I've just downloaded and browsed issues of a web zin about game development: Dev.Mag. It is written in English, created in South Africa and resembles a bit our WARP [PL]. It contains articles about game industry, as well as a bit about graphics and programming (rather for beginners though - recursion, trigonometry and the like :)
By the way, I've decided to gather links to the websites about game development from different countries. Some are not in English, but still they're worth seeing. I can see that our gamedev.pl website [PL] is not so bad when compared to them. Until now I know these websites:
Do you know any other?
# Skrypty do www.gamedev.pl
Thu
13
Sep 2007
Ostatnie dni spędziłem nad skryptami strony www.gamedev.pl. Strasznie mi się nie chciało :) ale wprowadziłem kilka nowości, m.in. w działach Artykuły, Linkowisko, Projekty i Screeny. W tych dwóch ostatnich dopisałem podział na kategorie. Opanowałem przy okazji podstawy technologii AJAX.
Do końca wakacji pozostało 2.5 tygodnia. Co by tu teraz porobić... Pewnie wrócę do swojego silnika.
Comments | #warsztat #web Share
# Wszystkiego najlepszego wszystkim programistom
Thu
13
Sep 2007
Dziś jest 256. dzień roku, czyli dzień programisty. Z tej okazji składam wszystkim programującym, obojętnie co i w czym piszą, najlepsze życzenia - dużo kodu, mało błędów, dużo czasu i skończonych projektów, a tym starszym również dobrych pieniędzy z robienia tego co lubią i umiejętności pogodzenia programowania z innymi sferami życia (tak żeby programowanie przez nie nie ucierpiało :) Niech kod będzie z wami! 0x100 lat.
# Dziwne atraktory
Tue
11
Sep 2007
Natrafiłem ostatnio (pozdro nooga!) na ciekawy temat: dziwne atraktory. Tak, one naprawdę się tak nazywają. Są to obiekty matematyczne związane z chaosem. Najciekawsze w nich jest to, że można je wizualizować, a nawet oświetać i wyglądają... dziwnie. Nie przypominają niczego normalnego, jakby były nie z tego świata. Jest książka na ich temat ("Strange Attractors: Creating Patterns in Chaos", Julien C. Sprott), a także darmowy program pod Windows do ich generowania - Chaoscope.

[http://www.btinternet.com/~ndesprez/]
Okazuje się, że można znaleźć dla nich zastosowanie. Na GameDev.net jest gość, który piszę kosmiczną grę MMOG i tego rodzaju obiekty wykorzystuje do renderowania w czasie rzeczywistym trójwymiarowych mgławic. Polecam choćby ten link, a szczególnie TEN FILMIK (4.1 MB).
Comments | #rendering #graphics #math #web #fractals Share
# Książki do matematyki
Sat
08
Sep 2007
Dzisiaj chciałbym was zachęcić do czytania książek do... matematyki. To naprawdę świetny sposób na usystematyzowanie wiedzy zdobywanej fragmentami tu i ówdzie i porządne poznanie tego, co zanim stanie się oczywiste, wydaje się bardzo trudne. Nie chodzi jednak o szkolne podręczniki. Istnieją książki do matematyki przeznaczone dla programistów gier. To ważne o tyle, że pojawia się tu wiele charakterystycznych zagadnień. Na przykład nigdy i nigdzie nie widziałem jeszcze, żeby ktoś poza kontekstem programowania grafiki albo fizyki omawiał kwaterniony jako sposób reprezentowania orientacji i obrotów.
W Polsce niestety takich książek nie ma. Dlatego tym, którzy znają angielski, polecę dwie zachodnie. Pierwsza, ta którą mam i którą przeczytałem, to "3D Math Primer for Graphics and Game Development", Fletcher Dunn and Ian Parberry, wyd. Wordware Publishing Inc. Jej zaletą jest, że opisuje wszystko w układzie lewoskrętnym i zgodnie ze wszelkimi konwencjami Direct3D, a nie jak większość książek (w tym ta druga) - w konwencji OpenGL. Druga to "Essential Mathematics for Games and Interactive Applications. A Programmer’s Guide", James M. Van Verth, Lars M. Bishop, wyd. Morgan Kaufmann Publishers. Jest dużo grubsza i bardziej kompleksowa, a oprócz matematyki omawia też podstawy grafiki i fizyki.
Comments | #math #literature Share
# Efekty cząsteczkowe
Fri
07
Sep 2007
Wczoraj porządnie przemyślałem, a po wymyśleniu kilku sprytnych rozwiązań całkiem szybko napisałem ostatni z rodzajów specjalnych encji - efekt cząsteczkowy. Efekt opisuje zestaw 108 liczb, które trzeba ręcznie wypełnić (na szczęście większość z nich to zwykle zera). Liczony jest w pełni na GPU. Bufor wierzchołków wypełniam tylko raz. Wierzchołek zajmuje 24 bajty. Jako stałe do shadera przekazuję tablicę 25 wektorów, z których co klatkę zmienia się tylko jedna liczba - czas. Potem do dzieła wkracza liczący 70 instrukcji Vertex Shader (na którym przy próbie wygenerowania kodu asemblerowego do pliku wysypuje się kompilator HLSL :) i oto efekt, a właściwie pięć przykładowych efektów:
Tym samym za zakończoną uważam część mojego silnika odpowiedzialną za wnętrza (Indoor). Strzelankę mógłbym już pisać :) Nie chcę jednak na tym poprzestać. Na razie zajmę się trochę skryptami strony www.gamedev.pl, a potem zabieram się za przestrzenie otwarte (Outdoor), czyli teren, niebo, drzewa, trawę itp.
Comments | #gallery #productions #rendering #engine Share
# Encje specjalne
Wed
05
Sep 2007
Ciąg dalszy prac nad silnikiem: Napisałem kilka rodzajów encji specjalnych, czyli innych niż model wczytywany z pliku.
Pierwszy z nich to Quad, czyli oteksturowany prostokąt. Pośród ustawień ma liczbę stopni swobody - 0, 1, 2. Te dwa ostatnie tryby czynią z niego Billboard, czyli obiekt zwrócony zawsze w pewnym sensie przodem do kamery.
Drugi to obiekt tekstowy. Ten również ma liczbę stopni swobody, a ponadto alignację, automatyczne dzielenie na wiersze, podkreślenia i wszystko to, co mój zwyczajny tekst 2D. Do tego oczywiście kolor i półprzezroczystość.
Trzeci to pasek - wąski, podłużny, pokryty teksturą (opcjonalnie animowaną) i rysowany tak, żeby rozciągając się wzdłuż ścieżki wyznaczonej przez ciąg punktów wyglądał możliwie dobrze z punktu widzenia kamery. Klasy pochodne implementują różne widoczne poniżej kształty: łamana, elipsa, funkcja parametryczna oraz krzywa (dostępne są krzywe kwadratowe, Beziera i B-spline).
Zostały jeszcze efekty cząsteczkowe i cała część Indoor będzie gotowa :D
Comments | #rendering #productions #engine #gallery Share
# World Cyber Games 2007
Tue
04
Sep 2007
W sobotę, 1 września, odbyły się polskie finały World Cyber Games 2007. Byłem tam (z resztą nie sam), pokibicowałem rozgrywkom w StarCraft i właśnie wrzuciłem swoje fotki - Galeria - WCG 2007. Więcej informacji, fotek i replaye znajdziecie na Forum NetWars.
Moja strona nie działała przez ostatnie dni, bo zgodnie z wcześniejszymi zapowiedziami przenosili serwer. Potem trzeba było jeszcze wpisać nowy IP do konfiguracji DNS i poczekać aż się rozpropaguje. Przy okazji straciłem jedną notkę i kilka dni statystyk w STAT NO AD, bo skopiowali bazę danych z 29 sierpnia - ale to nic, jestem już do tego przyzwyczajony. Notkę udało się odzyskać dzięki Google Cache.
Comments | #games #events #gallery Share
# The Final Quest 7 - Co napisałem
Mon
03
Sep 2007
Zapomniałem informować o postępach w pracy, a ta idzie całkiem nieźle. 5.5 tygodnia temu z powodu "zamotania się" kodu postanowiłem napisać TFQ od nowa. Na szczęście nie wszystko - jedynie najwyższą warstwę, sam silnik.
W telegraficznym skrócie: Napisałem od nowa światła, cienie (Shadow Mapping) i materiały. Z nowych rzeczy, pojawił się podział przestrzeni (swobodne drzewo ósemkowe - Octree), pełne cienie dla świateł punktowych (na teksturze sześciennej - Cube) czy materiały półprzezroczyste (wprawdzie nie podlegają oświetleniu, ale grunt że są). Odkomentowałem też postprocessing (efekty dokładnie te same co wcześniej), a także zintegrowałem z tym wszystkim animację szkieletową. Udało się ukończyć serce silnika (czyli to miejsce, gdzie spotykają się i łączą dane od silnika, obiektu, materiału, światła, kamery i inne) zanim kod zbytnio się zamotał. Mam też własny format modeli (QMSH) i map (QMAP). Mój eksporter w Blenderze zapisuje siatkę do tekstowego formatu pośredniego, a specjalne konsolowe narzędzie (Tools) przetwarza ją do formatu docelowego, wyliczając przy tym normalne i tangenty (w tym pomaga mi NvMeshMender).
(Prawa autorskie do modelu kury posiada Krzysiek K. :)