Laptop i sterowniki do GeForce? Cuda!

26.08.2008 20:48 in devblog

Z kartami graficznymi w laptopach jest spory problem. A nawet jeżeli nie z kartami, to ze sterownikami do nich. NVidia regularnie produkuje coraz bardziej wypasione sterowniki do swoich kart graficznych, ale posiadacze mobilnych GeForce muszą obejść się smakiem -- rzeczone sterowniki odmawiają instalacji. A podobno wszystkie te karty są kompatybilne...

I w gruncie rzeczy są. Owa niekompatybilność wynika tylko z zapobiegawczej polityki NVidia, która nakazuje instalację sterowników dostarczonych przez producenta laptopa. A co zrobić, jeżeli producent sterowników nie aktualizuje, bądź każe przeglądać tajwańskie strony w poszukiwaniu sekcji ,,Download''?

Dotychczas metoda była w zasadzie jedna -- zmodyfikować plik INI, aby instalator przymknął oko na naszą ,,nieślubną'' kartę graficzną. Ale NVidia niedawno wypuściła nowy toolkit do CUDA, które ma w swoich wymaganiach karty GeForce z serii 8 lub lepszej. Mobilne też. Brzmi jak haczyk, prawda? No bo bez nowych sterowników przecież żadnych cudów nie będzie. Ale czeka nas zaskoczenie!

NVidia przygotowała specjalną wersję sterownika, która nie dość, że obsługuje CUDA, to jeszcze obsługuje mobilne karty graficzne bez żadnego grzebania z plikach INI. Cuda, prawda? W dodatku nowe sterowniki posiadają pewien bardzo przydatny dodatek -- kartę w panelu sterownia, w której możemy ustalić reakcję karty na rozdzielczość inną niż natywna rozdzielczość monitora. Jedną z możliwości jest skalowanie obrazu za pomocą GPU z uwzględnieniem proporcji obrazu. Z czarnymi paskami po bokach o wiele lepiej gra się w stare gry, nawet, jeżeli nadal są rozmazane do nieprzytomności...

Magia singletonów

12.08.2008 13:37 in programowanie

Ze smutkiem stwierdziłem, że pisząc silnik grafiki 3D padłem ofiarą nieprzemyślanych wzorców projektowych. Mówię tu o zastosowaniu singletonów do większości elementów silnika. Pisząc takowy, nie powinniśmy się martwić o skomplikowane zależności między klasami czy wielokrotną enkapsulację, a raczej o szybkość działania. Z tego powodu czasem warto, aby jedna klasa mogła po prostu wywołać sobie funkcję innej klasy. A ponieważ w grze wideo z definicji większość klas ma tylko jeden egzemplarz (klasy systemów: graficznych, fizycznych, etc), to ,,upiększenie'' kodu przez singletony samo się prosi. Zobaczmy:

void CPlayer::Hurt()
{
  CGame::DecreaseLives();
  CHUD::NotifyUpdate();
  CSound::PlaySound("hurt", GetPosition());
}

I tak dalej, i tak dalej. Fajnie jest operować na klasach, korzystając po prostu z NazwaKlasy::, ale zadajmy sobie pytanie: za jaką cenę? Singletony zaimplementowałem u siebie mniej więcej w taki sposób:

Read more...

Uczmy się sercem...

11.08.2008 23:32 in życie

Takie słowa wypowiedziane przez Anglika, Polak skwitowałby: chyba na pamięć! I -- gdybyśmy chcieli pozostać przy dosłownym tłumaczeniu -- to tym razem nasi byliby górą. Niestety.

Gdy chodziłem do gimnazjum i liceum, nauka różnych treści na pamięć była dla mnie zawsze straszną mordęgą. Cóż jednak można było zrobić? ,,Wszystko można zrozumieć...'', mógłby ktoś rzec. Prawda i nieprawda. Czasem materiału do nauki jest bowiem tak dużo, a dependencies sięgają tak głęboko, że gdyby człowiek chciał go całego objąć rozumem, to musiałby najpierw skończyć kilka uniwersytetów. Czasem natomiast to, czego od nas wymagają do nauki jest tak chaotyczne i nielogiczne, że innej metody zakuwu nie ma. No bo kto zrozumie genezę wszystkich czasowników mocnych w języku niemieckim?

Nie ma co jednak płakać nad losem biednej młodzieży szkolnej. Każdy w końcu kiedyś kończy szkołę (albo ze szkołą) i wydawać by się mogło, że wtedy jego cierpienia z nauką na pamięć się kończą. No cóż, trzeba rzec znów: prawda i nieprawda...

Read more...