UnixDevФорум

Cg 1.5 (комментарии)

#0
0:05, 9 апр 2006

Cg 1.5 (комментарии)

Это сообщение сгенерировано автоматически.

#1
0:05, 9 апр 2006

проверял на SUSE 10/amd64, det 85
1) в примерах - GNUmakefile -  удалить

-lXmu -lXi

немного о генерации GLSL кода
вот  на этот Cg код

struct appdata
{
    float4 position : POSITION;
    float3 normal : NORMAL;
    float3 color : DIFFUSE;
    float3 TestColor : SPECULAR;
};

struct vfconn
{
    float4 HPOS : POSITION;
    float4 COL0 : COLOR0;
};

vfconn main(appdata IN,
            uniform float4 Kd,
            uniform float4x4 ModelViewProj)
{
    vfconn OUT;

    OUT.HPOS = mul(ModelViewProj, IN.position);

    OUT.COL0.xyz = Kd.xyz * IN.TestColor.xyz;
    OUT.COL0.w = 1.0;

    return OUT;
} // main

profile glslv выдал яркий код

---- PROGRAM BEGIN ----
// transl output by Cg compiler
// cgc version 1.5.0006, build date Apr  3 2006 15:30:13
// command line args: -q -profile glslv -entry main
// source file: /usr/local/Cg/examples/runtime_ogl/cgGL_vertex_example.cg
//vendor NVIDIA Corporation
//version 1.5.0.6
//profile glslv
//program main
//semantic main.Kd
//semantic main.ModelViewProj
//var float4 Kd :  : pend_s3_Kd : 1 : 1
//var float4x4 ModelViewProj :  : pend_s3_ModelViewProj[0], 4 : 2 : 1
//var float4 IN.position : $vin.POSITION : POSITION : 0 : 1
//var float3 IN.normal : $vin.NORMAL :  : 0 : 0
//var float3 IN.color : $vin.DIFFUSE :  : 0 : 0
//var float3 IN.TestColor : $vin.SPECULAR : SPECULAR : 0 : 1
//var float4 main.HPOS : $vout.POSITION : POSITION : -1 : 1
//var float4 main.COL0 : $vout.COLOR0 : COLOR0 : -1 : 1

struct appdata {
    vec4 pend_position;
    vec3 pend_normal;
    vec3 pend_color;
    vec3 pend_TestColor;
};

struct vfconn {
    vec4 pend_HPOS;
    vec4 pend_COL0;
};

vec4 dash1_pend_s3_r_0001;
float cash0_pend_s3__temp0002;
float cash0_pend_s3__temp0004;
float cash0_pend_s3__temp0006;
float cash0_pend_s3__temp0008;
struct vfconn pend_s3_ret_0;
uniform vec4 pend_s3_Kd;
uniform vec4 pend_s3_ModelViewProj[4];

 // main procedure, the original name was main
void main()
{

    struct appdata pend_s4_IN;
    struct vfconn pend_s4_OUT;

    pend_s4_IN.pend_position = gl_Vertex;
    pend_s4_IN.pend_TestColor = gl_SecondaryColor.xyz;
    cash0_pend_s3__temp0002 = dot(pend_s3_ModelViewProj[0], pend_s4_IN.pend_position);
    dash1_pend_s3_r_0001.x = cash0_pend_s3__temp0002;
    cash0_pend_s3__temp0004 = dot(pend_s3_ModelViewProj[1], pend_s4_IN.pend_position);
    dash1_pend_s3_r_0001.y = cash0_pend_s3__temp0004;
    cash0_pend_s3__temp0006 = dot(pend_s3_ModelViewProj[2], pend_s4_IN.pend_position);
    dash1_pend_s3_r_0001.z = cash0_pend_s3__temp0006;
    cash0_pend_s3__temp0008 = dot(pend_s3_ModelViewProj[3], pend_s4_IN.pend_position);
    dash1_pend_s3_r_0001.w = cash0_pend_s3__temp0008;
    pend_s4_OUT.pend_HPOS = dash1_pend_s3_r_0001;
    pend_s4_OUT.pend_COL0.xyz = pend_s3_Kd.xyz*pend_s4_IN.pend_TestColor.xyz;
    pend_s4_OUT.pend_COL0.w = 1.0;
    pend_s3_ret_0 = pend_s4_OUT;
    gl_FrontColor = pend_s4_OUT.pend_COL0;
    gl_Position = pend_s4_OUT.pend_HPOS;
    return;
} // main end
---- PROGRAM END ----
#2
4:18, 9 апр 2006

Очень порадовала поддержка GLSL, наконецто чтоли. нО всё же как-то не очень. Я и по оптимальнее напишу :)

#3
17:04, 9 апр 2006

st0ke
>>Я и по оптимальнее напишу :)
один Cg неоптимально генерит, чтобы другому(тому, который внутри драйвера)Cg компилятору было чем заняться :-)

#4
13:41, 10 апр 2006

azazello
>один Cg неоптимально генерит, чтобы другому(тому, который внутри драйвера)Cg компилятору было чем заняться :-)
не считай тупым, но шутки понять не смог :'(

UnixDevФорум

Тема в архиве.