تبلیغات :
آکوستیک ، فوم شانه تخم مرغی، صداگیر ماینر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 1 از 2 12 آخرآخر
نمايش نتايج 1 به 10 از 14

نام تاپيک: نحوه استفاده و كار كردن با OpenGL

  1. #1
    داره خودمونی میشه
    تاريخ عضويت
    Aug 2006
    پست ها
    78

    پيش فرض نحوه استفاده و كار كردن با OpenGL

    سلام دوستان
    اين تاپيك ايجاد شده تا هر كس OpenGl بلده و با نحوه كار با اون در دلفي آشنايي داره مطلب بده.
    خودم مي خواستم اول شروع كنم مي خواستم يه فايل بزارم كه اصلا OpenGl چيه ولي بلد نيستم-اگه ممكنه بگيد چه جوري بايد آپلود كنم تا بزارم
    ممنون

  2. #2
    حـــــرفـه ای mahsoft's Avatar
    تاريخ عضويت
    Aug 2004
    محل سكونت
    پيش بابايی شماره‌شناسنامه: پلــــــاک ¼
    پست ها
    6,359

    پيش فرض

    OpenGL چگونه کار ميکند :

    OpenGL بیشتر از آنکه یک API گرافیکی توصیفی باشد حالت رویه ای دارد. بجای توصیف صحنه و اینکه صحنه چگونه باید ظاهر شود برنامه نویس مراحل لازم را برای دست یافتن به نمایش معین یا یک افکت را تعیین میکند. این مراحل باعث فراخوانی دستورات زیادی از OpenGL میشود. این فرامین برای رسم اشکال ابتدایی گرافیکی مانند خط و نقطه و چندضلعی در صحنه سه بعدی استفاده میشوند.
    بعلاوه OpenGL نورپردازی و نگاشت بافت و آمیختگی و شفاف نمایی و انیمیشن و بسیاری دیگر از افکت های ویژه سه بعدی و قابلیت های زیاد دیگری را پشتیبانی میکند.
    OpenGL شامل هیچ تابعی برای مدیریت پنجره و یا محیط بصری نمیباشد. برنامه نویسان این محیط ها را برای برطرف کردن نیازهای سطح بالایشان ایجاد میکنند و سپس با دقت آنها را با دستورات سطح پایین OpenGL برنامه نویسی میکنند.
    پیاده سازی عمومی :
    همانطور که قبلا عنوان شد یک پیاده سازی عمومی یک پیاده سازی نرم افزاری میباشد. پیاده سازیهای سخت افزاری برای دستگاههای سخت افزاری ویژه طراحی شده است مانند یک کارت گرافیکی یا یک مولد تصویر. یک پیاده سازی عمومی از لحاظ فنی میتواند بر روی هرکجا اجرا بشود مادامیکه سیستم بتواند تصاویر گرافیکی ساخته شده را نمایش دهد.
    تصویر 1-2 مکان نمونه ای را نشان میدهد که OpenGL و یک پیاده سازی عمومی اشغال کرده اند هنگامی که یک برنامه در حال اجراست. برنامه نمونه توابع زیادی را فراخوانی کرده است. بعضی از توابعی که کاربر تولید کرده و بعضی ها که توسط سیستم عامل مهیا شده اند یا متعلق به کتابخانه زمان اجرای زبان برنامه نویسی هستند. زمانی که برنامه های ویندوز میخواهند که چیزی را بر روی صفحه خروجی رسم کنند معمولا یکی از توابع API ویندوز را که (رابط دستگاه گرافیکی) نامیده میشود صدا میزنند. GDI شامل متد هایی است که به شما اجازه نوشتن متن و ترسیم اشکال دو بعدی ساده و غیره را میدهد.
    معمولا سازندگان کارت های گرافیکی یک درایور سخت افزاری با رابط های GDI تهیه میکنند که خروجی را بر روی مانیتور رسم کند. یک پیاده سازی نرم افزاری از OpenGL گرافیک های تقاضا شده توسط یک برنامه را میگیرد و از آن گرافیک سه بعدی یک تصویر دو بعدی رنگی ایجاد میکند. سپس این تصویر را به GDI میفرستد تا بر روی مانیتور نمایش دهد. در بقیه سیستم های عامل نیز وضع به همین منوال است اما شما GDI را با سرویس نمایش محلی سیستم عامل خود تعویض میکنید.
    OpenGL یک جفت پیاده سازی نرم افزاری مشترک دارد. یکی پیاده سازی نرم افزاری مایکروسافت است که با هر ورژن از ویندوز مانند NT 3.5 و بالاتر و Win95 و 2000 و XP ارایه میشود.
    SGI یک پیاده سازی نرم افزاری از OpenGL را برای ویندوز طراحی کرد که پیاده سازی مایکروسافت را از دور خارج میکند. این پیاده سازی دیگر به طور رسمی پشتیبانی نمیشود اما هنوز به مقدار زیادی توسط توسعه دهندگان استفاده میشود. که در انجمن های اوپن سورس از مقبولیت و پشتیبانی خوبی برخوردار است. Mesa 3D یک OpenGL مجوز دار نیست. بنابر این بیش از این که یک پیاده سازی رسمی باشد مانند یک همکار برای OpenGL است.
    پیاده سازی سخت افزاری :
    یک پیاده سازی سخت افزاری از OpenGL شکل یک درایور کارت گرافیکی را دارد. شکل 2-2 ارتباطش با برنامه مانند شکل 1-۲ است. توجه کنید که فراخوانی های توابع OpenGL به درایور سخت افزار پاس داده میشوند. این درایور خروجی خود را به GDI ویندوز برای نمایش پاس نمیدهد. رابط خودش مستقیما با سخت افزار نمایش گرافیکی رابطه دارد.
    یک پیاده سازی سخت افزاری به عنوان یک پیاده سازی تسریع شده شناخته میشود. چون گرافیک سه بعدی با کمک سخت افزار بسیار بهتر و سریعتر از یک پیاده سازی صرفا نرم افزاری عمل میکند. چیزی که در تصویر 2-2 نشان داده نشده اینست که بخشی از قابلیتهای OpenGL هنوز به صورت نرم افزاری به صورت بخشی از درایور ایجاد میشود و بقیه قابلیتها و خصوصیات میتواند مستقیما به سخت افزار پاس داده شوند.
    The Pipeline :
    کلمه pipeline جهت شرح دادن پروسه ای که میتواند دو مرحله جداگانه یا بیشتر را در بر بگیرد استفاده میشود. تصویر 3-2 یک pipeline خلاصه شده OpenGL را نشان میدهد.
    به عنوان برنامه ای که توابع API مربوط به OpenGL را فراخوانی میکند دستورات در محلی بنام بافر دستور یا Command Buffer ذخیره میشود. این بافر بالاخره با اطلاعات راس و تکسچر و غیره پر میشود. وقتی این بافر تا آخرین حد پر شود توسط برنامه یا توسط طراحی درایور دستورات و اطلاعات به مرحله بعدی در پروسه Pipeline پاس داده میشوند.
    اطلاعات مربوط به رئوس معمولا تغییر شکل یافته هستند. در آموزشهای بعدی شما خواهید فهمید که این یعنی چه (برره ای بود). اما برای حالا همین قدر بدانید که "تغییر شکل و نورپردازی" یک مرحله شدیدا ریاضی گونه هستندکه نقاط برای تشریح مختصات هندسی اشیا استفاده میکنند.محاسبات نور پردازی به خوبی بر روی اطلاعات رئوس انجام میشوند تا نشان دهند هر راس با چه شدت رنگی و نوری باید نمایش داده شود.
    هنگامی که این مرحله به پایان رسید اطلاعات به بخش بعدی Pipeline یعنی Rasterization خورانده میشود. Rasterizer در عمل یک تصویر رنگی از اطلاعات هندسی و رنگها و اطلاعات تکسچر میسازد. این تصویر سپس به بافر فریم ّFrame Buffer منتقل میشود. بافر فریم قسمتی از حافظه دستگاه نمایش گرافیکی (کارت گرافیک ) میباشد. این بدین معنی است که تصویر در صفحه نمایش داده شده است. در یک سطح بالا این نمودار صحیح میباشد اما در یک سطح پایین تر قسمتهای زیاد دیگری نیز در این پروسه وجود دارد. همچنین استثنائاتی هم وجود دارد. همانطور که در نمودار هم پیداست بعضی از اطلاعات از مرحله T&L یا همان Transform & Lighting عبور نمیکنند.
    در گذشته شتاب دهنده های سخت افزاری OpenGL چیزی جز fast Rasterizer نبودند. آنها تنها بخش Rasterization را شتاب میبخشیدند و پردازشگر سیستم میزبان مرحله T&L را به صورت نرم افزاری و به عنوان بخشی از pipeline انجام میداد. شتاب دهنده های با کیفیت تر (گرانتر) خودشان قسمت T&L را انجام میدادند. به این ترتیب بیشتر مراحل Pipeline در سخت افزار گرافیکی انجام میشد و گرافیک بیشتری بدست می آمد.

    موفق باشی

  3. #3
    آخر فروم باز soldier's Avatar
    تاريخ عضويت
    May 2006
    پست ها
    2,505

    پيش فرض

    سلام
    من توي يكي از تاپيك ها آموزش اپن جي ال گذاشته بودم
    كه 100 تا نمونه داشت! بريد به اون تاپيك دانلودش كنيد
    اسم تاپيك هم دلفي سه بعدي هست!
    ممنون

  4. #4
    پروفشنال
    تاريخ عضويت
    Jul 2006
    محل سكونت
    گیلان _ رشت
    پست ها
    635

    پيش فرض

    سلام ...
    من يه خورده OpenGL بلیدم ...
    حتما باهاتون توی این تاپیک همکاری می کنم ...
    منتظر باشید ...
    فعلا ...

  5. #5
    حـــــرفـه ای مرد مباح's Avatar
    تاريخ عضويت
    Dec 2005
    محل سكونت
    روي ميخ
    پست ها
    2,142

    پيش فرض

    ما منتظريم.
    هم آموزشتو اينجا بزار و هم اگه شد لينك فايل خودآموزتو.
    ممنون

  6. #6
    آخر فروم باز soldier's Avatar
    تاريخ عضويت
    May 2006
    پست ها
    2,505

    پيش فرض

    سلام
    من هم دوست دارم ياد بگيرم اما اصلآ چيز جالبي نيست
    علتش هم اينه كه OpenGl فقط یه پروژه هست
    یعنی مثل دلفی ایکس نیست که در پروژه ات بکارش ببری
    در ضمن کار باهاش سخته!
    بهتره به جای OpenGL به فکر یه سیستمی باشیم مثل DelphiX
    فقط دو بعدی! و برای رسم کردن object ها هم سریع عمل کنه
    چون دلفی ایکس قدرت زیادی نداره! باید روی این بحث بشه
    که یه کار جالبی انجام بدیم!
    موفق باشید

  7. #7
    حـــــرفـه ای مرد مباح's Avatar
    تاريخ عضويت
    Dec 2005
    محل سكونت
    روي ميخ
    پست ها
    2,142

    پيش فرض

    سولجر جان.
    يك الگوريتم جديد پيدا كرديم كه سرعت نمايش رو بالا ميبره و بعد از تست خبرشو بهت ميدم.
    از طرف ديگه OpenGL هم يك دانشه كه شايد بعدا به دردمون بخوره.
    اميدوارم زودتر آموزشت رو شروع كني.

  8. #8
    پروفشنال
    تاريخ عضويت
    Jul 2006
    محل سكونت
    گیلان _ رشت
    پست ها
    635

    پيش فرض

    سلام ...
    سلام
    من هم دوست دارم ياد بگيرم اما اصلآ چيز جالبي نيست
    علتش هم اينه كه OpenGl فقط یه پروژه هست
    یعنی مثل دلفی ایکس نیست که در پروژه ات بکارش ببری
    در ضمن کار باهاش سخته!
    بهتره به جای OpenGL به فکر یه سیستمی باشیم مثل DelphiX
    فقط دو بعدی! و برای رسم کردن object ها هم سریع عمل کنه
    چون دلفی ایکس قدرت زیادی نداره! باید روی این بحث بشه
    که یه کار جالبی انجام بدیم!
    اين ها رو از كي شنيدي ... ؟
    همش غلطه !!!!
    OpenGL هم قدرتمنده و هم از DirectX راحت تره و هم خوانا تره ( البته نه واسه کسائی که با کامپوننت کار می کنن ) !!
    DelphiX هم همون DirectX هستش ...
    DirectX که فقط دوبعدی نیست !!!!
    اصل کار اون روی 3D هستش ...
    اکثر برنامه های 3D ساز قدیمی توشون از OpenGL استفاده شده ... ( به نظر من که فوق العادست )
    دلیلی اینکه در حال حاضر تعداد زیادی برای ساخت بازی از اون استفاده نمی کنند اینه که دیگه مایکروسافت اون رو گسترش نمی ده !! و بیشتر تمرکز مایکروسافت برای گسترش DirectX هستش ...
    اگه کدهای DirectX رو با OpenGL مقایسه کنی می بینی که هم خیلی کمتره و هم خیلی خوانا تره ...
    البته به شرطی که برای هر دو از توابع استفاده بشه ( نه کامپوننت !! )
    یکی دیگه از خوبیهای OpenGL اینه که می تونی اون رو فارسی بکنی !!!
    اميدوارم زودتر آموزشت رو شروع كني.
    چشم ، به زودی شروع می کنم ...
    پیغامم بهت رسید ؟
    فعلا ...
    موفق باشید ...
    Last edited by Mahmood_N; 30-08-2006 at 16:12.

  9. #9
    اگه نباشه جاش خالی می مونه amin a.^2's Avatar
    تاريخ عضويت
    Aug 2006
    محل سكونت
    یه جایی همین دورو ورا
    پست ها
    358

    پيش فرض

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

  10. #10
    آخر فروم باز soldier's Avatar
    تاريخ عضويت
    May 2006
    پست ها
    2,505

    پيش فرض

    سلام
    اول چرا اين همه قاتي نوشتي
    دوم اين رو خودم تست كردم!
    به جاي اپن جي ال اگر مي توني يه آموزش ديركت ايكس بزار
    در ضمن من گفتم دو بعدي باشه راحت تره! چون ما دو بعد رو نياز داريم!
    پس نياز داريم كه از قسمت هاي دو بعدي استفاده كنيم!
    اگر بخواهيد از سيستم سه بعد استفاده كنيم ! (كه نياز نداريم) ! كارمون رو سخت كرديم
    چون ما فعلآ فقط دو بعدي نياز داريم!

    ام بدم نمياد چيز جديدي ياد بگيرم!
    پس يعني منتظر آموزش هستيم!

صفحه 1 از 2 12 آخرآخر

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •