معرفی و بررسی پلاتفرم های ساخت بازی و انیمیشن کامپیوتری

چكیده

در این مقاله به بررسی ویژگی های دو رابط ساخت بازی در سیستم عامل ویندوز در مقایسه با یکدیگر خواهیم پرداخت. همچنین اشاره ای به نحوه چگونگی استفاده از آن ها و سازگاری هر كدام با هر یك از زبان های برنامه نویسی و ابزارهای مورد نیاز خواهیم داشت.


مقاله ي حاضر پيش از اين در همايش نخبگان استان كرمانشاه – ارديبهشت ماه 1383 - مقام دوم را در بخش علوم فني به خود اختصاص داده است.
همچنين اين مقاله با تغييراتي در شماره ي 35 مجله ي دانش و كامپيوتر – مرداد ماه 1383 – به چاپ رسيده است.
تاريخ نگارش مقاله: آذرماه 1382


مقدمه

شما در دنیای امروز برای پرداختن به یك بازی كامپیوتری با كیفیت و سرعت بالا عموما به چیزی بیش از یك كنسول بازی1 نیازمندید، كه در واقع این در صنعت بازی سازی امروز چیزی نیست جز:

  • سخت افزار سطح بالا و معمولا گرانقیمت
  • یك زبان برنامه نویسی سطح بالا، عمدتا شی گرا و بصری
  • در نهایت یك مجموعه رابط نرم افزاری و سخت افزاری

كه البته این چیزی است كه طراحان بازی ها احتیاج دارند و معمولا شما فقط یك كامپیوتر با حداقل امكانات یا چیزی بیش از آن را كه توسط سازندگان آن بازی تعیین می شود را احتیاج دارید.

به علاوه چنانچه پیش نیاز، مولفه یا جز خاصی برای اجرای بازی نیاز باشد معمولا توسط برنامه ی نصب بازی در سیستم شما نصب خواهد شد2.

در واقع هدف از ایجاد چنین رابط هایی فقط و فقط تسهیل امر برنامه نویسی است و چیزی نیست جز اوج صنعت گرافیك كامپیوتری.

و اما هدف ما از نوشتن این مقاله آشنایی شما خواننده عزیز با عمده رابط های برنامه نویسی بازیها و برنامه های چند رسانه ای است. چنانچه شما فردی عادی باشید به هر حال اطلاع از آن چنانچه مسمر ثمر نباشد بی فایده نیز نخواهد بود و چنانچه یك برنامه نویس متوسط یا حرفه ای باشید خواهید توانست با خواندن این مقاله شاید خط مشی جدیدی در زندگی خود باز كنید و تبدیل به یك بازی ساز حرفه ای شوید.

معرفی توانایی ها و قدرت دو محیط یا رابط گرافیك و انیمیشن كامپیوتری

تعریف یا توضیح مشترك: یك بسته نرم افزاری كه معمولا به صورت توكار درون سیستم عامل قرار دارد و چنانچه احتیاج به Update3 آن باشد نیز می توان آنرا بصورت بسته ای جدا تهیه و بروی سیستم عامل نصب نمود. كار اصلی این بسته مهیا نمودن بستری (پلتفرم) است كه سایر توسعه دهندگان نرم افزار ها و بازیها می توانند از مجموعه توابع آن به منظور استفاده بهینه از زمان و هزینه كمتر و مهمتر از همه سهولت كاربرد از آن استفاده نمایند.

در واقع از زمانیكه این قبیل نرم افزارها در اختیار عموم قرار گرفته اند توسعه دهندگان سیستم عامل و نرم افزارها توانسته اند به عملیات های انتقال سه بعدی – كه ابداع برنامه های كار بردی سه بعدی را آسان می سازد – دست یابند. مانند: انتقال اشیای سه بعدی، مسیردهی بافتی4، تیرگی و كدر بودن تصاویر متحرك و در نهایت تمامی بازی ها و نرم افزارها ی مدل سازی سه بعدی كه تا كنون دیده اید.

