**“图形对象表”**是 Visual Studio 中的图形诊断工具之一,可以帮助您了解支持您游戏或应用程序的特定帧的 Direct3D 对象。
这是图像对象表:
.png)
了解“图形对象表”
通过使用图形对象表,您可以分析支持特定框架呈现的 Direct3D 对象。您可以通过检查其属性和数据查明特定对象的呈现问题。(在您的诊断之前通过使用其他图像诊断工具可以缩小可能不是那您预期的对象列表。)当您找到有问题的对象时,可以使用特定于其类型来检查它的可视化—例如,可以使用图像编辑器来查看纹理或者**“缓冲区可视化工具”**来查看缓冲区内容。
图形对象表格式
**“图形对象表”**显示支持与所选事件(例如,状态对象、缓冲区、着色器、纹理和其他资源)关联的帧的 Direct3D 对象和资源。在前一个框架中创建的对象、但不用于捕获框架期间的对象已从对象表中省略。已在捕获框架中被以前的事件销毁的对象在后续事件中省略。不在 D3D10Device 或 D3D11DeviceContext 上设置的对象将显示为灰色文本。对象显示在表格式中。
列 |
描述 |
|---|---|
标识符 |
对象 ID。 |
名称 |
使用 Direct3D 功能 SetPrivateData 在对象设置的应用程序特定信息 — 通常提供有关对象的其他标识信息。 |
类型 |
对象类型。 |
活动 |
捕获帧过程中,为设置在 D3D10Device 或 D3D11DeviceContext的对象显示“*”。 这与显示为灰色文本的对象对应,但提供可用于排序对象表的列输入。 |
大小 |
以字节为单位的对象大小。 |
Format |
对象的格式。例如,纹理对象的布局或着色器对象着色器模型。 |
Mips |
纹理对象具有 MIP 级别数。不适用于其他对象类型。 |
宽度 |
纹理对象的宽度。不适用于其他对象类型。 |
高度 |
纹理对象的高度。不适用于其他对象类型。 |
Depth |
3-D 纹理对象的深度。如果某纹理不是 3-D,则该值为 0。不适用于其他对象类型。 |
由帧创建 |
创建该对象的操作所在的帧。 |
图形对象查看器
若要查看有关对象的详细信息,通过在**“图形对象表”中选择其名称来打开它。基于对象类型,有关对象的详细信息显示为不同格式。例如,设备状态(“D3D10 设备”)以带格式列表显示,材质由“图像编辑器”**工具显示,并且可以对其进行修改并保存。
设备上下文对象
设备上下文(“D3D11 设备上下文”或“D3D10设备”)对象尤其重要,因为它包含最重要的状态信息,且它与当前集的其他状态对象链接。在选择新事件反映当前设备状态时,更改设备上下文。声明选定的事件以修改了显示为红色文本。
缓冲区对象
缓冲区对象的详细信息(D3D11 缓冲区或 D3D10 缓冲区)作为格式化文本显示。缓冲区的内容根据**“缓冲区格式”**组合框中的值被解释,在对象表中找到。在框中,可以输入构成在下表中列出的数据类型的一种复合数据格式。例如,“浮动 int”显示包含 32 位浮点值,其后为 32 位有符号整数值的结构的列表。指定的聚合数据格式添加到组合框以供将来使用。
类型 |
描述 |
|---|---|
float |
一个 32 位浮点值。 |
float2 |
包含两个 32 位浮点值的向量。 |
float3 |
包含三个 32 位浮点值的向量。 |
float4 |
包含四个 32 位浮点值的向量。 |
byte |
8 位有符号整数值。 |
2byte |
16 位有符号整数值。 |
4byte |
32 位带符号整数值。与“int”一样。 |
8byte |
64 位有符号整数值。与“int64”一样。 |
xbyte |
一个 8 位十六进制值。 |
x2byte |
16 位十六进制值。 |
x4byte |
32 位十六进制值。和 xint相同。 |
x8byte |
64 位十六进制值。和 xint64相同。 |
ubyte |
一个 8 位无符号整数值。 |
u2byte |
16 位无符号整数值。 |
u4byte |
32 位无符号整数值。和 uint相同。 |
u8byte |
一个 64 位无符号整数值。和 uint64相同。 |
half |
一个 16 位浮点值。 |
half2 |
包含两个 16 位浮点值的向量。 |
half3 |
包含三个 16 位浮点值的向量。 |
half4 |
包含四个 16 位浮点值的向量。 |
double |
一个 64 位浮点值。 |
int |
32 位带符号整数值。和 4byte相同。 |
int64 |
64 位有符号整数值。和 8byte相同。 |
xint |
32 位十六进制值。和 x4byte相同。 |
xint64 |
64 位十六进制值。和 x8byte相同。 |
uint |
32 位无符号整数值。和 u4byte相同。 |
uint64 |
一个 64 位无符号整数值。和 u8byte相同。 |
bool |
一个布尔(true 或 false)值。每个布尔值用 32 位值表示。 |