Crystal Space
Welcome, Guest. Please login or register.
October 31, 2014, 06:06:32 pm

Login with username, password and session length
Search:     Advanced search
9011 Posts in 2044 Topics by 8902 Members
Latest Member: Nelmczyk
* Home Help Search Login Register
  Show Posts
Pages: [1]
1  Crystal Space Project Development / Feature Requests / Re: Graphics, Sound & Misc on: January 29, 2009, 03:32:59 am
btw i cant really comment from a inside/knowing developer point of view as i dont have experience in this... last time i picked 3D rendering was with DirectX 8.1 in Visual Basic 6

and i really cant say how much work would my suggestions represent, all if anyl... im guessing a lot

but in my head it all makes sense :p
2  Crystal Space Project Development / Feature Requests / Re: Graphics, Sound & Misc on: January 29, 2009, 03:21:15 am
Graphics related:
- Direct3D (at least for DirectX 8.1, DirectX 9.0 i know its a bit more complex)

Sound related:
in documentation/features/etc i see mentions to DirectSound3D, EAX and A3D. im assuming DirectSound3D is the only API library and it uses the EAX and A3D plugins for add features. i dont see any references to other cross-platform API libraries. so i suggest:
- OpenAL
- fmod
- any other worth using library

Misc:
- any application using this engine would be best if it could select not just Graphics API library based on OS but also Sound API library (assuming you guys add those above or others). example, on windows, i could pick eitheir OpenGL+OpenAL or Direct3D+DirectSound3D, or Direct3D+OpenAL. or some other combo.
- add some more detail on features, FAQ, etc

hey there
long time no see! Wink

been investigating lately... interesting facts. well its late to talk about this and im guessing you guys already reached the same or similar conclusions but here my findings and conclusions either way Cheesy


Audio domain

A3D 3D Sound Effects... are long dead
its probably worth nothing that by now that adding A3D is pointless, as A3D as been mostly out of race after Creative purchased Aureal (the owner) and basicaly incorporated its technology in EAX. this is like comparing Glide to OpenGL or Direct3D. popular in its time, but by far no longer used actively in new applications due to vendor-lock ins and defunct company/products. A3D.DLL anyone ? cheesy

EAX 3D Sound Effects... are phasing out
also EAX (who gained room over A3D and became common in the past when a lot of people still bought standalone sound cards from Creative), is in fact by now, in downfall, as increasingly its more common for people to use the motherboard builtin sound functionality, often with RealTek chips. even more, it has been deprecated by Creative itself in favor of OpenAL 1.1. while back in early 2000's it was worth having EAX due to common usage of Creative sound cards with EAX tech, right now its completely the opposite. the last and final version was EAX 5.0, introduced in the Creative Sound Blaster X-Fi cards, dated 2006.

Miles Sound System (MSS) by Rad Game Tools
MSS works well, has support for many OS and consoles (Mac OS 8/9, OSX, Linux, Windows, Xbox/Xbox360, Wii, PS2/PS3), but its greatest flaw is that its simply proprietary/commercial. if eventually some time in the future, someone developed a module/plugin with bindings for its SDK/libraries (cant include the libraries themselves because of the license), that would be a good idea to further help port CS to other platforms (ie PS uses MIPS processor, ELF-alike executables for normal applications/games (using PS2 API ofc) and also supports Linux with modified kernels), but definitely should not be made a priority. would be interesting at very least

Other Libraries and CODECs
theres also Audiere, libavcodec, FMOD, among other libraries to play a multitude of audio/video formats and their codecs... im not sure how the sound layer is implemented on CS, but would be interesting to provide support for namely positional audio in music files deployed in .ogg, .ac3, .flac, .aac, .etc formats. of these the best option would be libavcodec as it decodes and encodes an impressive ammount of formats. its being used in many programs, filters, libraries... the wikipedia article speaks for itself. Ogg/Vorbis among other libraries are built-into libavcodec and it probably would be an easy and fast way to have plenty of support, at the cost of loosing some flexibility and control over implementing the various libraries (which would be a lot of work!)

OSS and ALSA Drivers... yay!
regarding drivers, Creative has been developing and releasing open source OSS and ALSA drivers for Linux in GPL license, which is great news not just in support (if effectively CS uses OpenAL 1.1 EFX extensions, and the drivers work, then these sound cards as well as (probably) the older ones will work with Special Effects similar or better than EAX) but also a new move in a hardware vendor towards open source drivers that might compel others to follow...

CoreAudio implementation of OpenAL... for Mac OS X!
nothing to say here, im not familiar with it. but sounds good idea Wink

