文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>cg language Notes_cg编译

cg language Notes_cg编译

时间:2011-01-24  来源:DoSomething

                                        摘自《GPU 编程与CG 语言之阳春白雪下里巴人》

  一、cg编译

  在编写cg程序的时候,首先要明确所写的程序是顶点着色程序还是片段着色程序,二者在编译的时候会被相应的硬件所支持,

  cg程序编译时的命令形式是:cgc [options] file

    其中:[options]表示配置项,包括编译时选择使用的profile、着色程序的入口函数名称,以及着色程序文件名。

       file 表示Cg 程序文件名。

  比如典型的编译方式:cgc –profile glslv –entry main_v  test.cg

    -profile 是profile 配置项名;glslv 是当前所使用的profile 名称;-entry着色程序的入口函数名称配置项;main_v 是顶点着色程序的入口函数名;
    test.cg 是当前的着色程序文件名

  注意:

  1、profile 也分为顶点profile 和片段profile,所以编译顶点着色程序时必须选用当前图形硬件支持的顶点profile,同理,编译片段着色程序时必须选用当前图形硬件支持的片段profile。通俗的说,就是不能用顶点profile去编译片段程序,也不能用片段的profile去编译顶点程序。

      2、循环语句for,while只被vs_2_x,vp30,vp40,fp40等少量的profiles所支持。

  3、被编译的着色程序文件名必须加上.cg 后缀

  4、如果着色程序中的某些变量并没有为最终的输出做出贡献,则编译时会将该部分代码忽略(会检查语法错误,但并不编译成汇编代码)。通常这一点不会造成太大的影响,但是如果这些变量刚好是从外部宿主程序中传入的变量,并且在着色程序中没有被使用,则宿主程序传入变量的接口函数可能会报错“找不到该变量”。这种情况比较少遇到,但并非不存在,且一旦遇上问题的原因难以查明。

 

  二、CG Profiles 

  Cg profile 定义了一个“被特定图形硬件或API 所支持的Cg 语言子集”,则不同的图形硬件对应着不同的功能子集。Profile 按照功能可以划分为顶点Profile 和片断Profile,而顶点profile 和片段profile 又基于OpenGL 和DirectX 的不同版本或扩展,划分为各种版本。

  

  

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载