گرافیک کامپیوتري تمرین شمارهي ۲ تاریخ تحویل ۲۲ :فروردین ۳۱۳۱ اهداف آشنایی با Modern OpenGL آشنایی با Model/View/Projection آشنایی با انیمیشن در OpenGL توضیح مقدماتی در این تمرین باید اتاق مربوط به تمرین قبل را تماماً با کمک ) Modern OpenGL (3.3+مجددا طراحی کنید ،حیاط ساده امّا نسبتاً بزرگی را براي آن طراحی کنید و آن را شبیه محیط یک بازي کنید. شرح تمرین در این تمرین باید فضاي یک اتاق کوچک و ساده را با کمک OpenGLطراحی کنید .ویژگیهاي اتاق به شرح زیر است: .۳ ویژگیهاي اتاق تماما همان ویژگیهاي اتاق تمرین قبل باشد ،به استثناي اینکه نیازي به قوري روي میز نیست. .۲ در و پنجره ها باید قابلیت باز شدن و بسته شدن داشته باشند .باز و بسته شدن باید داراي انیمیشن باشد. .۲.۳هنگامی که در فاصلهي مناسبی از در یا پنجره قرار میگیرید باید در یا پنجرهي مذکور تغییر رنگ دهد (کمی آبیتر یا سبزتر شود که بازیکن متوجه شود میتواند با در یا پنجره تعامل برقرار کند). .۲.۲بر روي صفحه عبارت ” “Press Enter to Openیا ” “Press Enter to Closeنمایش داده شود و بازیکن بتواند با فشرده کلید Enterدر یا پنجره را باز یا بسته کند. .۱ ۳ در این تمرین باید ن ماي دید اول شخص را پیاده سازي کنید. ۲ .۱.۳با حرکت Mouseبه چپ و راست نگاه بازیکن با سرعت مناسبی به چپ یا راست گردش کند. .۱.۲با حرکت Mouseبه باال و پایین نگاه بازیکن با سرعت مناسبی به باال و پایین گردش کند. .۱.۱با کلیدهاي W, A, S, Dبازیکن با سرعت راه رفتن عادي به ترتیب به سمت جلو ،چپ ،عقب ،پایین و راست حرکت کند. .۱.3با نگه داشتن کلید SHIFTسرعت بازیکن از راه رفتن به دویدن تبدیل شود. .۱.3با کلید SPACEبازیکن پرش انجام دهد .توجه داشته باشید که انیمیشن طبیعی پریدن را در نظر بگیرید ،به این صورت که هنگام جدا شدن از زمین سرعت زیاد ،با رسیدن به نفطه ي اوج صفر و هنگام پایین آمدن هم سرعت افزایش مییابد .پس براي پریدن از 1 یک تابع درجه دو (مانند دنیاي واقعی )∆𝑥 = 𝑔𝑡 2 + 𝑣0 𝑡 ،استفاده کنید. 2 .۱.3با نگه داشتن کلید CTRLبازیکن به حالت نشسته در آید (در حالت نشسته امکان راه رفتن وجود دارد ،مانند بسیاري از بازيها) ۳به راهنمایی انتهایی مراجعه کنید. ۲براي اطالعات بیشتر در مورد دید اول شخص به ) http://en.wikipedia.org/wiki/First-person_(video_gamesمراجعه کنید. گرافیک کامپیوتري تمرین شمارهي ۲ تاریخ تحویل ۲۲ :فروردین ۳۱۳۱ قسمت اختیاری و نمرهی اضافی موارد زیر اختیاري بوده و در تمرین شما نمرهي اضافی (حداکثر ۲۲درصد نمرهي کل) خواهد داشت: هنگامی که بازیکن وارد حیاط میشود تعدادي شئ (به شکل کره یا مکعب یا هر شکل دلخواه) به صورت تصادفی در محیط ظاهر شود و بازیکن با جمع آوري آنها امتیاز به دست آورد .هر شئ بعد از جمعآوري باید ناپدید گردد .مجموع امتیاز در گوشهي باال سمت راست تصویر و زمان در گوشه ي باال سمت چپ به صورت شمارش معکوس نمایش داده شود و هنگامی که زمان پایان مییابد بر اساس میزان امتیازي که بازیکن کسب کرده در مرکز تصویر به صورت بزرگ نتیجهي برد یا باخت بازیکن مشخص شود و بتوان بازي را دوباره شروع کرد. نکات مهم براي اشیائی که رسم میکنید تعداد مناسب Quadیا Triangleدر نظر بگیرید .براي مثال قسمت قابل رویت دیوارها را فقط با یک مستطیل رسم نکنید و مثلثبندي کنید .عدم رعایت این مورد موجب کسر نمره خواهد شد. درایور کارت گرافیک خود را به روز رسانی کنید تا هنگام اجراي کدها دچار مشکل نشوید. براي بارگذاري Shaderها میتوانید از فایلهاي GLSLShader.hو GLSLShader.hکه ضمیمه شدهاست استفاده کنید یا خودتان Shaderرا مدیریت کنید. میتوانید از دو فایل Shaderکه به تمرین ضمیمه شده به عنوان Shaderاستفاده کنید .به نام Attributeها و Uniforimها توجه داشته باشید. حتماً از سیستم RGBAبراي رنگها استفاده کنید. راهنمایی براي نمایش متن بر روي صفحه ،مانند قسمت ۲.۲یا بخش نمرهي اضافی کافیست عبارت OpenGL HUDرا جست و جو کنید و روشها و مثالهاي مختلفی را مشاهده کنید. براي نمایش انیمیشن و متن میتوانید از این منبع استفاده کنید: o http://faculty.ycp.edu/~dbabcock/PastCourses/cs370/labs/lab09.html در این تمرین تمامی چرخشها و انتقالها بر عهدهي شماست ،پس میتوانید از کتابخانهي GLMاستفاده کنید .براي آسانشدن کار میتوانید خودتان پشته ) (stackرا براي Model, View, Projectionجداگانه پیادهسازي کنید. براي یادگیري و دیدن مثالهاي Modern OpenGLمیتوانید از منابع زیر استفاده کنید: o Muhammad Mobeen Movania, OpenGL Development Cookbook, 2013, Pact Pub. این کتاب با عنوان book1.rarبا رمز عبور شماره درس در قسمت منابع قرار میگیرد. o o o http://duriansoftware.com/joe/An-intro-to-modern-OpenGL.-Table-of-Contents.html http://www.arcsynthesis.org/gltut http://www.opengl-tutorial.org تمرین شمارهي ۲ گرافیک کامپیوتري تاریخ تحویل ۲۲ :فروردین ۳۱۳۱ براي آشنایی بیشتر با زبان Shaderها )( (GLSLدر این تمرین تقریبا نیازي نیست ،اما در تمرینات بعدي نیاز خواهد شد) از کتاب زیر استفاده کنید: o David Wolff, OpenGL 4.0 Shading Language Cookbook, 2011, Pact Pub. این کتاب با عنوان book2.rarبا رمز عبور شماره درس در قسمت منابع قرار میگیرد. نحوهی ارسال تمرین تمرین را به صورت گروههاي دو نفره انجام دهید .در صورت داشتن هرگونه پرسشی در مورد تمرینها با ایمیل [email protected] تماس بگیرید. محتویات درون پوشهي پروژهي تمرینهاي خود را در یک فایل zipقرار دهید و به آدرس ایمیل [email protected]ارسال کنید. براي نامگذاري فایل و عنوان ایمیل از فرمت ( HW2_STDID1_STDID2براي مثال )HW2_88123456_89123456استفاده کنید. مهلت نهایی براي ارسال تمرین ساعت ۲۱:3۳روز جمعه ۲۲فروردین ماه میباشد. مقررات در انجام تمرینها اخالق آکادمیک را رعایت کنید. تمرینها را تا ساعت ۲۱:3۳روز اعالم شده ارسال کنید. در کل تمرینها میتوانید از مجموع ۲روز دیرکرد در ارسال استفاده کنید .پس از آن به ازاي هر روز دیرکرد ۳۲درصد از نمرهي تمرین را از دست میدهید. باید بر همهي قسمتهاي کد خود مخصوصاً قسمتهایی که از منابع دیگري استفاده کردید مسلط باشید. همهي تمرین ها داراي تحویل حضوري هستند ،بنابراین الزم است هر دو عضو گروه بر همهي قسمتهاي کد مسلط باشند.
© Copyright 2026 Paperzz