دهکدۀ افسانه های کوچک

Mahdi_Rashed

Well-Known Member
سلام:green:
بعد از مدت خیلی زیادی میخوام یک کار 3بعدی بدم که کلاً مربوط به بازی نباشه :). دهکده ی افسانه های کوچک یا The Village of Tiny Legends یک کار 3بعدی هست که با مکس طراحی میکنم و یکی دوروزه که شروع کردمش. همون اول چندتا تصویر میذارم برای قشنگی. موتور رندرینگ هم که Main Core خودم هست ولی از سیستم Mass GPU Processing استفاده کردم که خروجی رو به صورت رئال تایم ولی با کیفیت بسیار بسیار بالا نمایش میده. سیستم و هسته GPU Rendering هم DirectX 11 هست.

screenshot1.jpg
screenshot2.jpg


این دو تا عکس که شبیه هیچی نیست در واقع کوهی هست که دهکده به صورت مارپیچ روی اون قرار میگیره، دو تا جا برای دیدبانی داره و روی قله هم یک برکه وجود داره که توی این تصویر هنوز دیده نمیشه. کنار این برکه هم قراره که یک آسیاب بادی ساخته بشه.

screenshot3.jpg
screenshot4.jpg
screenshot5.jpg


توی این عکسها هم برای اینکه شهرداری به نبود نبود حفاظ گیر نده و عوارض نگیره، حفاظ در نظر گرفته شده. حفاظ چوبیه و چون ساختنش به صورت دستی سخت بود و مکس هم از این کارا بلد نیست، با مکس اسکریپت یک اسکریپت نوشتم که درست هماهنگ با جاده ی کوه که بالا میره این حفاظ رو بچینه. قابل ذکر هست که از spline استفاده نکردم. البته اول استفاده کردم دیدم حفاظ ها یا نرده ها بیشتر شبیه پاستیل میوه ای شد بعد تصمیم گرفتم با اسکریپت کار رو راه بندازم. :cool:

screenshot6.jpg
screenshot7.jpg


این هم یک بخشی از پله های سنگی هست که در مناطقی که شیب بیشتره از این استفاده میکنم. از پلاگین Clone استفاده کردم که میتونی از maxplugin.de دانلودش کنین. اون موجود سبز رنگی هم که مشاهده میکنین از اسکریپتهای قدیمی من هست که اندازه دقیق یک انسان معمولی رو داره، وزنش هم برای سیستم دینامیک مکس تعریف شده. کارش هم اینه که به من در طراحی کمک میکنه تا مواردی شبیه ارتفاع نرده ها یا ارتفاع هر قدم پله و شیب کلی پله رو متناسب برای یک انسال معمولی طراحی کنم. بارگذاریش در صحنه هم خودکار هست و وقتی که من دارم روی شی A کار میکنم دستور hms_upload() رو به listener مکس میدم و بلافاصله این یارو کنار شی A در پایین ترین محور و با مقیاس مناسب ظاهر میشه. اسم این اسکریپت Human_Mass_Script هست که سال پیش نوشتم.

screenshot8.jpg
screenshot9.jpg


اینا هم نمونه خروجی GPU Mass Process هست که با دایرکت ایکس 11 و به صورت رئال تایم عکس برداری شده. اینجا فقط HDAO دیده میشه که اونم روال تایمه.
 

Mandana

Active Member
ایول مهدی به نظر جالب میاددد.خعلی دوس دارم کاراکتراشو چکار می کنی حدس می زنم کاره قشنگی میشه
موفق بباشی:rose:
 

rezaoptic

Well-Known Member
حدس میزنم که قراره کاره خیلی خوبی از کار در بیاد.
منم خیلی علاقه به ساخت این جور کار ها دارم اما حیف که به اندازه کافی قدرت و سوادشو ندارم.
اگه بتونی یه سری توضیحات کلی بدی خیلی ممنون میشم.
موفق باشی:rose:
 

Mahdi_Rashed

Well-Known Member
اینم یک سری عکس جدید، آخرین شی که جاده رو به بالای کوه و جای آسیاب بادی وصل میکنه خیلی شیبش زیاد بود دو تا سکو زدم به جای پله های کامل.

screenshot10.jpg
screenshot11.jpg
screenshot12.jpg


اینم رندر روال تایم برای تست :cool:
screenshot13.jpg


حالا دو تا سوال یا نظرخواهی داشتم از دوستان. سکوها توسط کنده های چوبی ساخته میشن. جای اتصال کنده ها به هم میخوام طناب بذارم ولی نمیدونم چطوری میشه این طناب رو طبیعی در آورد، نظری هست؟ کمک ؟
سوال دومم اینه که سکوی اول رو با نردبون به سکوی دوم وصل کنم یا با یک سکوی راهرویی باریک از کنار؟ یا با نظریه Teleportation سر و ته موضوع رو حل کنم؟ :lol:
 

