# Native Code > برنامه نویسی در 6 VB > برنامه نویسی مرتبط با بازی و گرافیک در VB6 >  تفاوت openGL با directX

## pooya1072

سلام دوستان
مي خواستم تفاوت openGL با directX رو بدونم و ديگه اينكه جهت استفاده از قابليتهاي آنها آيا مرجعي جهت آموزش وجود داره؟ اگه لينك تخصصي سراغ دارين زحمتش رو بكشيد...

----------


## IamOverlord

یاحق
سلام دوست عزیز!
OpenGL استانداردی با کیفیت بالا برای ساخت برنامه های سه بعدی (3d) صنعتی می باشد. برای مثال اکثر برنامه های ریاضی معروف مانند Matlab ، Mathematica و غیره و یا اکثر برنامه های صنعتی مانند ANSYS ، Working model 3d و امثال اینها از این تکنولوژی قوی که ویرایش های دیگری نیز تحت سیستم عامل های گوناگونی دارد ، استفاده می کنند .

همانطور که ذکر شد یکی از مزایای مهم این API گرافیکی ،‌مستقل از پلتفرم بودن آن است ؛ این کتابخانه 3d تحت پلتفرم های مختلف سخت افزاری و سیستم عاملی مهیا می باشد مانند انواع ویندوزهای 9X ، ویندوز NT ، OS/2 ، Mac OS ، Open VMS ، ویندوز X ، DEC'S AXP و Solaris . این مورد یکی از برتری های غیرقابل انکار OpenGL نسبت به DirectX می باشد.
مکانیزم مورد استفاده در OpenGL بر مبنای کتابخانه ها و هدر فایلها می باشد اما در DirectX از تکنولوژی Com استفاده می گردد.
در OpenGL بهی نه سازی های نرم افزاری برای حالتهای ی که سخت افزار آنها را پشتی بانی نمی کند ارائه می دهد ولی DirectX خیر.
OpenGL همانطور که از نامش هم پیداست Open Sourec می باشد برخلاف دایرکت ایکس.
موارد زیر از جمله مواردی هستند که OpenGL آنها را پشتیبانی می کند اما دایرکت ایکس خیر :
Picking Support
Stereo Rendering
Hardware Independent Z Buffer Access
Accumulation Buffers
Line Width Rendering Attributes
Two-sided Lighting
Hierarchical Display Lists
استاندارد OpenGL توسط شرکت های سازنده گرافیک سخت افزاری در حال گسترش است در حالیکه Direct3D فقط یک نگارش بیشتر ندارد. اگر نگاهی به کارتهای گرافیکی شرکت nVidia بیاندازید متوجه این امر خواهید شد.
منابع مطالعاتی خوب OpenGL بسیار در دسترس تر هستند.
ویندوز ان تی 4 تنها از دایرکت تری دی 3 پشتیبانی می کند و در نگارش های بعدی آنهم همواره مشکلات آن با ویندوز های برپایه ان تی مشهود است . اما بهترین کارآیی OpenGL را تحت ویندوزهایی برپایه ان تی خواهید دید.
OpenGL از کتبخانه ای نوشته شده به زبان سی که اصطلاحا به این نوع برنامه نویسی Procedural هم می گویند استفاده می کند که کار کردن و درک آن بسیار ساده است و Encapsulation توابع آن در کلاسهایی شی ء گرا بسیار لذت بخش!


و برای اینکه رعایت انصاف را کرده باشیم موارد زیر توسط DirectX و آن قسمتی از آن به نام Direct3D که مورد نظر ما است توسط OpenGL پشتیبانی نمی شود 
Fixed-Function Vertex Blending
Programmable Vertex Blending
Programmable Pixel Shading
Triadic Texture Blending Operations
Bump Mapping
Multiple Monitor Support

و یک چند مورد دیگر! 
البته لازم به ذکر است که تمام این موارد را با ایجاد کتابخانه های لازم در OpenGL می توان ایجاد کرد.
در هر حال مایکروسافت سخت در حال توسعه ی کتابخانه های سه بعدی خودش می باشد و در نگارش های اخیر آن واقعا زحمت کشیده است!

توصیه ای که اغلب بزرگان برنامه نویسی بازی های حرفه ای انجام می دهند این است که ابتدا با OpenGL شروع کنید و سپس دانش خود را به DirectX ارتقاء دهید. نتیجه گری نهایی برای انتخاب بین این دو بستگی به دانش برنامه نویسی و نیازهای کاری شما دارد و همچنین علاقه میزان - وقت مهیا و امثالهم.
 :چشمک:

----------


## xxxxx_xxxxx

> یاحق
> سلام دوست عزیز!
> OpenGL استانداردی با کیفیت بالا برای ساخت برنامه های سه بعدی (3d) صنعتی  می باشد....
> ...
> ...
> ...


منبع؟
https://barnamenevis.org/showthread.php?t=1050

اگر قرار است در این تاپیک در مورد این بحث شود که DirectX چیست و OpenGL چیست و مزایا و برتری ها مورد مقایسه قرار بگیرند، اولاً در این مورد بارها بحث شده، در ثانی جای تاپیک در این تالار نیست.

اما میتوان در مورد نحوه بکارگیری این دو تکنولوژی در VB6 بحث کرد.

موفق باشید/

----------


## pooya1072

البته من منظورم رو درست بیان نکردم...منم می خوام بدونم  چطور میشه  توابع مربوطه رو توی vb6 فراخوانی کرد(بخصوص openGL ) و آیا آموزشی در رابطه با بکارگیری این توابع در vb6 بطور جامع وجود داره...

----------

