游戏开发论坛

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

D3D中哪些顶点操作是硬件处理的?

[复制链接]

10

主题

22

帖子

22

积分

注册会员

Rank: 2

积分
22
发表于 2007-2-1 17:33:00 | 显示全部楼层 |阅读模式
对于这一点一直不是很清楚,在创建设备的时候指定了使用硬件处理顶点以后,究竟程序中哪些操作是硬件处理的呢?
也就是我要怎么利用DX的API写程序,才不是使用CPU计算,而是用GPU(除了在Vertex Shader中实现以外)?

1. D3DX中的数学库进行的矩阵和向量的运算是用GPU吗?还是仅仅只是一个软件数学库?
2. 如果分配了Static Vertex Buffer,DX的文档中说了很有可能分配在显存上,如果是Dynamic则分配在AGP上。
   如果我Lock了VB,然后对显存或者AGP进行矩阵计算,是CPU还是GPU去算?
3. 世界、摄像机、正交投影三次SetTransfrom的时候是 GPU 去逐顶点进行矩阵运算的,应该没有理解错吧。

谢谢赐教!

36

主题

1047

帖子

1147

积分

金牌会员

Rank: 6Rank: 6

积分
1147
发表于 2007-2-1 21:26:00 | 显示全部楼层

Re:D3D中哪些顶点操作是硬件处理的?

如果创建设备是指定硬件处理,除了在你的代码中处理的顶点变换外都是 GPU 完成。
1.CPU 计算,根据 SIMD 优化。
2.Lock 之后是你写的代码,运行在 CPU 上。
3.FFP 是这样的。都是在 GPU 中计算。

17

主题

258

帖子

264

积分

中级会员

Rank: 3Rank: 3

积分
264
发表于 2007-2-1 21:41:00 | 显示全部楼层

Re:D3D中哪些顶点操作是硬件处理的?

按道理讲,那个dx数学库应该是软件数学库.
应该来讲,你把矩阵提交上去了之后,那些顶点变换就是gpu搞了.

10

主题

22

帖子

22

积分

注册会员

Rank: 2

积分
22
 楼主| 发表于 2007-2-2 11:38:00 | 显示全部楼层

Re:D3D中哪些顶点操作是硬件处理的?

这么说来 在固定管线下 只有三次变换是GPU 其它全是CPU了?

10

主题

22

帖子

22

积分

注册会员

Rank: 2

积分
22
 楼主| 发表于 2007-2-2 11:46:00 | 显示全部楼层

Re: Re:D3D中哪些顶点操作是硬件处理的?

除了在你的代码中处理的顶点变换外都是 GPU 完成。

那不就是说只要是写在代码里的全是CPU计算,直到提交顶点渲染以后才是GPU。
在固定管线下,GPU只负责三次空间变换了?

另外问个问题,如果顶点不储存在Vertex Buffer中,而是用户自己定义的空间里,提交顶点以后,顶点处理还是GPU吗?

36

主题

1047

帖子

1147

积分

金牌会员

Rank: 6Rank: 6

积分
1147
发表于 2007-2-3 00:46:00 | 显示全部楼层

Re: Re: Re:D3D中哪些顶点操作是硬件处理的?

feicheng99: Re: Re3D中哪些顶点操作是硬件处理的?


那不就是说只要是写在代码里的全是CPU计算,直到提交顶点渲染以后才是GPU。
在固定管线下,GPU只负责三次...

只要提交到 GPU 中,无论顶点的创建是在哪里,最终都是提交到 GPU 显存中,再经过你提交的变换矩阵变换。这些不要再讨论了,GPU 最基本的功能就是硬件 T & L,无论是 FFP 还是 PFP。

4

主题

45

帖子

45

积分

注册会员

Rank: 2

积分
45
发表于 2007-2-5 18:36:00 | 显示全部楼层

Re:D3D中哪些顶点操作是硬件处理的?

DrawPrimitive系列函数就是交给gpu处理,其他都只是最多由cpu提交数据给显存
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-26 10:41

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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