3DMGAME 3DM首页 新闻中心 前瞻 | 评测 游戏库 热门 | 最新 攻略中心 攻略 | 秘籍 下载中心 游戏 | 汉化 购买正版 论坛

注册 登录

QQ登录

只需一步,快速开始

查看: 3419|回复: 12
打印 上一主题 下一主题

[分享] 無聊開帖.D3D的

[复制链接]

2

主题

1365

帖子

1216

积分

游戏狂人

Rank: 6Rank: 6

贡献度
51
金元
10120
积分
1216
精华
0
注册时间
2010-1-25
跳转到指定楼层
主题
发表于 2010-5-13 06:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
D3D Failed! in E:NovaProjectLiteHookHookDx9HookDx9.cpp, 1852
m_pRHWVB->Lock(0, RHWVB_MAXVERTEXCOUNT*sizeof(CUSTOMVERTEXRHW),(void**)&pVertices, D3SLOCK_DISCARD)
D3D是已定义的供程序员使用的D3D接口和函数的集合。这些接口和函数代表了当前版本的D3D所支持的全部特性集。注意:仅仅因为D3D支持某种特性,并不意味着你使用的显卡会支持它。
在D3D和图形设备之间有一层中介——叫做硬件抽象层(HAL,Hardware Abstraction Layer)。D3D不能直接作用于图形设备,因为现在市面上的显卡种类实在是太多了并且每种显卡都有不同的性能和处理事件的方式。例如,两种不同的显卡实现清屏的方式也可能是不同的。因此,D3D要求设备制造商实现HAL。HAL是一组指示设备执行某种操作的特殊设备代码的集合。用这种方法,D3D避免了必须去了解某个设备的特殊细节,使它能够独立于硬件设备而存在。
设备制造商在HAL中实现他们的产品所支持的所有特性。HAL将不会实现那些D3D支持但硬件产品不支持的特性。调用一个HAL中没有实现的D3D的函数将会出错,除非它是顶点处理操作,因为这个功能可以由软件模拟来实现。因此当使用某些仅由市面上少数显卡所支持的高级特性时,必须检测一下设备是否支持。
D3SLOCK_DISCARD
在程序中,我们用D3DDEVTYPE_HAL来定义HAL设备,它是D3DDEVTYPE枚举类型的一个成员。同样的,REF设备则由D3DDEVTYPE_REF来定义,它也属于D3DDEVTYPE枚举类型。这个类型很重要,因为在创建设备的时候需要指定它。

如果使用DYNAMIC标志创建缓存 (使用D3DUSAGE_DYNAMIC创建的缓存) ,并且D3DUSAGE_WRITEONLY 不被使用, 缓存被分配到AGP 缓存中。(CPU从AGP缓存中读取的速度比显存中快,但比内存慢,是个很好的折中)
如果没有足够的显存,顶点缓存被分配到AGP缓存中;如果AGP缓存也不够时,创建失败,除非使用POOL_ MANAGED 创建。在这种情况下,D3D的运行库会释放足够多的显存,用来创建顶点缓存,并在内存中保存创建的缓存的一个拷贝。那些被运行库释放的显存,在需要它们时可以从内存中复制到显存中。注意标志POOL_ MANAGED 并不被发送到驱动程序,因为这是D3D的附加的功能。

对于NV1X 系列的GPUs, 在进行多数据流渲染得时候,如果有一个顶点缓存位于AGP缓存中,所有的其他位于显存中的顶点缓存会被移动到AGP缓存中。?

当" locking vertex buffers_锁定顶点缓存"时:

如果顶点缓存的创建标志是POOL_DEFAULT:?

如果没有指定任何标志,程序将被暂停,因为它强制程序和GPU同步操作。->低效


注解:因为CPU和GPU是异步的操作,所以当CPU通过系统总线和GPU同步时,需要等到GPU把当前的工作做完。例如,当GPU正在对一块缓存进行DMA操作时,但往往CPU并不对GPU操作的那块缓存进行操作,所以CPU可以和GPU一起工作。当不指定操作标志时,CPU等待GPU完成绘制工作才更新顶点缓存,所以低效。如果指定D3DLOCK_NOOVERWRITE,表示CPU只更新顶点缓存中剩余的缓存,不考虑是否有其他图形绘制是正在使用这个的缓冲区段绘制图形,强制更新那段缓存并返回,而不像默认参数0那样等待前面的绘制结束,而不更新已经写入的顶点值,所以在CPU写入的时候,GPU可以并行的对那些已经存在的顶点值进行DMA等操作,所以高效;如果使用D3DLOCK_DISCARD 标志,说明当前分配的缓存大小不够了,需要重新使用缓存,CPU对这些新分配的缓存区域进行写操作,GPU这时可能还在异步处理旧的缓存区,所以这种调用也是高效的。调用完毕,收回释放的缓存。]

m_pRHWVB->Lock