دقت نمایید كه سخت افزار و بویژه كارت گرافیك سیستم بایستی از این نرم افزارهای سطح پایین پشتیبانی نمایند.5

OpenGL:

از مجموعه برنامه ی گرافیكی اختصاصی Iris GL شركت «Silicon Graphics» منتج شده است و یك رابط برنامه نویسی كاربردی برای عملیات گرافیك سه بعدی و شتاب دهی سخت افزاری سه بعدی است و باید بدانید كه این نرم افزار یك استاندارد صنعتی است. حتی اكثر برنامه های ریاضی معروف مانند Matlab, Mathematica و یا اكثر برنامه های صنعتی مانند ANSYS, Working model 3d و یا در امور CAD/CAM, CAE6 نیز از این فناوری استفاده می نمایند.

OpenGL برای اكثر سیستم های عامل موجود است.7

OpenGL یك كتابخانه 8low-level برای ساخت برنامه های گرافیكی می باشد كه این كتابخانه در سیستم عامل ویندوز در دو فایل dll پیاده سازی شده است و شامل حداقل 120 تابع برای انجام عملیات ترسیمات سه بعدی می باشد. دو نگارش مختلف از این كتابخانه موجود است:

  • نسخه Microsoft
  • نسخه SGI

نسخه Microsoft كه دارای دو فایل dll به نام های opengl32.dll و glu32.dll است و نسخه SGI كه دارای دو فایل به نام های opengl.dll و glu.dll می باشد.

OpenGL بر خلاف DirectX مایكروسافت كاری با صدا، Joystick و… ندارد. آن فقط یك كار را انجام می دهد: گرافیك و این كار را هم خیلی خوب انجام می دهد. OpenGL كتابخانه ای حجیم نیست و فقط یك مگابایت از فضای دیسك سخت رایانه شما را به خود اختصاص می دهد. همانطور كه ذكر شد نگارش های متفاوتی از OpenGL تحت ویندوز وجود دارد. نگارشی كه مایكروسافت ارائه داده است و تحت اغلب ویندوزها نیز وجود دارد؛ بر روی اكثر كارتهای گرافیكی اجرا می شود(نگارش عمومی). نگارشهای دیگر این كتابخانه توسط سازندگان سخت افزارهای 3D9 ارائه می گرددكه قابلیت های بیشتری رابه شما هدیه خواهند كرد. البته این نگارش ها تفاوت محسوسی با هم ندارند.10

در ضمن می توانید برای مشاهده ی نمونه هایی از کارهای پرداخت11 شده توسط آن به تماشای Screen Saverهای سیستم عامل Windows بنشینید.

DirectX:

مایكروسافت در سال 1995 تصمیم به ایجاد یك محیط برنامه سازی استاندارد برای سازندگان بازی های تحت ویندوز گرفت. چرا كه ویندوز با تمام مزایایش مشكلات زیادی مانند عدم پشتیبانی مناسب از سخت افزار را با خود به همراه آورده بود كه خود باعث شده بود برنامه نویسان بازی های كامپیوتری همچنان از محیط 16 بیتی DOS به منظور ساخت بازی هایشان استفاده كنند، كه این تصمیم منجر به تولید Game SDK شد كه توفیق چندانی نیافت.12

سرانجام مایكروسافت پس از قریب سه سال تلاش پنج نسخه از DirectX را روانه ی بازار كرد. Windows 98 مایكروسافت به همراه نسخه ی 5.00 آن عرضه شد كه به آروزی مایكروسافت جامه ی عمل پوشانید و در همین زمان بود كه تولید بازی های تحت سیستم عامل DOS متوقف شد.

