sobota, 27 sierpnia 2011

O grach mobilnych

Ostatnio jadąc samochodem jako pasażer z nudów postanowiłem pograć na telefonie w celu zabicia czasu. Próbując przejść kolejny poziom naszły mnie myśli na temat mobilności gier na nowsze telefony komórkowe.

wtorek, 10 maja 2011

Deferred shading

Deferred shading albo inaczej deferred rendering (po naszemu rendering odroczony) jest alternatywną techniką renderowania sceny 3D z oświetleniem.

niedziela, 24 kwietnia 2011

OpenCL - OpenGL Interopt

Ostatnio poznawałem podstawy OpenCL i kłopot sprawiło mi połączenie z OpenGL tak aby w zapisać wynik obliczeń w sposób łatwy i wygodny do wyświetlenia. Przyznam się, że miałem problem ze znalezieniem informacji jak to powinno wyglądać, jednak ostatecznie korzystając z doświadczenia z CUDA udało mi się to przy pomocy Pixel Buffer Object.

niedziela, 20 marca 2011

Ciekawostki

Ostatnio piszę w XNA (ze względu na studia) i chciałem  podzielić się kilkoma rzeczami których się dowiedziałem w trakcie (większość nie jest związana z XNA).

niedziela, 13 marca 2011

Debugger ważna rzecz

Debugger jest niezwykle przydatnym narzędziem w czasie programowania (z czym myślę, że każdy się zgadza). Jak sama nazwa wskazuje pozwala on wychwycić błędu (te z gatunku trudnych do odnalezienia). Oczywiście w wypadku braku debuggera zawsze można wypisywać komunikaty na standardowe wyjście, jednak jest to metoda niewygodna i znacznie bardziej czasochłonna.

niedziela, 6 marca 2011

Kolejny semestr

Od 28 lutego skończyły mi się ferie i rozpoczął kolejny semestr na uczelni. Pierwszy tydzień pozwolił na rozeznanie się jak będzie wyglądała moja nauka przez najbliższe 14 tygodni. Muszę przyznać, że ten semestr różni się diametralnie od poprzednich i zapowiada się intensywnie.

poniedziałek, 21 lutego 2011

Lisp - obsługa błędów

Jak po poprzednim wpisie wiadomo, ostatnio zajmuje się nauką Lispa. Aktualnie zajmuje się jeszcze czytaniem książki Practical Common Lisp którą mam zamiar w tym tygodniu skończyć i napisać coś ciekawego (zastanawiam się jeszcze co ale mam pewne pomysły). W tym wpisie postanowiłem natomiast opisać (raczek pobieżnie) mechanizm obsługi błędów w Lisp.

niedziela, 13 lutego 2011

Lisp - początki

W celu rozwoju osobistego postanowiłem nauczyć się jakiegoś nowego języka programowania. Oczywiście aby nie było za łatwo postanowiłem wybrać język o innej składni i paradygmacie niż obecnie znane mi języki (które są C-podobne). Ostatecznie zdecydowałem się na Lisp (a tak dokładniej to dialekt Common Lisp).

Dlaczego akurat Lisp?

niedziela, 6 lutego 2011

C++ 0x co fajnego już działa?

C++ używany jest od 1983 roku. Obecnie wciąż obowiązuje standard z 1998 (z drobnymi poprawkami z 2003), jednak od jakiegoś czasu opracowywana jest kolejna wersja standardu mającą dostosować (chociaż trochę) ten język do obecnych standardów definiowanych przez coraz bardziej (tak właściwie to co raz bardziej od co najmniej kilku lat :P) innych języków wysokopoziomowych (których nazwy każdy sobie sam po cichu dopowie).

Nowa wersja standardu aktualnie nazywana jest C++ 0x (0x jest oznaczeniem roku w którym standard miał wyjść) jednak ta nazwa przeterminowała się wraz z nadejściem 1 stycznia 2010 roku :). Jednak aby nie siać zamętu zamiast C++ 1x wciąż najczęściej stosuje się nazwę C++ 0x.

niedziela, 30 stycznia 2011

Dźwięki systemowe Windows

O istnieniu dźwięków systemowych i możliwości ich zmiany poprzez Panel Sterowania zna każdy trochę bardziej świadomy użytkownik systemów Microsoftu. Trochę mniej zdaje sobie sprawę, że ten mechanizm może zostać wykorzystany przez inne programy poza systemem operacyjnym.

Obsługa domyślnie istniejących dźwięków systemowych jest banalna i wymaga użycia funkcji PlaySound z WinApi (wymaga dołączenia biblioteki Winmm.lib). Przykładowo aby odegrać systemowy dźwięk błędu (asynchronicznie):
PlaySound(TEXT("SystemExclamation"), NULL, SND_ALIAS | SND_ASYNC);

niedziela, 23 stycznia 2011

Programowanie karty graficznej - shadery

Początkowo w tytuł miał brzmieć tylko "Programowanie karty graficznej" jednak od jakiegoś czasu (kilku lat właściwie) taki tytuł jest niejednoznaczny. Pod terminem programowanie karty graficznej kryje się zarówno pisanie shaderów w ramach programowalnego potoku renderingu jak i użycie technologii takich jak CUDA, OpenCL i DirectCompute (czyli wykorzystanie mocy obliczeniowej karty graficznej do dowolnego zadania). Tym razem zajmę się pierwszym zagadnieniem czyli tym do czego karty graficzne powstały.

niedziela, 16 stycznia 2011

Debugowanie zdalne w Visual Studio 2010

Debugowanie zdalne jest to kolejny przydatny bajer w Visual Studio (niestety wymaga wersji co najmniej pro ale od czego jest DreamSpark i MSDNAA :) ). Czasami pisząc program może się okazać, że wysypuje się na innej wersji systemu, nasz komputer służący do programowania nie obsługuje jakiejś technologii albo debugowanie programu na innym komputerze to jedyna wygodna opcja (jest tylko jeden monitor a nie możliwe jest wygodne rozłożenie oka programu i IDE) wtedy właśnie przydaje się zdalne debugowanie (Remote Debugging). W wypadku Visual Studio całość jest banalnie łatwa do skonfigurowania.

niedziela, 9 stycznia 2011

openFrameworks - kreatywne programowanie

Creative coding - czyli w wolnym tłumaczeniu "kreatywne programowanie". To pojęcie jest niezwykle obszerne, jednak wiąże się zazwyczaj z ciekawym użyciem grafiki, dźwięku itp. Dlatego niezwykle istotnym dla procesu takiego pisania jest skupienie się na tym co ma robić i jak ma wyglądać a nie na "ujarzmieniu" API. Z tego powodu powstają specjalnie w tym celu napisane biblioteki aby można było kreatywnie programować nie przejmując niskopoziomowymi detalami.