Zum Hauptinhalt Zur Navigation

Cg - NVidia liefert Compiler für Vertex- und Pixel-Shader

NVidia-CEO: "Cg wird das für GPUs tun, was C und C++ für CPUs getan haben". Nachdem Microsoft in seiner offiziellen DirectX-9-Ankündigung bereits eine High Level Shader Language (HLSL) ankündigte, hat der an der Entwicklung beteiligte Grafikchiphersteller NVidia nun seine dazu 100 Prozent kompatible "C for graphics" (Cg) genannte Sprache und einen ersten Compiler vorgestellt. Cg soll die Programmierung und insbesondere das volle Ausreizen der verschiedenen Hardware-basierten Pixel- und Vertex-Shader nicht nur unter DirectX 9.0 vereinfachen. Das Ergebnis sollen – je nach Grafikhardware – deutlich realistischere 3D-Grafiken und -Effekte sein.
/ Christian Klaß
Kommentare News folgen (öffnet im neuen Fenster)

Cg soll Entwicklern eine neue Abstraktionsstufe bieten, die eine direkte Programmierung der Grafikhardware unnötig machen. Die bekannte C-ähnliche Syntax soll eine schnelle, Hardware-unabhängige Entwicklung von Echtzeit-Shadern und visuellen Effekten für Spiele und andere 3D-Inhalte ermöglichen. Ein auf verschiedene 3D-Hardware anpassbarer Compiler übernimmt dabei die Optimierung auf und Kompilierung für die jeweilige Grafikhardware, wobei die erreichte Leistung im Vergleich mit selbst programmiertem Assembler-Code vergleichbar oder besser sein soll. Das im Gegensatz zu Microsofts HLSL plattformübergreifende Cg unterstützt neben Windows und Xbox auch MacOS X und Linux sowie – je nach Plattform – DirectX 8/9 und/oder OpenGL.

Bisher mussten Entwickler Vertex- und Pixel-Shader-Effekte direkt in Maschinensprache programmieren, was insbesondere auf Grund der Unterschiede der verschiedenen Hardware-Umsetzungen die Entwicklung verlangsamt. Microsofts HLSL und NVidias Cg sollen hingegen eine schnellere Entwicklung und Wiederverwendung von Shadern ermöglichen – und so auch deren Nutzung fördern. NVidia-CEO Jen Hsun Huang bezeichnet die Einführung von Cg als einen bedeutenden Meilenstein für die Computergrafikindustrie, da sie diese einen großen Schritt in Richtung 3D-Fotorealismus voranbringen würde. "Cg wird das für GPUs tun, was C und C++ für CPUs getan haben" , verspricht Jen Hsun Huang. Die Spieleindustrie soll von den Möglichkeiten begeistert sein und viele Entwickler würden bereits an einer Cg-Unterstützung arbeiten.

NVidia belässt es nicht bei der Ankündigung und hat auf der momentan stattfindenden Spieleentwickler-Veranstaltung "The Gathering 2" bereits die erste Betaversion seines Cg Toolkit vorgestellt. Darin enthalten sind ein Cg Compiler, ein Cg Browser, Informationen über das CgFX-Dateiformat, eine Cg-Standard-Bibliothek, eine Dokumentation und eine Sammlung von fertigen, frei verwendbaren Cg-Shadern für die Spieleentwicklung bis hin zum Computer-Aided Design (CAD). Das Cg Toolkit steht zum kostenlosen Download unter developer.nvidia.com/cg(öffnet im neuen Fenster) zur Verfügung gestellt werden, dort finden sich auch Cg-Informationen und -Schulungen.

Update: Die Beta-Version des Cg Compiler unterstützt sowohl GeForce3/4-Ti-basierte Grafikkarten (per Vertex-/Pixel-Shader Version 1.3) als auch Radeon-8500-basierte Grafikkarten, nutzt allerdings bei letzteren nur die Vertex- und Pixel-Shader-Version-1.1-Instruktionen. Hier ist nun ATI gefordert, selbst die Unterstützung für die eigenen 1.4-Shader bereit zu stellen. Derzeit können mit dem Compiler Vertex-Shader-Programme für DirectX 8 und OpenGL 1.3 sowie Pixel-Shader-Programme nur für DirectX 8 entwickelt werden. Die kommende Version 2.0 des Cg Toolkit soll diese Beschränkungen aufheben und zudem DirectX 9 und das in der Entwicklung befindliche OpenGL 1.4 unterstützen sowie verschiedene Plug-Ins für 3D-Grafikprogramme und weitere fertige Shader-Programme mit sich bringen.

Da NVidia "Cg" als Standard durchsetzen will, was dank der engen Kooperation mit Microsoft und der Kompatibilität zur HLSL von DirectX 9 wohl erfolgreich sein dürfte, lässt sich der Compiler auch an künftige NVidia-Hardware sowie Grafikprozessoren anderer Hersteller anpassen. Dazu sollen zumindest Teile des Compilers als Open Source zur Modifikation durch Dritte freigegeben sein. Die Hardware-unabhängigen Cg-Shader-Programme müssen dann nur neu kompiliert werden, um die jeweilige Grafikhardware optimal auszunutzen.


Relevante Themen