使用PIX for windows来debug你的工程

默认分类·游戏开发笔记 · 2016-04-25 · 1429 人浏览
使用PIX for windows来debug你的工程

虽然gms的debuger功能相比gm8来说已经很强了,但有的时候图像上的问题还是十分难以解决,或者有的时候我们写了一个shader,需要查看顶点来帮助调试,而gms没有更多关于shader的功能,那么使用PIX可以大幅提高你的工作效率

首先我们先打开一个工程,这里用的是yoyo官方提供的angry_cats的demo

fc36c41b0ef41bd543d4977456da81cb38db3d57

然后将其导出,导出时选择以zip方式导出

772b658da97739129322fbe1ff198618377ae2d6

然后将其解压,得到下面的文件

06bcb2c27d1ed21be5605065aa6eddc450da3fa9

打开开始菜单,在directx sdk目录下找到pix for windows
(如果没有的请在这里下载http://www.microsoft.com/en-gb/download/details.aspx?id=6812

513e1f24ab18972b2c897e4ae1cd7b899f510aa3

打开后我们会看到这样一个界面

21c41efa513d269711ab70dd52fbb2fb4216d8da

program项中选择刚刚解压出来的游戏
然后点More Options按钮,窗口会变成这样

513e1f24ab18972b22eb784ae1cd7b899f510a01

单击工具栏的“T”按钮,添加两个新的触发器,并更改Trigger Type

5c7c404e9258d1090990d232d658ccbf6d814de3

56027659252dd42a4fab7a2b043b5bb5c8eab8bc

ea4be0246b600c33d9dba5481d4c510fd8f9a1bc

如图设置,将新添加的两个触发器更改为按键触发,并设置按键为f5和f6(或者是其他你喜欢的)
然后将两个触发器下的Action Type照图中设置

保存项目,点击工具栏上的绿色箭头运行游戏,如果成功的话你的游戏左上角应该会显示这个

a91c229b033b5bb5a3635a7e31d3d539b700bca6

按一下f5键(刚刚设置的触发器)开始捕捉画面
等到你想停止捕捉的时候按下f6,会自动关闭游戏并弹出如下窗口

5028aca1cd11728b9db5f6a2cffcc3cec2fd2cba

把下面的两个窗口调整一下

2736bed3fd1f41345fe77ffe221f95cad0c85e02

展开你刚刚捕捉到的Frame xxx

点击render,过一段时间后,你会得到如下画面,确定你能正确看到画面

762b878fa0ec08fa130a77275eee3d6d54fbdad4

如果说你在列表里找到了SetTexture()函数的调用,用鼠标左键双击十六进制参数,便可以查看纹理的使用了。

8d1b9144ebf81a4c0c4c8b49d02a6059242da6d8

9f3f9c82b9014a90e369213dae773912b21bee87

29fbeb1f4134970af6f577af92cad1c8a6865d50

除了纹理之外,在这个列表里有整个d3d渲染序列,您可以查看纹理、着色器,网格,顶点缓冲以及其他很多的东西,PIX是一个强大的调试工具,尤其是对于shader,你可以看到所有的数据交换,不仅如此,你还可以得到表面,纹理的创建顺序,以及他们是如何交换的,最后,你在这里得到的结果,到了其他平台也是一样的,灵活使用PIX可以让你的工作更有效率

此外,PIX可以直接在反汇编模式下调试,如果是vs,在编译时指定D3DXSHADER_DEBUG(/Zi)和D3DXSHADER_SKIPOPTIMIZATION(/Od)可以直接查看代码

Theme Jasmine by Kent Liao