Cg (programovací jazyk)
Vývojář | NVIDIA, microsoft |
---|---|
Dialekty | Cg, HLSL, Playstation Shading Language |
Ovlivněn jazyky | C , RenderMan Shading Language |
Ovlivnil jazyky | GLSL |
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
Externí odkazy
- (anglicky) Tutoriál Cg
- (anglicky) Cg FAQ
- (anglicky) domovská stránka jazyka Cg
![]() | Tento článek je příliš stručný nebo postrádá důležité informace. Pomozte Wikipedii tím, že jej vhodně rozšíříte. Nevkládejte však bez oprávnění cizí texty. |