`
tubaluer
  • 浏览: 1500005 次
文章分类
社区版块
存档分类
最新评论
  • sblig: c / c++ 是不一样的都会输出 100
    j = j++

Visual Studio 11开发指南(11)Visual Studio 11调试游戏

 
阅读更多
3D游戏的在新设备(智能手机,平板电脑)上呈现一个巨大的机会,为开发人员。用于访问底层的图形硬件,在 Windows 上全部的力量的主 API 是DirectX 11 (包括Direct3DDirect2D).

Visual Studio 11 最重要创新之一是一系列的工具帮助开发 Direct3D 游戏。

在 Visual Studio 中的新图形调试器是捕获从 Direct3D 应用程序的详细的信息,如执行调试和分析工具。可以使用它:

  • 捕获呈现的帧,后来的检验和分析。
  • 查看 DirectX 事件和其对应用程序的影响。
  • 之前和之后顶点着色器转换,请查看 3D 网格。
  • 发现哪个 DirectX 事件作出贡献的一个特定的像素的颜色。
  • 直接跳转到特定的 DirectX 调用的源代码中的位置

假设解决一个简单的问题,一步一步使用图形调试器。此博客我们正在研究这个游戏是一个旋转的模游戏。这里是它应该是什么样子。

然而,当运行应用程序时找出模具不在游戏中呈现。

若要开始调试此游戏,右键单击该项目在解决方案资源管理器中,在"启用图形捕获"中设置为"是"调试节点。

现在,F5 启动调试您的应用程序,注意到这个游戏现在有一些基本的统计数据,在左上角显示。这表明 VS 是准备捕获从游戏要调查呈现问题的诊断信息。

为了捕获的帧,只需点击"打印屏幕"的关键。可以重复此步骤 ;每个帧将显示在 Visual Studio 中作为"图形 Experiment.vsglog"文件的一部分。日志文件包含为您呈现问题的调试所需的所有信息。默认情况下的该文件位于在一个临时位置,但您可以选择保存该文件,并与其他开发人员共享它。

进一步挖到什么正在通过分析在 Visual Studio 中的捕获的帧。若要理解这一点更好想知道什么了绘制时,称为"DrawIndexed"的 API的代码。

若要检查"DrawIndexed"调用框架的缩略图上右键单击,然后从上下文菜单中调出事件列表窗口中选择"事件列表"。

图形事件列表窗口列出了所有由运行在 VS 调试器下的程序捕获的 DirectX 事件。它还模拟图形调试器,重新使用相同的输入所使用的正在运行的程序的命令下的事件。在搜索框,可以键入要筛选列表以显示"画"DirectX 绘制调用。通过绘制调用,将能够看到 (右侧) 框架窗口中单击该框架绘制化零为整的方式。

在此窗口类型""中的搜索框中,这将筛选以显示游戏所作的画调用列表。选择"DrawIndexed"调用事件列表,检查在框架窗口中呈现的东西。

不幸的是在此情况下,正如上面什么被呈现,因此要继续我们的调试过程。 (DrawIndexed) 提交渲染管线的工作。所以来检查看看是否东西被提交的"DrawIndexed"作为渲染管线的调用。为了看看发生了什么事图形管道中绘制调用被执行时,用鼠标右键单击事件列表中的调用和造就管道查看器通过从上下文菜单中选择"查看器管道"。

图形管道查看器显示图形管道和这些阶段如何修改您的模型中的过程的不同阶段。

查看器显示四种不同视图的网格的数据 ;它们对应于在管道中的四个不同阶段

视图 说明
Pre-Vertex 着色器 查看网格顶点之前顶点着色器。相机被指向该对象的中心。
开机自检顶点着色器 顶点着色器后查看网格顶点。相机被指向该对象的中心。
几何着色器
(不视为在此示例中不使用)
查看网格顶点着色器几何后。相机被指向该对象的中心。如果没有指定的几何着色器,此视图为空 (固体的浅灰色阴影)。
视图端口 查看网格顶点的屏幕空间。相机设置了相机在目标程序相同。

注意有图形管道中没有代表在此视图中的其他阶段。更多的新的图形上管道在 DirectX 11 。

可以看到的东西正在绘制的图形管线视图中,看起来像应用程序想要呈现的模具。似乎从上图的""(多维数据集) 的结构正在通过图形管道正确指示着色器是否工作正常 (他们不会修改原来的结构可以防止它们被正在呈现的方式)。

此时,需要继续调试,其它地方看一看。这可能是像素被覆盖或丢弃。要验证这一假设需要去看看像素 (模具是应该要呈现) 框架的中心。帧缓冲区窗口中单击中心首先选择一个像素然后右击并从上下文菜单中选择"像素历史"。

图形像素史窗口显示当前帧中的选定像素的颜色作出贡献的活动。它包含有关如何修改像素了 DirectX 像素历史记录窗口中的每个事件的信息。这包括初始帧缓冲区状态,其次是中间画事件的呈现和最终的结果。

帧缓冲区像素颜色是蓝色,,然后像素着色器的像素应用一种不同的颜色 (灰色) 时,可以看到从"像素历史记录"窗口。但是,仍然蓝色最终颜色。不是在所有应用正在呈现所需的像素颜色。这是混合状态设置可能不正确的指示。如何混合了组合时的颜色和 alpha 值的混合状态控件呈现数据与现有呈现目标数据。要检查的混合状态,右键单击像素,并从上下文菜单中选择"对象列表"。这将弹出"图形对象表"窗口。

图形对象表显示 Direct3D 对象创建的目标程序。可以通过单击表中的对象上的双查看任何包含状态信息的对象。

排序对象表 (按"类型"),然后滚动到列表中的"D3D11 混合状态"对象。双击"D3D11 混合状态"对象将最低有效 (不无)"使用时代"。"使用时代"帮助的范围调查于所选对象绘制调用,使用年龄降低很多有关。双击与使用情况的最低年龄的混合状态对象,将打开一个文档内 Visual Studio 的对象的详细信息。

从上面的图片,我们可以看到:

Blend Source = D3D11_BLEND_ZERO; //Source 表示像素着色器的混合上执行操作的彩色输出
Blend Destination = D3D11_BLEND_ONE; //Destination 代表的混合执行操作的框架的颜色

Blend Op = D3D11_BLEND_ADD; //Blend 操作执行的源和目标。

我们可以看到从这源的混合状态被遮罩,因为它被设置为零 (D3D11_BLEND_ZERO) 和目标的混合状态设置为 1 (D3D11_BLEND_ONE)。这将导致的背景色来出作为主色后混合,因此我们没有看到正在呈现的模具。这样的像素着色器输出是主输出的混合操作,应切换值。

Blend Source = D3D11_BLEND_ONE;
Blend Destination = D3D11_BLEND_ZERO;
Blend Op = D3D11_BLEND_ADD;

我们可以返回到事件列表窗口并筛选寻找"blendstate",因为事件列表中列出了所有的 DirectX 事件已捕获帧的时期发生的事件列表中,找出混合状态被设置的位置。一旦您筛选,您可以看到"OMSetBlendState"的呼吁。调用,将混合状态设置为"OMSetBlendState"。获取源代码凡正在作出此调用,右键单击"OMSetBlendState"调用,并从上下文菜单中会出现"图形调用堆栈"窗口中选择"调用堆栈"

图形事件调用堆栈窗口联系正在调试的 c + + 源代码的 DirectX 事件。

双击第一个调用调用堆栈中,它将您带到"OMSetBlendState"在代码中调用。几行上方的"OMBlendState"调用,你会注意到设置的源和目标位置混合值的代码行。

切换通过更改以反映以下代码:

blenddesc.RenderTarget[0].SrcBlend=D3D11_BLEND_ONE;
blenddesc.RenderTarget[0].DestBlend=D3D11_BLEND_ZERO;

生成并运行。

游戏开发并不容易,工具可帮助您使基础 DirectX 平台的使用。在此版本中,将这种新型的诊断经验带入 Visual Studio11。

使用此语言查看该网页源语言Original:Translated:自动翻译由 Microsoft® Translator 提供开始翻译停止翻译关闭关闭并显示原始页选择
分享到:
评论

相关推荐

    Visual Studio 2008 开发指南

    Visual Studio 2008开发指南,英文版资料,目前还没有中文版哦!不过值得观看哦!(分成了两部压缩卷哦!此卷为第二部分哦!)

    解决vs2012 “无法启动已配置的visual studio开发web服务器”的解决办法

    解决VS2012中“无法启动已配置的Visual Studio开发Web服务器”的解决办法 在Visual Studio 2012中,开发者可能会遇到“无法启动已配置的Visual Studio开发Web服务器”的错误,这是一个常见的问题。这个错误可能是...

    visual studio.net 开发环境使用指南

    《Visual Studio .NET 开发环境使用指南》是一本详尽阐述如何有效利用Microsoft的Visual Studio .NET集成开发环境(IDE)进行软件开发的教程。该指南涵盖了从安装配置到项目管理,再到代码编写和调试等一系列步骤,...

    Visual Studio 2022支持Php开发插件

    Visual Studio 2022是Microsoft推出的一款强大的集成开发环境(IDE),专为各种软件开发提供全面的支持。在2022版本中,微软进一步拓宽了其开发领域,增加了对PHP语言的开发支持,这对于PHP开发者来说是一个重大福音...

    电子-VisualStudio2017开发STM32.pdf

    综上所述,本教程以详细的步骤和丰富的图片说明,为学习STM32单片机开发的人员提供了一套完整的VisualStudio开发环境搭建指南。通过本教程的学习,读者将能够掌握从软件的下载与安装到项目的搭建、编程和调试的全...

    Visual Studio 2019使用教程

    Visual Studio 2019 提供了多种开发和调试工具,包括编辑器、调试器、性能分析器等。编辑器提供了语法高亮、代码完成、代码重构等功能,调试器则允许开发者调试应用程序,性能分析器则可以分析应用程序的性能。 ...

    Visual Studio 扩展开发文档 2019版.pdf

    Visual Studio是微软推出的一款集成开发环境(IDE),它是为满足开发者在不同领域(包括Windows桌面开发、移动应用开发、游戏开发、Web开发等)的需求而设计的。在Visual Studio中进行扩展开发,可以让我们根据个人...

    Visual Studio .NET开发环境使用指南

    《Visual Studio .NET开发环境使用指南》是一本深入解析微软.NET框架下的集成开发环境(IDE)——Visual Studio .NET的详尽教程。该指南旨在帮助开发者充分利用这一强大的工具,提高软件开发的效率和质量。 Visual ...

    Visual Studio.NET功能展现指南简单中文版

    Visual Studio .NET是微软公司推出的一款集成开发环境(IDE),它集成了多种编程语言、调试工具、版本控制以及项目管理功能,是Windows平台上开发软件的重要工具。 这份指南以简体中文的形式呈现,降低了语言障碍,...

    visualstudio2022使用教程.docx

    - **C++ 开发**:适用于桌面应用和游戏开发等领域,具备强大的调试和性能分析功能。 - **移动开发**:支持 Xamarin 和 .NET Multi-platform App UI (.NET MAUI),可用于构建 Android、iOS 和 Windows 的移动应用。 -...

    Visual Studio 2010 完全卸载工具

    微软官方提供的Visual Studio 2010彻底卸载工具,本人已亲测。用它可以轻松彻底地删除Visual Studio 2010以及它诸多的依赖项,让你彻底从机器上删除Visual Studio 2010。支持Visual Studio 2010 各种版本。 微软官方...

    基于 visual studio开发的在线聊天室

    【在线聊天室与Visual Studio开发】 在信息技术领域,开发在线聊天室是一项常见的任务,它涉及到实时通信、用户交互和数据库管理等多个技术层面。在这个项目中,我们利用Microsoft的Visual Studio作为集成开发环境...

    Nsight Visual Studio Edition 单机调试+双机调试CUDA程序

    Nsight Visual Studio Edition是一款由NVIDIA提供的开发工具,它允许开发者在Visual Studio环境中对CUDA程序进行单机和双机调试。Nsight支持在单个计算机上进行CPU和GPU代码的调试,也可以进行两台计算机间的双机...

    Visual Studio功能展现指南.rar

    《Visual Studio功能展现指南》是一份详尽的资源包,主要涵盖了Microsoft的集成开发环境(IDE)——Visual Studio的各种功能和使用技巧。该资源包包括了"VisualStudioNETGuidedTour.doc"文档、"使用说明.txt"文本...

    Gitee.VisualStudio.vsix Gitee vs插件(Gitee Extension for Visual Studio)

    【Gitee.VisualStudio.vsix Gitee vs插件(Gitee Extension for Visual Studio)】是专为Visual Studio集成开发环境设计的一款扩展插件,旨在帮助开发者更便捷地与Gitee(中国的Git托管平台)进行交互。这款插件使得...

    VisualStudio2019手册,visualstudio2019手册pdf,C#

    《Visual Studio 2019手册》是一本详尽阐述微软开发环境Visual Studio 2019的中文指南,特别适合C#开发者参考学习。这本书的PDF版本为开发者提供了便捷的在线阅读和离线查阅体验,是理解并精通Visual Studio 2019不...

    visual studio编写的小游戏

    使用Visual Studio的调试工具,对游戏逻辑和UI进行调试,确保其正确性和稳定性。同时,编写单元测试来验证游戏规则的正确实施。 通过以上步骤,我们可以构建出一个基本的扫雷游戏。虽然这个项目可能在操作上存在...

    Visual Studio开发Android环境配置

    Visual Studio 开发 Android 环境配置 Visual Studio 是一个功能强大且功能齐备的集成开发环境(IDE),它支持多种编程语言,包括 C#、VB.NET、F# 等。 近些年来,随着移动设备的快速发展,Android 和 iOS 等移动...

    visualstudio安装教程-Linux和macOS操作系统

    ### VisualStudio在Linux和macOS操作系统上的安装与配置教程 #### 知识点一:Visual Studio版本选择 - **社区版(Community)**:适用于个人开发者、小型项目或开源项目,提供免费的基础功能。 - **专业版...

    Visual Studio 调试器.pdf

    visual studio 最全的开发调试文档,高级调试帮助你更好的开发和测试。在首次在 Visual Studio 中运行您的应用程序,您可能通过按绿色箭头按钮启动它 工具栏中 (或F5)。 默认情况 下调试值显示在左侧的下拉列表中。 ...

Global site tag (gtag.js) - Google Analytics