游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2247|回复: 4

怎么调试Cg????

[复制链接]

22

主题

274

帖子

274

积分

中级会员

Rank: 3Rank: 3

积分
274
发表于 2004-12-11 16:15:00 | 显示全部楼层 |阅读模式
资料有说用DEBUG(X)输出到COLOR,然后程序会终止,难到要我去读这个 REGESTER?
如果是,怎么弄?
有没有其他工具什么的?
谢谢! [em5]

22

主题

274

帖子

274

积分

中级会员

Rank: 3Rank: 3

积分
274
 楼主| 发表于 2004-12-11 19:40:00 | 显示全部楼层

Re:怎么调试Cg????

继续!

22

主题

274

帖子

274

积分

中级会员

Rank: 3Rank: 3

积分
274
 楼主| 发表于 2004-12-12 13:14:00 | 显示全部楼层

Re:怎么调试Cg????

继续!

22

主题

274

帖子

274

积分

中级会员

Rank: 3Rank: 3

积分
274
 楼主| 发表于 2004-12-18 21:01:00 | 显示全部楼层

Re:怎么调试Cg????

今天总算可以调试了,在OPENGL下.
不知道的可以借鉴一下.

1.设置参数DEBUG
        例如我的一段这样设置的.
        ........
         const char *CgArgs[1][10] = { { "-debug" } };
        VProgram = cgCreateProgramFromFile( Context,                                   
                                                              CG_SOURCE,
                                      ".\\CgPrograms\\VpWaterSurface.cg",
                                      VProfile,                                                             "main",
                                     &CgArgs[0][0] );
        ........
2. 在SHADER程序里写上debug(x),x就是要调试的float4类型.
3. 在渲染一帧的末尾加上读BUFFER语句.
    例如我的程序某句
    glReadPixels(0, 0, 512, 512, GL_RGBA, GL_FLOAT, ColorBuffer );
    在这里加个断点,可以从COLORBUFFER里看到x的值.
4. 在渲染一帧前加       
    glDisable( GL_DITHER );
    这个我认为很重要,因为如果不关闭抖动,我在片段SHADER里输出的常量都有小的变化,
关闭了就OK了.

这样基本可以调试了,但不是很方便.
CG那个参考资料上说调用debug(x)程序会终断,但我试过却没有终断,不知道为什么,所以现在只有加断点.

50

主题

992

帖子

1012

积分

金牌会员

Rank: 6Rank: 6

积分
1012
发表于 2004-12-20 13:28:00 | 显示全部楼层

Re:怎么调试Cg????

不错,正是我需要的:)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-23 19:21

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表