چهارشنبه, ۱۲ اردیبهشت, ۱۴۰۳ / 1 May, 2024
مجله ویستا

آشنایی با DirectX و OpenGL


آشنایی با DirectX و OpenGL
یك بازی كامپیوتری را روی كامپیوترتان اجرا می‌كنید. فعلا‌ً كارت گرافیك شما روی اسلا‌تAGP سوار می‌شود، پردازشگر سلرون دارید و ... پس از چند ماه یا چند سال كامپیوتر جدیدی می‌خرید. اكنون اسلا‌ت كارت گرافیكی شما PCI Express است و یك پردازشگر ۶۴ بیتی دارید. همان بازی را روی این كامپیوتر هم نصب و اجرامی‌كنید! شاید به نظر طبیعی میآید كه همه چیز باید همین‌طور باشد. اما چگونه یك بازی روی كامپیوترهایی با تراشه‌ها و سخت‌افزارهای مختلف و گاه فناوری متفاوت اجرا می‌شود؟ API‌های گرافیكی یا همان رابط‌های برنامه‌نویسی، بخش بزرگی از این مشكل را حل می‌كنند و امكانات گسترده دیگری را نیز در اختیار برنامه‌نویسان و توسعه‌دهندگان بازی و برنامه‌های چندرسانه‌ای قرارمی‌دهند. OpenGL وDirectX، دو مجموعه API گرافیكی و صوتی هستند كه برای آسان‌تر ساختن توسعه بازی‌ها و نرم‌افزارهای چندرسانه‌ای طراحی شده‌اند.
●API گرافیكی چیست؟
API درواقع بین برنامه و سخت‌افزاری كه برنامه روی آن اجرا می‌شود، نقش یك هماهنگ‌كننده را دارد و مانند پلی میان سخت‌افزار و نرم‌افزار ارتباط ایجاد‌می‌كند. یعنی برنامه‌نویس كدهایی می‌نویسد كه داده‌های گرافیكی خود را به وسیله دستورهای استانداردی به درایور API می‌فرستد نه مستقیماً به خود سخت‌افزار. سپس درایوری كه شركت سازنده سخت‌افزار تولید‌كرده است، این كداستاندارد تولیدشده را به فرمت بومی و ویژه‌ای كه برای آن مدل خاص سخت‌افزار قابل شناسایی است، ترجمه می‌كند.
●Microsoft DirectX
شركت مایكروسافت در سال ۱۹۹۵ DirectX را ساخته و توسعه داده‌است. این نرم‌افزار شامل مجموعه‌ یكپارچه‌ای از ابزارهای برنامه‌نویسی است كه به توسعه‌دهندگان امكان می‌دهد انواع مختلف نرم‌افزارهای مالتی‌مدیا را روی پلتفرم ویندوز تولید كنند. DirectX به برنامه‌ای كه بر پایه آن طراحی شده امكان می‌دهد به آسانی قابلیت‌های سخت‌افزار كامپیوتر را شناسایی كند و پارامترهای برنامه را با آن هماهنگ سازد.
DirectX شامل APIهایی است كه دسترسی به بخش‌های ویژه‌ای از سخت‌افزار مانند تراشه‌های شتاب‌دهنده گرافیك سه‌بعدی و كارت صوتی را میسرمی‌كند. این APIها كنترل توابع سطح پایین، یعنی نزدیك به سخت‌افزار، شامل شتاب‌دهنده گرافیكی دو بعدی، پشتیبانی از دستگاه‌های ورودی مانند دسته بازی، صفحه‌كلید و ماوس، و كنترل میكس و خروجی صدا را انجام می‌دهند.
DirectX ۷.۰ در سال ۱۹۹۹ با شش كامپوننت عرضه شد كه عبارت بودند از: Direct۳D،DirectDraw ،DirectSound ،DirectPlay ،DirectInput و DirectMusic.
در اواخر سال ۲۰۰۰ میلا‌دی، DirectX ۸.۰ عرضه شد كه در آن كامپوننت‌های DirectSound و DirectMusic با هم ادغام شدند و با نام كامپوننت Direct Audio معرفی شدند.
Direct۳D و DirectDraw نیز با هم ادغام شدند و یك كامپوننت با نام DirectX Graphics را ساختند. DirectShow نیز به صورت یك API جداگانه پیاده‌سازی شد و به یكی از كامپوننت‌های DirectX تبدیل گردید.
DirectX ۹.۰ در ژانویه سال ۲۰۰۳ عرضه شد. ویژگی‌های خاص این نسخه عبارتند از:
▪قابلیت‌های صوتی جدید در DirectSound
▪سخت‌افزار رندركننده ویدیویی با شتاب بیشتر
▪بهبود قابلیت برنامه‌ریزی گرافیكی
APIهای همه كامپوننت‌های DirectX برپایه COM یا Component Object Model هستند. در ادامه به بررسی هفت كامپوننت DirectX ۹.۰ می‌پردازیم كه عبارتند از: DirectDraw ،Direct۳D ،DirectShow ،DirectSound ،DirectMusic ،DirectInput و DirectPlay.
۱- DirectDraw
DirectDraw، كامپوننتی ویژه طراحی دوبعدی است كه به برنامه‌نویس اجازه می‌دهد مستقیماً به حافظه كارت گرافیك دسترسی یابد، صحنه‌ها و فریم‌ها را با هم تركیب نماید یا bitmapها را در آنجا ذخیره كند. همچنین، برای برنامه‌ها امكان دسترسی به سخت‌افزارهای ویژه نمایش را مستقل از نوع سخت‌افزار فراهم می‌كند.
هر برنامه كاربردی DirectDraw الگوی یكسانی دارد كه عبارت است از:
▪ایجاد یك شی
▪ شروع حلقه
▪ انتقال به مانتیور
▪پایان حلقه
▪پاك كردن آن شی‌
منظور از واژه <یك شی> می‌تواند هر تصویر دوبعدی‌ای باشد و منظور از حلقه، حلقه‌ای است كه در برنامه‌نویسی هنگام تكرار منظم دسته‌ای از داده‌ها یا دستورها به كار می‌بریم. تصویر ایجاد‌شده پس از مدتی پاك می‌شود و جای خود را به تصویر دیگری می‌دهد.
۲- Direct۳D
این كامپوننت، دسترسی به توابع رندركننده گرافیك سه‌بعدی تعبیه شده در بیشتر كارت‌های گرافیك را فراهم می‌كند. Direct۳D یك API سطح پایین سه‌بعدی است كه به نرم‌افزار امكان می‌دهد مستقل از سخت‌افزار، با سخت‌افزار شتاب‌دهنده ارتباط برقرار كند. لا‌یه‌ای كه برای توسعه‌دهندگان بازی و گرافیك كامپیوتری امكان طراحی و ساخت بازی‌ها را مستقل از سخت‌افزار كامپیوترها فراهم می‌كند، لا‌یه‌ای به نامHardware Abstraction Layer) HAL) است.
HAL با قابلیت‌هایی كه به صورت گسترده در سخت‌افزارهای گرافیك سه‌بعدی پیاده‌سازی شده‌اند ارتباط ایجاد می‌كند و به سازندگان امكان‌می‌دهد درایورهایی را تولید كنند كه لا‌یه HAL را به سخت‌افزار پیوند دهد. این كار باعث می‌شود برنامه‌های كاربردی Direct ۳D بدون این‌كه برای نوع خاصی از قطعه سخت‌افزاری نوشته شده باشد، از ویژگی‌های بخش‌های خاص آن قطعه سخت‌افزاری بهره‌ببرد.
نرم‌افزار بازی بالا‌ترین سطح است و پس از آن كامپوننت‌های ترسیم دوبعدی و سه بعدی، یعنی DirectDraw و Direct۳D قرار دارند. لا‌یه HAL یك رابط میان كامپوننت‌های DirectX و كارت گرافیك است.
در سیستم رندر Direct۳D، ساختار اشیای سه‌بعدی پیش از آن‌كه شتاب‌دهنده سه‌بعدی، یك صحنه سه‌بعدی را رندر نماید و آن را به مانیتور منتقل كند، به وسیله CPU پردازش می‌شود.نسخه ششم كامپوننت Direct۳D از قابلیت‌های كارت‌های گرافیك جدیدتر پشتیبانی می‌نماید و در هر گذر، چندین بافت را با هم رندر می‌كند.
كاهش زمان رندر به استفاده از نقشه بافت‌ها نیاز دارد. این نسخه تكنیك‌هایی برای افزودن جلوه‌ای واقعی‌تر به صحنه‌های سه بعدی را نیز دربردارد.
مانند anistropic filtering كه عنصر عمق را به trilinear filtering و نقشه برجسته‌سازی می‌افزاید كه موجب ایجاد شباهت بیشتر بافت‌ها و نیز منابع نور تابیده شده بر سطوح مسطح با نمونه‌های واقعی آن‌ها می‌شود.
نسخه هفتم DirectX نسبت به نسخه‌های پیش از خود بیست درصد سریع‌تر و شامل چند ویژگی دیگر بود. مهم‌ترین آن‌ها پشتیبانی از تغییرات شتاب سخت‌افزاری و نوردهی (T&L) به وسیله اغلب كارت‌های گرافیك سه‌بعدی آن‌زمان به ویژه كارت‌هایی است كه برپایه تراشه‌های nVidia Geforce ۲۵۶ و S۳ Savage ۲۰۰۰ ساخته شده‌اند. از زمانی كه T&L عرضه شد، وقت‌گیرترین وظیفه CPU هنگام اجرای بازی‌های پیشرفته به شتاب‌دهنده سه‌بعدی داده شد و بخش بزرگی از ظرفیت پردازنده اصلی به كارهای دیگر مانند هوش‌مصنوعی بازی اختصاص داده شد و توسعه‌دهندگان بازی توانستند رندر را با جزئیات بیشتر انجام دهند و جلوه‌های ویژه پیچیده‌تری را در بازی‌ها به‌كار ببرند.
۳- DirectShow
این كامپوننت از بسیاری از فرمت‌های صوتی و ویدیویی شامل AVI ،MPEG ،ASF ،WMA/WMV ،DV و MP۳ و DirectX پشتیبانی می‌كند و روی ویندوزهای ۹۸، ۲۰۰۰، اكس‌پی و نرم‌افزار اینترنت اكسپلورر عرضه شده است.DirectShow پروسه كارهای مالتی‌مدیا مانند نمایش فایل ویدیویی را به مجموعه‌ای از مراحل كه با نامfilter شناخته می‌شوند تقسیم می‌كند.
فیلترها تعدادی pin ورودی و خروجی دارند كه آن‌ها را به هم متصل می‌كند. طراحی كلی سازوكار اتصال به این صورت است كه فیلترها می‌توانند به روش‌های مختلف به هم متصل شوند كه هر نوع از این اتصال‌ها به معنی انجام دادن یك كار است و توسعه‌دهندگان نرم‌افزار می‌توانند افكت‌های خود یا فیلترهای دیگری را به بخشی از این گراف برای انجام كار ویژه‌ای بیفزایند. گراف فیلتر DirectShow به صورت گسترده در ضبط صدا و فیلم، و ویرایش آن‌ها به كار می‌رود.
در شكل دو، یك گراف نمایش برای فایل فیلمی از نوع MPEG نشان داده شده است. برنامه‌های كاربردی DirectShow، برای پردازش داده‌های مالتی‌مدیا، از این گراف استفاده می‌كنند.
داده‌های چند رسانه‌ای در این گراف (در حالی كه كارها به وسیله برنامه كاربردی كنترل می‌شوند) از فایل منبع به سمت مقصد كه می‌تواند یك قطعه سخت‌افزاری باشد حركت می‌كنند.
ولی در برخی مواقع، برنامه كاربردی علا‌وه بر كنترل گراف، دریافت‌كننده یا فرستنده داده نیز هست.
هر گره این گراف، همانگونه كه گفته شد، یك فیلتر است و كار ویژه خود را انجام می‌دهد. فیلتر source، داده‌ها را از یك فایل یا URL می‌خواند. فیلتر Parser، بخش‌هایی از داده‌های صوتی و ویدیویی را به رمزگشای مناسب می‌فرستد. رمزگشاها، داده‌های صوتی و ویدیویی را رمزگشایی می‌نمایند یا از حالت فشردگی خارج می‌كنند.
فیلتر رندركننده، داده‌های دریافت شده صوتی و ویدیویی از رمزگشا را پخش می‌كند یا آن‌ها را نمایش می‌دهد.
۴- DirectSound
این كامپوننت همزمان با ساخت ویندوز ۹۵، زمانی كه درایورهای صوتی از نوع VXD بودند به DirectX افزوده شد. در این كامپوننت APIهای ویژه‌ای ایجاد شد كه نویسندگان درایورهای صوتی می‌بایست آن‌ها را به محصولا‌ت خود، كه فرمت VXD داشت، می‌افزودند تا به درستی با DirectSound كار كند.
برنامه‌های چندرسانه‌ای با این كامپوننت به سخت‌افزارهای صوتی مانند كارت صوتی دسترسی پیدامی‌كنند. از مهم‌ترین ویژگی‌های این API، تركیب صدا و كنترل سطح آن است.
DirectSound همچنین اجازه می‌دهد چندین برنامه كاربردی، بدون پیش آوردن وقفه، همزمان به كارت صوتی دسترسی داشته باشند. ایجاد افكت‌های صوتی از دیگر توانایی‌های DirectSound است. پس از سال‌ها توسعه، اكنون DirectSound یك API پخته و كامل است و بسیاری قابلیت‌های دیگر را نیز فراهم می‌كند؛ مانند قابلیت پخش صداهای چند كاناله با وضوح و دقت بالا‌.
۵- DirectMusic
تاكنون بازی‌هایی را تجربه كرده‌اید كه در تمام مدت یك مرحله، موسیقی یكنواخت و ثابتی دارند؟ بازی‌ای را در نظر بگیرید كه برنامه‌نویسان آن می‌خواهند یك آهنگ، در تمام مدت، در یك مرحله از آن به صدا دربیاید. با استفاده از برنامه DirectMusic Producer، آن‌ها می‌توانند در آن مرحله برای آهنگ، یك درجه در نظر بگیرند.
این درجه می‌تواند بسته به نوع عملكرد شخصیت بازی، تغییر كند. اگر شخصیت بازی در حال راه رفتن است، آهنگ آرام و هنگامی كه با دشمن خود مبارزه می‌كند، آهنگ تندتر می‌شود و یا نوع آهنگ تغییر می‌كند و هنگامی كه مبارزه تمام می‌شود، آهنگ دوباره آرام می‌شود. این تغییرها بدون ایجاد وقفه، به صورت پویا و بدون دخالت كاربر انجام می‌شود. چون براساس DirecMusic، آهنگ به صورت شناور و بدون وقفه با نواختن واریاسیون‌های مختلف با قابلیت واكنش به رویدادهای بازی تولید می‌شود.
DirectMusic، با داده‌های موسیقی براساس پیام‌های حاوی اطلا‌عات كار می‌كند. یك آهنگ می‌تواند در داخل سخت‌افزار و با نرم‌افزارهای آهنگ‌ساز مانند Microsoft ‌Synthesizer ساخته شود. DirectMusic از استانداردهایMIDI و DLS پشتیبانی می‌كند.
۶- DirectInput
این كامپوننت، سازوكار مشتركی را برای دسترسی به بسیاری از كنترل‌كننده‌های بازی مانند دسته بازی، گیم‌پد، صفحه كلید و ماوس فراهم می‌آورد. مهم‌ترین تغییری كه هنگام عرضه DirectX۸ در DirectInput ایجاد شد، آمدنaction map بود. action map از توابعی مانند راندن یك وسیله یا شلیك یك گلوله (كه به‌وسیله دستگاه‌های ورودی ایجاد می‌شود) استفاده می‌كند. زمانی كه یك سخت‌افزار ورودی مانند دسته بازی را می‌خرید، معمولا ‌ًaction mapنیز برای بسیاری از انواع رایج بازی‌ها مانند شبیه‌ساز پرواز، تیراندازی اول شخص و بازی‌های مسابقه‌ای در آن پیاده‌سازی شده است.
۷- DirectPlay
این كامپوننت امكان بازی چند نفر را در بازی‌های چندنفره فراهم می‌آورد، دسترسی به سرویس‌های ارتباطی را آسان می‌سازد و راهی را برای بازی‌ها فراهم می‌كند تا مستقل ازپروتكل یا نوع سرویس آنلا‌ین با یكدیگر در ارتباط باشند. همچنین از پروتكل‌های ارتباطی مطمئن پشتیبانی‌می‌كند تا مانع از گم شدن داده‌های مهم بازی روی شبكه شود. در واقع DirectPlay به صورت لا‌یه‌ای است كه روی پروتكل‌های معمول شبكه مانند IPX ،TCP/IP و ... قرار دارد.
در واقع یك session یا جلسه در DirectPlay یك كانال ارتباطی بین چندین كامپیوتر است. یك برنامه كاربردی پیش از آن‌كه بتواند با سیستم‌های دیگر ارتباط برقرار كند، باید در یك Session یا جلسه باشد. هر جلسه تنها یك میزبان دارد و آن برنامه كاربردی‌ای است كه آن جلسه را ایجاد كرده‌است. تنها میزبان می‌تواند ویژگی‌های یك Session را تغییر دهد.۸ ـ DirectX
این كامپوننت، آخرین نسخه DirectX تا پیش از عرضه رسمی ویندوز ویستا است. مهم‌ترین چیزی كه همراه DirectX ۹.۰ عرضه شد، High-Level Shader Language) HLSL) است. زبان HLSL جایگزین زبان اسمبلی برای نوشتن pixel shaderها و vertex shaderها در DirectX است. پیش از ارائه DirectX ۹.۰ توسعه‌دهندگان بازی بایدshader‌ها را با استفاده از یك زبان اسمبلی سطح پایین توسعه می‌دادند. HLSL با فراهم‌آوردن یك محیط برنامه‌نویسی توسعه‌دهنده ساده، توسعه همه بخش‌های نرم‌افزار مانند انیمیشن و برنامه‌نویسی افكت‌ها را آسان می‌كند.
HLSL با همه پردازشگرهای گرافیكی (GPU) سازگار با DirectX كار می‌كند و به توسعه‌دهندگان امكان می‌دهد افكت‌های بصری را روی گستره وسیع‌تری از پلتفرم‌ها ایجاد كنند؛ بدون این‌كه نیاز داشته باشند به جزئیات سخت‌افزار گرافیكی توجه كنند.
DirectX ۹.۰ روی ویندوز ۹۵ نصب نمی‌شود. چون بازی‌هایی كه به DirectX ۹.۰ نیاز دارند، به كامپیوترهای جدیدتر و قوی‌تری هم نیاز دارند كه ویندوز ۹۸ یا نسخه‌های جدیدتر روی آن‌ها نصب می‌شود. تاكنون نسخه‌های a ،b و c از DirectX ۹.۰ ارائه شده است. هر نسخه جدیدتر از DirectX دارای امنیت، كارایی و سیستم رفع خطای بهتری است.
●DirectX ۱۰
دوستداران بازی باید خوشحال باشند از این‌كه بدانند شركت مایكروسافت DirectX را نیز تولید كرده است و همراه پیش توزیع Direct۳D ۱۰ عرضه خواهد شد. همچنین نرم‌افزارMicrosoft Windows Game Explorer نیز عرضه شده‌ كه به برنامه‌نویسان و توسعه‌دهندگان امكان می‌دهد امكانات بروزكردن خودكار (auto-updating) را به بازی‌هایشان بیفزایند. مایكروسافت می‌خواهد DirectX ۹.۰ و DirectX ۱۰ را روی ویندوز ویستا عرضه كند. به گفته Rodolph Balaz از برنامه‌نویسان توسعه‌‌دهنده Direct۳D و OpenGL در مایكروسافت، DirectX ۱۰ تنها با سیستم‌عامل‌های جدید كار خواهد كرد و در حال حاضر مایكروسافت، برنامه‌ای برای پشتیبانی ویندوز اكس‌پی از آن ندارد.
تا زمان نوشته شدن این مقاله هنوز نسخه رسمی ویندوز ویستا عرضه نشده است. ولی به نظر می‌آید این ویندوز، هم از DirectX ۱۰ و هم از DirectX ۹.۰ پشتیبانی خواهد كرد.
●SGL OpenGL
شركت سیلیكون گرافیكس(SGI ،OpenGL) را با هدف ساخت یك API برای توسعه برنامه‌های گرافیكی دوبعدی و سه بعدی عرضه‌كرده‌است. پیش از ساخته شدن APIهای گرافیكی مانند OpenGL و DirectX، بسیاری از تولیدكنندگان سخت‌افزار، كتابخانه‌های گرافیكی مختلف و متفاوتی داشتند. به همین دلیل پشتیبانی از نسخه‌های مختلف نرم‌افزارهایشان روی پلتفرم‌های سخت‌افزاری مختلف هزینه‌بر و انتقال یك برنامه كاربردی از یك پلتفرم سخت‌افزاری به پلتفرم سخت‌افزاری دیگر بسیار وقت‌گیر و سخت بود.
بنابراین SGI نمونه برنامه‌ای را تولید كرد كه تولیدكنندگان سخت‌افزار باید از آن برای توسعه درایورهای OpenGL در سخت‌افزارهایشان استفاده كنند. این برنامه به صورت اپن‌سورس ارائه شده‌است. ولی سازندگان این سخت‌افزارها می‌توانند قابلیت‌های گوناگونی را برپایه OpenGL در سخت‌افزارهایشان ایجاد كنند. تصمیم‌گیری درباره ایجاد تغییرات در OpenGL را كنسرسیوم ARB اتخاذ می‌كند.
این كنسرسیوم شامل اعضای مهمی همچون اپل، اینتل، آی‌بی‌ام، سان، ATI، دل، nVIDIA، سیلیكون‌گرافیكس و۳Dlabs است و از سوی شركت‌های معتبر دیگری مانند متراكس، S۳ ،Xi و Quantum ۳D حمایت می‌شود. توسعه‌دهندگان نرم‌افزار برای استفاده از OpenGL در نرم‌افزارهایشان نیازی به اخذ مجوز ندارند. ولی تولیدكنندگان سخت‌افزار برای پیاده‌سازی سخت‌افزاری OpenGL نیازمند اخذ مجوز از SGI هستند.
● OpenGL چیست؟
در اوایل پیدایش OpenGL، از این API در كارهای صنعتی، طراحی وسایل داخلی، مكانیكی و نیز در آنالیزهای علمی و آماری استفاده می‌شد.
در سال ۱۹۹۶، نویسندگان و توسعه‌دهندگان بازی‌های كامپیوتری از نسخه ویندوزی OpenGL برای ساخت بازی‌های كامپیوتری استفاده كردند. OpenGL برای پشتیبانی از گستره وسیعی از تكنیك‌های رندركردن گرافیكی پیشرفته طراحی شده است كه می‌توان پاره‌ای از آن‌ها را به این‌صورت نام برد:
۱ ـ نورپردازی: قابلیت تحلیل میزان رنگ هنگام تابش مدل‌های متفاوت نور به یك سطح از یك یا چند منبع نور مختلف.
۲ ـ سایه‌سازی نرم: قابلیت تحلیل افكت‌های سایه هنگام تابش نور به یك زاویه و ایجاد اختلا‌ف نور خفیف در مقابل آن سطح (مانند نور كمی كه هنگام تابش آفتاب به یك صخره یخی در اطراف آن ایجاد می‌شود).
۳ ـ حركت محو ومدل‌سازی: توانایی تغییر مكان و اندازه پرسپكتیو یك شی در فضای سه بعدی.
مجموعه امكانات OpenGL شبیه Direct۳D است. ولی API سطح پایین‌تر آن (نزدیك‌تر به سطح سخت‌افزار) باعث می‌شود كنترل خوبی روی عناصر اصلی ایجاد صحنه‌های سه بعدی مانند اطلا‌عات سه‌ضلعی‌ها كه سلول‌های تشكیل‌دهنده یك مدل سه بعدی هستند داشته باشد.
۴ ـ دو سطح پشتیبانی از شتاب‌دهندگی سخت‌افزاری برای OpenGL وجود دارد: installing client driver) ICDs) كه به نوردهی ایجاد تغییر و رستركردن (تبدیل یك فریم سه بعدی چند ضلعی ذخیره شده درframe buffer به یك تصویر كامل با بافت‌ها و نشانه‌های عمق و نور) شتاب می‌دهد و mini client server) MCs) كه از رستركردن پشتیبانی می‌كند.
OpenGL ۱.۴ و OpenGL ۱.۵ به‌ترتیب در تابستان ۲۰۰۲ و ۲۰۰۳ معرفی شدند كه هر یك امكانات و كاربردهای بیشتری از نسخه‌های پیش از خود داشتند. بزرگ‌ترین آن‌ها OpenGL Shading Language بود؛ زبانی ویژه برنامه‌نویسی vertex-shader و pixel-shader كه در صورت نیاز به OpenGL الصاق می‌شد. OpenGLShading Language زبانی شد كه به سرعت در سطح گسترده‌ای مورد پشتیبانی یونیكس، ویندوز، لینوكس و دیگر سیستم‌عامل‌ها برای توسعه‌دهنده گرافیك‌های تعاملی و برنامه‌های كاربردی ترسیمی قرار گرفت.
●OpenGL ۲.۰
OpenGL ۲.۰ آخرین نسخه عرضه شده تا اوایل سال ۲۰۰۶ میلا‌دی است. 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 ۳.۲ است.
●OpenGL Volumizer
OpenGL Volumizer، یك API گرافیكی است كه در بخش‌های انرژی، تولید، داروسازی و تجارت كاربرد دارد. این API برای انجام كارهای تعاملی با كیفیت بالا‌ و بصری نمودن و شبیه‌سازی یك محیط با استفاده از مجموعه بزرگی از داده‌های حجمی (داده‌هایی كه مختصات یك شی در فضای سه بعدی را نشان می‌دهند) طراحی شده است. برای نمونه در نرم‌افزارهای پزشكی برای شبیه‌سازی وضعیت بخش خاصی از بدن، از این نرم‌افزار استفاده می‌شود. OpenGL Volumizer آخرین نسخه این API تا اوایل سال ۲۰۰۶ میلا‌دی است كه بر پایه كتابخانه گرافیكی استانداردOpenGL ساخته شده و شامل رابط كلا‌س ++C و قابل‌استفاده در سیستم‌عامل‌های ویندوز و لینوكس ۳۲بیتی و ۶۴‌بیتی است.
●OpenGL Multipipe SDK
OpenGL Multipipe SDK یك لا‌یه API است كه مدیریت برنامه‌های گرافیكی را در زیر سیستم‌ها و ساختارهای گرافیكی چندگانه آسان می‌كند. برنامه‌های كاربردی نوشته شده برپایه این API به نرمی و روانی، هم روی سیستم‌های رومیزی تك پردازنده‌ای و هم روی سیستم‌های چند پردازنده‌ای با سیستم‌های گرافیكی قدرتمند اجرا می‌شوند.
●●نتیجه‌گیری‌
همان‌گونه كه بیان شد ارتباط بین برنامه‌ها و سخت‌افزاری كه آن‌را اجرا می‌كند برعهده API است. سازندگان بزرگ نرم‌افزار و سخت‌افزار API خاصی را برای برنامه‌های مالتی‌مدیا آماده كرده‌اند كه مطرح ترین آن‌ها DirectX و OpenGL هستند.
ترجمه و تدوین: علی حسینی‌
منبع : ماهنامه شبکه


همچنین مشاهده کنید