PDA

View Full Version : سوال: کتابخونه سه بعدی



mohammadali1375
شنبه 09 فروردین 1393, 01:18 صبح
سلام.
ببخشید من دنبایل یه کتابخونه 3 بعدی میگردم که فقط محاسبه کنه :متفکر:
یعنی رابط بین کارت گرافیک نمیخام. میخام مثلا مختصات های سه بعدی بهش بدم بعد مختصات دوربین رو هم داشته باشه بعد بگه نقاط باید روی صفحه دو بعدی به کجا ها رسم بشه. نمیدونم تونستم درست بیان کنم یا نه

orache
شنبه 09 فروردین 1393, 02:19 صبح
علیک
ببین این چیزایی که گفتی یعنی دوربین محاسبات 3 بعدی و مختصات همشون رو تو یک کتابخونه نمیذارن احتمالا باید دنبال 3 - 4 تا کتابخونه بگردی و فکر نکنم کتابخونه ی کامل برای دوربین وجود داشته باشه البته من یادمه یکی برای اپن جی ال پیدا کردم و کارمو راه انداخته بود ولی اگر خواستی بگو سوال کنم
این یک کتابخونه هست نمیدونم تاحالا باهاش کار کردی یا نه خوبه بازیباز یه چیزی شبیه به این ساخته بود (bazebaz in promakers) به این خوبی نبود ولی قابلیت های اینو داشت با این کتابخونه راحت میشه عملیات روی مختصات های 3 بعدی کواترنیون پلن و ماتریس ها رو انجام داد ببین بدردت میخوره
http://sourceforge.net/projects/mathlib3d/

mohammadali1375
شنبه 09 فروردین 1393, 11:40 صبح
کلا یه کتابخونه کامل میخام که خودش رسم نکنه. اطلاعات رو بده ما خودمون رسم کنیم :متفکر: یعنی فقط و فقط و فقط محاسبات داشته باشه.این که دادی انگار بد نیست ولی دوربین نداره.

pswin.pooya
یک شنبه 10 فروردین 1393, 19:11 عصر
بهتره خودتون مواردی رو که گفتید رو بنویسید. با ابن حال می تونید از glm استفاده کنید

mohammadali1375
دوشنبه 11 فروردین 1393, 01:36 صبح
مشکل اصلی دوربینه :متفکر: چجوری باید دوربین نوشت :متفکر:

orache
دوشنبه 11 فروردین 1393, 17:29 عصر
ببین فکر نمیکنم یک کتابخونه ی کامل برای دوربین وجود داشته باشه مثل انجین ogre3d ولی این سایتو ببین قبلا ازش دانلود کرده بودم باهاش میشه دوربین انجینو ساخت + دوربین بازی اول شخص شوتر http://www.codecolony.de
برو تو قسمت پایین سایت نوشته advance camera اونو دانلود کن ببین چطوره میتونی یه کتابخونه ی کوچیک برای خودت هم بسازی اگر پیدا کردم خبر میکنم ولی چشم اب نمیخوره
منم خیلی نیاز داشتم به چنین کتابخونه ای ولی نیست

pswin.pooya
دوشنبه 11 فروردین 1393, 21:41 عصر
مشکل اصلی دوربینه :متفکر: چجوری باید دوربین نوشت :متفکر:




ببین. فقط باید مطالعه کنی. برنامه نویسی بازی. برنامه نویسی سی شارپ و اینا نیست که دنبال کامپوننت آماده باشی. باید حتما با اصول هم آشنا باشی. برای آشنایی با اصول هم باید مطالعه کرد.

orache
سه شنبه 12 فروردین 1393, 00:58 صبح
پویا جان دوربین پدر ادمو در میاره خیلی سخته برای همین اکثر شرکت های بازی سازی یک پروژه ی اماده از دوربین میدن امکان نداره انجینی پیدا کنین که پروژه ی دوربین نداشته باشه من که به شخصه 1 دونه سینوس وارد کد شه قاط میزنم حالا تو اموزش دایرکت ایکس برای دوربین یارو میاد 10 بار از عدد پی هم استفاده میکنه واقعا برای کسی مثل من سخته برای همین باید یک کتابخونه ای باشه

pswin.pooya
سه شنبه 12 فروردین 1393, 20:35 عصر
پویا جان دوربین پدر ادمو در میاره خیلی سخته
متاسفانه کلیه مفاهیم ریاضی گرافیک سخته و برای درک درست اونها باید درست و حسابی مطالعه کرد. مثلا خیلی از نحوه ساخت ماتریس پروجکشن رو می دونن اما واقعا شاید ۹۰ درصد برنامه نویسهای گرافیک ریشه هایی که این ماتریس از اونها به وجود اومده رو ندونن. به نظر من همین قدر که ماتریسهای معروف و نحوه عملکرد اونها رو بدونید کافیه و توی ۹۰ درصد از موارد جواب میده. لازم نیست دیگه خیلی ریز بشید.

و اما در مورد دوربین:
یکی از بهترین کتابهایی که تا حالا دیدم کتاب Introduction to 3D Game Programming with DirectX 9.0 است که در فصل 12 نحوه ساخت یک کلاس دروبین رو شرح میده.

فصل دوم کتاب OpenGL Development Cookbook هم در مورد دوربینها و ... است که دو مدل دوربین target و free به کمک کتابخونه glm پیاده سازی میکنه. که میتونه برای OpenGL کارها مفید باشه.

البته من خودم کتاب Introduction to 3D Game Programming with DirectX 9.0 رو پیشنهاد میکنم چون باعث میشه دید بهتری نسبت به خیلی از مساپل پیدا کنید. حتی اگر OpenGL کار هم باشید سعی کنید این کتاب رو حتما بخونید. ( این کناب برای دایرکت ایکس ۱۰ و ۱۱ و همینطور یک ویرایش shader approch برای دایرکت ایکس ۹ منتشر شده. )

Ananas
یک شنبه 16 شهریور 1393, 00:58 صبح
سلام.
تاپیک برای چند ماهه قبله ولی اگه هنوزم سوال هست بپرسید. من با ماتریس ها تو Direct3D کد های دوربینمو مینویسم. با توابع d3dx. تا جایی که بدونم خدمتتون هستم.
برای دوربین ماتریس 4 در 4 تعریف میکنیم که موقعیت و چرخش رو با اون کنترل میکنیم و یک ماتریس برای پروجکشن که با استفاده از اونها مختصات سه بعدی رو تبدیل میکنیم به مختصات دو بعدی بر رو صفحه x,y.
انشاالله فرصت کنم آموزش میگذارم تو این قسمت.
یک کتابخونه برای محاسبات بردارها و ماتریس ها هم نوشتم که سرعت بالایی نداره ولی با اشاره گر به float کار میکنه که تکمیل بشه میذارم برای دانلود. مثلا توابعش به این شکل هستن:

#define FM3D_F32 float

FM3D_F32 FM3DVec3Distance_f32(
const FM3D_F32 * pV1,
const FM3D_F32 * pV2)
{
FM3D_F32 x = pV1[0] - pV2[0];
FM3D_F32 y = pV1[1] - pV2[1];
FM3D_F32 z = pV1[2] - pV2[2];
return sqrt(x * x + y * y + z * z);
};

مستقل از کتابخونه های خاص. و چون با اشاره گر به float هست لازم نیست struct یا class خاصی برای بردار ها و ماتریس ها تعریف کنید. بردرها میتونن آرایه ای از float باشن.