CG

CG é uma linguagem de shading que foi inventada pela NVidia em colaboração com a Microsoft e, surgiu para ser mais uma linguagem de alto nível para substituir o Assembly na codifcação de shadrers. Apesar dessa ligação com a NVidia a linguagem é suportada em diversas placas gráficas de diversos fabricantes.
Uma das principais vantagens de se usar CG é que ela pode ser usada em conjunto com as duas principais APIs de renderização existentes: OpenGL e DirectX

Exemplos de código

struct C2E1v_Output{
    float4 position : POSITION;
    float3 color : COLOR;
};
 
C2E1v_Output C2E1v_green( float2 position : POSITION ){
    C2E1v_Output OUT;
    OUT.position = float4( position, 0, 1 );
    OUT.color = float3( 0, 1, 0 );
 
    return OUT;
}

Exemplo simple de vertex shader, extraído do capítulo 1 do livro CG Tutorial. Disponível no CG Toolkit.

tipos de dados

números de ponto plutuante (precisão única) escalares e vetoriais: float, float2, float3 e float4
números inteiros escalares e vetoriais: int, int2, int3 e int4
booleanos escalares e vetoriais: bool, bool2, bool3 e bool4

Também é possível declarar matrizes destes mesmos tipos na forma:

tipoMxN,

onde tipo é o tipo de dados (float, bool e int) M e N são as dimensões (de 1 a 4).

exemplos:
float3x2, int1x4, bool3x3

links

Tutorial CG
CG Toolkit

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-Share Alike 2.5 License.