DirectX مجموعه ای از فن آوری های شركت مایكروسافت13 که شامل ابزارهای لازم برای ایجاد برنامه های مالتی مدیای بسیار پیچیده بر روی كامپیوترهای مجهز به ویندوز است را در اختیار توسعه دهندگان برنامه های كاربردی قرار می دهد. DirectX متشكل از مولفه هایی است كه دو لایه ی مجتمع را تشكیل می دهند. لایه ی Foundation، توابع سطح پایین را ارائه می دهد (مانند پشتیبانی از وسایل ورودی) و تضمین اجرای برنامه ها و بهره گیری آنها از كلیه ویژگیهای ویندوز را عرضه می كند. لایه ی Media كه بالای لایه ی قبلی قرار گرفته، خدمات سطح بالا را ارائه می دهد (مانند پشتیبانی از متحرك سازی و سیال سازی رسانه ها) كه برای تولید برنامه هایی شامل صدای محیطی و متحرك سازی سه بعدی لازم است. Direct Animation, Direct Sound و سایر رابطهای برنامه نویسی برنامه ها (API) اعضایی از خانواده ی DirectX هستند.

نام مولفه ی DirectX لا یه نوع پشتیبانی
Direct 3D immediate mode 3D Foundation دسترسی به سخت افزار ویدیویی 3-D
Direct 3D Retained Mode Media ایجاد و متحرك سازی لغات سه بعدی بر روی صفحه
Direct Animation Media متحرك سازی تعاملی و اجتماع انواع مختلف چند رسانه ایی ها
Direct Draw Foundation دسترسی به حافظه و امكانات سخت افزاری صفحه نمایش
Direct Input Foundation دسترسی مستقیم به انواع وسایل ورودی شامل بازخوردهای دسته ی بازی
Direct Music Foundation تالیف موسیقی همزمان
Direct Play Foundation بازی چند نفره ی بر خط و سایر برنامه های كاربردی شبكه ای
Direct Show Media گرفتن و اجرای چند رسانه ای سیگنال
Direct Sound Foundation دسترسی مستقیم به كارت های صوتی و گرفتن و اجرای صوت امواج
Direct Sound 3D Foundation مكان دهی صدای سه بعدی
DirectX Transform Media توسعه زیر بنای DirectX به منظور گنجاندن محصولات جدید

جدول1 - اجزای DirectX

از دیگر پیشرفت های DirectX می توان از زبان جدید HLSL14 یا زبان سایه سازی سطح بالا نام برد كه برای سازندگان نرم افزار یك روش آسان ساخت گرافیك سه بعدی شبیه واقعیت فراهم می سازد. سایه ساز یا Shader یك مكانیسم برنامه سازی است كه یكی از جنبه های هر عنصر گرافیكی، مانند نور پردازی، رنگ، یا چهره ی سطح را توصیف می كند.

وقتی مایكروسافت سایه ساز را در DirectX 8.xx معرفی كرد، سازندگان بازی مجبور بودند برای استفاده از آن از زبان Assembly، كه یك زبان برنامه سازی سطح پایین است بهره بگیرند(باید توجه داشت كه برنامه نویسی با زبان Assembly بسیار دشوار و طاقت فرساست؛ و البته در مواردی شاید بسیار شیرین!؟!!؟؟؟). HLSL كه بخشی از DirectX Graphics است در DirectX 9.0015 معرفی شد و بسیار شبیه به زبان C است كه اكثر برنامه نویسان [حرفه ای و سیستمی] با آن آشنا هستند.

DirectX فناوریی است كه به سازندگان بازیها كمك می كند از این امكانات چند رسانه ایی قدرتمند بهره برداری كنند.

مقایسه ای بین OpenGL و Direct-X توسط سرپرست تیم برنامه نویسی بازی های Doom و Quake جان کارمک

دو نوع كتابخانه استاندارد برنامه نویسی 3D ، تحت Win32 وجود دارد:

  • Direct-3D Immediate Mode
  • OpenGL

