Cg (programspråk)
Utseende
Den här artikeln behöver källhänvisningar för att kunna verifieras. (2013-09) Åtgärda genom att lägga till pålitliga källor (gärna som fotnoter). Uppgifter utan källhänvisning kan ifrågasättas och tas bort utan att det behöver diskuteras på diskussionssidan. |
Cg (förkortning av C for Graphics) är ett programspråk utvecklat av Nvidia i nära samarbete med Microsoft. Cg bygger på programspråket C med vilket Cg delar syntax. Skillnaden mellan språken är att vissa funktioner i C har modifierats och fler datatyper har tillagts för att göra Cg lämpad för programmering av grafikprocessorer. Cg är dock enbart lämpat för GPUprogrammering och är inte ett generellt programmeringsspråk. Eftersom tekniska framsteg har gjort att vissa delar av programmeringen av 3D-grafik har blivit rätt komplex. För att förenkla processen lades nya funktioner till grafikkorten. Några av de spel och applikationer som använder Cg är Battlefield 2, Far Cry, Dolphin, Hitman: Blood Money, Ogre3D och Unity
Kodexempel
[redigera | redigera wikitext] // input vertex
struct VertIn {
float4 pos : POSITION;
float4 color : COLOR0;
};
// output vertex
struct VertOut {
float4 pos : POSITION;
float4 color : COLOR0;
};
// vertex shader main entry
VertOut main(VertIn IN, uniform float4x4 modelViewProj) {
VertOut OUT;
OUT.pos = mul(modelViewProj, IN.pos); // calculate output coords
OUT.color = IN.color; // copy input color to output
OUT.color.z = 1.0f; // blue component of color = 1.0f
return OUT;
}