C dla grafiki

Programowanie efektów w najnowszych kartach graficznych było do tej pory zajęciem żmudnym i czasochłonnym. Czy język nVidia Cg ma szansę zmienić ten stan rzeczy?

Przełom ukrywał się za tajemniczymi nazwami: Vertex i Pixel Shader. Bardzo obrazowo mówiąc, są to jednostki procesora karty graficznej realizujące malutkie podprogramiki odpowiedzialne za jeden efekt graficzny. Dzięki temu, że obróbką tych fragmentów kodu nie musi się zajmować główny procesor komputera, zyskujemy jednocześnie większą szybkość wyświetlania sceny 3D oraz wzrost jej złożoności. Nieliczni swego czasu szczęśliwcy mogli obserwować te efekty w zapierającym dech w piersiach demie Nature

– części znanego programu do mierzenia wydajności kart graficznych 3DMark 2001.

     Jak to jednak często bywa, od wprowadzenia jakiejś technologii do jej pełnego wykorzystania droga daleka. Twórcy gier komputerowych

– do nich to bowiem głównie adresowane były te wynalazki – patrzyli na nie niezbyt przychylnym okiem. Po pierwsze dlatego, że ogromna większość graczy nie miała jeszcze najnowszych kart graficznych

– nadal Vertex i Pixel Shadery wyświetlać mogą jedynie karty GeForce3 i 4 Ti oraz Radeony od modelu 8500 w górę. Jest ich wprawdzie coraz więcej, jednak wciąż nie dominują one w domowych komputerach. Po drugie

– i o wiele ważniejsze – programowanie shaderów było po prostu trudne! Przypominało niezwykle pracochłonne

"dłubanie" w asemblerze. Pojawiła się zatem potrzeba opracowania języka wyższego poziomu. Tak powstał nVidia Cg.

     Już nazwa wyjaśnia wiele – oznacza "C for

graphics". Cg jest więc językiem wyższego poziomu do programowania procesorów graficznych, podobnie jak C służy do pisania programów dla zwykłych CPU. Cg oczywiście nie zastępuje DirectX ani OpenGL

– wykorzystuje tylko instrukcje tych API. Specyfikacja tego języka jest ogólnie dostępna i każdy producent kart graficznych może opracować własny jego kompilator (na razie

– co zrozumiałe – osiągalny jest tylko kompilator firmy nVidia). Cg jest również międzyplatformowy

– w tej chwili można go wykorzystać w systemie Windows (do programowania w DirectX 8.0, 9.0 oraz OpenGL), Linuksie (OpenGL) oraz Mac OS-ie X, a także do tworzenia gier dla konsoli Xbox.

     Na razie twórcy gier wypowiadają się o nVidia Cg w samych superlatywach. Podkreślają, że znacznie ułatwi im oraz przyśpieszy tworzenie gier wykorzystujących najnowsze akceleratory, a co za tym idzie

– zaimplementowanie skomplikowanych efektów graficznych. Jednak na skutki wprowadzenia nowego języka przyjdzie nam jeszcze poczekać. Jedno jest za to pewne

– jeśli nie chcemy zatrzymać się na graficznym poziomie Quake’a 3, trzeba powoli zacząć myśleć o zakupie nowoczesnej karty graficznej.

0
Zamknij

Choć staramy się je ograniczać, wykorzystujemy mechanizmy takie jak ciasteczka, które pozwalają naszym partnerom na śledzenie Twojego zachowania w sieci. Dowiedz się więcej.