真服了微软了,用d3d9的例子看x文件太慢了

时间:2021-03-04 05:09:54
用d3d9的例子看x文件太慢了,我的显卡没有硬件加速,才1 fps.而我用的其他看3d文件的软件,人家起码有50fps,差别这么大啊.d3d效率太差了.

10 个解决方案

#1


你所谓其他3D文件的软件,如果你是在windows系统上看的话~

他们也是用DX写的程序~~ 呵呵

即使所谓opengl,windows上的opengl也是微软写的,他们也是以dx为基础的,就像一种对DX的封装,函数和OpenGl的函数一样而已。

D3D9的效率绝对高的,只是你的3D模型可能比较大,而且~你所谓用D3D9的例子看X文件~

不知道你的D3D9的例子是否是示例某种特效的~~如果那样,看普通X文件当然慢啦~

你要随便看自己的哪个X文件,就最好用DX9SDK自带的mView.exe看,该程序在SDK安装目录的Bin目录里,专门看X文件的~~呵呵。

fps低不要怪微软,要看看自己的东西是否有问题,毕竟微软人多,想到的比你想到的多,如果这个问题都存在,他们可以跳楼自尽了~

#2


azheng0305(*阿铮) ,很高兴能跟你讨论一下.explor3d.exe,Deep Exploration都是类似
acdsee 的看图软件,但是他们可以看各种3d格式的文件,包括.x,3ds,很多.他们都能达到50几帧.我从网上下了一个学生自己实现的3d程序,也有30多fps,都是软件模拟的.就是d3d的例子,如optimizedmesh.exe ,还有更简单的mesh,只有1fps,这是什么原因啊,可能d3d在有硬件的时候是速度快的.再有3d max用d3d软件模拟也很慢.难道处理方式d3d 有explor3d.exe,Deep Exploration这些简单的看图有区别吗?

#3


即使所谓opengl,windows上的opengl也是微软写的,他们也是以dx为基础的,就像一种对DX的封装,函数和OpenGl的函数一样而已。

您的高见,在下不敢苟同。


To  sunjmmeishao1(天山兜兜):

DX9中,默认的换页方式是帧同步的,DX8就不是。很可能是这里影响了FPS。
有时会造成FPS几倍的差异。你在创建设备时改变试试。

#4


To sakurar(人脑修理工):

azheng0305(*阿铮)并没有说错。如果你没有安装支持硬件加速的对应显卡驱动,那么用的OpenGL32.DLL确实是微软的,而且实际上是Direct3D的封装转译层。如果安装了支持硬件加速的对应显卡驱动,那么还要分两种情况:绝大多数显卡驱动安装的是OpenGL的IDC部分,那么OpenGL32.DLL还是微软的,至于是不是Direct3D的封装转译层就看显卡厂商怎么做;有的显卡驱动干脆把OpenGL32.DLL替换掉,这种情况下就不是微软的了,不过这样做的厂商非常非常少。要不您看一下您自己机器上的C:\WINNT\System32\OPENGL32.DLL的属性,在“版本”页看看是不是写明Microsoft Corporation。另外,请您注意一下前提条件:“没有硬件加速”,这种情况下绝对是微软的。

#5


opengl当前是os来实现,我说的是他这句:“就像一种对DX的封装”,开玩笑嘛。

#6


UP  学习中。

#7



D3DDEVTYPE_REF
Microsoft® Direct3D® features are implemented in software; however, the reference rasterizer does make use of special CPU instructions whenever it can. 

用D3DDEVTYPE_REF可能也是慢的原因,
D3DDEVTYPE_SW
A pluggable software device that has been registered with IDirect3D9::RegisterSoftwareDevice.还没找到用D3DDEVTYPE_SW的例子.

知道用法吗

#8


对于D3D9,前面几位朋友都非常相信的说D3D9的效率是很高的。
没错,但是,D3D9分成了D3D9部分和X库部分。D3D9API部分的效率是非常高的,这一点可以肯定,但是X库的效率却是比较低的。光从其绘制线型函数就可以看出来,还有Sprite等。这些单就别说了,.x文件更是差劲,虽然拥有排列和优化顶点顺序,剔除不可见物体等等,但是,.x文件是每一帧都切换渲染状态的而且不管当前渲染状态是否需要改变。这就是浪费。
还有,.x文件照顾了相当多的内容,他比分离的处理静态的Mesh和有Bone的SkinMesh效率是完全不一样的!

#9


这倒是的。平时OpenGL下面GLUT也是少用为妙。

#10


对的,X文件的确是微软的一个失败,不过如果微软把什么都做的最好,那还要我们程序员做什么呢?对初学者来说,X是很容易接受的,因为其文本形式、源码公开等等~

不过你看过微软的游戏吗?他们从来不会用x文件的,呵呵。而且,其他大的游戏公司的游戏,也绝对不会使用x文件的。所以,x文件只是学习阶段的一个中间产物,是有其价值的。

