ورود

View Full Version : Vertex Arrays and Vertex Buffer Objects



mohamad1370
یک شنبه 04 فروردین 1392, 23:13 عصر
یکی در مورد این دوتا توضیح میده چیه و کاربردشون چی هست؟و هرکدوم کجاها استفاده میشن

UfnCod3r
یک شنبه 04 فروردین 1392, 23:40 عصر
Vertex که همون راس های مدل هست .
مثلا یه مکعب 4 تا راس می تونه داشته باشه .
http://t3.gstatic.com/images?q=tbn:ANd9GcRQzUgGCHEBf0AcsIYpmGFN_ReWBM2TG FXnWPUJ_ICi835hm9kB
VBO هم از اسمش معلومه یکم . مجموعه ای از راس ها هست که تو حافظه گرافیک لود میشه و هر دفعه دمه دسته گرافیکه و سریع رندرش میشه .

mohamad1370
سه شنبه 13 فروردین 1392, 14:19 عصر
ممنون
خب ممولاً وقتی یه نفر سوالاتی از این دست می پرسه با مفاهیم ابتدایی اشنایی داره من بیشتر می خوام کاربرد و تفاوت این دوتا رو بدونم واینکه مثلاْ تووی محیط های Realtime بیشتر کاربرد رو داره و یا توی مدلسازی مثلاً نرم افزارهایی مثل بلندر از این تکنیکها استفاده میشه

mohamad1370
شنبه 17 فروردین 1392, 00:37 صبح
کسی نبود یه جواب درست و حسابی به ما بده

pswin.pooya
یک شنبه 18 فروردین 1392, 22:50 عصر
اینا بیشتر توی گرافیک بلادرنگ مطرح هستن تا انواع دیگه. بافر ورتکس اطلاعات ورتکس های شکل و خواص اونها رو نگه میداره و بافر اندیس اندیس هایی رو به اون ورتکس ها رو نگه داری میکنه. مثلا برای یه مربع (اگر بخوایم با مثلث رسمش کنیم ) بدون بافر اندیس به 6 تا ورتکس نیاز داریم ( دو تا مثلث) اما دو تا از ورتکسها برای هر دو مثلث یکسان هستند. بنابراین می تونیم بخای تکرار ورتکسها اونها رو اندیس بدیم و با اندیس رسمشون کنیم.
البته این موضوع مزایای زیاد دیگه رو از جمله سرعت و قابلیت دینامیک کردن به شکل راحتر رو داره و .... توی سطوح بالاتر می تونید VBO های بزرگتر بسازید مثلا تمام اشیاء درون یک اتاق، سالن و یا محوطه بزرگ رو داخل یه بافر ورتکس بریزی و بعد اونها رو با اندیسهای متفاوت بصورت جداگانه رسم کنی. البته انواع جدید تر بافرها مثل VAO هم وجود داره. که توی ویرایشهای 3 به بعد مطرح شدن ( کارتهای گرافیکی Geforce 800 به بعد شرکت nvidia)

mohamad1370
شنبه 24 فروردین 1392, 16:10 عصر
اینجوری که شما می گید برای رسم هر شی اگه از این روش استفاده کنیم خیلی خیلی بهتره چرا که تووی منابع صرفه جویی میشه حالا می خواد سیستم های بلادرنگ مثل بازی باشه یا یه موتور رندر نرم افزار طراحی سه بعدی.فکر نکنم فقط محدود به سیستم های بلادرنگ بشه چون تووی نرم افزارهای مدل سازی همون دید view خودش کلی از منابع سیستم رو می گیره البته اونم به نوعی خودش یه موتور بلادرنگ می تونه محسوب بشه.
تفاوت این دوتا چیه ؟

pswin.pooya
یک شنبه 25 فروردین 1392, 11:07 صبح
خیلی از وضعیت های VAO رو خود OpenGL کنترل میکنه (مثل بایند کردن IBO) اما VBO رو خودتون باید کنترل کنید. توی خیلی موارد VBO کنترل بیشتری بهتون میده. اما VAO چون کامند کمتری میخواد سریعتر عمل میکنه