Cg 1.5
Автор: Андрей Эдуардович Яроменок
не совсем Unix only, но и для этого сгодиться.
- профайлы: GLSL, D3D SM3
- поддержка COLLADA
http://developer.nvidia.com/object/cg-toolkit-15beta.html
8 апреля 2006
Комментарии [4]
Автор: Андрей Эдуардович Яроменок
не совсем Unix only, но и для этого сгодиться.
- профайлы: GLSL, D3D SM3
- поддержка COLLADA
http://developer.nvidia.com/object/cg-toolkit-15beta.html
8 апреля 2006
Комментарии [4]
проверял на 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 ----
Очень порадовала поддержка GLSL, наконецто чтоли. нО всё же как-то не очень. Я и по оптимальнее напишу :)
st0ke
>>Я и по оптимальнее напишу :)
один Cg неоптимально генерит, чтобы другому(тому, который внутри драйвера)Cg компилятору было чем заняться :-)
azazello
>один Cg неоптимально генерит, чтобы другому(тому, который внутри драйвера)Cg компилятору было чем заняться :-)
не считай тупым, но шутки понять не смог :'(
Тема в архиве.