Wpisy z tagiem ‘C#’

Używanie Parallel Extensions z .NET 4.0 (2010-11-22)

W trakcie rozwijania algorytmów na potrzeby pracy magisterskiej pojawiło się zapotrzebowanie na zdecydowane przyspieszenie jednego z nich. Algorytm polegał na liczeniu pewnych własności dla każdego punktu regularnej siatki. Zrównoleglenie było naturalnym rozwiązaniem, ponieważ elementy nie zależały od siebie nawzajem. Zdecydowałem się na użycie Parallel Extensions (Wiki, MSDN) ze względu na prostotę. Przedstawię szkielet rozwiązania, które […]

Graf sceny (2010-10-7)

Kolejną ze struktur danych, jakie przydadzą się podczas tworzenia gry, jest graf sceny. Graf sceny będzie grafem dość specyficznym (acyklicznym i spójnym), co w teorii sprowadzi go do drzewa.

ThemeFestival na wybiegu, czyli modele (2010-9-25)

Wszystko, co chcemy w grze zobaczyć, z czym ma następować interakcja trzeba jakoś narysować. Natomiast wszystko, co chcielibyśmy narysować składa się z trójkątów – to dla tego prymitywu graficznego dostępne jest od lat sprzętowe wsparcie rysowania, wypełniania kolorem i teksturowania. Bez obaw, nie porywam się na ręczne tworzenie całej graficznej zawartości gry i potem ręczne […]

[XNA] Kamera FPP (2010-9-11)

Bardzo ważnym elementem gry jest kamera. Można ją sobie rzeczywiście wyobrazić jako kamerę przekazującą obraz z konkretnego miejsca sceny, pod odpowiednim kątem i wysyłającą obraz na ekran. Pod spodem siedzi jednak kilka macierzy. Każdy wierzchołek jest przez te macierze mnożony, a finalnym wynikiem jest pozycja (ważne, dwuwymiarowa) na ekranie.

Osadzanie XNA 4.0 w Windows Forms (2010-9-8)

XNA 4.0 jest bardzo przyjemnym frameworkiem do programowania gier: ma bogatą bibliotekę matematyczną, kilka predefiniowanych efektów (shaderów), dzięki którym można po krótkiej chwili zobaczyć efekt swojej pracy na ekranie. Brakuje jej natomiast bardzo według mnie istotnego elementu, jakim jest biblioteka do obsługi graficznego interfejsu użytkownika (Graphical User Interface, dalej będę posługiwał się skrótem GUI). Z […]

Generyczna klasa zbioru (2010-7-23)

W projekcie, nad którym pracuję potrzebowałem przyzwoicie działającej klasy reprezentującej zbiór. Zbiór nie do końca w sensie teoriomnogościowym (o właściwościach takiego można przeczytać np. tu), posiadający jedną bardzo ważną cechę: przechowywanie unikalnych elementów.

Short Tip #09: GetHashCode() dla wektora (2010-7-19)

Specyfika pewnej części projektu, nad którym obecnie pracuję wymagała zastosowania tablicy haszującej. Struktury danych, które są przechowywane w tablicach (jedna tablica na typ) wyglądają następująco: Okazało się, że metoda GetHashCode() domyślnie wygenerowana przez IDE dla klasy Vector3 jest niewystarczająca – błędy pojawiły się już przy próbie wczytania wierzchołków, krawędzi i trójkątów prostego sześcianu. Chwila zastanowienia […]

SRP – Single Responsibility Principle w praktyce (2010-7-15)

O Single Responsibility Principle, pierwszej zasadzie S.O.L.I.D.-nego oprogramowania napisano sporo, jednak prawie wszystkie artykuły, które czytałem odnosiły się do tematu od bardzo teoretycznej strony. Poniżej przedstawiam jak najbardziej „produkcyjne” zastosowanie SRP, które powstało przy pisaniu części aplikacji odpowiedzialnej za ładowanie prostych modeli z formatu OBJ.

Short Tip #08: problem z gl.h (2010-6-23)

Nagłówki biblioteki OpenGL, jak wiadomo, są dołączane do każdego kompilatora. Do tej pory działały bez zarzutu, tym większe było moje zdziwienie, gdy przy wczorajszej próbie kompilacji pewnego open-source’owego projektu oczom moim ukazało się to: Z 2289 błędów kompilacji, 2288 kierowało mnie właśnie do pliku gl.h Po chwili googlania rozwiązanie okazało się trywialne:

Short Tip #07: C# i "?" po raz kolejny (2010-5-25)

W jednej z notek z serii „Short Tip” pisałem o użyciu operatorów ? i ??. Tym razem znak zapytania pojawi się w innym kontekście. Pierwsze założenie (plus wyjaśnienie, tak na wszelki wypadek): zakładam, że znane są pojęcia (i rozróżnienie na) Value types i Reference types. W dużym skrócie: Value types (czy „typy wartościowe” to dobre […]