gamemaker吧 关注:12,241贴子:84,895
  • 21回复贴,共1

【dream】使用PIX for windows来debug你的工程

只看楼主收藏回复

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


回复
1楼2016-04-25 13:27
    首先我们先打开一个工程,这里用的是yoyo官方提供的angry_cats的demo

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


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


    收起回复
    2楼2016-04-25 13:30
      打开开始菜单,在directx sdk目录下找到pix for windows
      (如果没有的请在这里下载http://www.microsoft.com/en-gb/download/details.aspx?id=6812
      或者在你sdk的安装目录下\Utilities\bin\x86的文件夹中找到PIXWin.exe打开


      回复
      3楼2016-04-25 13:34
        打开后我们会看到这样一个界面

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


        回复
        本楼含有高级字体4楼2016-04-25 13:39
          单击工具栏的“T”按钮,添加两个新的触发器,并更改Trigger Type




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


          回复
          5楼2016-04-25 13:42
            保存项目,点击工具栏上的绿色箭头运行游戏


            如果成功的话你的游戏左上角应该会显示这个
            按一下f5键(刚刚设置的触发器)开始捕捉画面
            等到你想停止捕捉的时候按下f6,会自动关闭游戏并弹出如下窗口


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


            展开你刚刚捕捉到的Frame xxx


            回复
            6楼2016-04-25 13:46
              点击render,过一段时间后,你会得到如下画面,确定你能正确看到画面

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




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


                回复
                本楼含有高级字体9楼2016-04-25 14:03
                  赞赞赞!


                  回复
                  来自Android客户端10楼2016-04-25 17:31
                    gm能不能支持OpenGL库呀[滑稽],还是要自己弄dll?


                    收起回复
                    来自手机贴吧11楼2016-04-25 21:29
                      然而不懂shader的一脸懵逼


                      回复
                      来自Android客户端12楼2016-04-26 19:21
                        shader调试一般是输出颜色看效果就够用了(对窝来说……)


                        不知有没有hacker大神直接用ollydbg反汇编看程序怎么调用directX或opengl接口(雾)


                        收起回复
                        13楼2016-05-01 12:24