ورود

View Full Version : سوال: منظور از ریاضیات توی گیم انجین چیه؟



1485159
سه شنبه 18 آبان 1389, 22:19 عصر
سلام
من نیفهمم که منظور از ریاضیات توی گیم انجین چیه؟؟ چه کار بردی داره؟ sse چیه؟ و...
ممنون میشم توضیح بدین.

pswin.pooya
سه شنبه 18 آبان 1389, 23:17 عصر
خب این که کاملا معلومه.
شما باید کلاسهایی رو مثل ماتریس، بردارها و Quaternion ها و موارد دیگه رو ایجاد کنید تا از اونها در محاسبات گرافیکی و بقیه محاسبات (مثلا فیزیکی) استفاده بکنید.

SSE:
یه سرچ گوگل براش کافی بود. SSE یک مجموعه دستور (instruction set) هست که توسط اینتل برای اولین بار معرفی شد که باعث میشه یکسری از عملیات ریاضی رو به صورت موازی انجام بدین. مثلا توی حالت معمولی برای جمع دو بردار چهار بعدی احتیاج به چهار سیکل ماشین دارین اما شما با SSE 2 اینکار رو میتونین توی یک سیکل انجام بدین. (یعنی سرعت چهار برابر شد.) البته قضیه به این راحتی ها هم نیستش و باید عملیاتی رو که انجام میدین ارزش بارکردن ریجیسترهای SSE رو داشته باشه. معمولا فقط برای عملیاتهای ضرب به خصوص ضرب ماتریسی ازش استفاده میشه. من توی انجینم این مورد رو پیاده سازی کردم که باعث شد سرعت محاسباتم تقریبا دو برابر افزایش پیدا کنه. یه پیاده سازی خوب میتونه سرعت رو از این هم بالاتر ببره اما مشکلات خاص خودش رو هم توی کدینگ به وجود میاره.

Man Of IT
چهارشنبه 19 آبان 1389, 01:13 صبح
سلام دوست عزیز
باید بگم که مباحثی مثل بردار ها و ماتریس ها تو بحث های گرافیکی از اهمیت زیادی برخوردار هستن
حتی یه سری مباحث و قوانین فیزیکی مثل سرعت و دینامیک هم تو ساخت گیم انجین کاربرد دارن
اگه با اپن جی ال یا دایرکت اکس کار کرده باشین این مفهوم هارو براحتی میتونین تو گرافیک ببینین
موفق باشین

1485159
چهارشنبه 19 آبان 1389, 06:02 صبح
خب این که کاملا معلومه.
شما باید کلاسهایی رو مثل ماتریس، بردارها و Quaternion ها و موارد دیگه رو ایجاد کنید تا از اونها در محاسبات گرافیکیپس توابع ماتریسی خود opengl چی میشه؟

SSE:
یه سرچ گوگل براش کافی بود. SSE یک مجموعه دستور (instruction set) هست که توسط اینتل برای اولین بار معرفی شد که باعث میشه یکسری از عملیات ریاضی رو به صورت موازی انجام بدین. مثلا توی حالت معمولی برای جمع دو بردار چهار بعدی احتیاج به چهار سیکل ماشین دارین اما شما با SSE 2 اینکار رو میتونین توی یک سیکل انجام بدین. (یعنی سرعت چهار برابر شد.) البته قضیه به این راحتی ها هم نیستش و باید عملیاتی رو که انجام میدین ارزش بارکردن ریجیسترهای SSE رو داشته باشه. معمولا فقط برای عملیاتهای ضرب به خصوص ضرب ماتریسی ازش استفاده میشه. من توی انجینم این مورد رو پیاده سازی کردم که باعث شد سرعت محاسباتم تقریبا دو برابر افزایش پیدا کنه. یه پیاده سازی خوب میتونه سرعت رو از این هم بالاتر ببره اما مشکلات خاص خودش رو هم توی کدینگ به وجود میاره.فکر نیمکنم که برای یک انجین 2 بعدی لازم باشه؟ یا لازمه؟

باید بگم که مباحثی مثل بردار ها و ماتریس ها تو بحث های گرافیکی از اهمیت زیادی برخوردار هستنپس توابع opengl چی میشه؟
======
در کل میشه یه منبع معرفی کنید؟ و اینکه آیا برای یک انجین 2 بعدی باید این کار ها رو انجام بدم؟