教你如何用VC.net来编译NVIDIA的CG源代码



如果你不知道什么是CG程序代码,那没关系,我简单地告诉你:这是一种编译后可以在显卡GPU上运行的代码。想知道得更多,请访问nVidia公司的主页:http://developer.nvidia.com/Cg 或者www.gpgpu.org。
在我的BLOG里,曾介绍过如何用VC6.0来对CG代码进行编译和查错,这里介绍的是在VC.net的IDE里集成CG编译器的方法。

1、下载CG ToolKit开发包并正确安装。
2、假设你的 CG TOOLKIT 安装在 C:/Program Files/NVIDIA Corporation/Cg/ 目录下。  

  下面我们在VC2003/2005的菜单点击 “工具(Tools) -> 外部工具(External Tools) -> 添加(Add)”。

3、 分别填入:  

  标题(Title): CG Compiler  

  命令(Command): C:/Program Files/NVIDIA Corporation/Cg/bin/cgc.exe  

  参数(Arguments): $(ItemPath) -entry main -profile vp30  

      main是程序入口,如果不同,请作相应修改。如果是片段着色,请用 fp30,


  初始目录(Initial directory): $(ItemDir)  

  再钩选下面的"使用输出窗口(Use Output window)". 
 
4、好,下面在VC.net中打开一个*.CG文件,点击工具(Tools)菜单下的“CG Compiler”开始编译。

CG_compiler


还有问题?请给我发E-MAIL:huawenguang@sina.com

[1]NVIDIA Cg 2 2 [2]DirectX SDK 2009 Aug 这里主要是通过DX9目录中cgfx bumpdemo例程来学习CgFX的调用流程 正文第一步:建立全局CGcontext实例 然后建立事件回调函数 具体参考main函数定义 myCgContext cgCreateContext ; CGcontext myCgContext; 第二步:在OnResetDevice中Initialization CG 一开始调用cgD3D9SetDevice pDev ; IDirect3DDevice9 pDev 然后Initialization CG(参考initCG函数定义) Step2 1:注册CgFX状态 从固定管线接管纹理状态 根据cgfx文件名创建Effect对象 cgD3D9RegisterStates myCgContext ; CGcontext myCgContext cgD3D9SetManageTextureParameters myCgContext CG TRUE myCgEffect cgCreateEffectFromFile myCgContext "bumpdemo cgfx" NULL ; CGeffect myCgEffect Step2 2:取CGtechnique实例 检查CGtechnique实例的有效性 取CGtechnique实例的代码段: myCgTechnique cgGetFirstTechnique myCgEffect ; CGtechnique myCgTechnique myCgTechnique cgGetNextTechnique myCgTechnique ; 返回bumpdemo cgfx(由myCgEffect对应)中名为“bumpdemo hlsl”的CGtechnique实例 myCgTechniqueHLSL cgGetNamedTechnique myCgEffect "bumpdemo hlsl" ; 检查CGtechnique实例 当前硬件是否支持 cgValidateTechnique myCgTechnique CG FALSE #define CG FALSE CGbool 0 辅助功能: constchar cgGetTechniqueName myCgTechnique ; 返回bumpdemo cgfx中">[1]NVIDIA Cg 2 2 [2]DirectX SDK 2009 Aug 这里主要是通过DX9目录中cgfx bumpdemo例程来学习CgFX的调用流程 正文第一步:建立全局CGcontext实例 然后建立事件回调函数 具体参考main函数定义 myCgContext cgCreateContext ; CGcontext myCgContext; 第二 [更多]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值