DirectSound... is phasing out
also, in the audio domain, DirectSound/DirectSound3D was phased out in favor of the XACT with DirectX 10 in Windows Vista, making DirectSound work as a pass-through on XACT and loosing all hardware acceleration capabilities, while  also i think, loosing some compatibility (effectively running in compatibility/emulatation mode).

Old Windows WDM and New Vista/Longhorn Driver Model
also, with Vista, the audio stack was revamped and turned into what we know today as Windows Audio Session API (WASAPI) and other gibberish talk, which complicates matters further for DirectSound in future Windows versions. since theres a new model, the old Windows 98SE/ME/2000/XP/2003 WDM model will be phased out. i wonder what happens to standard windows sound Win32 API calls? will they be replaced with .NET and XACT/WASAPI and WMP?

from wikipedia, regarding hardware acceleration for DirectSound3D + EAX on Windows Vista:
Quote
As of 2007, a solution to re-enable hardware acceleration of DirectSound3D and Audio Effects, such as EAX, called Creative ALchemy was launched[3]. Creative ALchemy intercepts calls to DirectSound3D and translates them into OpenAL calls to be processed by supported hardware such as Sound Blaster X-Fi and Sound Blaster Audigy.

Creative vs DirectSound vs XACT vs Vista
finally from what i read somewhere, Creative was dropping DirectSound and XACT support all together in new cards/chips and drivers in favor of OpenAL, which i think will still be made in WDM in Windows XP/2003, the new WDDM/whatever the new name in Vista/Longhorn is, and OSS and ALSA in Linux.



Graphics domain

Direct3D
basically unless you are pursuing DirectX 10/11 model to make use of Direct3D, XACT (instead of DirectSound) and XInput (instead of DirectInput) for usage in Vista/LongHorn and XBox 360 or returning to DirectX 8.1/9 for Direct3D (kind of pointless given alternatives), i dont see why consider again DirectX/Direct3D



my recomendations Smiley
A3D - completely remove it if it ever existed in CS (which i cant find proof)
EAX - if exists, abstract into a plugin/module or remove it if your OpenAL implementation already does the job (OpenAL 1.1 EFX extensions). if not, dont bother!
MSS - consider adding some time in the future, say, in some 2 or 3 years, if it still exists by then!
libavcodec - consider adding this one too or instead of MSS. it supposedly works on multiple platforms as well
OSS, ALSA and CoreAudio - iif it aint broken it doesnt need fixing :p
Windows Drivers mess - i would say dont rely (remove) on Win32 APIs for software audio rendering or investigate further to support (add) both the old and new model to support older and newer OS
X11 and SDL - keep. what about adding Xgl for 2D hardware acceleration of X11 via OpenGL? probably unneeded if OpenGL alone already does well 2D
OpenGL and OpenAL - keep ofc :p consider binding to Mesa for OpenGL as it supports v2.1. does not support 2D graphics though!
DirectShow/Direct3D 7.0/8.1/9.0 and Direct3D 10/11 - unless your planning on adding the old/adding the newer, ignore it. if adding the newer, consider adding the sound and input counterparts
DirectSound/DirectSound3D and XACT - unless your planning on adding XACT as well, and if OpenAL already performs well enough and does the same job or better, just remove it
DirectInput and XInput - again unless your planning on adding the other components above or add both the older and newer, forget it Wink
DirectPlay - comedy option cheesy


a final though...
i dont know how modularized CS is, but in my opinion it would be best to develop it into an abstraction engine that controls Graphics, Audio, Physics, Network, etc using a common framework that sends its instructions to the chosen modules/plugins, residing outside of the parent source code.

imagine GNU/Hurd kernel. instead of having everything in the same tree, theres a multitude of modules that the microkernel loads on demand

something like this:
CS
.....Graphics (SDL/SVGALib applies?)
..........OpenGL (hardware) (Mesa3D)
..........OpenGL (software) (Mesa3D)
..........Xgl hardware) (X11 + OpenGL)
..........X11 (software)
.....Audio + effects/positioning (SDL)
..........OpenAL/CoreAudio (hardware)
..........OpenAL/CoreAudio (software)
..........ALSA (software)
..........OSS (software)
.....Input, Network - SDL

ah well i think i busted my brain for today! eh

have fun reading and commenting :p
Pages: [1]
Powered by MySQL Powered by PHP Powered by SMF 1.1.2 | SMF © 2006-2007, Simple Machines LLC Valid XHTML 1.0! Valid CSS!
Page created in 6.2 seconds with 19 queries.