Direct2D 1.1 开发笔记 特效篇(四) 图形调试



(转载请注明出处)

如同上节所述,这节讲讲怎么调试图形。

很可惜,微软并没有对VS Express 2013 for Windows Desktop(下面简称WDExpress)添加图形调试功能。

对于付费版的VS(VS2013 pro对于学生与教员可以免费获取)则带有图形调试功能:

调试——图形——启用诊断

即可。

对于免费版,则有VS Express 2013 for Windows(下面简称VSWinExpress)带有图形调试功能。

幸运地,一个付费版、WDExpress与VSWinExpress可以共存,如图(从上到下WDExpress、VSWinExpress、VS2013 Pro):

如果您已经拥有了付费版的,则可以跳过下面一段:

#ifdef
WDExpress == 1

如果您的电脑上面只安装了WDExpress,请去下载VSWinExpress并安装。

成功后,使用菜单:

文件——打开项目——选择您已经编译好的exe文件

请注意您必须先直接运行这个程序,看是否能不能运行,因为有些文件(图片之类的)不在同一个文件夹里面,您需要复制过来。

即可

#endif

然后调试即可(调试——图形——启用诊断或者Alt+F5)

会生成一个新的tab页。

对于上一节中,是“静态”的,我们可以选择捕获一帧,动态的可以多选择几帧,然后点击捕获(或者按印屏键)即可。

双击我们捕获的一帧可以打开调试器:

VIEW里面可以选择需要的窗口,“图形事件列表”就是整帧的作画步骤, 选择"draw"

还可以查看本步骤的渲染管线:

我们在图片里面随便点击一点:

选择像素着色器后面的播放按钮,即可查看这个像素点的Shader详细步骤(步进调试)

可以看出,这个点的坐标信息给的是(0.53xxx, 0.38xxx)

其余的是NaN,这是因为您没有用这些变量,编译器直接优化掉了。你可以写点废代码来观看这些变量的值。

当然,这是VS自带的图形调试工具,提供了有限的D2D调试功能,D3D则更是方便。

个大显卡商也提供了自己的调试工具,比如

核显卡的    nSight

AMD的       GPU PerfStudio 2

Intel的       Graphics Performance Analyzers

嗯,这节就到这里



时间: 2024-10-26 19:42:23

Direct2D 1.1 开发笔记 特效篇(四) 图形调试的相关文章

Direct2D 1.1 开发笔记 特效篇(三) 简单的像素着色器特效

(转载请注明出处) 这次我们实现一个自定义的转变. 实现Direct2D 自定义转变Shader Models需要HLSL(High Level Shading Language)的实现. HLSL是Shader的一种实现,但是HLSL只能在D3D中使用,所以有点蛋疼. Shader被描述为显卡执行的小段程序,能够高效(并行)地执行. 没学过?没关系,笔者也没有,但是详细的不会在这里说明(你TM逗我(╯‵□′)╯︵┴─┴),请到官网中看看. D2D 特效能用 HLSL 的  4.0 及其以上版本

Direct2D 1.1 开发笔记 特效篇(一) 使用D2D特效

(转载请注明出处) 问! 为什么使用D2D 1.1版本,而不是1.0版本? 答: D2D 特效 在Direct2D 1.1 中,提供了ID2D1Effect接口,让程序员使用硬件加速的实时特效.这几乎就是使用D2D 1.1的绝对理由. 其他什么 CommandList 什么的,完全不知道嘛╮( ̄▽ ̄)╭ 头文件就是d2d1effects.h啥的,不过还要请链接"dxguid.lib"静态库 使用ID2D1DeviceContext::CreateEffect创建D2D特效, 使用ID2

Direct2D 1.1 开发笔记 特效篇(二) 简单的自定义特效

