View Full Version : glTranslatef
kia.celever
سه شنبه 05 بهمن 1389, 19:20 عصر
سلام به همگی!
این تابع glTranslatef چه طوری کار میکنه؟:متفکر:
من هر عددی بهش میدم صفحه سیاه میشه؟!
kochol
سه شنبه 05 بهمن 1389, 22:54 عصر
سلام
فکر کنم اگه کد بیشتری اینجا بذاری راحت تر بشه کمکت کرد مثلا کد قسمت دوربین و رسم رو بذار
pswin.pooya
سه شنبه 05 بهمن 1389, 23:15 عصر
میتونه چند تا مشکل داشته باشه.
1. بدون باز گذاری ماتریس همانی ازش استفاده کرده باشین (glLoadIdentity)
2. بدون ساخا ماتریس پروجکشن ازش استفاده کرده باشین (تو این حال برای z کار نمی کنه)
3. عددهای که داده باشین خیلی بزرگ باشن
4. مرتبا ماتریس رو توی ماتریس قبلیش ضرب کرده باشین (بدون استفاده از ماتریس همانی یا glPush و glPop در بدنه اصلی تابع رندر)
kia.celever
چهارشنبه 06 بهمن 1389, 13:27 عصر
مرسی از راهنماییتون. اما فکر میکنم مشکلم ساخت ماتریس پروجکشن باشه. چون وقتی عددهام رو کوچیک میکنم برای x و y جواب میده ولی هر عددی برای آرگومان z میدم هیچی نمی کشه!
ماتریس پروجکشن چی کار میکنه و اصلا چه طوری میشه ساختش ؟
pswin.pooya
چهارشنبه 06 بهمن 1389, 19:48 عصر
ماتریس پروجکشن یه هرم ناقص رو میسازه که برای دید perpective ازش استفاده میشه داخل OpenGL هم میتونی ماتریس پروجکشن رو به صورت دستی و هم با استفاده از دستور gluPerspective بسازی. اگر از این ماتریس استفاده نکنی عمق بر روی شکلها تاثیری نمی ذاره و در حقیقت شکلی که 100 متر عقبتر هست با شکلی که توی یک متری دوربین هست به یک اندازه دیده میشه ( اصطلاحا orthographic)
مقاله زیر در مورد محاسبه به صورت دستی (ریاضیات کامل) توضیح میده:
http://www.songho.ca/opengl/gl_projectionmatrix.html
و صفحه زیر هم در مورد دستور gluPerspective که کارها رو ساده تر کرده:
http://www.opengl.org/sdk/docs/man/xhtml/gluPerspective.xml
توی بازیهای کامپیوتری و برنامه های پیچیده بنا به دلایل زیادی خودت باید این ماتریس رو بسازی اما برای افراد مبتدی دستور gluPerspective توصیه میشه. مقاله زیر هم نحوه ساخت یه برنامه ساده OpenGL رو که این دستور توش استفاده شده رو نشون میده:
http://gpwiki.org/index.php/OpenGL:Tutorials:Tutorial_Framework:First_Polygon
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.