游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2276|回复: 6

除了这种常规的办法,还有没有其它技巧性的办法?

[复制链接]

24

主题

161

帖子

179

积分

注册会员

Rank: 2

积分
179
发表于 2004-7-29 16:09:00 | 显示全部楼层 |阅读模式
画200条直线和相应的每条直线的头部的矩形,除了每次渲染时调用2*200次drawprimitive方法外,还有没有没其它办法?

这样效率好低!帧率一下子就降下来了! [em7] [em7] [em7]

121

主题

2029

帖子

2034

积分

金牌会员

Rank: 6Rank: 6

积分
2034
QQ
发表于 2004-7-29 20:15:00 | 显示全部楼层

Re:除了这种常规的办法,还有没有其它技巧性的办法?

你可不可以用一个类封装他们,建立一个列表然后一齐渲染啊?

6

主题

444

帖子

457

积分

中级会员

Rank: 3Rank: 3

积分
457
发表于 2004-7-29 20:45:00 | 显示全部楼层

Re:除了这种常规的办法,还有没有其它技巧性的办法?

可以用shader model3.0中的geometry instancing,呵呵。

121

主题

2029

帖子

2034

积分

金牌会员

Rank: 6Rank: 6

积分
2034
QQ
发表于 2004-7-29 20:52:00 | 显示全部楼层

Re:除了这种常规的办法,还有没有其它技巧性的办法?

其实我觉得用一个顶点缓冲就可以了,可以渲染很多线的

24

主题

161

帖子

179

积分

注册会员

Rank: 2

积分
179
 楼主| 发表于 2004-7-30 08:37:00 | 显示全部楼层

Re:除了这种常规的办法,还有没有其它技巧性的办法?

就是只用了两个顶点缓冲(一个直线,一个矩形),而且渲染是用vs写的,可总觉得这样效率太低了

直线和矩形的VS和VB不一样,每画一条线就要改变画矩形,然后再改回来。而如果用两个循环可能效率会更低,因为每条直线(矩形)的参数是不一样的,而一对直线和矩形的参数一样。

DOOM3之类的几百万三角形是怎么画的?汗............

200线+200*2个三角形 vs 2百万三角形 帧率竟然一样!汗死........

121

主题

2029

帖子

2034

积分

金牌会员

Rank: 6Rank: 6

积分
2034
QQ
发表于 2004-7-30 08:59:00 | 显示全部楼层

Re:除了这种常规的办法,还有没有其它技巧性的办法?

这个我就不是太清楚了。因为我刚刚才学图形学呢。应该没有那么夸张吧。。

8

主题

553

帖子

560

积分

高级会员

Rank: 4

积分
560
发表于 2004-7-30 10:57:00 | 显示全部楼层

Re:除了这种常规的办法,还有没有其它技巧性的办法?

无论什么情况下,batch都是优化的重要手段。
所以你可以先创建一足够大dynamic的VB(内存也行),然后对于每帧需要画的直线把起顶点数据都放入此VB,只到此VB满,然后立刻调DP/DIP绘制,之后重复之前的过程直到画玩所有直线/矩形。
画线的话,在非专业卡上一般都比填充l模式慢。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-7-4 09:50

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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