View Full Version : رسم چند وجهی سه بعدی با opengl
shecarchi
دوشنبه 26 دی 1390, 03:46 صبح
سلام دوستان .
اول بگم opengl بلد نیستم :لبخند:
من تعدادی نقطه ی سه بعدی دارم که دارای x,y,z هستند . این نقطه ها درون یک لیست قرار دارن . در واقع این نقطه ها از حل 3d convex hull بدست اومدن . حالا چجوری این نقطه ها رو بهم وصل کنم تا یه شکل سه بعدی بدست بیاد ؟:اشتباه: . ترجیها با کتابخانه ی opentk توضیح بدین .
shecarchi
دوشنبه 26 دی 1390, 13:07 عصر
من یه چیزی به ذهنم رسید اینکه با هر سه نقطه یک مثلث بکشم تا شکل نهایی حاصل بشه . شدنیه ؟ :متفکر:
pswin.pooya
دوشنبه 26 دی 1390, 15:41 عصر
از GL_POLYGON استفاده كن. بعد راسها رو بده. فقط دقت كن كه شكل بايد حتما محدب باشه.
shecarchi
دوشنبه 26 دی 1390, 17:02 عصر
حالا یه مشکل دیگه . وقتی راس ها زیاد میشه رنگ وجه ها بهم میریزه بی کیفیت میشه راهی داره که کیفیتشو از دست نده؟
pswin.pooya
دوشنبه 26 دی 1390, 19:20 عصر
يعني چطور؟ يه شكل ميزاري
shecarchi
سه شنبه 27 دی 1390, 01:31 صبح
بفرمایید:
http://up.iranshop4u.com/images/8tc0pzgiwa4tsl3esohf.jpg
pswin.pooya
سه شنبه 27 دی 1390, 18:19 عصر
خب این بخاطر اینه که به هر ورتکس داری یه رنگ جدا میدی. اگر از همون GL_POLUGON استفاده کنی مشکل حل میشه رنگ رو هم دقیقا با gl.color ست کن. در مورد اون لبه ها هم مشکل از بافر عمق هست. چون داری دو بعدی کار میکنی میتونی بافر عمق رو غیر فعال کنی
shecarchi
چهارشنبه 28 دی 1390, 00:16 صبح
DepthTest رو غیر فعال میکنم درست میشه ولی عمق تصوی از بین میره من میخوام تصویر عمق داشته باشه
pswin.pooya
چهارشنبه 28 دی 1390, 19:05 عصر
DepthTest رو غیر فعال میکنم درست میشه ولی عمق تصوی از بین میره من میخوام تصویر عمق داشته باشه
مگه تصويرت دو بعدي نيست؟! خب تست عمق رو براي چي ميخواي؟ ( اگر بيتهاي بافر عمق رو زياد كني مثلا 32 يه مقدار بهتر ميشه اما نه خيلي)
گفتم GL_POLYGON مشكلت رو به صورت كامل حل ميكنه.
kochol
پنج شنبه 29 دی 1390, 07:49 صبح
خوب این مشکلت برای اینه که چند تا مثلث دقیقا روی هم قرار می گیرند و gpu نمی دونه کدوم رو باید رسم کنه و اینطوری می شه به این مشکل می گن z fighting
یا یه کاری کن که مثلث ها روی هم نیافتند یا یه سری به depth bias بزن ببین می تونه کارت رو راه بندازه
shecarchi
پنج شنبه 29 دی 1390, 11:07 صبح
تصویر سه بعدی هستش تو پست اول هم گفته بودم . مشکل با disable کردن قابلیتهایی که enable شده بودن بعد از flush کردن حل شد . میشه این polygon رو بیشتر توضیح بدین من هرکار کردم تصویر درستی نمیشه باهاش کشید . برای مثال لطف کنین یه شکل سه بعدی با polygon بکشین :
http://up.iranshop4u.com/images/m1e77oegmhs87f7kqau3.png
pswin.pooya
پنج شنبه 29 دی 1390, 19:51 عصر
ورتكسها در خلاف حركت عقربهاي ساعت به ترتيب وارد كنيد. شكل بايد محدب باشه
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.