گرافیک کامپیوتری

Computer Graphics

مقطع: کارشناسی گرایش: هوش مصنوعی
نوع درس: نظری تعداد واحد: ۳
پیش‌نیاز: – هم‌نیاز: طراحی الگوریتم‌ها

هدف کلی

هدف این درس آشنا کردن دانشجویان با مفاهیم پایه‌ای گرافیک کامپیوتری است. تکیه‌ی اصلی درس بر روی گرافیک کامپیوتری سه بعدی، مفاهیم افکنش‌ها و تبدیل‌های سه بعدی، نور‌پردازی، رنگ‌آمیزی صحنه‌های گرافیکی و بازی‌های کامپیوتری با استفاده از نرم‌افزار OpenGL است. این نرم‌افزار در محیط زبان‌های برنامه‌نویسی سطح بالا مانند C, C++, Java قابل استفاده است. انتظار می‌رود که دانشجویان با یکی از این زبان‌ها آشنایی کامل داشته باشند و در طول ترم استفاده از OpenGL را نیز بی‌آموزند.

سرفصل‌ها

  • آشنایی با مفاهیم کلی و سخت‌افزار‌های گرافیکی
    • تبدیل‌های هندسی سه بعدی
    • تبدیل affine سه بعدی
  • نمایش سه بعدی اشیا
    • مفاهیم دید
    • مراحل تولید یک صحنه
    • سیستم مختصات
    • تبدیل‌های افکنش (Projection) پرسپکتیو، موازی و مایل
    • نمایش سه بعدی سطوح انحنادار و سطوح مثلث‌بندی شده
  • معرفی توابع و سطوح اسپلاین و کاربرد آن‌ها
    • توابع درجه ۳ و ۴ اسپلاین از جمله توابع بزییر، بی، بتا، نسبی
    • نمایش یک اسپلاین با استفاده از توابع اسپلاین دیگر
  • اشیاء حبابی شکل، نمایش محوری، روش‌های مبتنی بر اشکال خوش‌تعریف هندسی
    • درخت‌های هشت‌تایی
    • درخت‌های باینری تقسیم‌کننده فضای سه بعدی
  • روش‌های تشخیص سطوح قابل رویت
    • دسته‌بندی و معرفی الگوریتم‌ها و مقایسه آن‌ها
  • مدل محاسبه‌ی روشنایی فونگ، روش‌های نورپردازی و رنگ‌آمیزی (Rendering) سطوح
    • الگوریتم‌های سریع رندرینگ
    • اعمال بافت و جزییات بر سطوح
  • مدل‌های رنگ و کاربرد آن‌ها
  • نورپردازی کلی (Global illumination). سایه زن‌ها (Shaders)
  • معرفی هندسه فراکتالی برای ساخت اشیا و صحنه‌هایی که با هندسه اقلیدسی قابل توصیف نیستند
  • مصور سازی مجموعه‌ی داده‌ها
  • پویانمایی کامپیوتری
    • روش‌های سنتی ساخت پویانمایی
    • طراحی دنباله‌ی پویانمایی
    • توابع عمومی پویانمایی
    • سیستم قاب (frame) ‌های کلیدی
    • تعیین جابجایی و حرکت در سرعت‌های مختلف
    • محاسبه‌ی مسیر حرکت دوربین
  • روش‌های ضبط حرکت کل بدن و چهره (Motion Capture) و کاربرد آن‌ها در ساخت پویانمایی، فیلم و بازی
  • آشنایی با ساخت یک بازی کامپیوتری
    • معرفی عناصر اصلی شامل طراحی اشیا ثابت (پس زمینه) و اشیا متحرک، فیزیک
    • اعمال بافت بر روی اشیا
    • هوش مصنوعی، سناریو، نوع بازی و موزیک
    • معرفی موتور‌های بازی و امکانات آن‌ها
    • مدیریت ساخت بازی
    • تست مراحل مختلف تولید بازی و بازار فروش

ارزیابی پیشنهادی

  • آزمون‌های میان‌ترم و پایانی: ۶۰ درصد نمره
  • تمرین‌های برنامه‌سازی: ۴۰ درصد نمره

منابع پیشنهادی

  1. D. Hearn, P.Baker, and W. Carithers. Computer Graphics with OpenGL. 4th Edition, Prentice Hull, 2011.
  2. S. Marschner and P. Shirley. Fundamental of Computer Graphics. 5th Edition, CRC Press, 2021.
  3. E. Angel. OpenGL, A primer. 3rd Edition, Addison Wesley, 2008.
  4. J. F. Hughes, A. V. Dam, M. McGuire, D. F. Sklar, J. D. Foley, S. Feiner, and K. Akeley. Computer Graphics: Principles and Practice. 3rd Edition, Addison Wesley, 2013.
  5. G. Sellers. Vulkan Programming Guide: The Official Guide to Learning Vulkan. Addison Wesley, 2017