September 2007

Uwaga! Informacje na tej stronie mają ponad 3 lata. Nadal je udostępniam, ale prawdopodobnie nie odzwierciedlają one mojej aktualnej wiedzy ani przekonań.

00:24
Sun
30
Sep 2007

Niebo skończone

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 (0) | Tags: rendering video gallery engine productions | Author: Adam Sawicki | Share

12:34
Sat
29
Sep 2007

Kuriozalny filtr graficzny

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 (0) | Tags: algorithms rendering graphics tools | Author: Adam Sawicki | Share

23:50
Fri
28
Sep 2007

Niebo #2

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 (0) | Tags: rendering gallery productions engine | Author: Adam Sawicki | Share

23:17
Thu
27
Sep 2007

It's a Big Sky!

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 (0) | Tags: rendering gallery engine productions | Author: Adam Sawicki | Share

21:21
Mon
24
Sep 2007

Hello Scene !

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 (0) | Tags: demoscene c++ rendering | Author: Adam Sawicki | Share

22:01
Fri
21
Sep 2007

Napisałem teren

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 (0) | Tags: rendering gallery productions engine | Author: Adam Sawicki | Share

19:41
Wed
19
Sep 2007

Własne słowa kluczowe w Visual C++

Chcesz, żeby edytor w Visual C++ podświetlał jakieś twoje dodatkowe identyfikatory jako słowa kluczowe? Da się zrobić. Wystarczy:

  1. Zlokalizować katalog, w którym masz zainstalowany Visual.
  2. Wejść do podkatalogu Common7\IDE.
  3. Utworzyć tam plik tekstowy o nazwie usertype.dat.
  4. Wpisać do tego pliku jeden pod drugim identyfikatory, które chcesz podświetlić.

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 (0) | Tags: visual studio c++ | Author: Adam Sawicki | Share

15:35
Sun
16
Sep 2007

Dev.Mag and others

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?

Comments (3) | Tags: web | Author: Adam Sawicki | Share

18:53
Thu
13
Sep 2007

Skrypty do www.gamedev.pl

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 (0) | Tags: warsztat web | Author: Adam Sawicki | Share

16:10
Thu
13
Sep 2007

Wszystkiego najlepszego wszystkim programistom

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.

Comments (0) | Tags: events | Author: Adam Sawicki | Share

21:09
Tue
11
Sep 2007

Dziwne atraktory

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).


[http://fl-tw.com/Infinity/]

Comments (0) | Tags: rendering graphics math web fractals | Author: Adam Sawicki | Share

13:53
Sat
08
Sep 2007

Książki do matematyki

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 (0) | Tags: math literature | Author: Adam Sawicki | Share

19:04
Fri
07
Sep 2007

Efekty cząsteczkowe

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 (0) | Tags: gallery productions rendering engine | Author: Adam Sawicki | Share

23:02
Wed
05
Sep 2007

Encje specjalne

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 (0) | Tags: rendering productions engine gallery | Author: Adam Sawicki | Share

10:06
Tue
04
Sep 2007

World Cyber Games 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 (0) | Tags: games events gallery | Author: Adam Sawicki | Share

22:52
Mon
03
Sep 2007

The Final Quest 7 - Co napisałem

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. :)

Comments (0) | Tags: rendering gallery engine productions | Author: Adam Sawicki | Share

STAT NO AD [Stat] [Admin] [STAT NO AD] [pub] [Mirror] Copyright © 2004-2017 Adam Sawicki
Copyright © 2004-2017 Adam Sawicki