Entries for tag "directx", ordered from most recent. Entry count: 93.
# Wielbłądy
Sun
11
Mar 2007
Spędziłem wczoraj pół dnia na walce z dwoma wyjątkowo wrednymi błędami. Jednym z nich był błędny odblask specular - latał po powierzchni bez ładu i składu mimo że siatka była dobra i wzory na obliczenia też. Okazało się, że wektorów przekazywanych do pixel shadera, takich jak wektor kierunku do światła czy wektor połówkowy, nie należy w vertex shaderze normalizować. Heh, kto by na to wpadł nie wiedząc o tym wcześniej?
Drugi błąd sprawiał, że w pewnych bliżej nieokreślonych warunkach (ustawienia trybu graficznego, ilość renderowanej geometrii) niektóre obiekty znikały albo straszliwie migały pokazując się lub nie pokazując w poszczególnych klatkach. Najwidoczniej sterownik/karta nie czekała na opróżnienie kolejki przed zaprezentowniem danej klatki. Pomogło użycie IDirect3DQuery9 typu D3DQUERYTYPE_EVENT lub też - bardziej radykalnie - blokowanie i odblokowanie back buffera przed wywołaniem Present.
Tego rodzaju problemy i ich pokonywania (samemu czy z czyjąś pomocą - pozdro Krzysiek K.!) sprawiają, że takie programowanie wzbudza szeroki wachlarz skrajnych emocji. Podłoże matematyczne okazuje się być tylko podstawą i jego zrozumienie nie gwarantuje, że wszystko zadziała dobrze. A przecież na tym nie koniec - na jeszcze wyższym poziomie czeka problem sensownego zorganizowania całego programu, żeby to z czego się składa było jakoś poukładane, a nie tworzyło wielkiej kuli błota.
Comments | #rendering #directx Share
# Fixed Pipeline Lighting Demo
Wed
07
Feb 2007
Fixed Pipeline Lighting Demo to moja najnowsza produkcja. Właściwie nic konkretnego, a jedynie pokaz aktualnego kodu, który udostępniam z prośbą o przetestowanie. Chcę się przekonać, czy zgodnie z założeniami zadziała także na starym sprzęcie klasy GeForce 2, GeForce 3, GeForce 4 MX i Ti, ich odpowiednikach firmy ATI czy na zintegrowanych, laptopowych intelach - słowem na kartach, które nie mają Vertex Shader 2.0. Po pobraniu dema proszę zapoznać się z plikiem Readme.txt
.
Przy okazji: Wygląda na to, że po chwilowej awarii mojego konta (zamiast strony było napisane, że konto jest zawieszone) strona przestała działać tak wolno jak to było od pewnego czasu i teraz działa już bardzo sprawnie.
Comments | #rendering #productions #directx Share
# IDirect3DQuery9
Sun
14
Jan 2007
Dzisiaj tych wszystkich niekoniecznie początkujących którzy używają Direct3D chciałem zainteresować zapytaniami - queries. Są to zasoby tworzone metodą CreateQuery
urządzenia D3D. Reprezentują zapytania zadawane do karty graficznej i wykonywane w sposób asynchroniczny. Wywołujemy takiemu zapytaniu Issue(D3DISSUE_BEGIN)
(nie wszystkie tego wymagają), rysujemy coś, wywołujemy Issue(D3DISSUE_END)
, następne sprawdzamy wynik funkcji GetData
i jeśli ten oznacza sukces, otrzymujemy natychcmiast dane zwrócone przez zapytanie.
Zapytania mogą być różnego rodzaju. Te ciekawsze to OCCLUSION
pozwalające realizować to słynne sprzętowe Occlusion Query, czyli szybki test zasłaniania jednych obiektów przez inne. EVENT
z kolei pozwala poczekać na zakończenie wszystkich wykonywanych w tle operacji graficznych, co rzekomo miałoby wyeliminować skakanie animacji dające o sobie znać w trybie okienkowym - mnie niestety nie pomogło.
Inne zapytania zwracają struktury pełne liczb z różnymi statystykami wewnętrznej pracy karty graficznej. Niestety większość z nich nie jest supported w moim systemie - widocznie albo GeForce 6600 GT to jest już złom a nie karta graficzna, albo trzebaby się przełączyć na DirectX-a w wersji Debug zamiast Retail (chociaż dokumentacja w SDK mówi że większość z nich działa w obydwu).
Więcej na ten temat możecie przeczytać w DirectX SDK, w rozdziale zatytułowanym Queries
.
Comments | #rendering #directx Share
# Mój kurs Direct3D
Thu
21
Dec 2006
Już od dłuższego czasu można było znaleźć na mojej stronie informacje o tutorialu dotyczącym biblioteki Direct3D, który napisałem dla magazynu WARP. Jest to dość obszerny, 6-częściowy tekst, zorientowany głównie na naukę pisania dobrego frameworka aplikacji D3D oraz grafiki w zakresie potrzebnym do programowania z jego użyciem gier 2D. Jednak tym którzy chcą kodzić grafikę 3D też może się przydać jako pewien wstęp do tematu, opisujący te początkowe kwestie nieco chyba dokładniej niż najlepszy IMHO dostępny w polskiej Sieci tekst na ten temat (z którego sam się uczyłem) - tutorial Robala.
Wspominam o tym teraz, bo tak się składa, że w dziale Download na stronie magazynu można znaleźć dostępne za darmo do pobrania wszystkie numery, w których ukazały się poszczególne części mojego tekstu. Zachęcam do przejrzenia.
Comments | #directx #rendering #productions Share
# CardCaps.xsl
Mon
19
Jun 2006
Wiadomość dla wszystkich, którzy programują w DirectX-ie: pośród różnorodnych plików i programów jakie wchodzą w skład SDK, Microsoft ukrył prawdziwą perełkę. Ukrył ją tak skutecznie, że sam nie wiem odkąd tam była i dopiero niedawno ją odkryłem. Tymczasem jest zdecydowanie godna uwagi. Dlatego chciałem podzielić się tym znaleziskiem.
Mowa o pliku mieszczącym się w DXSDK\Samples\C++\Direct3D\ConfigSystem\CardCaps.xls
. To arkusz Excela, który zawiera bardzo ładnie spisane (choć może nienajwygodniejsze w przeglądaniu) "capsy" Direct3D. Może skutecznie konkurować ze stroną Direct3D Caps - Chris Dragan's Corner.