HW 01.pdf

‫تمرین شمارهي ‪۱‬‬
‫گرافیک کامپیوتري‬
‫تاریخ تحویل‪ ۰۲ :‬اسفند‬
‫توضیح مقدماتی‬
‫شما در این سري تمرینها یک اتاق ساده را با کمک ‪ OpenGL‬شبیهسازي خواهید کرد و در طول ترم در تمرینهاي مختلف آن را از لحاظ‬
‫بصري بهبود میبخشید تا در پایان یک صحنهي شبیهسازي شده با کیفیت قابل قبول داشته باشید‪ .‬بنابرین دقت داشته باشید که تمرینها در‬
‫امتداد هم هستند و عدم انجام یک تمرین موجب ایجاد مشکل در تمرینهاي بعدي خواهد شد‪ .‬در این تمرینها مختارید که از ویژگیهاي‬
‫‪ Modern OpenGL‬و یا ‪ Ancient OpenGL‬استفاده کنید‪ .‬ترجیح بر ‪ Modern OpenGL‬و ورژن ‪ ۳.۳‬است‪.‬‬
‫حداکثر مهلت ارسال این تمرین روز سهشنبه ‪ ۰۲‬اسفند است‪.‬‬
‫شرح تمرین‬
‫در این تمرین باید فضاي یک اتاق کوچک و ساده را با کمک ‪ OpenGL‬طراحی کنید‪ .‬ویژگیهاي اتاق به شرح زیر است‪:‬‬
‫‪‬‬
‫اتاق به شکل یک مکعب مستطیل (چهار دیوار‪ ،‬کف و سقف) است‪.‬‬
‫‪‬‬
‫براي دیوارهاي اتاق ضخامت در نظر بگیرید (یعنی صرفا یک صفحهي ساده نباشد تا در و پنجرهي تعبیه شده در آن طبیعیتر به نظر‬
‫برسد)‬
‫‪‬‬
‫درون اتاق یک در ساده وجود دارد‪ .‬در‪ ،‬یک مکعب مستطیل ساده‪ ،‬داراي چارچوب و یک دستگیرهي ساده است‪ .‬براي سادگی میتوانید‬
‫از یک کره به عنوان دستگیره استفاده کنید‪ .‬براي رنگآمیزي در‪ ،‬چارچوب و دستگیره از رنگهاي متمایز استفاده کنید‪ .‬براي در هم‬
‫ضخامت مناسب در نظر بگیرید‪.‬‬
‫‪‬‬
‫اتاق داراي یک پنجرهي ساده است‪ .‬براي پنجره نیز مانند در ضخامت در نظر بگیرید‪ .‬در طراحی پنجرهي مورد نظر خود قسمتی براي‬
‫شیشه در نظر بگیرید و در این تمرین شیشه را میتوانید با رنگ آبی روشن نشان دهید‪ .‬در تمرینهاي پیش رو جلوهي شیشه را اضافه‬
‫خواهیم کرد‪.‬‬
‫‪‬‬
‫بر روي دیوار یکی از اتاق ها یک ساعت با طراحی دلخواه قرار دهید‪ .‬ساعت مورد نظر باید داراي عقربهي دقیقهشمار و ساعتشمار‬
‫باشد و عقربهها حرکت داشتهباشند (الزم نیست سرعت حرکت عقربهها با واقعیت منطبق باشد‪ ،‬مثال هر چند ثانیه‪ ،‬دقیقهشمار ‪۵‬‬
‫دقیقه گردش کند)‪ .‬راس ساعت ‪ ۱۰‬ساعت شما به صورت صوتی (بوق‪ ،‬کوکو‪ ،‬زنگ ساعت یا ‪ )...‬واکنش نشان میدهد‪ .‬با استفاده از‬
‫کلید ’‪ ‘c‬کیبورد باید بتوان به صورت دستی دقیقهشمار را ‪ ۵‬دقیقه جلو برد تا بتوان مورد گفته شده در بند باالیی را آزمایش کرد‪.‬‬
‫‪‬‬
‫یک میز ساده در مرکز اتاق قرار دهید‪ .‬میز شما میتواند یک میز ساده به شکل مستطیل‪ ،‬دایره یا بیضی با تعداد دلخواه پایه باشد‪.‬‬
‫توجه کنید که براي رویه و پایههاي میز ضخامت در نظر بگیرید‪ ،‬براي مثال صرفا از یک صفحه براي نمایش رویهي میز استفاده نکنید‪.‬‬
‫یک قوري روي میز قرار دهید‪.‬‬
‫قسمت اختیاری و نمرهی اضافی‬
‫موارد زیر در تمرین شما نمرهي اضافی به همراه خواهد داشت‪:‬‬
‫‪‬‬
‫استفاده از ‪ Modern OpenGL‬در رسم اشیاء یا تبدیالت خطی‬
‫‪‬‬
‫اضافه کردن هرگونه وسیلهي مناسب دیگر به اتاق (صندلی به دور میز‪ ،‬وسایل روي میز‪ ،‬شومینه و ‪)...‬‬
‫تمرین شمارهي ‪۱‬‬
‫‪‬‬
‫تاریخ تحویل‪ ۰۲ :‬اسفند‬
‫گرافیک کامپیوتري‬
‫‪ Reusability‬در کد؛ براي مثال شما براي رسم اتاق به رسم تعداد زیادي صفحه ي مستطیلی نیاز دارید‪ .‬به جاي اینکه هر بار با‬
‫کمک مثلث ها از ابتدا مستطیل را بکشید کافیست تابعی تعریف کنید که با گرفتن رنگ‪ ،‬ابعاد مستطیل و تعداد مثلثهاي الزم یک‬
‫مستطیل براي شما رسم کند و هر بار تنها این تابع را فراخوانی کنید‪.‬‬
‫نقشهی پیشنهادی اتاق‬
‫پنجره‬
‫در‬
‫ساعت‬
‫میز‬
‫دوربین‬
‫نکات مهم‬
‫‪‬‬
‫براي اشیائی که رسم میکنید تعداد مناسب ‪ Quad‬یا ‪ Triangle‬در نظر بگیرید‪ .‬براي مثال قسمت قابل رویت دیوارها را فقط با یک‬
‫مستطیل رسم نکنید و مثلثبندي کنید‪ .‬از زیاد شدن تعداد مثلثها نترسید‪ ،‬اما زیادهروي هم نکنید ! ‪:‬چشمک‬
‫‪‬‬
‫از آنجایی که فعال نورپردازي نداریم‪ ،‬از رنگهاي مناسب براي رنگآمیزي فضا استفاده کنید‪ .‬براي مثال دو دیوار مجاور را با یک رنگ‬
‫رنگآمیزي نکنید تا قابل تفکیک باشند‪.‬‬
‫‪‬‬
‫حتما از سیستم ‪ RGBA‬براي رنگها استفاده کنید‪.‬‬
‫‪‬‬
‫یادگیريِ نصب و راهاندازي یک پروژهي ‪ OpenGL‬را همین امروز شروع کنید تا در روزهاي انتهایی به مشکل برنخورید‪.‬‬
‫‪‬‬
‫در این تمرین دوربین شما در صحنه ثابت است‪ ،‬بنابراین دوربین را در مکان مناسبی قرار دهید که میز‪ ،‬ساعت‪ ،‬در و پنجره قابل رویت‬
‫باشد‪.‬‬
‫‪‬‬
‫ابعاد اتاق را به دلخواه خود انتخاب کنید‪.‬‬
‫تمرین شمارهي ‪۱‬‬
‫گرافیک کامپیوتري‬
‫تاریخ تحویل‪ ۰۲ :‬اسفند‬
‫نحوهی ارسال تمرین‬
‫تمرین را به صورت گروههاي دو نفره انجام دهید‪ .‬در صورت داشتن هرگونه پرسشی در مورد تمرینها و یا راهاندازي ‪ OpenGL‬با ایمیل‬
‫‪ ce447.922@gmail.com‬تماس بگیرید‪.‬‬
‫محتویات درون پوشهي پروژهي تمرینهاي خود را در یک فایل ‪ zip‬قرار دهید و به آدرس ایمیل ‪ ce447.922@gmail.com‬ارسال کنید‪.‬‬
‫براي نامگذاري فایل و عنوان ایمیل از فرمت ‪( HW1_STDID1_STDID2‬براي مثال ‪ )HW1_88123456_89123456‬استفاده کنید‪.‬‬
‫مقررات‬
‫‪‬‬
‫در انجام تمرینها اخالق آکادمیک را رعایت کنید‪.‬‬
‫‪‬‬
‫تمرینها را تا ساعت ‪ ۰۳:۵۲‬روز اعالم شده ارسال کنید‪.‬‬
‫‪‬‬
‫در کل تمرینها میتوانید از مجموع ‪ ۰‬روز دیرکرد در ارسال استفاده کنید‪ .‬پس از آن به ازاي هر روز دیرکرد ‪ ۱۲‬درصد از نمرهي‬
‫تمرین را از دست میدهید‪.‬‬
‫‪‬‬
‫همهي تمرینها داراي تحویل حضوري هستند‪ ،‬بنابراین الزم است هر دو عضو گروه بر همهي قسمتهاي کد مسلط باشند‪.‬‬