Mahdi_Rashed

Well-Known Member
خوب
به جای گره از آبجکت پیشفرض Knot خود مکس استفاده کردم. البته با اسکریپت قاطی کردم تا حالت قرار گیری اون در جاهایی که معلوم میکنم طوری باشه که کمترین Collison رو داشته باشه. نتیجه این شد. به نظر خودم برای کار رئال تایم خوبه. یک سری اسکریپت هم توی نت پیدا کردم که همین کار رو انجام میداد ولی خیلی داغون بود. :green:

screenshot14.jpg
screenshot15.jpg
screenshot16.jpg


اینم رندر رئال تایم با سرعت25 فریم در ثانیه.

screenshot17.jpg


درسته خیلی پایینه سرعت چون دارم از Mass GPU Process استفاده میکنم. این سیستم فقط برای اینطور رندهاست و در تکنولوژی بازیها استفاده نمیشه. توی حالت استفاده کامل از پردازنده کارت گرافیک ریزترین اشیا هم سایه میگیرن و هم HDAO دینامیک. بحث GI رئال تایم هم با نمونه شبیه در بازی فرق داره. در MGP محاسبه Bouncing Light انجام نمیشه تا GI به دست بیاد. محاسبه bouncing light در حالتی انجام میشه که ما همه حجم پردازشی یک رایانه رو به نور اختصاص ندیم. شبیه بازیها ولی در حالت پردازش MGP به جای Bouncing Lights از فرمون کلی Global illumination و محاسبه پرتو به پرتو و تجزیه و تحلیل اطلاعات Photon Map استفاده میشه که 2048 بار دقتش از Bouncing Light بیشتره و صد در صد بیشتر از این مقدار حجم پردازشی داره. سیستم های Global illumination در موتورهای رندر گرافیک شبیه Vray بیشتر از 16,384 بار دقیقتر از MGP هست و برای همینه که هنوز هم موتورهای رندر شبیه Vray جایگاه خودشون رو در شبیه سازی نور حفظ کردن. شاید بگید که بین 2048 برابر تا 16,384 برابر چه فرقی وجود داره. باید جواب این سوال رو اینطوری داد. اگر بخواین به یک صحنه به صورت کلی نگاه کنید فرقی بین این دو عدد و کیفیت وجود نداره ولی وقتی بخواین یک انیمیشن بسازید که هر حرکت کوچک در صحنه یک بار محاسباتی در محاسبه سایه، نور و ... داره اونوقت فرق بین موتور رئال تایم با موتور رندر Software Based دیده میشه. موتور رئال تایم نمیتونه چیزایی شبیه Particle System رو به صورت Real-Time GI محاسبه کنه ولی این کار از موتور رندر Software بر میاد. همچنین موتورهای رندر software Based از CPU برای محاسبه استفاده میکنن که به مراتب سرعت و دقت بیشتری نسبت به GPU داره.
 
آخرین ویرایش:

m2d

Member
وقتی گفتی نردبون من فکر کردم منظورت از این طنابیهاست .
به نظرت هم راحت تر نیست هم قشنگتر . البته این رو هم خیلی خوب در اوردی ها . دارم نظر میدم ( حالا یکی نیست بگه کی از تو نظر خواست ) :green:
 

Mahdi_Rashed

Well-Known Member
نردبون طنابی برای ارتفاعهای زیاد استفاده میشه. از این نردبون طنابی هم در کار استفاده خواهد شد. برای بالا رفتن و رسیدن به جایگاه دیدبانی :green:
 

Mahdi_Rashed

Well-Known Member
امروز یک کم برای پروژه مشکل پیش اومده بود زیاد پیشرفتی نداشتم. همین دو تا عکسه. رندر رئال هم نتونستم بگیرم چون اومدین دو تا کامپوننت جدید به هسته موتورمون اضافه کنیم همه چی ریخت به هم داریم مشکل رو حل میکنیم.

screenshot18.jpg
screenshot19.jpg


:green:
 

Mandana

Active Member
اگه هنوز باسه طناب مشکلت حل نشده میتونی از پلاگین reeper سینما 4 دی استفاده کنی خعلی طبیعی میسازه:} تا اینجاش خوب شده منتظر ادامشیم :* :rose:
 

living_for_cg

کاربر متخصص مدلینگ
سلام.ایول بابا ، دیتیلش خیلی جالبه. شدید منتظرم فاینالشو ببینم.
فقط یک سوال...من همه پستهارو نخوندم، چرا کوهت اینقده پر سگمنته؟ دلیل خاصی داره این کار؟ ممنون
موفق باشی.
 

behrang2

Member
هیییین همین منم سوالم همینه... بعد منم همه پستا رو نخوندم اما حس میکنم میخای توی انجینی چیزی بری رئل تایم کار کنی سر همینم که نباید اینقد پلیگانا زیاد باشن ... اما حتی واسه رندر معمولیم باز میشد کم باشن.... :( اولین پستم واسه کارت همش گیر دادن بود :( ساوری :د

درکل موفق باشی جیگر :د
 

Mahdi_Rashed

Well-Known Member
سیستمی که باهاش کوه رو ساختم شاید یک کم پیچیده باشه. اول اومدم یک cylinder درست کردم که شکل کلی کوه رو تشکی داد. البته با taper modifier یک کم تغییرات دادم توش. بعد برای این که کیفیت موقع گرفتن displacement map بیشتر بشه از طریق اسکریپتهایی که برای موتور نوشته بودم توپولوژی کوه رو به Node Base Lindenmayer استفاده کردم که مقالش رو هم توی امضا گذاشتم هم روی کلمه کلیک کنی میاد. علت زیاد بودن هم اینه که Lindenmayer به طور کلی شامل Component های DirectX Tessellation میشه که قابلیت قبول بیشتر از این مقدار که میبینین بیشتر رو هم داره. البته کن از این خاصیت استفاده نکردم . دراصل اومدیم این خاصیت رو برای استفاده در سیستم موتور برنامه نویسی و هماهنگ سازی کنیم که یک کم هسته موتورمون به هم ریخت :green:

علت دوم اینکه چرا تعداد پولیگانها هم به صورت کلی و هم از نظر کوه زیاده اینه که ما الان از موتور طراحی بازی استفاده نمیکنیم. موتور گرافیک هست. با سرعت رندر 25 فریم بر ثانیه که خیلی پایینه. اگر از موتور بازی استفاده میکردیم البته با حفظ قوانین low poly Modeling سرعت متوسط 250 فریم برای حالت تست و 400 فریم برای حالت full compile بود. الان رندر هایی که گذاشتم هم با استفاده از Mass GPU Processing هست که در موتور خودمون با اسم maximum core در مرحله آزمایشی قرار داره که اگر موفق باشه به مرحله فروش هم میرسونیمش. در پردازش کامل از GPU فقط و فقط اطلاعات نوری در روشهای مختلفی مورد پردازش قرار میگیرن و تمام حجم پردازش GPU و CPU مخصوص این کار هست و عوامل فیزیکی Applied Physic Express Component که از GPU استفاده میکنن یا هوش مصنوعی که از CPU استفاده میکنه وجود نداره. یکی از خوبی هایی که DirectX 11 برای موتورهای گرافیک رئال تایم اورد همین Tessellation هست که استفاده از اون شامل ترکیبی از استفاده از مدل های High Resolution هست با Component های فوق پیشرفته و دقیق Level of Detail میشه.

این چند تا عکس از این خاصیت در DirectX 11 که توی اینترنت پیدا کردم.

13120538401.jpg


13120538400.jpg


اینم فرق بین روشن و خاموش بودن این خاصیت در بازی

13120538402.jpg


حالا شاید از خودتون بپرسین ما که توی main core نبتونستیم فعلاً tessellation رو استفاده کنیم پس من چطوری از این حجم پولگان دارم استفاده میکنم.

خوب چرا این سوالا رو میپرسین؟

Direct 11 Tessellation برای بازیها طراحی شده. یعنی حجمی که بهش تعلق میگیره اونقدر نیست که بخواد سرعت بازی رو پایین بیاره. اما کاری که ما داریم انجام میدیم بازی نیست بلکه فقط یک صحنه 3بعدی رئال تایمه که داره از متد رندر رئال تایم خاصی استفاده میکنه. شما حتی در DirectX 9 هم میتونید سیستم Mass GPU Processing رو پیاده کنید و بعدش هم یک صحنه خیلی سنگین رو به صورت رئال تایم بسازید. چون دارید از نهایت قدر جی پی یو برای این کار استفاده میکنید و موتوری که این کار رو انجام میده یک موتور بازی نیست که محدودیت بارگذاری اطلاعات داشته باشه.:green:
 

Mahdi_Rashed

Well-Known Member
screenshot22.jpg
screenshot23.jpg
screenshot24.jpg


اینم یک سری از وسایل دیدبانها. زنگ خطر رو آخر باید بذارم چون یک کم کار طناب کشی و قرقره سازی داره نمیخوام بعداً به مشکل بخوره. :green:
 

جدیدترین ارسال ها

بالا