GLSL的调试方法

VS

顶点变换相关的,可以通过cpu对单个顶点进行模拟计算。例如下面代码片段在vs中获取屏幕的像素坐标。

vec4 norm_coord = projection*(view*(model*vec4(vertex,1.0)));
vec2 screen_pos = norm_coord.xy / norm_coord.w;
screen_pos.x = (screen_pos.x + 1.0) * viewport[2] / 2. + viewport[0];
screen_pos.y = (screen_pos.y + 1.0) * viewport[3] / 2. + viewport[1];

找一个矩形库,如glm,然后可以验证。

FS

fs中是片源了,包括从vs中传过来且经过插值后的varying变量。。想要调试查看处理过程中的值,目前见到的办法只有一个通过gl_FragColor以颜色输出,我自己一直这么做的。。
gl_FragColor的rgba都必须是0-1.0之间的。需要转化到这个区间内,输出到屏幕后。然后打开QQ,Ctrl+Alt+A可以拾取像素的RGBA值了。也可以在PS中打开放大以后去看。。

最近看到网上一哥们也有一个类似的分享:visual GLSL debuging 。他更进一步,FS中通过squeezeZeroOne函数把向量压缩到0-1之间,然后在cpu端又增加了鼠标拾取framebuffer中的像素值,然后将像素值解压还原回FS中原始向量值。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值