۳ مطلب در آبان ۱۳۹۵ ثبت شده است

سریعتر و سبکتر!

بعد از چند ماهی تجربه کار با رابط کاربری (UI) ادیتور به این نتیجه رسیدم که بخشهایی کمتر مورد استفاده قرار میگیرن و بخشهایی استفاده بیشتری دارند. بخاطر همین موضوع تغییرات زیادی داخل رابط کاربری ادیتور انجام شد که هنوز تکمیل نشده اما نهایتا با یک نسخه سبکتر و البته سریعتر از لحاظ دسترسی به امکانات نسبت به نسخه قبلی روبرو میشیم.

۲۱ آبان ۹۵ ، ۰۱:۱۹ ۱ نظر
MrMilad

تبادل کمتر = سرعت بیشتر!

شاید تیتر مطلب کمی عجیب باشه اما در پشت این تیتر یک موضوع فنی جالب قرار داره که بعد از انجام تست های زیادی متوجه این موضوع شدیم. معمولا زبان های اسکریپتی (مثل Lua) وظیفشون اینه که برای یک API سطح پایین, یک رابط منعطف سطح بالاتر ایجاد میکنند که بعضا در حالت run-time و بدون کامپایل مجدد هم قابل تغییر و استفاده باشه. در Kite2D این زبان اسکریپتی رابطی برای کتابخانه Kite2D که تماما در ++C پیاده شده فراهم میکنه و کاربر میتونه بدور از پیچیدگی های زبان سطح پایینی مثل ++C برای انجین در زبان سطح بالاتر و راحتتری مثل Lua کد نویسی کنه. اما در پشت صحنه این موضوع یک تبادل داعم و پیوسته بینه Lua و ++C در جریانه و در اصل هر تابعی که شما در Lua صدا میزنید بلافاصله نسخه ++C آن تابع توسط Lua فراخانی میشه و نتیجه کار مجددا توسط Lua به شما برگردانده میشه, این تبادل بینه دو زبان هزینه هایی داره که در بعضی مواقع ناچیز و در بعضی مواقع سنگین هست. برای اینکه متوجه بشیم تستهای زیادی انجام دادیم و در نهایت فهمیدیم که ارتباط بینه C++ ---> Lua بسیار کندتر از ارتباط ++Lua ---> C هست! با توجه به همین موضوع کل سیستم آپدیت اشیاع تغییر کرد و بخش زیادی بازنویسی شد که حدودا 60/70 فریم به سرعت آپدیت اشیاع اضافه شد!

۰۹ آبان ۹۵ ، ۱۱:۵۲ ۰ نظر
MrMilad

Render To Texture اضافه شد!

ویژگی جدید و بسیار پر کاربرد render to texture یا off-screen rendering قابلیتی است که به شما این امکانو میده تا بتونید فارغ از سایز (resolution) اصلی صفحه نمایش کاربران, محتوای خودتونو بسازید و و در هر صفحه ایی و با هر سایزی اونو نمایش بدید! البته این تنها یکی از امکاناتی هست که توسط off-screen rendering قابل پیاده سازی هست و امکانات بسیار جالب و بیشتری مثل امکان بزرگنمایی صفحه بدون مشکلاتی همچون کش امدن و تغییر رنگ پیکسلها (که در OpenGL بصورت طبیعی رخ خواهد داد) و یا ایجاد افکتهای post-process و ... رو به کاربران میده. نمونه پروژه در فایل ضمیمه قرار دارد. توجه کنید که برای مشاهده پروژه باید انجین رو از پست قبلی دانلود کنید.

نمونه پروژه Render To Texture

۰۱ آبان ۹۵ ، ۱۹:۳۶ ۰ نظر
MrMilad