| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 3857 人关注过本帖
标题:[讨论]>>>关于本版今后的技术讨论方向
取消只看楼主 加入收藏
一笔苍穹
Rank: 1
等 级:新手上路
帖 子:640
专家分:0
注 册:2006-5-25
收藏
得分:0 
我前面不是讲过了因为BGI是VGA驱动所以才兼容性比较好吗,也讲过了只要会用,SVGA其实能做到一样兼容性好。只要我有时间并有兴趣,我可以写一个不基于BGI的并且兼容性和BGI一样好的图形库,毕竟VGA库要做到好的兼容性比起SVGA来说要容易很多。
2007-08-06 12:03
一笔苍穹
Rank: 1
等 级:新手上路
帖 子:640
专家分:0
注 册:2006-5-25
收藏
得分:0 
如果现在的个人电脑的话,可以说全部,我用过最老的TNT MX100都支持VBE 2.0
当然,像集成显卡或你现在用486那种工控板子的话可能就不一定。以前intel集成显卡特别是i845G板子,它不是不支持VBE,而是支持的不规范,也就是它有些功能接口没按标准文档里来,有自己的OEM接口,但这种板子大部分还是应该可以通过VBE里的显卡信息查询功能得到它的OEM接口,再而操作它,也就是说它的驱动会和别的稍有不同。但现在的INTEL集成显卡已经没这种问题了,我办公室用的的是945G的板,用NEO和Allegro都没问题。

反正你如果现在过电脑城,随便找一家买一块能买到的最老的显卡,我敢肯定它支持VBE,而且99.9%支持最新版也就是3.0版的VBE。
2007-08-06 12:26
一笔苍穹
Rank: 1
等 级:新手上路
帖 子:640
专家分:0
注 册:2006-5-25
收藏
得分:0 
以下是引用RockCarry在2007-9-7 10:11:45的发言:
DirectDraw 没有什么好学的,并且 DirectDraw 并没有提供给我们什么东西,仅仅提供了一种在 windows 平台下直接访问显存的一种手段,连基本的绘图函数都没有提供,仍然需要借助于 GDI 进行绘图。DirectDraw 环境下的 GDI 虽然说会快一点,但是许多情况下仍然不能满足需求。因此,在 DirectDraw 下,我们仍然需要直接访问显存,并且自己封装出一套图形库,这同 DOS 下的 SVGA 编程在本质上没有什么区别。因此,DirectDraw 应该被称作是 windows 平台上,微软对 VBE 的一种封装,因为 windows 下不能访问 VBE,因此微软就给出了 DirectDraw。

DirectDraw 所提供的功能真的很少,并且这些功能在 DOS 下通过 VBE 都能实现。然而,DirectDraw 的使用却是相当的繁琐,不如 VBE 的调用来的简洁。

这样说有点一棍子打死的感觉,其实VBE不是万能的,光DDRAW中提供的那些硬件加速特性VBE就难以全部做到,VBE是现在显卡的一套基本子集,各显卡厂商还有更多的高级或者说现代特性,这些高级特性的使用通过WINDOWS的硬件无关抽象层连接到显卡的驱动,显卡提供相应的能力的DDRAW直接调用,没提供的可以软件实现,2D这样,3D就更不用说了,显卡厂商制造的时候就得按照DX的需要来,提供D3D要的特性。DX可能的确是不适合直接用于工程,不过有大量的第三方封装引擎可以选用,可以避免与生涩的COM打交道。