所以,这里就不用考虑x的效率了,呵呵。

#1


你所谓其他3D文件的软件,如果你是在windows系统上看的话~

他们也是用DX写的程序~~ 呵呵

即使所谓opengl,windows上的opengl也是微软写的,他们也是以dx为基础的,就像一种对DX的封装,函数和OpenGl的函数一样而已。

D3D9的效率绝对高的,只是你的3D模型可能比较大,而且~你所谓用D3D9的例子看X文件~

不知道你的D3D9的例子是否是示例某种特效的~~如果那样,看普通X文件当然慢啦~

你要随便看自己的哪个X文件,就最好用DX9SDK自带的mView.exe看,该程序在SDK安装目录的Bin目录里,专门看X文件的~~呵呵。

fps低不要怪微软,要看看自己的东西是否有问题,毕竟微软人多,想到的比你想到的多,如果这个问题都存在,他们可以跳楼自尽了~

#2


azheng0305(*阿铮) ,很高兴能跟你讨论一下.explor3d.exe,Deep Exploration都是类似
acdsee 的看图软件,但是他们可以看各种3d格式的文件,包括.x,3ds,很多.他们都能达到50几帧.我从网上下了一个学生自己实现的3d程序,也有30多fps,都是软件模拟的.就是d3d的例子,如optimizedmesh.exe ,还有更简单的mesh,只有1fps,这是什么原因啊,可能d3d在有硬件的时候是速度快的.再有3d max用d3d软件模拟也很慢.难道处理方式d3d 有explor3d.exe,Deep Exploration这些简单的看图有区别吗?

#3


即使所谓opengl,windows上的opengl也是微软写的,他们也是以dx为基础的,就像一种对DX的封装,函数和OpenGl的函数一样而已。

您的高见,在下不敢苟同。


To  sunjmmeishao1(天山兜兜):

DX9中,默认的换页方式是帧同步的,DX8就不是。很可能是这里影响了FPS。
有时会造成FPS几倍的差异。你在创建设备时改变试试。

#4


To sakurar(人脑修理工):

azheng0305(*阿铮)并没有说错。如果你没有安装支持硬件加速的对应显卡驱动,那么用的OpenGL32.DLL确实是微软的,而且实际上是Direct3D的封装转译层。如果安装了支持硬件加速的对应显卡驱动,那么还要分两种情况:绝大多数显卡驱动安装的是OpenGL的IDC部分,那么OpenGL32.DLL还是微软的,至于是不是Direct3D的封装转译层就看显卡厂商怎么做;有的显卡驱动干脆把OpenGL32.DLL替换掉,这种情况下就不是微软的了,不过这样做的厂商非常非常少。要不您看一下您自己机器上的C:\WINNT\System32\OPENGL32.DLL的属性,在“版本”页看看是不是写明Microsoft Corporation。另外,请您注意一下前提条件:“没有硬件加速”,这种情况下绝对是微软的。

#5


opengl当前是os来实现,我说的是他这句:“就像一种对DX的封装”,开玩笑嘛。

#6


UP  学习中。

#7



D3DDEVTYPE_REF
Microsoft® Direct3D® features are implemented in software; however, the reference rasterizer does make use of special CPU instructions whenever it can. 

用D3DDEVTYPE_REF可能也是慢的原因,
D3DDEVTYPE_SW
A pluggable software device that has been registered with IDirect3D9::RegisterSoftwareDevice.还没找到用D3DDEVTYPE_SW的例子.

知道用法吗

#8


对于D3D9,前面几位朋友都非常相信的说D3D9的效率是很高的。
没错,但是,D3D9分成了D3D9部分和X库部分。D3D9API部分的效率是非常高的,这一点可以肯定,但是X库的效率却是比较低的。光从其绘制线型函数就可以看出来,还有Sprite等。这些单就别说了,.x文件更是差劲,虽然拥有排列和优化顶点顺序,剔除不可见物体等等,但是,.x文件是每一帧都切换渲染状态的而且不管当前渲染状态是否需要改变。这就是浪费。
还有,.x文件照顾了相当多的内容,他比分离的处理静态的Mesh和有Bone的SkinMesh效率是完全不一样的!

#9


这倒是的。平时OpenGL下面GLUT也是少用为妙。

#10


对的,X文件的确是微软的一个失败,不过如果微软把什么都做的最好,那还要我们程序员做什么呢?对初学者来说,X是很容易接受的,因为其文本形式、源码公开等等~

不过你看过微软的游戏吗?他们从来不会用x文件的,呵呵。而且,其他大的游戏公司的游戏,也绝对不会使用x文件的。所以,x文件只是学习阶段的一个中间产物,是有其价值的。

所以,这里就不用考虑x的效率了,呵呵。