Piękna syrenka Nalu to efekt pracy wielu programistów, wszystko po to, aby zademonstrować możliwości silnika CineFX 3.0
Microsoft DirectX 9.0 wprowadził nowe standardy w technologii cieniowania 'vertexów' i 'pixeli' - wersje 2.0 i wersje 3.0. Sprzęt zgodny z Shader Model 2.0 dostępny jest od ponad roku, w tym czasie zarówno karty i jak oprogramowanie doznało gwałtownego wzrostu. Shader Model 2.0 zawierał technologie użyteczne dla zaawansowanego oświetlenia i technik animacji, lecz był ograniczony długością i złożonością programów cieniujących, co nie pozwalało na wierne oddanie wszystkich efektów.
Gdy programiści (twórcy gier) zaczęli naciskać na ograniczenia właściwe dla jednostek Pixel Shader 2.0 i Vertex Shader 2.0, rozpoczęła się adopcja nowego, bardziej zaawansowanego Modelu Cieniowania 3.0. Oto najważniejsze różnice pomiędzy modelami 2.0 i 3.0:
Pixel Shader | Shader 2.0 | Shader 3.0 | |
Długość Shaderów | 65535+ | pozwala na złożone cieniowanie i oświetlenie | |
Dynamiczne rozgałęzienia | TAK | oszczędza wydajność przez omijanie złożonego cieniowania na nieistotnych pixelach | |
Shader anti-aliasing | nie obsługiwane | wbudowane | Deweloperzy mogą obliczyć pochodne każdej funkcji, pozwalającej im modyfikować częstotliwość cieniowania lub over-sampling w celu eliminowania artefaktów |
rejestry Back-face | TAK | pozwala na dwustronne oświetlenie w jednym przejściu | |
interpolowany format koloru | 8-bitowy | 32-bitowy | wyższy zakres i precyzja koloru pozwala na bardzo dynamiczną skalę cieniowania i oświetlenia |
Multiple render targets | opcjonalnie | 4 wymagane | pozwala wyższym algorytmom oświetlenia zaoszczędzić filtrowania i pracy vertex'ów - innymi słowy więcej świateł mniejszym kosztem |
mgła i rozbłyski | do wyboru | Shader Model 3.0 daje deweloperom pełną i precyzyjną kontrolę nad obliczeniami rozbłysków i mgieł - przedtem funkcja stała | |
Licznik koordynat tekstur | 10 | więcej danych na-pixel pozwala na bardziej realistyczny rendering, w szczgólności skóry |
Vertex shader | Shader 2.0 | Shader 3.0 | Description |
Długość Shaderów | 256 | 65535 | więcej instrukcji pozwala na bardziej szczegółowe postacie, oświetlenie i animacje |
Dynamiczne rozgałęzienia | TAK | oszczędza wydajność przez omijanie złożonego cieniowania na nieistotnych wektorach | |
Tekstury Vertex | do 4 tekstur | pozwala na 'mapowanie przemieszczeń' | |
obsługa 'Instancing' | wymagane | umożliwia rysowanie wielu urozmaiconych obiektów tylko przy wykorzystaniu pojedynczego polecenia. |
Szczegółowe informacje na temat Shader Model 3.0 zamieściła na swojej stronie firma Microsoft.
Trzeciej generacji silnik Cine FX, w skład którego wchodzą Vertex Shader 3.0 i Pixel Shader 3.0, daje przede wszystkim pełną zgodność z standardem cieniowania Microsoft zawartym w najnowszym DirectX 9.0c. To duża technologiczna przewaga na konkurencyjnym R420 firmy ATi, który pozostał na poziomie zgodności ze specyfikacją Cieniowania 2.0.
Jak czytamy w dokumentacji nVidii, CineFX 3.0 daje bardzo dużą swobodę programistom i twórcom programów cieniujących, likwidując narzucony do tej pory przez sprzęt, limit w długości programów vertexowych i pixelowych.
- Nieskończona długość programów cieniujących
- Dynamiczna kontrola przebiegu
- Displacement mapping
- Rozdzielanie strumieni vertexów
- technologia Multiple Render Target (MRT)
Z naszego punktu widzenia, 'zwykłych' użytkowników tych kart, których interesuje wyłącznie ostateczny efekt, czyli ładne efekty 3D i dobra wydajność, wszystkie te informacje o nieskończonej długości i wyższej precyzji programów cieniujących, dynamicznej kontroli przepływu, pętlach, rozgałęzieniach, etc etc, mogą być jeśli nie niezrozumiałe, to nieco przynudnawe i niepotrzebne. Zatem mówiąc już językiem jak najbardziej prostym: CineFX 3.0 oferuje wszystko co ma pomóc programistom w sposób szybki i wygodny pisać gry, które na ekranie naszych monitorów (przy wykorzystaniu odpowiednich kart rzecz jasna) będą wyglądać jak to wspaniałe demko z syrenką. Więcej technicznych informacji na temat CineFX 3.0 znajdziecie w dokumencie Technical Brief: CineFX 3.0.