ورود

View Full Version : مشکل با فوت تعریفی



h00manb
جمعه 13 اسفند 1389, 09:30 صبح
سلام
برانامه ای درست کرده ام که در آن با استفاده از دستورات زیر برای تعریف فونت لیستی تعریف کرده ام
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
fontOffset := glGenLists (teedade_horofe_taerif_shode);
for i := 0 to teedade_horofe_taerif_shode-1 do
begin
glNewList(i, GL_COMPILE);
glBitmap(16,arze_horoof-3,0.0,0.0,0.0,0.0,@tarife_horoof[i,3]); Display list
glEndList();
end;
سپس طبق دستوراتی که نوشته ام با glCallList حروف را فراخوانی می کنم
اما به طور اتفاقی به مشکلی برخورد کرد
وقتی از دستور زیر یرای رسم مثلث قبل از فونت تعریفی استفاده می کنم دو حالت بوجود می آید
glColor3f(1, 0, 0.5);
glBegin(GL_TRIANGLES);
glVertex2f(0,0);
glVertex2f(1,0);
glVertex2f(1,1);
glEnd();
1 اگر glVertex2f ها مضربی از 3 باشند همه چیز درست است و نمایش درست انجام می شود
2 اگر glVertex2f ها مضرب 3 نباشند فقط مثلث ها نمایش داده می شود و نوشته ها نمایش داده نمی شود
با glget خطا را پیدا کردم که error 1281 (Invalid value) بود

حالا سوال من این است که چطور می توانم این مشکل را برطرف کنم
متشکر

h00manb
جمعه 13 اسفند 1389, 19:10 عصر
اساتید کمک کنند

h00manb
شنبه 14 اسفند 1389, 11:15 صبح
برای اینکه با برنامه ام (که در واقع فارسی نویسی در opengl است) بیشتر آشنا بشوید یک نمونه از برنامه ام را می گذارم ببینید
نظر فراموش نشود67099

سپول
یک شنبه 15 اسفند 1389, 13:36 عصر
من برنامه رو دیدم، درست کار می کنه فقط مشکلش سرعت پایین هست
چند خط متن حدود 50fps روی کامپیوتر من می ده که خیلی کند هست.
کدی که گذاشتی نا معلوم هست و فقط نشون می ده برای کشیدن از روش ، glVertex و ... استفاده می کنی ، که روش کندی هست.
از چه متدی برای فونت استفاده می کنی ؟ bitmap font ؟ یا روش دیگه ؟

h00manb
یک شنبه 15 اسفند 1389, 17:25 عصر
از glBitmap استفاده کردم و حروف را براش تعریف کردم
برنامه سرعت خوبی دارد اما من کاری کردم که حدود 64 فریم بر ثانیه کار کند(اگر cpu درگیر کار دیگری باشد مسلما کاهش پیدا می کند)
دو تا سوال هم دارم
1 مگر به غیر از glVertex با چیز دیگری هم می توان سطوخ را رسم کرد
2 چرا وقتی از GL_TRIANGLES استفاده می شود اگر glVertex ها مضرب 3 نباشند برنامه به هم می ریزد و راه حل چیست

kochol
دوشنبه 16 اسفند 1389, 00:29 صبح
سلام
من فقط جواب سوال اولت رو می دونم
به جای glVertex که خیلی کنده باید از VBO استفاده کنی

سپول
دوشنبه 16 اسفند 1389, 13:42 عصر
چرا وقتی از GL_TRIANGLES استفاده می شود اگر glVertex ها مضرب 3 نباشند برنامه به هم می ریزد و راه حل چیست
جواب این سوال هم من opengl کار نیستم ولی کارت تابلو هست یه جورایی. اگه triangle داری می کشی، هر مثلث سه تا vertex داره، برای همین باید مضرب سه باشه دیگه

عجیب نیست چرا اینقدر سرعت برنامه ات کند هست چون از تمام روش های کند داری استفاده می کنی
به علاوه glVertex ، حتی glBitmap هم فکر کنم اشتباه هست و بسیار کند هست، باید تکسچر درست کنی و اطلاعات bitmap رو درون تکسچر بریزی