من به شدت تحت تاثیر طراحی و سادگی استفاده از API موجود در OpenGL قرار گرفته ام. چندی قبل بازی Quake را كاملا با OpenGL نوشتم. این كار زمان زیادی را به خود اختصاص نداد و كد حاصل ساده و خوانا بود. OpenGL بستر آزمایشی بزرگی را برای من فراهم ساخت تا به سرعت ایده های جدیدی را بتوانم به مرحله عمل برسانم.

سپس شروع به انتقال كد Quake به Direct-3D IM نمودم و هنوز هم این كار را به پایان نرسانده ام،‌ زیرا در این مدت، كارهای بهتری برای انجام دادن وجود دارند! Direct-3D IM یك API مخوف می باشد! آن سختی زیادی را به برنامه نویسان تحمیل می كند، بدون آنكه مزایای قابل توجهی داشته باشد. در بسیاری از موارد تنها یك خط از كد GL معادل یك نیم صفحه كد D3D می باشد. سادگی استفاده بسیار مهم است؛ زیرا اگر شما بتوانید چیزی را در نیمی از زمان ممكن ارائه دهید راه حل های بسیار متفاوتی را می توانید امتحان كنید و در ضمن كدی خوانا، ‌عیب یابی آنرا بسیار ساده می كند.

GL با توابع سروكار دارد و با فراخوانی یك به یك توابع می توان به نتیجه نهایی دست یافت:

OpenGL Sample Code

glBegin (GL_TRIANGLES);
glVertex (0,0,0);
glVertex (1,1,0);
glVertex (2,0,0);
glEnd ();

و كد معادل در D3D:

Equivalent DirectX Sample Code

// pseudo code, and incomplete
v = &buffer.vertexes[0];
v->x = 0; v->y = 0; v->z = 0;
v++;
v->x = 1; v->y = 1; v->z = 0;
v++;
v->x = 2; v->y = 0; v->z = 0;
c = &buffer.commands;
c->operation = DRAW_TRIANGLE;
c->vertexes[0] = 0;
c->vertexes[1] = 1;
c->vertexes[2] = 2;
IssueExecuteBuffer (buffer);

و اگر كد واقعی مربوط به D3D را ارائه می دادم شاید شما می گفتید كه عمدا، قصد بد جلوه دادن آنرا دارم!

برنامه نویسی

زبان های برنامه نویسی كه قابلیت بكارگیری هر یك از دو رابط ذكر شده را دارند در ذیل لیست شده اند:

VC++, C++ Builder, C#, Java, VB, Delphi

و هر زبان برنامه نویسی تحت ویندوزی که توانایی به كارگیری و به اشتراک نهادن ویژگی های ویندوزی مانند COM16 را دارد.

معمولا شما به منظور برنامه نویسی با DirectX به DirectX SDK احتیاج پیدا می كنید اما اگر از Visual Studio .NET استفاده كنید احتیاجی به این كیت نرم افزاری ندارید.

و اما یكی از جذاب ترین قابلیت های DirectX این است كه به شما اجازه می دهد مدل های17 سه بعدی و اشیای دو بعدی را كه در نرم افزارهایی مانند 3DS Max, Maya 3D, SoftImage 3D, LightWave 3D و یا هر نرم افزار دیگری كه این خصوصیات را دارد خلق كرده اید در قالب فایلهای .x مورد دستیابی قرار دهید. برای این منظور بایستی از یك Converter18 استفاده نمایید؛ مثلا:

  • برنامه PolyTrans3D System Translation
  • برنامه Deep Exploration 2.0
  • برنامه Quick3D
  • برنامه 3DWin
  • وصله DirectX Explorer Plugin
  • و یا ابزارهای موجود در DirectX 8.0 SDK که عبارتند از:
    • برنامه Conv3DS برای تبدیل فایلهای 3DS به فایلهای X
    • DX SDK Exporter Plugin برای تبدیل فایلهای 3DS و Max به فایلهای X

