Cg – Häufig gestellte Fragen

 
 
Cg-Programmiersprache  Plattformen  Cg Toolkit  Wer verwendet Cg?


Cg-Programmiersprache

Was ist Cg?
Cg bedeutet "C für Grafik". Cg ist eine höhere Sprache für programmierbare GPUs, entwickelt von NVIDIA in enger Zusammenarbeit mit Microsoft.

Wer pflegt die Cg-Sprachspezifikation?
NVIDIA pflegt die Cg-Sprachspezifikation und wird auch weiterhin mit Microsoft zusammenarbeiten, damit die Kompatibilität mit DirectX HLSL (High Level Shading Language) auch künftig sichergestellt ist.

Ist Cg proprietär?
Die Cg-Sprachspezifikation ist veröffentlicht und offen zugänglich in dem Sinne, dass andere Vendoren darauf basierende Produkte implementieren können. Um dies zu fördern, stellt NVIDIA die Cg-Compiler-Technologie als Open Source unter einer nicht restriktiven, freien Lizenz zur Verfügung.

Vendor-Implementierungen von Cg-Compilern sind in der Regel proprietär und Eigentum der Hersteller. NVIDIA hat den NVIDIA Cg-Compiler entwickelt und ist dessen Eigentümer. Andere Vendoren sind aufgefordert, eigene Cg-Compiler-Produkte zu entwickeln

Ersetzt Cg OpenGL?
Nein. Cg agiert auf einer OpenGL übergeordneten Ebene. Cg-Compiler geben Assemblercode in den Formaten aus, die in OpenGL-Erweiterungen definiert sind, zum Beispiel ARB_vertex_program, ARB_fragment_program und NV_vertex_program, und in dem Format, das in OpenGL 1.4 definiert ist.

Ersetzt Cg DirectX?
Nein. Cg agiert auf einer den DirectX-Vertex- und ‑Pixel-Shader-APIs übergeordneten Ebene und erstellt den nötigen Shader-Code für die Ausführung von Vertex- und Pixel-Standard-Shadern für DirectX 8.0 und DirectX 9.0.

Wo steht Cg in Bezug auf Microsoft HLSL?
Die Cg-Sprachspezifikation ist kompatibel mit Microsoft HLSL (High Level Shading Language). Cg-Shader entsprechen dem Standard des neuesten D3DX-Effekteformats von Microsoft und sind darüber hinaus vollständig kompatibel mit Microsoft HLSL.

Was ist der Unterschied zwischen der Sprache Cg und einem Cg-Compiler?
Die Sprache Cg verfügt über eine Syntax und Grammatik, die sich für Echtzeit-programmierbare GPUs eignet. Ein Cg-Compiler ist eine Anwendung, die Eingaben in der Sprache Cg akzeptiert und eine Ausgabe in einer der Standard-Assemblersprachen generiert, die von modernen, programmierbaren GPUs verarbeitet werden können.

Welche Rolle wird NVIDIA bei der künftigen Entwicklung von OpenGL spielen?
NVIDIA ist sehr an der Weiterentwicklung von OpenGL interessiert und wird aktiv zur nächsten Stufe in der Entwicklung von OpenGL beitragen. OpenGL 1.4 geht auf einen Vorschlag von NVIDIA zurück und wurde unter Leitung von NVIDIA entwickelt. Die Hauptkomponente von OpenGL 1.4 ist eine Assemblerschnittstelle zur Vertex-Hardware programmierbarer GPUs. Nach dem erfolgreichen Abschluss der Arbeiten an dieser OpenGL-Revision arbeitet NVIDIA jetzt mit dem ARB (Architecture Review Board) an der Definition und Entwicklung der nächsten Revision von OpenGL, wobei deren Hauptfunktion voraussichtlich in einer Fragment-/Pixelprogrammierbarkeit bestehen wird.

Plattformen

Welche Plattformen unterstützt der Cg-Compiler von NVIDIA?

  1. Windows (DirectX 8, DirectX 9, OpenGL)
  2. Linux (OpenGL)
  3. Mac OS X (OpenGL – Unterstützung des ARB_vertex_program nach Bestätigung durch den ARB)
  4. Xbox (mittels Offline-Compilierung von DirectX 8 Vertex und Pixel Shaders)

Wie steht es um andere Plattformen?
NVIDIA stellt Source Code für die wichtigsten Frontend-Komponenten des NVIDIA Cg-Compilers zur Verfügung, um damit eine schnelle Portierung auf alternative Plattformen zu fördern.

