All blog entries, ordered from most recent. Entry count: 1198.
# Dlaczego FPS jest do bani
Tue
02
Oct 2007
Pesymiści narzekają, że od narysowania kilku trójkątów liczba FPS (klatek na sekudnę) spadła im z 1000 do 300. Optymiści cieszą się, że po podwojeniu liczby rysowanych obiektów ich FPS nie spadł o połowę, tylko na przykład z 60 do 50. Gdzie tkwi tajemnica?
Prawda jest taka, że FPS jako miara wydajności jest do bani. Nie żeby była nieadekwatna, ale czym właściwie jest FPS? Wyrażony w klatkach na sekundę - 1/s, czyli w Hz, to jest tak naprawdę częstotliwość wyświetlania klatek - odwrotność czasu renderowania jednej klatki. Jeśli założymy, że każdy dodatkowy obiekt wydłuża czas renderowania o 3 ms, to wraz ze wzrostem liczby obiektów liniowo wzrasta czas renderowania klatki, natomiast liczba FPS jest z nimi związana funkcją y=3/x. Oto dlaczego tak nieintuicyjne wyniki daje. Z resztą zobaczcie sami:
Comments | #math #algorithms Share
# 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.