به منظور استفاده از OpenGL در VB ممكن است به یكی از كتابخانه های زیر احتیاج پیدا كنید:

  • VBOpenGL for Microsoft
  • VBOpenGL for SGI

OpenGL به زبان C نوشته شده است و بدین جهت اطلاعات زیادی را در این زمینه شامل كتابخانه های لازم برای لینك برنامه ها و همچنین برنامه های حاضر و آماده در فولدر VC++ در سی دی Visual Studio مایكروسافت می توانید پیدا كنید.

در ضمن در مجموعه ی MSDN19 اطلاعات جامع و در خور توجهی در مورد هر یک از رابط های یاد شده در دسترس می باشد.

Borland Delphi نیز واحد20 مخصوص OpenGL را آماده و جزئی از كامپایلر خود ساخته است كه برای استفاده فقط كافی است آنرا به ابتدای برنامه خود ضمیمه نمایید. حتی می توانید در منوی استارت ویندوز و در زیر شاخه “Borland Delphi\Documentation\MS SDK” با كلیك بر Icon مربوط به OpenGL به قسمت Help كامل این رابط, دسترسی حاصل نمایید.

ضمنا بایستی از نگارش Delphi v2.0 یا بالاتر استفاده نمود.

جمع بندی

چنانچه تصمیم گرفته اید كه اطلاعات بیشتری در این زمینه به دست آورید و یا اینكه این زمینه را دنبال كنید، متاسفانه در كشور ما منبع یا كتاب خاصی در این زمینه موجود نمی باشد (یا لااقل در زمان نگارش این متن ما چنین مرجعی را پیدا نكردیم)؛ و اما توصیه ما به شما این است كه در دنیای مجازی كه همانا اینترنت است به دنبال این مقوله باشید [مانند ما]. و در نظر داشته باشید كه بهترین مراجع در این زمینه مستنداتی است كه شركت های سازنده ی این محصولات مرتبا به صورت به روز شده در سایت های اینترنتی خود قرار می دهند.21

ما نیز از همین كتابخانه استفاده كرده ایم. شما می توانید نمونه های كد و مثال های زیادی را به زبان های برنامه نویسی مختلف در این مكان ها یافت كنید. در ضمن می توانید با عضویت در آن ها توسط پست الكترونیك از آخرین اخبار مطللع باشید.

این منابع در قسمت منابع و ماخذ ذكر شده اند.22

منابع و ماخذ