2007-09-07 10:36
一笔苍穹
Rank: 1
等 级:新手上路
帖 子:640
专家分:0
注 册:2006-5-25
收藏
得分:0 
当然这也没有觉得VBE不行的意思,我个人对VBE也是很有感情的,负责任的说一句,只要代码架构设计的科学,细节优化的好,VBE足够编写任何2D游戏了!
就拿我以前做的NEO来说吧,架构谈不上好,优化的也很马虎,但效率已经够做普通游戏这个级别了。如果重新设计再重点优化的话(比如引入汇编优化关键位置等等),FPS还可以有较大的提升空间。何况NEO主要是针对16位的编译器的,光显存映射换页就是一个瓶颈了,如果在32位编译器下进行显存的平坦线性寻址,再加上32位的总线带宽的传输能力,性能翻番不成问题。
2007-09-07 10:47
一笔苍穹
Rank: 1
等 级:新手上路
帖 子:640
专家分:0
注 册:2006-5-25
收藏
得分:0 

我并未否认VBE,毕竟大多的2D特性是建立在VBE上的,但硬件Blit和ColorKey也是有用的,DDRAW虽然没直接提供几何绘制接口,用GDI当然可以,但效率过低,直接LOCK表面再写显存当然也可以,但比起反复的加锁和解锁来说,硬件位块传送就显得有用了,画点函数可以这样做:建立一个支持硬件位块传送的surface,大小为1X1,即一个像素,往目标表面指定位置直接Blit。如果觉得这个比显存直写来的快不了多少的话,水平线和垂直线可能更能运用这个硬件加速特性。对支持硬件加速的Colorkey位块传输在下更是垂涎已久。我赞成2D图形处理不会也不必增加更多的特性,VBE本身提供的说出来也就主要也就两种而已——显存直访、显存首址重定向(其应用可衍生出换页和大虚拟屏幕等),就这些了,已经满足2D处理的应用了。如下图:

DDRAW
______________|______________
| |
VBE 厂商特性
(显存直访、首址重定向等) (硬Blit等)

实在不算多,说DDRAW没多提供什么,那VBE本身又提供了多少呢?2D嘛,不是要多,而是要有用,VBE提供的都是极有用的,而从基本几何绘图到位图传输,有了那个厂商特性就如虎添翼。我眼巴巴的等着这个特性入标准呢……

我不认为显存用的频率一定会比主存少,也不认为主存和CPU的发展比显存及GPU快,当个人电脑还在用DDR2内在的时候显存颗粒已经是DDR3甚至DDR4了,而且容量越来越大——128M的普通的不能再普通,512M以上的都比比皆是;GPU的制程也直逼CPU,而且它要做的事只是处理图形而已(现在一些思路提出的利用GPU上的浮点运算单元协助处理CPU事务,利用GPU过剩的处理能力)。

写到最后,发现不是我们的观点不同,而是都对VBE有更高有寄望而已。

2007-09-07 13:33
一笔苍穹
Rank: 1
等 级:新手上路
帖 子:640
专家分:0
注 册:2006-5-25
收藏
得分:0 
以下是引用RockCarry在2007-9-7 14:28:54的发言:

另外 VBE Core 中是不会定义更多的功能的(包括绘图等),而在 VBE Core 之上有 VBE AF,不知道 DirectDraw 是否是建立在 VBE AF 之上。如果是这样,那么 DirectDraw 所提供的功能真的是太少了。

裸DX用起来是不顺手。
至于VBE AF,好像各显卡厂商的支持都不得力,而且连FreeAF项目也早已停止了,这不得不说是个遗憾。

2007-09-07 17:53
一笔苍穹
Rank: 1
等 级:新手上路
帖 子:640
专家分:0
注 册:2006-5-25
收藏
得分:0 
以下是引用RockCarry在2007-9-7 14:40:45的发言:

我还是那个看法,DirectDraw 其实就是 windows 下的 VBE,除此之外他并没有提供更多的功能。连一个图形库都谈不上
不过新版的 DirectX 中 DirectDraw 已经被 DirectGraphics 所取代。

恩,就像FrameBuffer就为LINUX提供VBE接口一样。这是必要的,如果系统不提供这样的底层接口,那形形色色的图形库有从何而来呢。

2007-09-07 17:55
快速回复:[讨论]>>>关于本版今后的技术讨论方向
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017863 second(s), 10 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved