PDA

View Full Version : سوال: افت فریم و لرزش بیش از حد



orache
سه شنبه 03 اردیبهشت 1392, 13:32 عصر
سلام من وقتی تو opengl یک برنامه میسازم و یک چیز حرکتی توش باشه یک خورده افت فریم داشت البته تو 2 بعدی تو 3 بعدی دیگه اصلان نمیشه تحملش کرد
برای مثال الان یک کد ساده نوشتم وقتی صفحه اپدیت میشه مدل لرزش داره و همینطور افت فریم و پرش صفحه چیکار باید بکنم راستی یک زمان هم براش گذاشتم ولی باز هم عمل نکرد
ممنون

#include <freeglut.h>
int time = 100;
void deltatime()
{
while (time > 0 )
{
time -= 0.01 ;
}
if (time <= 0 )
{
glutPostRedisplay();
time = 100 ;
}
}
void init()
{
glOrtho(100,100,100,100,100,100);
}
void display()
{
glClear(GL_COLOR_BUFFER_BIT);
glClearColor(0,0,0,0);
glColor3f(1.0,0.0,0.0);
glRotatef(1,1,1,1);
//glutPostRedisplay();
deltatime();
glutSolidSphere(1,50,50);
glFlush();
}
int main(int argc,char **argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
glutInitWindowSize(500,500);
glutInitWindowPosition(200,200);
glutCreateWindow("orache");
init();
deltatime();
glutDisplayFunc(display);
glutMainLoop();
return 0;
}

orache
چهارشنبه 04 اردیبهشت 1392, 22:57 عصر
جواب نمیدین ؟؟
راستی از swapbuffers هم استفاده کردم ولی نشد فقط میخام بدونم این پرش برای چیه تو مقاله ها ازش حرف زده شده ولی نگفته چجوری رفعش کنیم تو انجین 3d game studio یک باگی که داشت این بود اگه بازی رو میساختی همین مشکل براش پیش میومد یعنی صفحه میلرزید و پرش داشت وما باید تو تابع main دو تا چیز مینوشتیم fps_mode = 120 یا یه چیزی تو مایه های این و دیگری یک شرط بود که در صورت crash شدن (باگ در بازی ) wait(1) مینوشتیم که سیستم 1 میلی ثانیه صبر کنه
.
حالا من با opengl هرکاری که تونستم کردم ولی درست نشد
کمک کنید

God of War 2
جمعه 06 اردیبهشت 1392, 12:21 عصر
سلام.
من کدتونو تست نکردم ولی از نوشته هاتون حدسی که میزنم اینه که نرخ نمایش فریمها از نرخ نمایش مانیتور شما بیشتر هست و مانیتور در این شرایط تصاویر رو بصورت پاره شده و با پرش نمایش میده.

orache
جمعه 06 اردیبهشت 1392, 16:27 عصر
یعنی الان چیکار کنم نمیفهمم مانیتور خراب شده یا برنامه ایراد داره اگه میشه یک راه بگین
ممنون (مانیتور lcd و 20 اینچ سامسونگ یه کمی قدیمیه )

God of War 2
شنبه 07 اردیبهشت 1392, 15:39 عصر
مانیتورتون سالم هست. ساده ترین راه برای رفع این مشکل فعال کردن vsync میباشد.

orache
شنبه 07 اردیبهشت 1392, 19:30 عصر
بابا یه جواب دقیق بده بگو چیکار کنم وی سینک چیه

God of War 2
شنبه 07 اردیبهشت 1392, 20:26 عصر
یک نگاه به لینک زیر بنداز. احتمالا مشکلت حل میشه:
http://www.opengl.org/discussion_boards/showthread.php/173017-Vsync-with-glut