Cg (z anglického C for graphics) je vyšší programovací jazyk pro psaní shaderů vyvinutý společností NVIDIA (od roku 2002). Syntakticky je velmi podobný jazyku High Level Shader Language (HLSL) od společnosti Microsoft.
Z důvodu možnosti dvoustupňového překladu může být pro běh zapotřebí Cg runtime (překlad programu pak probíhá i dynamicky, tj. až v době běhu aplikace pro konkrétní GPU). V této souvislosti se hovoří o cílových profilech (konkrétní verze shaderů a tedy instrukční sady).
Syntaxe jazyka Cg je odvozena od jazyka C. Mezi důležitá rozšíření jazyka patří vektorové operace, operátor swizzle, další datové typy (half, fixed, vektorové a maticové typy, sampler* typy pro textury).
Syntaxe a použití jazyka Jazyk Cg je z hlediska syntaxe i použití velmi podobný (ve spoustě aspektů identický) jazyku High Level Shader Language (HLSL) od společnosti Microsoft.
Příklad Vertex shader v Cg: // vstupní vrchol struct VertIn { float4 pos : POSITION; float4 color : COLOR0;
// výstupní vrchol struct VertOut { float4 pos : POSITION; float4 color : COLOR0;
// vstup vertex shaderu VertOut main(VertIn IN, uniform float4x4 modelViewProj) { VertOut OUT; OUT.pos = mul(modelViewProj, IN.pos); // spočítej výstupní souřadnice OUT.color = IN.color; // zkopíruj vstupní barvu do výstupní OUT.color.z = 1.0f; // modrá složka barvy = 1.0f return OUT;
Související články HLSL GLSL CUDA
Externí odkazy Tutoriál Cg Cg FAQ domovská stránka jazyka Cg
Kategorie:Programovací jazyky Kategorie:Shader jazyky Kategorie:Software pro 3D grafiku Kategorie:NVIDIA