游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4334|回复: 10

请问D3D中如何获取当前整个场景每一帧中已经渲染过的三

[复制链接]

6

主题

76

帖子

83

积分

注册会员

Rank: 2

积分
83
发表于 2004-11-26 12:58:00 | 显示全部楼层 |阅读模式
有没有现成的函数调用可以知道这个数据

69

主题

450

帖子

473

积分

中级会员

战魂缔造者

Rank: 3Rank: 3

积分
473
QQ
发表于 2004-11-26 15:00:00 | 显示全部楼层

Re:请问D3D中如何获取当前整个场景每一帧中已经渲染过的

大型引擎一般都是自己管理渲染的多边形数,MESH也不例外,这样计算数据也就由自己来了

20

主题

473

帖子

502

积分

高级会员

Rank: 4

积分
502
发表于 2004-11-26 17:12:00 | 显示全部楼层

Re:请问D3D中如何获取当前整个场景每一帧中已经渲染过的

可以为你的DP附上查询(Query),查询VERTEXSTATS,返回的NumRenderedTriangles
应该就是你所需要的
具体实现请参看DXSDK9文档

6

主题

76

帖子

83

积分

注册会员

Rank: 2

积分
83
 楼主| 发表于 2004-11-26 20:50:00 | 显示全部楼层

Re:请问D3D中如何获取当前整个场景每一帧中已经渲染过的

看了sdk文档,试了一下,好像没效果
我的代码是这样写的
IDirect3DQuery9* pQuery;
D3DDEVINFO_D3DVERTEXSTATS query;

创建一个查询
m_pd3dDevice->CreateQuery(D3DQUERYTYPE_VERTEXSTATS, &pQuery);

在每帧要渲染前

pQuery->Issue(D3DISSUE_END);
pQuery->GetData( &query, sizeof(D3DDEVINFO_D3DVERTEXSTATS), GETDATA_FLUSH );

查看query里的结果,两个成员都为0
不知道哪写错了,用过这个接口的高手帮忙看一下

20

主题

473

帖子

502

积分

高级会员

Rank: 4

积分
502
发表于 2004-11-27 10:51:00 | 显示全部楼层

Re:请问D3D中如何获取当前整个场景每一帧中已经渲染过的

你使用方法似乎有问题
应该是
先创建一个查询
m_pd3dDevice->CreateQuery(D3DQUERYTYPE_VERTEXSTATS, &pQuery);

然后在render tick的时候
先开始查询
pQuery->Issue(D3DISSUE_BEGIN);
然后绘制
在结束查询
pQuery->Issue(D3DISSUE_END);


再来GetData

6

主题

76

帖子

83

积分

注册会员

Rank: 2

积分
83
 楼主| 发表于 2004-11-27 14:55:00 | 显示全部楼层

Re: Re:请问D3D中如何获取当前整个场景每一帧中已经渲染过

secondage: Re:请问D3D中如何获取当前整个场景每一帧中已经渲染过的三角形数

你使用方法似乎有问题
应该是
先创建一个查询
m_pd3dDevice->CreateQuery(D3DQUERYTYPE_VERTEXSTATS,...


谢谢了,可以查询了,不过各种查询要求的触发条件不一样,比如说我这个查询顶点的查询,就不用BEGIN了
直接endscene前用pQuery->Issue(D3DISSUE_END);
然后在present后getdata就行了

6

主题

76

帖子

83

积分

注册会员

Rank: 2

积分
83
 楼主| 发表于 2004-11-27 15:24:00 | 显示全部楼层

Re:请问D3D中如何获取当前整个场景每一帧中已经渲染过的

再问一个问题
在D3DDEVINFO_D3DVERTEXSTATS结构中有两个成员
NumRenderedTriangles就是已经渲染过的三角形
NumExtraClippingTriangles成员是什么意思呢,我查询的时候发现这个值总为0

32

主题

377

帖子

378

积分

中级会员

Rank: 3Rank: 3

积分
378
发表于 2004-11-27 19:41:00 | 显示全部楼层

Re:请问D3D中如何获取当前整个场景每一帧中已经渲染过的

用stencil buffer啊!

6

主题

76

帖子

83

积分

注册会员

Rank: 2

积分
83
 楼主| 发表于 2004-11-27 19:44:00 | 显示全部楼层

Re: Re:请问D3D中如何获取当前整个场景每一帧中已经渲染过

fromhell: Re:请问D3D中如何获取当前整个场景每一帧中已经渲染过的三角形数

用stencil buffer啊!

什么意思啊

32

主题

377

帖子

378

积分

中级会员

Rank: 3Rank: 3

积分
378
发表于 2004-11-27 20:05:00 | 显示全部楼层

Re:请问D3D中如何获取当前整个场景每一帧中已经渲染过的

你在网上翻翻吧。这个很有用的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-23 11:53

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表