如果缓冲区开的足够大,render 几帧才能使用完这个缓冲。可以一直使用NOOVERWRITE 就可以。当不够使用时在从头开始使用这个顶点缓冲。如果足够大。开头的顶点基本确定已经画完(都是前几帧的图形顶点内容了。被覆盖也无所谓),如果缓冲很小lock时可以调用DISCARD,表示丢弃缓冲区内容(被丢弃的内容如果在使用中还可以被GPU继续使用。
回复

使用道具 举报

148

主题

3559

帖子

4763

积分

游戏精英

Rank: 8Rank: 8

贡献度
469
金元
28873
积分
4763
精华
0
注册时间
2009-1-11
QQ
舒服的沙发
发表于 2010-5-13 07:38 | 只看该作者
完全没看明白  能在简单点不  直接说改什么得到什么效果  不就行了嘛
回复 支持 反对

使用道具 举报

24

主题

1651

帖子

1520

积分

游戏狂人

Rank: 6Rank: 6

贡献度
89
金元
11639
积分
1520
精华
0
注册时间
2008-4-21
硬硬的板凳
发表于 2010-5-13 08:34 | 只看该作者
字真多...没有看下去的动力了..不过还是顶了
回复 支持 反对

使用道具 举报

2

主题

316

帖子

381

积分

高级玩家

Rank: 4

贡献度
53
金元
2292
积分
381
精华
0
注册时间
2010-3-30
冰凉的地板
发表于 2010-5-13 14:38 | 只看该作者
貌似我出現这个错误了,但是看不懂
回复 支持 反对

使用道具 举报

1

主题

1669

帖子

1187

积分

游戏狂人

Rank: 6Rank: 6

贡献度
56
金元
9630
积分
1187
精华
0
注册时间
2009-12-2
5#
发表于 2010-5-13 15:31 | 只看该作者
专业向的问题,看到眼花缭乱的,我晕
回复 支持 反对

使用道具 举报

10

主题

1394

帖子

1297

积分

游戏狂人

Rank: 6Rank: 6

贡献度
98
金元
9050
积分
1297
精华
0
注册时间
2009-1-6
6#
发表于 2010-5-13 16:53 | 只看该作者
作家为何不直接说怎么改涅?
回复 支持 反对

使用道具 举报

12

主题

9260

帖子

7884

积分

游戏精英

Rank: 8Rank: 8

贡献度
252
金元
68762
积分
7884
精华
0
注册时间
2006-9-19
7#
发表于 2010-5-13 17:24 | 只看该作者
沒有寫明解決方法嗎?[em10]
回复 支持 反对

使用道具 举报

2

主题

364

帖子

266

积分

高级玩家

Rank: 4

贡献度
13
金元
2736
积分
266
精华
0
注册时间
2007-11-26
8#
发表于 2010-5-13 17:56 | 只看该作者
技术贴?

小白顶一下吧
回复 支持 反对

使用道具 举报

4

主题

633

帖子

666

积分

超级玩家

Rank: 5Rank: 5

贡献度
52
金元
4583
积分
666
精华
0
注册时间
2009-1-10
9#
发表于 2010-5-13 18:28 | 只看该作者
那你的结论呢?别光从网上拽一段过来就没下文了……
回复 支持 反对

使用道具 举报

2

主题

1365

帖子

1216

积分

游戏狂人

Rank: 6Rank: 6

贡献度
51
金元
10120
积分
1216
精华
0
注册时间
2010-1-25
10#
 楼主| 发表于 2010-5-14 03:37 | 只看该作者
只有一點.
D3DFailed.的出現多是没有足够的显存,顶点缓存被分配到AGP缓存中;如果AGP缓存也不够时,创建失败
所以高級電腦比較少出現.
即時漢化只是加大了問題.
改善的方法
1 升級電腦
2 減小显存的消耗
3 加大電腦的使用效率
回复 支持 反对

使用道具 举报

9

主题

702

帖子

937

积分

超级玩家

Rank: 5Rank: 5

贡献度
113
金元
4848
积分
937
精华
0
注册时间
2009-11-6
11#
发表于 2010-5-14 06:17 | 只看该作者
楼主发的开方,可是偶还刚学加减法。。
回复 支持 反对

使用道具 举报

11

主题

1744

帖子

2350

积分

游戏达人

Rank: 7Rank: 7Rank: 7

贡献度
329
金元
10340
积分
2350
精华
0
注册时间
2007-11-26
12#
发表于 2010-5-14 10:06 | 只看该作者
说白了,还是那句话,调理好系统。MOD多了,游戏里不要跑太快,汉化了室外F11。没什么可跳的
回复 支持 反对

使用道具 举报

15

主题

456

帖子

607

积分

超级玩家

Rank: 5Rank: 5

贡献度
78
金元
2945
积分
607
精华
0
注册时间
2010-2-5
13#
发表于 2010-5-22 13:14 | 只看该作者
我用視窗模式玩就沒有再出現過了@@
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|3DMGAME ( 京ICP备14006952号-1  沪公网安备 31011202006753号

GMT+8, 2025-2-11 10:24 , Processed in 0.128279 second(s), 15 queries , Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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