游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3585|回复: 9

DrawIndexedPrimitive 相关效率的问题

[复制链接]

42

主题

140

帖子

158

积分

注册会员

Rank: 2

积分
158
发表于 2010-3-19 10:52:00 | 显示全部楼层 |阅读模式
我正在做地形的视锥裁剪, 加载了一个512x512的高度图,建一个Vb保存所有的顶点, 一个动态的IB,做的LOD ,地形分成NXN块,然后做AABB的视锥裁剪, 渲染地形的时候我是用了DrawIndexedPrimitive ()顶点个数是 512x512 但是我的PrimitiveCount都是变化的,但是  PrimitiveCount = 10000 和 PrimitiveCount  = 0 的帧率居然一样,这让人很费解,哪位前辈给小弟解释一下,DrawIndexedPrimitive 到底是绘制3角形。

5

主题

755

帖子

757

积分

高级会员

Rank: 4

积分
757
发表于 2010-3-19 14:31:00 | 显示全部楼层

Re:DrawIndexedPrimitive 相关效率的问题

看你显卡是啥。最新的几代显卡对三角形数量不是很敏感。你画10000和画0可能会一样。不过我还是怀疑是不是你显示帧率的写错了。或者你锁定帧到30或者60了。那样你显卡好一些不锁可以画到几百的。自然一样了

42

主题

140

帖子

158

积分

注册会员

Rank: 2

积分
158
 楼主| 发表于 2010-3-19 16:01:00 | 显示全部楼层

Re:DrawIndexedPrimitive 相关效率的问题

我显卡是9300GS, 上面可能没说清楚, 实际的三角形数目不止10000 个, 问题是我如果加一个DrawIndexedPrimitive( primitiveCount = 1), 帧率马上重900多帧降到60多帧,我的顶点缓冲是固定大小的,索引缓冲也是固定大小的,我做的LOD和裁剪只是更新了索引缓冲的数据和primitiveCount 的数量,顶点缓冲没有任何改变,我怀疑是不是要动态的创建顶点和索引缓冲,将可见点的坐标再次拷贝到显存中。

34

主题

657

帖子

672

积分

高级会员

Rank: 4

积分
672
发表于 2010-3-19 21:11:00 | 显示全部楼层

Re:DrawIndexedPrimitive 相关效率的问题

建立D3D设备时关闭垂直同步就行了。

34

主题

657

帖子

672

积分

高级会员

Rank: 4

积分
672
发表于 2010-3-19 21:11:00 | 显示全部楼层

Re:DrawIndexedPrimitive 相关效率的问题

就是将PresentationInterval设为D3DPRESENT_INTERVAL_IMMEDIATE

59

主题

984

帖子

1200

积分

金牌会员

Rank: 6Rank: 6

积分
1200
发表于 2010-3-20 00:48:00 | 显示全部楼层

Re:DrawIndexedPrimitive 相关效率的问题

这个应该是你程序其他地方有问题,不是DP的问题
1,空负载时的fps基本没有意义,不能作为参考
2,一次DP fps就在60左右也不正常

42

主题

140

帖子

158

积分

注册会员

Rank: 2

积分
158
 楼主| 发表于 2010-3-20 22:42:00 | 显示全部楼层

Re:DrawIndexedPrimitive 相关效率的问题

发现问题了,用了D3DCREATE_SOFTWARE_VERTEXPROCESSING, 貌似他是直接把所有的点全部转换完再考虑索引。改为D3DCREATE_HARDWARE_VERTEXPROCESSING, 帧率提高了5倍左右

13

主题

312

帖子

312

积分

中级会员

Rank: 3Rank: 3

积分
312
发表于 2010-3-22 09:18:00 | 显示全部楼层

Re: Re:DrawIndexedPrimitive 相关效率的问题

zhyinty: RerawIndexedPrimitive 相关效率的问题

发现问题了,用了D3DCREATE_SOFTWARE_VERTEXPROCESSING, 貌似他是直接把所有的点全部转换完再考虑索引。改为...



……


---------------------------------------------------------------------

开源图形处理器体系结构论坛(OpenGPU论坛)  
http://www.opengpu.org/bbs/

OpenGPU Graphics Open Source community图形开源社区),聚焦领域(focus domain)包括:
  * GPU Architecture(图形处理器体系结构).
  * Graphics Algorithm(图形算法).
  * Open Source Rendering Engine(开源渲染器).
  * Open Source GPU Simulator/RTL Implement(开源GPU模拟器).
  * GPGPU Programming (面向通用的图形处理器编程).
  * GPU General-purposed Computing (GPU通用计算).




.

0

主题

43

帖子

71

积分

注册会员

Rank: 2

积分
71
发表于 2010-4-30 14:25:00 | 显示全部楼层

Re: Re:DrawIndexedPrimitive 相关效率的问题

zhyinty: RerawIndexedPrimitive 相关效率的问题

发现问题了,用了D3DCREATE_SOFTWARE_VERTEXPROCESSING, 貌似他是直接把所有的点全部转换完再考虑索引。改为...

......

45

主题

1163

帖子

1165

积分

金牌会员

Rank: 6Rank: 6

积分
1165
发表于 2010-4-30 16:28:00 | 显示全部楼层

Re:DrawIndexedPrimitive 相关效率的问题

vertex cache
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-14 17:46

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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