Wie unterstützt Cg künftige GPUs?
Cg ist auf die Unterstützung sehr hoch entwickelter programmierbarer GPUs ausgelegt und NVIDIA erwartet, dass sich Cg als Schlüsseltechnologie für den Zugriff auf und die Arbeit mit den programmierbaren GPUs der Zukunft erweisen wird, bei deren Architektur Programmierbarkeit immer stärker im Vordergrund stehen wird.

NVIDIA Cg Toolkit

Was hält NVIDIA für Entwickler bereit?
Zurzeit stellt NVIDIA Entwicklern das NVIDIA Cg-Toolkit zur Verfügung. Dieses besteht aus folgenden Komponenten:

  • NVIDIA Cg Compiler:
    • DirectX 8: Vertex- und Pixel-Shader
    • DirectX 9: Vertex- und Pixel-Shader
    • OpenGL ARB_vertex_program, OpenGL ARB_fragment_program
    • NV_vertex_program[2], NV_fragment_program
  • Cg-Sprachspezifikation
  • Cg-Standardbibliothek
  • Cg-Laufzeitbibliotheken (mit Unterstützung für DirectX 8, DirectX 9 und OpenGL)
  • Cg-Benutzerhandbuch
  • NVIDIA Cg-Browser (mit zahlreichen Beispiel-Shadern und Demos)
  • GeForce FX-Beispiel-Shader

Wird es weitere Versionen des NVIDIA Cg-Toolkits geben?
Ja. Für spätere Versionen des NVIDIA Cg-Toolkits ist Folgendes vorgesehen:

  • Stärkere Optimierung des Compilers
  • Umfassende Lernprogramme und Beispiele
  • Weitere Unterstützung der .fx-Laufzeitkompilierung

Führt der NVIDIA Cg-Compiler plattformspezifische Optimierungsfunktionen aus?
Ja. Der NVIDIA Cg-Compiler optimiert wirksam und gezielt Shader für mehrere GPU-Zielarchitekturen.

Warum funktioniert Cg nicht mit meiner alten TNT/Voodoo/Matrox-Grafikarte?
Für das NVIDIA Cg-Toolkit ist zurzeit eine programmierbare GPU erforderlich – vorzugsweise eine GPU der DirectX-8-Klasse, zum Beispiel die GeForce3 oder die GeForce4 Ti, oder eine Radeon 8500.

Wann wird es Unterstützung für Mac OS X, Xbox oder TNT geben?
Mac OS X - Achten Sie auf weitere Informationen! Xbox - DX8-Unterstützung ist jetzt bereits verfügbar. TNT - Eine Unterstützung ist nicht geplant.

Wer benutzt Cg?

Hunderte von Entwicklern unterstützen Cg:
Hunderte von Entwicklern begannen schon Ende 2001 mit Schulungen in einer früheren Version von Cg und viele von ihnen trugen selbst zur Weiterentwicklung der Sprache bei.

Zu diesen Entwicklern, die mit Cg arbeiten, gehören zum Beispiel Auran, Bethesda Softworks, Beyond Games, Bioware, Blizzard Entertainment, Cat Daddy, CodeCult, Codemasters, Contraband, Core Design, Croteam, Cryptic Studios, Crytek, Dark Black, Destineer, Electronic Arts, Elixir, EMG, Ensemble Studios, Fox Interactive, Grin, Headgate, High Voltage, Inevitable, Ion Storm, Kaboom, Kuju, Lego Media, Lionhead, Lithtech, Massive, Maxis, Nadeo, NAMCO, NemoSoft, Novalogic, Pivotal, Rage Sheffield, Relic Entertainment, Ritual, Sega-AM2 Co. Ltd., Sony Online Entertainment, SpinVector, Steel Monkeys, Valve, Vupine und andere.

Auch folgende Middleware-Entwickler unterstützen Cg:

NDL, Criterion, Intrinsic Graphics. Darüber hinaus ist Cg bei DCC-Anwendungen und ‑Tools wie zum Beispiel Alias|Wavefront Maya, Discreet 3ds max, Softimage|XSI und Deep Exploration von Right Hemisphere in die Arbeitsabläufe für die Entwicklung digitaler Inhalte integriert.





 
 
 
 
FacebookTwitterGoogle+XingPinterest