http://www.microsoft.com/
http://www.opengl.org/

  1. Game Console: یك سیستم كامپیوتری با هدف خاص كه برای كاربر خانگی طراحی شده تا بازیهای ویدیویی را اجرا كند. هر كنسول بازی معمولا شامل یك CPU و یك یا چند كنترل كننده ی بازی، خروجی صدا و خروجی ویدیویی است كه به تلویزیون متصل می شود. بازی ها و كارت های حافظه به شكل كارتریج های افزودنی یا دیسك های فشرده عرضه می شوند. بسیاری از نسخه های جدید كنسول بازی 128 بیتی بوده و حتما مجهز به مودم برای بازی های بر خط(online) روی اینترنت هستند. كنسول های بازی بسیار رایج عبارتند از Sega Dreamcast, Microsoft Xbox, Sony PlayStation, Nintendo Game Cube.

    Dreamcast: یك سیستم كنسول بازی كه شركت سگا آن را ارائه كرده است. این سیستم مجهز به یك موتور گرافیكی 128 بیتی هیتاچی و پردازنده ی SH-4 RISC بر روی بورد اصلی و یك سیستم عامل سفارشی بر اساس Windows CE است كه از DirectX پشتیبانی می كند. برنامه نویسان بازی های كامپیوتری از محیط های Microsoft Visual Studio و Visual C++ به منظور طراحی بازی ها برای Dreamcast استفاده می كنند.

    Game Cube: سیستم بازی كنسولی شركت Nintendo. این سیستم دارای یك قالب دوستانه ی توسعه دهنده بوده و معرف فن آوری 1T-RAM است كه تاخیر های حافظه اصلی و حافظه ی تركیبی گرافیكی LSI را كاهش می دهد. ریزپردازنده ی آن IBM PowerPC “Gekko” است كه دارای یك حافظه ی نهان ثانویه ی (Level One: Instruction 32 KB, Data 32 KB (8-way); Level Two: 256 KB (2-way)) است. بازی ها روی دیسك بازی Game Cube قرار دارند.

    PlayStation: سیستم بازی سرگرمی و كامپیوتر كنسولی شركت سونی. PlayStation 2، آخرین نسخه از یك سیستم 128 بیتی است كه دارای یك پردازنده ی 300 مگاهرتزی، حافظه ی اصلی 32 مگابایتی نوع Direct RDRAM، و یك عملكرد اعشاری 6.2 GFLOPS (:gigaflops سنجش كارایی محاسباتی؛ یك میلیارد عملیات ممیز شناور در هر ثانیه) است. این ایستگاه بازی CDها و DVDها را اجرا می كند.

    Xbox: نوعی كنسول بازی ویدیویی كه شركت مایكروسافت آن را در سال 2001 ارائه كرد. این كنسول دارای پردازنده Intel 733-MHz بوده و قابلیت گرافیكی بیشتری را از طریق كنسول های بازی قبلی ارائه می دهد. این كنسول ظرفیت ذخیره ی بسیار زیادی برای اطلاعات بازی دارد. وسایل جانبی درون چهار پورت كنترل كننده ی بازی وصل می شوند، یك پورت اترنت امكان بازی مستقیم را از طریق یك اتصال باند پهن فراهم می كند.
    [return]
  2. منظور ActiveX یا Component است. توضیح چند عبارت لازم به نظر می رسد:

    Component: روتین نرم افزاری در بخشی جداگانه كه كامپایل شده و به طور پویا پیوند یافته و آماده ی به كارگیری با سایر اجزا یا برنامه ها باشد.

    ActiveX: در زمان مقتضی به توضیح آن خواهیم پرداخت.
    [return]
  3. به روز رسانی
    [return]
  4. ممكن است به جای این واژه با عباراتی نظیر چهره ی سطح، Material، Texture Mapping و … روبرو شوید. توضیح چند عبارت لازم به نظر می رسد:

    Texture: بافت؛ در گرافیك كامپیوتری، سایه یا ویژگی های دیگری كه به سطوح گرافیكی اضافه شده تا به آن ها وضعیت ماده ی فیزیكی را بدهد. مثلا سطح جسمی را به صورت فلز یا شیشه یا تصویر اسكن شده ای در می آورد تا شبیه به شیئی جلوه كند كه از چوب ساخته شده است.

    Texture Mapping: نگاشت(صورت نمایی) بافتی؛ در گرافیك سه بعدی، فرایند اضافه نمودن جزئیات به شیئی به وسیله ی ایجاد تصویر یا الگویی كه می تواند دور شی را احاطه كند. مثلا نگاشت بافتی از سنگ ها ممكن است اطراف شكل هرمی را احاطه كند تا تصویر واقعی ایجاد نماید. این تكنیك در گرافیك سه بعدی ارزشمند است، زیرا موجب خلق تصاویر دقیق بدون تنزل در كارایی سیتم می شود. توجه كنید كه در روش معمولی، تصاویر به وسیله ی چند ضلعی های متعددی خلق می شوند كه نیاز به محاسبات بسیار زیادی دارند و همین امر كارایی سیستم را تنزل می دهد.
    [return]
  5. در هنگام خرید یك كارت گرافیك به راحتی می توان به سازگاری آن با هریك از رابط ها پی برد، مثلا ممكن است یكی از عبارات زیر را به صورت لاتین بر روی جعبه ی كارت گرافیك مشاهده نمایید كه بیانگر سازگاری یا عدم سازگاری آن با نسخه ی مورد نظر شما می باشد:

    DirectX يا OpenGL (X.xx نگارش مربوطه مربوطه به صورت) Compatible
    Supports DirectX يا OpenGL (X.xx نگارش مربوطه به صورت)

    البته با نرم افزار SiSoft Sandra 2003 نیز می توان تست دقیقی از میزان سازگاری و تعداد دستورات قابل شناسایی توسط كارت گرافیك را به عمل آورد.
    [return]
  6. Computer Aided Design: طراحی به كمك كامپیوتر؛ سیتسمی از برنامه ها و ایستگاه های كاری كه در طراحی مهندسی، معماری و مدلهای علمی استفاده می شود و شامل طراحی ابزارهای بسیار ساده تا ساختمان، هواپیما، مدارهای مجتمع و مولكول هاست. نرم افزارهای مختلف CAD، اشیای دو یا سه بعدی ساخته و نتایج را به شكل اسكلتی و مدل هایی با سطوح سایه زده یا اشیای توپر نشان می دهند. برخی از این برنامه ها می توانند مدل ها را چرخانده یا تغییر اندازه داده، نماهای داخلی را نشان دهند و فهرستی از مواد مورد نیاز را برای ساخت ارائه داده و سایر عملیات مربوطه را نیز انجام دهند. برنامه های CAD بر ریاضیات متكی بوده و بیشتر به قدرت محاسباتی ایستگاه كاری نیازمندند.

    Computer Aided Engineering: مهندسی به كمك كامپیوتر؛ برنامه ای كه به كاربر امكان انجام آزمایش های مهندسی و تجزیه و تحلیل طرح های ساخته شده با كامپیوتر را می دهد. در برخی نمونه ها، توانایی هایی مانند آزمایش منطقی كه معمولا به كاربردهای CAE منسوب است، نیز بخشی از برنامه های CAD است. بنابراین تفاوت بین CAD و CAE چندان زیاد نیست.

    Computer Aided Manufacturing: تولید به كمك كامپیوتر؛ استفاده از كامپیوترها در خودكار نمودن تولید، مونتاژ و جنبه های كنترل كارخانه ها. CAM غالبا مربوط به استفاده از برنامه ها و وسایل تخصصی است تا استفاده از ریزپردازنده ها در محیط كارخانه ای.

    Computer Aided Design / Computer Aided Engineering: استفاده از كامپیوترها، هم در طراحی و هم در تولید یك محصول؛ با CAD/CAM محصولی مانند یك قطعه ماشین، با برنامه CAD طراحی گردیده و پس از تكمیل به مجموعه ای از دستورها ترجمه می شود كه قابل انتقال یا قابل استفاده توسط ماشین هایی است كه اختصاص به ساخت، مونتاژ و كنترل فرایند دارند.
    [return]
  7. از جمله:
    Win9x, WinNT, Macintosh, IBM, AIX, SunSoft, Solaris, DEC’S AXP, Open VMS, …
    [return]
  8. Library: در برنامه نویسی، مجموعه ای از توابع كه در فایلی ذخیره شده است. هر مجموعه از دستورهای داخل كتابخانه دارای نام بوده، و هر یك از آن ها كاری مستقل و متفاوت با دیگری انجام می دهند.

    Library Routine: توابعی كه در كتابخانه یا فایلی ذخیره شده است، تمام برنامه ها می توانند از آن ها استفاده كنند و در كتابخانه آن ها را پیوند نمایند.
    [return]
  9. سه بعدی
    [return]
  10. جدیدترین نگارش آن در حال حاضر OpenGL 2.00 می باشد.
    [return]
  11. Render
    [return]
  12. مشكلی كه سیستم عامل Linux نیز مدت ها با آن دست به گریبان بود.
    [return]
  13. در واقع مجموعه ای از توابع API (این توابع در واقع قلب ویندوز و رابط های برنامه نویسی آن محسوب می شوند و درون فایلهای DLL قرار دارند؛ توابع API اصلی ویندوز [كه بیش از 1000 تابع و پردازه می باشند] در فایلهایی مانند Kernel32.dll, User32.dll, Shell32.dll, … قرار دارند كه تمام برنامه های تحت ویندوز بدون استثنا از آن ها استفاده می نمایند).
    [return]
  14. High Level Shader Language
    [return]
  15. جدیدترین نگارش این برنامه در زمان نگارش مقاله ی حاضر
    [return]
  16. Component Object Model: مشخصه ی توسعه یافته مایكروسافت برای ساخت اجزای نرم افزاری كه قابلیت اجتماع در برنامه ها را دارد و قدرت عمل برنامه های موجود را كه تحت سیستم عامل ویندوز مایكروسافت اجرا می شوند، افزایش می دهد. مولفه های COM با زبانهای گوناگون و غالبا C++ نوشته می شوند و امكان انفصال آنها از برنامه در زمان اجرا وجود دارد، بدون اینكه نیازی به كامپایل مجدد برنامه باشد. COM مبنای OLE، ActiveX و مشخصات DirectX است.

    Activex: مجموعه ای از تكنولوژی هایی كه به اجزای نرم افزاری امكان می دهند تا صرف نظر از زبانی كه برای تولید آن جز استفاده شده است، با یكدیگر در محیطی شبكه شده فعل و انفعال داشته باشند. ActiveX كه به عنوان استاندارد پیشنهادی در دهه ی 1990 میلادی توسط مایكروسافت توسعه یافت، اخیرا تحت مدیریت Open Group و Microsoft ساخته می شود. در حال حاضر ActiveX به طور عمده برای توسعه ی محتوای فعل و انفعالی بر روی شبكه ی جهانی وب استفاده می شود، گرچه در كاربردها و سایر برنامه های رومیزی هم می توان از آن استفاده نمود. كنترل های ActiveX را می توان در صفحات تعبیه نمود، تا تصاویر متحرك و سایر جلوه های چند رسانه ای، موضوعات فعل و انفعالی و كاربردهای پیچیده را ایجاد كنند.

    Object Linking and Embedding: پیوند ودرج شی؛ تكنولوژی انتقال و به اشتراك گذاری اطلاعات بین برنامه های كاربردی؛ با ایجاد شیئی مانند فایل تصویر كه توسط برنامه ی نقاشی ایجاد می شود، یك فایل به سند مركبی مانند یك صفحه گسترده یا سندی پیوند زده می شود كه با برنامه ی واژه پردازی ایجاد شده است. سند فقط شامل مراجعه به شی است، و انجام هر تغییری در محتوای شی پیوند یافته، در سند مركب دیده می شود. هنگامی كه شیئی در سند مركبی درج شود، این سند یك كپی از شی را خواهد داشت كه انجام هر تغییری در محتویات شی، در سند مركب دیده نمی شود، مگر آنكه شی درج شده به روز درآید.
    [return]
  17. هر شی چه جاندار چه بی جان كه در فضای سه بعدی قابل توصیف باشد (بر روی بردارهای x, y, z).
    [return]
  18. مبدل: هر وسیله یا نرم افزاری كه سیگنال های الكتریكی یا داده های كامپیوتری را از یك شكل به شكل دیگری تبدیل كند.
    [return]
  19. Microsoft Developer Network: منبع اینترنتی در چاپ، و CD-DVD برای توسعه دهندگانی که محتوا و برنامه های متمرکز بر اساس روندهای توسعه و فن آوری های مایکروسافت را شکل می دهند.
    [return]
  20. Unit
    [return]
  21. URL این سایت ها در قسمت منابع و ماخذ درج شده است.
    [return]
  22. البته در نگارش این مقاله از منابع دیگری نیز استفاده شده است كه به دلیل پراكندگی فراوان و تکرار مطالب از درج نام آن ها خودداری شده است.
    [return]