游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2816|回复: 5

为啥opengl画一个三角形那么快?

[复制链接]

63

主题

181

帖子

181

积分

注册会员

Rank: 2

积分
181
发表于 2010-8-23 02:57:00 | 显示全部楼层 |阅读模式
四叉要在树杈上绘制多边形。用OpenGL绘制零散的多边形很好操作也不影响速度,扔哪里画都可以。但是Direct3D就非得要把多边形的信息整理到一起,一次绘制,多次填写vb,ib非常影响速度。感觉好蠢。Opengl为什么那么快啊?

227

主题

1794

帖子

1866

积分

金牌会员

Rank: 6Rank: 6

积分
1866
发表于 2010-8-23 09:31:00 | 显示全部楼层

Re:为啥opengl画一个三角形那么快?

这东西和显卡驱动有关吧?
我这边明显顶点数组比零散顶点快一截
api调用次数在那摆着

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2010-8-23 11:29:00 | 显示全部楼层

Re:为啥opengl画一个三角形那么快?

多次顶点数组当然慢。

OPENGL 4.0开始只有顶点数组了。glBegin/glEnd不再存在。

119

主题

1367

帖子

1393

积分

金牌会员

Rank: 6Rank: 6

积分
1393
发表于 2010-8-25 16:50:00 | 显示全部楼层

Re:为啥opengl画一个三角形那么快?

理论上api调用的次数越少越快,opengl应该也是如此吧

1

主题

266

帖子

280

积分

中级会员

Rank: 3Rank: 3

积分
280
发表于 2010-9-3 00:36:00 | 显示全部楼层

Re:为啥opengl画一个三角形那么快?

也许和驱动有关吧。
在《3D Game Engine Programming》中提到这点时是这么说的:
Direct3D is horrible at rendering small batches of triangles in one call. Therefore, rendering a thousand triangles in one call is lightning fast but rendering with a thousand calls while rendering a single triangle with each call is very slow.
OpenGL does a much better job rendering single triangles. This is good because it makes life easier for the programmer by skipping the need to batch data together.

也不知道是不是这么回事...

0

主题

54

帖子

87

积分

注册会员

Rank: 2

积分
87
发表于 2010-9-4 18:08:00 | 显示全部楼层

Re:为啥opengl画一个三角形那么快?

貌似opgl的顶点优化的要好,dx最好写一下顶点管理
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-7 04:33

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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