يک بازي کامپيوتري را روي کامپيوترتان اجرا ميکنيد. فعلاً کارت گرافيک شما روي اسلاتAGP سوار ميشود، پردازشگر سلرون داريد و … پس از چند ماه يا چند سال کامپيوتر جديدي ميخريد. اکنون اسلات کارت گرافيکي شما PCI Express است و يک پردازشگر 64 بيتي داريد. همان بازي را روي اين کامپيوتر هم نصب و اجراميکنيد! شايد به نظر طبيعي ميآيد که همه چيز بايد همينطور باشد. اما چگونه يک بازي روي کامپيوترهايي با تراشهها و سختافزارهاي مختلف و گاه فناوري متفاوت اجرا ميشود؟ APIهاي گرافيکي يا همان رابطهاي برنامهنويسي، بخش بزرگي از اين مشکل را حل ميکنند و امکانات گسترده ديگري را نيز در اختيار برنامهنويسان و توسعهدهندگان بازي و برنامههاي چندرسانهاي قرارميدهند. OpenGL وDirectX، دو مجموعه API گرافيکي و صوتي هستند که براي آسانتر ساختن توسعه بازيها و نرمافزارهاي چندرسانهاي طراحي شدهاند.
.jpg)
API گرافيکي چيست؟
API درواقع بين برنامه و سختافزاري که برنامه روي آن اجرا ميشود، نقش يک هماهنگکننده را دارد و مانند پلي ميان سختافزار و نرمافزار ارتباط ايجادميکند. يعني برنامهنويس کدهايي مينويسد که دادههاي گرافيکي خود را به وسيله دستورهاي استانداردي به درايور API ميفرستد نه مستقيماً به خود سختافزار. سپس درايوري که شرکت سازنده سختافزار توليدکرده است، اين کداستاندارد توليدشده را به فرمت بومي و ويژهاي که براي آن مدل خاص سختافزار قابل شناسايي است، ترجمه ميکند.
Microsoft DirectX
شرکت مايکروسافت در سال 1995 DirectX را ساخته و توسعه دادهاست. اين نرمافزار شامل مجموعه يکپارچهاي از ابزارهاي برنامهنويسي است که به توسعهدهندگان امکان ميدهد انواع مختلف نرمافزارهاي مالتيمديا را روي پلتفرم ويندوز توليد کنند. DirectX به برنامهاي که بر پايه آن طراحي شده امکان ميدهد به آساني قابليتهاي سختافزار کامپيوتر را شناسايي کند و پارامترهاي برنامه را با آن هماهنگ سازد.
DirectX شامل APIهايي است که دسترسي به بخشهاي ويژهاي از سختافزار مانند تراشههاي شتابدهنده گرافيک سهبعدي و کارت صوتي را ميسرميکند. اين APIها کنترل توابع سطح پايين، يعني نزديک به سختافزار، شامل شتابدهنده گرافيکي دو بعدي، پشتيباني از دستگاههاي ورودي مانند دسته بازي، صفحهکليد و ماوس، و کنترل ميکس و خروجي صدا را انجام ميدهند.
DirectX 7.0 در سال 1999 با شش کامپوننت عرضه شد که عبارت بودند از: Direct3D،DirectDraw ،DirectSound ،DirectPlay ،DirectInput و DirectMusic.
در اواخر سال 2000 ميلادي، DirectX 8.0 عرضه شد که در آن کامپوننتهاي DirectSound و DirectMusic با هم ادغام شدند و با نام کامپوننت Direct Audio معرفي شدند.
Direct3D و DirectDraw نيز با هم ادغام شدند و يک کامپوننت با نام DirectX Graphics را ساختند. DirectShow نيز به صورت يک API جداگانه پيادهسازي شد و به يکي از کامپوننتهاي DirectX تبديل گرديد.
DirectX 9.0 در ژانويه سال 2003 عرضه شد. ويژگيهاي خاص اين نسخه عبارتند از:
- قابليتهاي صوتي جديد در DirectSound
- سختافزار رندرکننده ويديويي با شتاب بيشتر
- بهبود قابليت برنامهريزي گرافيکي
APIهاي همه کامپوننتهاي DirectX برپايه COM يا Component Object Model هستند. در ادامه به بررسي هفت کامپوننت DirectX 9.0 ميپردازيم که عبارتند از: DirectDraw ،Direct3D ،DirectShow ،DirectSound ،DirectMusic ،DirectInput و DirectPlay.
1- DirectDraw
DirectDraw، کامپوننتي ويژه طراحي دوبعدي است که به برنامهنويس اجازه ميدهد مستقيماً به حافظه کارت گرافيک دسترسي يابد، صحنهها و فريمها را با هم ترکيب نمايد يا bitmapها را در آنجا ذخيره کند. همچنين، براي برنامهها امکان دسترسي به سختافزارهاي ويژه نمايش را مستقل از نوع سختافزار فراهم ميکند.
هر برنامه کاربردي DirectDraw الگوي يکساني دارد که عبارت است از:
- ايجاد يک شي
- شروع حلقه
- انتقال به مانتيور
- پايان حلقه
- پاک کردن آن شي
منظور از واژه <يک شي> ميتواند هر تصوير دوبعدياي باشد و منظور از حلقه، حلقهاي است که در برنامهنويسي هنگام تکرار منظم دستهاي از دادهها يا دستورها به کار ميبريم. تصوير ايجادشده پس از مدتي پاک ميشود و جاي خود را به تصوير ديگري ميدهد.
2- Direct3D
اين کامپوننت، دسترسي به توابع رندرکننده گرافيک سهبعدي تعبيه شده در بيشتر کارتهاي گرافيک را فراهم ميکند. Direct3D يک API سطح پايين سهبعدي است که به نرمافزار امکان ميدهد مستقل از سختافزار، با سختافزار شتابدهنده ارتباط برقرار کند. لايهاي که براي توسعهدهندگان بازي و گرافيک کامپيوتري امکان طراحي و ساخت بازيها را مستقل از سختافزار کامپيوترها فراهم ميکند، لايهاي به نام
Hardware Abstraction Layer) HAL) است.
HAL با قابليتهايي که به صورت گسترده در سختافزارهاي گرافيک سهبعدي پيادهسازي شدهاند ارتباط ايجاد ميکند و به سازندگان امکانميدهد درايورهايي را توليد کنند که لايه HAL را به سختافزار پيوند دهد. اين کار باعث ميشود برنامههاي کاربردي Direct 3D بدون اينکه براي نوع خاصي از قطعه سختافزاري نوشته شده باشد، از ويژگيهاي بخشهاي خاص آن قطعه سختافزاري بهرهببرد. در شکل يک چگونگي ارتباط لايه HAL با سختافزار و نرمافزارهاي مرتبط نشان داده شده است.
.jpg)
شکل 1 - چگونگي ارتباط لايه HAL با کارت گرافيک و نرمافزارهاي مرتبط
همانگونه که در شکل يک، نشان داده شده، نرمافزار بازي بالاترين سطح است و پس از آن کامپوننتهاي ترسيم دوبعدي و سه بعدي، يعني DirectDraw و Direct3D قرار دارند. لايه HAL يک رابط ميان کامپوننتهاي DirectX و کارت گرافيک است.
در سيستم رندر Direct3D، ساختار اشياي سهبعدي پيش از آنکه شتابدهنده سهبعدي، يک صحنه سهبعدي را رندر نمايد و آن را به مانيتور منتقل کند، به وسيله CPU پردازش ميشود. نسخه ششم کامپوننت Direct3D از قابليتهاي کارتهاي گرافيک جديدتر پشتيباني مينمايد و در هر گذر، چندين بافت را با هم رندر ميکند.
کاهش زمان رندر به استفاده از نقشه بافتها نياز دارد. اين نسخه تکنيکهايي براي افزودن جلوهاي واقعيتر به صحنههاي سه بعدي را نيز دربردارد.
مانند anistropic filtering که عنصر عمق را به trilinear filtering و نقشه برجستهسازي ميافزايد که موجب ايجاد شباهت بيشتر بافتها و نيز منابع نور تابيده شده بر سطوح مسطح با نمونههاي واقعي آنها ميشود.
نسخه هفتم DirectX نسبت به نسخههاي پيش از خود بيست درصد سريعتر و شامل چند ويژگي ديگر بود. مهمترين آنها پشتيباني از تغييرات شتاب سختافزاري و نوردهي (T&L) به وسيله اغلب کارتهاي گرافيک سهبعدي آنزمان به ويژه کارتهايي است که برپايه تراشههاي nVidia Geforce 256 و S3 Savage 2000 ساخته شدهاند. از زماني که T&L عرضه شد، وقتگيرترين وظيفه CPU هنگام اجراي بازيهاي پيشرفته به شتابدهنده سهبعدي داده شد و بخش بزرگي از ظرفيت پردازنده اصلي به کارهاي ديگر مانند هوشمصنوعي بازي اختصاص داده شد و توسعهدهندگان بازي توانستند رندر را با جزييات بيشتر انجام دهند و جلوههاي ويژه پيچيدهتري را در بازيها بهکار ببرند.
3- DirectShow
اين کامپوننت از بسياري از فرمتهاي صوتي و ويديويي شامل AVI ،MPEG ،ASF ،WMA/WMV ،DV و MP3 و DirectX پشتيباني ميکند و روي ويندوزهاي 98، 2000، اکسپي و نرمافزار اينترنت اکسپلورر عرضه شده است.DirectShow پروسه کارهاي مالتيمديا مانند نمايش فايل ويديويي را به مجموعهاي از مراحل که با نام
filter شناخته ميشوند تقسيم ميکند.
فيلترها تعدادي pin ورودي و خروجي دارند که آنها را به هم متصل ميکند. طراحي کلي سازوکار اتصال به اين صورت است که فيلترها ميتوانند به روشهاي مختلف به هم متصل شوند که هر نوع از اين اتصالها به معني انجام دادن يک کار است و توسعهدهندگان نرمافزار ميتوانند افکتهاي خود يا فيلترهاي ديگري را به بخشي از اين گراف براي انجام کار ويژهاي بيفزايند. گراف فيلتر DirectShow به صورت گسترده در ضبط صدا و فيلم، و ويرايش آنها به کار ميرود.
.jpg)
شکل 2 - يک گراف فيلتر که کار نمايش يک فايل MPEG را نشان ميدهد.
در شکل دو، يک گراف نمايش براي فايل فيلمي از نوع MPEG نشان داده شده است. برنامههاي کاربردي DirectShow، براي پردازش دادههاي مالتيمديا، از اين گراف استفاده ميکنند.
دادههاي چند رسانهاي در اين گراف (در حالي که کارها به وسيله برنامه کاربردي کنترل ميشوند) از فايل منبع به سمت مقصد که ميتواند يک قطعه سختافزاري باشد حرکت ميکنند.
ولي در برخي مواقع، برنامه کاربردي علاوه بر کنترل گراف، دريافتکننده يا فرستنده داده نيز هست.
هر گره اين گراف، همانگونه که گفته شد، يک فيلتر است و کار ويژه خود را انجام ميدهد. فيلتر source، دادهها را از يک فايل يا URL ميخواند. فيلتر Parser، بخشهايي از دادههاي صوتي و ويديويي را به رمزگشاي مناسب ميفرستد. رمزگشاها، دادههاي صوتي و ويديويي را رمزگشايي مينمايند يا از حالت فشردگي خارج ميکنند.
فيلتر رندرکننده، دادههاي دريافت شده صوتي و ويديويي از رمزگشا را پخش ميکند يا آنها را نمايش ميدهد.
4- DirectSound
اين کامپوننت همزمان با ساخت ويندوز 95، زماني که درايورهاي صوتي از نوع VXD بودند به DirectX افزوده شد. در اين کامپوننت APIهاي ويژهاي ايجاد شد که نويسندگان درايورهاي صوتي ميبايست آنها را به محصولات خود، که فرمت VXD داشت، ميافزودند تا به درستي با DirectSound کار کند.
برنامههاي چندرسانهاي با اين کامپوننت به سختافزارهاي صوتي مانند کارت صوتي دسترسي پيداميکنند. از مهمترين ويژگيهاي اين API، ترکيب صدا و کنترل سطح آن است.
DirectSound همچنين اجازه ميدهد چندين برنامه کاربردي، بدون پيش آوردن وقفه، همزمان به کارت صوتي دسترسي داشته باشند. ايجاد افکتهاي صوتي از ديگر تواناييهاي DirectSound است. پس از سالها توسعه، اکنون DirectSound يک API پخته و کامل است و بسياري قابليتهاي ديگر را نيز فراهم ميکند؛ مانند قابليت پخش صداهاي چند کاناله با وضوح و دقت بالا.
5- DirectMusic
تاکنون بازيهايي را تجربه کردهايد که در تمام مدت يک مرحله، موسيقي يکنواخت و ثابتي دارند؟ بازياي را در نظر بگيريد که برنامهنويسان آن ميخواهند يک آهنگ، در تمام مدت، در يک مرحله از آن به صدا دربيايد. با استفاده از برنامه DirectMusic Producer، آنها ميتوانند در آن مرحله براي آهنگ، يک درجه در نظر بگيرند.
اين درجه ميتواند بسته به نوع عملکرد شخصيت بازي، تغيير کند. اگر شخصيت بازي در حال راه رفتن است، آهنگ آرام و هنگامي که با دشمن خود مبارزه ميکند، آهنگ تندتر ميشود و يا نوع آهنگ تغيير ميکند و هنگامي که مبارزه تمام ميشود، آهنگ دوباره آرام ميشود. اين تغييرها بدون ايجاد وقفه، به صورت پويا و بدون دخالت کاربر انجام ميشود. چون براساس DirecMusic، آهنگ به صورت شناور و بدون وقفه با نواختن وارياسيونهاي مختلف با قابليت واکنش به رويدادهاي بازي توليد ميشود.
DirectMusic، با دادههاي موسيقي براساس پيامهاي حاوي اطلاعات کار ميکند. يک آهنگ ميتواند در داخل سختافزار و با نرمافزارهاي آهنگساز مانند Microsoft Synthesizer ساخته شود. DirectMusic از استانداردهايMIDI و DLS پشتيباني ميکند.
6- DirectInput
اين کامپوننت، سازوکار مشترکي را براي دسترسي به بسياري از کنترلکنندههاي بازي مانند دسته بازي، گيمپد، صفحه کليد و ماوس فراهم ميآورد. مهمترين تغييري که هنگام عرضه DirectX8 در DirectInput ايجاد شد، آمدنaction map بود. action map از توابعي مانند راندن يک وسيله يا شليک يک گلوله (که بهوسيله دستگاههاي ورودي ايجاد ميشود) استفاده ميکند. زماني که يک سختافزار ورودي مانند دسته بازي را ميخريد، معمولا ًaction mapنيز براي بسياري از انواع رايج بازيها مانند شبيهساز پرواز، تيراندازي اول شخص و بازيهاي مسابقهاي در آن پيادهسازي شده است.
7- DirectPlay
اين کامپوننت امکان بازي چند نفر را در بازيهاي چندنفره فراهم ميآورد، دسترسي به سرويسهاي ارتباطي را آسان ميسازد و راهي را براي بازيها فراهم ميکند تا مستقل از پروتکل يا نوع سرويس آنلاين با يکديگر در ارتباط باشند. همچنين از پروتکلهاي ارتباطي مطمين پشتيبانيميکند تا مانع از گم شدن دادههاي مهم بازي روي شبکه شود. در واقع DirectPlay به صورت لايهاي است که روي پروتکلهاي معمول شبکه مانند IPX ،TCP/IP و … قرار دارد.
در واقع يک session يا جلسه در DirectPlay يک کانال ارتباطي بين چندين کامپيوتر است. يک برنامه کاربردي پيش از آنکه بتواند با سيستمهاي ديگر ارتباط برقرار کند، بايد در يک Session يا جلسه باشد. هر جلسه تنها يک ميزبان دارد و آن برنامه کاربردياي است که آن جلسه را ايجاد کردهاست. تنها ميزبان ميتواند ويژگيهاي يک Session را تغيير دهد.
DirectX 9.0
اين کامپوننت، آخرين نسخه DirectX تا پيش از عرضه رسمي ويندوز ويستا است. مهمترين چيزي که همراه DirectX 9.0 عرضه شد، High-Level Shader Language) HLSL) است. زبان HLSL جايگزين زبان اسمبلي براي نوشتن pixel shaderها و vertex shaderها در DirectX است. پيش از ارايه DirectX 9.0 توسعهدهندگان بازي بايدshaderها را با استفاده از يک زبان اسمبلي سطح پايين توسعه ميدادند. HLSL با فراهمآوردن يک محيط برنامهنويسي توسعهدهنده ساده، توسعه همه بخشهاي نرمافزار مانند انيميشن و برنامهنويسي افکتها را آسان ميکند.
HLSL با همه پردازشگرهاي گرافيکي (GPU) سازگار با DirectX کار ميکند و به توسعهدهندگان امکان ميدهد افکتهاي بصري را روي گستره وسيعتري از پلتفرمها ايجاد کنند؛ بدون اينکه نياز داشته باشند به جزييات سختافزار گرافيکي توجه کنند.
DirectX 9.0 روي ويندوز 95 نصب نميشود. چون بازيهايي که به DirectX 9.0 نياز دارند، به کامپيوترهاي جديدتر و قويتري هم نياز دارند که ويندوز 98 يا نسخههاي جديدتر روي آنها نصب ميشود. تاکنون نسخههاي a ،b و c از DirectX 9.0 ارايه شده است. هر نسخه جديدتر از DirectX داراي امنيت، کارايي و سيستم رفع خطاي بهتري است.
DirectX 10
دوستداران بازي بايد خوشحال باشند از اينکه بدانند شرکت مايکروسافت DirectX را نيز توليد کرده است و همراه پيش توزيع Direct3D 10 عرضه خواهد شد. همچنين نرمافزارMicrosoft Windows Game Explorer نيز عرضه شده که به برنامهنويسان و توسعهدهندگان امکان ميدهد امکانات بروزکردن خودکار (auto-updating) را به بازيهايشان بيفزايند. مايکروسافت ميخواهد DirectX 9.0 و DirectX 10 را روي ويندوز ويستا عرضه کند. به گفته Rodolph Balaz از برنامهنويسان توسعهدهنده Direct3D و OpenGL در مايکروسافت، DirectX 10 تنها با سيستمعاملهاي جديد کار خواهد کرد و در حال حاضر مايکروسافت، برنامهاي براي پشتيباني ويندوز اکسپي از آن ندارد.
تا زمان نوشته شدن اين مقاله هنوز نسخه رسمي ويندوز ويستا عرضه نشده است. ولي به نظر ميآيد اين ويندوز، هم از DirectX 10 و هم از DirectX 9.0 پشتيباني خواهد کرد.
SGL OpenGL
شرکت سيليکون گرافيکس(SGI ،OpenGL) را با هدف ساخت يک API براي توسعه برنامههاي گرافيکي دوبعدي و سه بعدي عرضهکردهاست. پيش از ساخته شدن APIهاي گرافيکي مانند OpenGL و DirectX، بسياري از توليدکنندگان سختافزار، کتابخانههاي گرافيکي مختلف و متفاوتي داشتند. به همين دليل پشتيباني از نسخههاي مختلف نرمافزارهايشان روي پلتفرمهاي سختافزاري مختلف هزينهبر و انتقال يک برنامه کاربردي از يک پلتفرم سختافزاري به پلتفرم سختافزاري ديگر بسيار وقتگير و سخت بود.
بنابراين SGI نمونه برنامهاي را توليد کرد که توليدکنندگان سختافزار بايد از آن براي توسعه درايورهاي OpenGL در سختافزارهايشان استفاده کنند. اين برنامه به صورت اپنسورس ارايه شدهاست. ولي سازندگان اين سختافزارها ميتوانند قابليتهاي گوناگوني را برپايه OpenGL در سختافزارهايشان ايجاد کنند. تصميمگيري درباره ايجاد تغييرات در OpenGL را کنسرسيوم ARB اتخاذ ميکند.
اين کنسرسيوم شامل اعضاي مهمي همچون اپل، اينتل، آيبيام، سان، ATI، دل، nVIDIA، سيليکونگرافيکس و3Dlabs است و از سوي شرکتهاي معتبر ديگري مانند متراکس، S3 ،Xi و Quantum 3D حمايت ميشود. توسعهدهندگان نرمافزار براي استفاده از OpenGL در نرمافزارهايشان نيازي به اخذ مجوز ندارند. ولي توليدکنندگان سختافزار براي پيادهسازي سختافزاري OpenGL نيازمند اخذ مجوز از SGI هستند.
OpenGL چيست؟
در اوايل پيدايش OpenGL، از اين API در کارهاي صنعتي، طراحي وسايل داخلي، مکانيکي و نيز در آناليزهاي علمي و آماري استفاده ميشد.
در سال 1996، نويسندگان و توسعهدهندگان بازيهاي کامپيوتري از نسخه ويندوزي OpenGL براي ساخت بازيهاي کامپيوتري استفاده کردند. OpenGL براي پشتيباني از گستره وسيعي از تکنيکهاي رندرکردن گرافيکي پيشرفته طراحي شده است که ميتوان پارهاي از آنها را به اينصورت نام برد:
نورپردازي: قابليت تحليل ميزان رنگ هنگام تابش مدلهاي متفاوت نور به يک سطح از يک يا چند منبع نور مختلف.
سايهسازي نرم: قابليت تحليل افکتهاي سايه هنگام تابش نور به يک زاويه و ايجاد اختلاف نور خفيف در مقابل آن سطح (مانند نور کمي که هنگام تابش آفتاب به يک صخره يخي در اطراف آن ايجاد ميشود).
حرکت محو ومدلسازي: توانايي تغيير مکان و اندازه پرسپکتيو يک شي در فضاي سه بعدي.
مجموعه امکانات OpenGL شبيه Direct3D است. ولي API سطح پايينتر آن (نزديکتر به سطح سختافزار) باعث ميشود کنترل خوبي روي عناصر اصلي ايجاد صحنههاي سه بعدي مانند اطلاعات سهضلعيها که سلولهاي تشکيلدهنده يک مدل سه بعدي هستند داشته باشد.
دو سطح پشتيباني از شتابدهندگي سختافزاري براي OpenGL وجود دارد: installing client driver) ICDs) که به نوردهي ايجاد تغيير و رسترکردن (تبديل يک فريم سه بعدي چند ضلعي ذخيره شده درframe buffer به يک تصوير کامل با بافتها و نشانههاي عمق و نور) شتاب ميدهد و mini client server) MCs) که از رسترکردن پشتيباني ميکند.
OpenGL 1.4 و OpenGL 1.5 بهترتيب در تابستان 2002 و 2003 معرفي شدند که هر يک امکانات و کاربردهاي بيشتري از نسخههاي پيش از خود داشتند. بزرگترين آنها OpenGL Shading Language بود؛ زباني ويژه برنامهنويسي vertex-shader و pixel-shader که در صورت نياز به OpenGL الصاق ميشد. OpenGLShading Language زباني شد که به سرعت در سطح گستردهاي مورد پشتيباني يونيکس، ويندوز، لينوکس و ديگر سيستمعاملها براي توسعهدهنده گرافيکهاي تعاملي و برنامههاي کاربردي ترسيمي قرار گرفت.
OpenGL 2.0
OpenGL 2.0 آخرين نسخه عرضه شده تا اوايل سال 2006 ميلادي است. OpenGL Shader Language همراه با اين نسخه عرضه شده و بر پايه استاندارد ANSYC طراحي شده است. برخي قابليتهاي تازه اين نسخه عبارتند از:
- سايهزني قابل برنامهريزي بهوسيله OpenGL Shader Language و APIهاي آن. قدرت ايجاد Shader و برنامهنويسي اشيا، بخش ديگري از تغييرات ايجاد شده در اين نسخه است.
- رندر چندگانه که به shaderهاي قابل برنامهنويسي امکان ميدهد در بافرهاي خروجي چندگانه در يک گذر مقادير مختلفي بنويسند.
- بافتهاي دو طرفه، با قابليت تعريف کاربرد آن بافت براي سطح جلو و پشت يک مدل اوليه که کيفيت حجم سايه و کارايي الگويمهاي رندر هندسي اشياي سخت را ارتقا ميدهد.
- Spriteهاي نقطه که مختصات بافت يک نقطه را با مختصات بافت قرار داده شده در مقابل آن نقطه جابهجا ميکنند و رسم نقاط را در بافتهاي طراحي شده در کامپيوترهاي معمولي نيز ممکن ميسازند.
- بافتهاي Non-power-of-two که براي همه انواع بافت کاربرد دارد که در نتيجه از بافتهاي چهارگوش پشتيباني مينمايد و درعمل حافظه کمتري اشغال ميکند.
OpenAL
OpenAL، يک API ديگر است که براي ايجاد و مديريت صداهاي سه بعدي در بازيهاي کامپيوتري و ديگر انواع نرمافزارها به صورت يک پروژه مشترک ميان شرکت Loki Software و Creative ساخته شده است.
کتابخانه اين API مجموعهاي از صداهاي قابل حرکت در فضاي سهبعدي را مدلسازي ميکند. عناصر اصلي OpenAL شامل يک شنونده، يک منبع و يک بافر است. ممکن است تعداد زيادي بافر وجودداشته باشد که شامل دادههاي صوتي هستند. هر بافر ميتواند به يک يا چند منبع ضميمه شود. هميشه يک عنصر شنونده (براي محتواي صوتي) وجود دارد که موقعيت مکاني منبع صوتي که صداي آن شنيده ميشود را نشان ميدهد. OpenAL در موتورهاي گرافيکي Epic Games Unreal نيز براي ساخت افکتهاي صوتي به کار ميرود.
OpenGL Performer
OpenGL Performer، رابط برنامهنويسي قدرتمند و کاملي است که توسعهدهندگان براي شبيهسازي بصري از آن استفاده ميکنند. ابزارهاي موجود در آن، توسعه برنامههاي شبيهسازي بصري، طراحي بر اساس شبيهسازي، واقعيت مجازي، نرمافزارهاي علمي، سرگرميهاي تعاملي، برنامههاي ويديويي و طراحي با کامپيوتر را آسان ميکند. اين رابط برنامهنويسي به برنامهنويسان امکان ميدهد از قابليتهاي سيستم به صورت بهينه استفاده کنند. آخرين نسخه اين نرمافزار OpenGL Performer 3.2 است.
OpenGL Volumizer
OpenGL Volumizer، يک API گرافيکي است که در بخشهاي انرژي، توليد، داروسازي و تجارت کاربرد دارد. اين API براي انجام کارهاي تعاملي با کيفيت بالا و بصري نمودن و شبيهسازي يک محيط با استفاده از مجموعه بزرگي از دادههاي حجمي (دادههايي که مختصات يک شي در فضاي سه بعدي را نشان ميدهند) طراحي شده است. براي نمونه در نرمافزارهاي پزشکي براي شبيهسازي وضعيت بخش خاصي از بدن، از اين نرمافزار استفاده ميشود. OpenGL Volumizer آخرين نسخه اين API تا اوايل سال 2006 ميلادي است که بر پايه کتابخانه گرافيکي استانداردOpenGL ساخته شده و شامل رابط کلاس ++C و قابلاستفاده در سيستمعاملهاي ويندوز و لينوکس 32بيتي و 64بيتي است.
OpenGL Multipipe SDK
OpenGL Multipipe SDK يک لايه API است که مديريت برنامههاي گرافيکي را در زير سيستمها و ساختارهاي گرافيکي چندگانه آسان ميکند. برنامههاي کاربردي نوشته شده برپايه اين API به نرمي و رواني، هم روي سيستمهاي روميزي تک پردازندهاي و هم روي سيستمهاي چند پردازندهاي با سيستمهاي گرافيکي قدرتمند اجرا ميشوند.
نتيجهگيري
همانگونه که بيان شد ارتباط بين برنامهها و سختافزاري که آنرا اجرا ميکند برعهده API است. سازندگان بزرگ نرمافزار و سختافزار API خاصي را براي برنامههاي مالتيمديا آماده کردهاند که مطرح ترين آنها DirectX و OpenGL هستند.
منبع:http://www.academist.ir/خ