游戏开发论坛

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

请教下OpenAL与DS3D之间的差别

[复制链接]

34

主题

70

帖子

76

积分

注册会员

Rank: 2

积分
76
发表于 2008-2-18 18:05:00 | 显示全部楼层 |阅读模式
    小弟才开始研究音频的东西.看了一下OpenAL和DS3D.发现OpenAL做的仿佛太高层了点.像DS3D还可以读写主缓冲区,锁定部分后缓冲区.而OpenAL仿佛就只是一组设置缓冲,音源和听众的函数而已.
    而且看到某些人说OpenAL在window平台上大多是用DS实现的?那就是说OpenAL在windows上就是D3D的封装层,而不是像OpenGL一样直接有驱动支持访问硬件的东西?
    现在很多游戏引擎都对D3D和OpenGL做了抽象,可以在这两个渲染引擎之间动态切换.那有没有必要为OpenAL和DS3D做这个抽象?
    最后其实想问的是:OpenAL能实现DS3D的全功能么?

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2008-2-18 19:08:00 | 显示全部楼层

Re:请教下OpenAL与DS3D之间的差别

你的理解完全相反

OpenAL在软件实现在windows上有ds3d,也有mmsystem的各种实现。

但也有硬件实现,但一般只有高端的声卡才有。现在一些集成声卡也开始提供OpenAL硬件支持。

特别是在windows vista之后,连ds3d都是使用openal实现的。

OpenAL可以实现DirectSound 3D所有功能,但DirectSound 3D不能实现OpenAL的很多功能,包括很多很重要很先进的功能。比如硬件OGG/MP3解码,X-RAM,EFX。

34

主题

70

帖子

76

积分

注册会员

Rank: 2

积分
76
 楼主| 发表于 2008-2-19 10:50:00 | 显示全部楼层

Re:请教下OpenAL与DS3D之间的差别

不过我下载了官方的OpenAL Programmer's Guide仿佛上面函数很少的样子.是不是很多功能都要靠扩展实现啊

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2008-2-19 20:16:00 | 显示全部楼层

Re:请教下OpenAL与DS3D之间的差别

EAX/EFX的效果列表印成书你会拿不动。

8

主题

130

帖子

156

积分

注册会员

Rank: 2

积分
156
发表于 2008-2-20 09:31:00 | 显示全部楼层

Re:hyzboy

我以前下载openAL的实现源代码,里面的实现,在windows平台上是通过调用DS实现的。而我的声卡驱动提供了openAL的支持。
因为现在的操作系统都提供了DX支持,要不我们可以看看不装DX,openAL是否可用,这样就能知道我们的驱动是否基于DS实现的了。98上倒是可以试一下,装完98,直接装声卡openAL驱动(system32下会有openAL.dll文件),如果能用,那就说明creative给出的openAL源码骗人(希望哪位试试看了,把结果告知一下)。

回复楼主:在两者间切换需要不大吧,对于玩家根本用不着在乎底层技术,要的只是声音效果(不过,在linux下,那你可能只能用openAL了。另外,象FMOD是夸平台的)。

还有一个,我曾经查找资料时,看到一个评价说DS是现在最好的sound接口,迄今为止其它sound的API无法企及,所以DS8以后就没有更新了,因为MS没有对手了(大概意思这样,具体原话记不住了)。

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2008-2-20 11:02:00 | 显示全部楼层

Re:请教下OpenAL与DS3D之间的差别

你应当下载那个sdk,它会自动优先调用system32下的openal32.dll,没有的情况下才会调用wrap_oal.dll

你看SDK中的示例,运行后都可以枚举出可用的设备。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-20 04:40

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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