(转载请注明出处) 这节就来一个简单的自定义特效作为概念的入门. 首先需要头文件 #include <d2d1effectauthor.h> #include <d2d1effecthelpers.h> 为了实现一个自定义的D2D特效,需要继承ID2D1EffectImpl并实现其接口. 好了,这里因为仅仅是介绍一下概念,所以这次的自定义特效就定为下阴影吧,微软也是这么干的. 实现就用现成的,因为特效的输入也能是特效. Transform: 暂时称为"转变"吧,

iOS开发笔记 - 网络篇

计算机网络基础 ??计算机网络是多台独立自主的计算机互联而成的系统的总称,最初建立计算机网络的目的是实现信息传递和资源共享. ??如果说计算机是第二次世界大战的产物,那么计算机网络则是美苏冷战的产物.20世纪60年代初期,美国国防部领导的ARPA提出研究一种崭新的.能够适应现代战争的.生存性很强的通信系统并藉此来应对苏联核攻击的威胁,这个决定促使了分组交换网的诞生,也奠定今天计算机网络的原型,这是计算机网络发展史上第一个里程碑式的事件. ??第二个里程碑式的事件是20世纪80年代初,国际标准化组

Swift开发第五篇——四个知识点(Struct Mutable方法&amp;Tuple&amp;autoclosure&amp;Optional Chain)

本篇分三部分: 一.Struct Mutable方法 二.多元组(Tuple) 的使用 三.autoclosure 的使用 四.Optional Chain 的使用 一.Struct Mutable方法 直接上代码: struct User { var weight: Int var height: Int // 这里会报错 Left side of mutating operator isn't mutable:'self' is immutable // 因为 Struct 出来的变量是 i

iOS开发笔记 - 语言篇之Swift

?2014年的苹果全球开发者大会(WWDC),当Craig Federighi向全世界宣布"We have new programming language"(我们有了新的编程语言)的时候,全场响起了最热烈和持久的掌声,伴随着掌声到来的语言叫Swift.接下来Craig Federighi更是毫不掩饰的告诉大家,Swift将成为主宰iOS和Mac开发的新语言,甚至是整个软件行业中最举足轻重的语言. ??Swift正如它的名字那样迅速.敏捷,但这并不是它的全部.Swift是一个博采众长的

ONVIF客户端搜索设备获取rtsp地址开发笔记(精华篇)

原文  http://blog.csdn.net/gubenpeiyuan/article/details/25618177 概要: 前言及鸣谢: 感谢guog先生,快活林高先生,onvif全国交流群的的酷夏先生在开发过程中给予的巨大支持,没有你们的帮助开发过程将异常艰难啊.谢谢了! ONVIF介绍: ONVIF致力于通过全球性的开放接口标准来推进 网络视频 在安防市场的应用,这一接口标准将确保不同厂商生产的网络视频产品具有互通性.2008年11月,论坛正式发布了ONVIF第一版规范——ONVI

ONVIFclient搜索设备获取rtsp地址开发笔记(精华篇)

概要: 前言及鸣谢: 感谢guog先生.快活林高先生,onvif全国交流群的的酷夏先生在开发过程中给予的巨大支持,没有你们的帮助开发过程将异常艰难啊.谢谢了! ONVIF介绍: ONVIF致力于通过全球性的开放接口标准来推进网络视频在安防市场的应用,这一接口标准将确保不同厂商生产的网络视频产品具有互通性.2008年11月.论坛正式公布了ONVIF第一版规范--ONVIF核心规范1.0.随着视频监控的网络化应用,产业链的分工将越来越细. 有些厂商专门做摄像头.有些厂商专门做DVS.有些厂商则可能专

iOS开发笔记 - 工具篇

??工欲善其事,必先利其器.作为一个合格的iOS开发者,熟练的使用各种开发或辅助开发的工具也算是一项必备技能吧,下面是我整理的一些工具及其应用场景和使用方法. 文档浏览工具 - Dash 网络抓包工具 Charles Wireshark 版本控制工具 Github SourceTree CornerStone SQLite数据库可视化工具 SQLiteBrowser Datum 界面调试工具 - Reveal 调试仪表 - Gauge 剖面仪器 - Instruments Allocations