نمایش نتایج 1 تا 12 از 12

نام تاپیک: Games vs 3dGraphic apps

  1. #1
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran - Tehran
    پست
    799

    Games vs 3dGraphic apps

    سلام.
    همونطور که میدونید بازی ها به صصورت runtime رندر میشند . ولی خوب بین صحنه های مختلف هیچ وقفه ای وجود نداره .
    در صورتی که برای رندر کردن چند تا جسم خیلی ساده تو برنامه هایی مثل Maya یا 3dMax زمان زیادی گزفته میشه.
    میخواستم بدونم علتش چیه ؟
    ممنون.

  2. #2
    VIP آواتار Anti_Evil
    تاریخ عضویت
    فروردین 1382
    محل زندگی
    سرگردان در کهکشان !
    پست
    529
    سلام فرهاد جان،

    نرم افزارهای 3d مانند 3d max و maya نیز از run-time rendering بهره میگیرند. رسم یک کره یا مکعب در محیط 3d max دقیقا به همان صورتی است که در بازی ها انجام میپذیرد.
    در هنگام نصب این نرم افزارها، سوالی در مورد نوع engine برای rendering پرسیده میشود که اغلب به شکل زیر است:

    OpenGL
    DirectX
    Software Rendering
    Or something

    این config برای rendering در محیط برای طراحی و همچنین برای render نهایی است.

    اما در مورد سرعت rendering، حق با شماست !
    سرعت rendering در بازیها بسیار بالاتر است، که باید باشد !
    همانطور که در سوال جوابهای قبلی اشاره شد در تمام بازی ها، دو فاکتور بسیار مهم هستند.
    یک سطح گرافیکی بازی، و دوم سرعت اجرای بازی. برای همخوانی این دو فاکتور اغلب طراحان بازی های کامپیوتری به کم کردن نقش یکی از این دو فاکتور میپردازند.
    همانطور که میدانید مخاطبان بازی های کامپیوتری بسیار بیشتر نسبت به کاربرانی که قصد کارهای صرفا گرافیکی را دارند میباشد در نتیجه برای ایجاد یک بازی باید به فکر عموم بود.
    به همین دلیل است که در اکثر بازی ها به کاراکترهای اصطلاحا low polygons بر میخوریم.
    در یک کلام در بازی ها همه چیز به صورت optimize شده استفاده میشود !
    چه object های گرافیکی و چه اگوریتم های rendering.
    مورد اول که به نظرم شفاف است، مورد دوم نیازمند بحث های بسیار زیاد و تخصصی دارد.
    ولی به صورت مختصر باید بگویم این دقیقا سوالی بود که ذهن برنامه نویسان را در 3 یا 4 دهه پیش در آمریکا به خود اختصاص داد، راه حل های بسیار متنوع و مختلفی درست شد که بسیاری از آنها در منطق با یکدیگر برابر بودند.
    ولی شاید هیچ کدام از این راه حل ها به زیبایی BSP پیاده سازی نشد.
    BSP یا Binary Space Partitioning راه حلی بود که اولین بار توسط id software در doom استفاده شد. این الگوریتم بعدها در بسیاری از بازی ها استفاده شد و شرکتهای مختلف بازی سازی نسخه های مختلفی از آن را تهیه کردند. به نظر میرسد با توجه به اهمیت این مسئله، پیاده سازی BSP برای هر 3d engine باید جزو یکی از اولویت ها باشد.
    این شرح مختصری بود بر BSP

    موفق باشید،
    Anti_Evil

  3. #3
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran - Tehran
    پست
    799
    سلام.
    جناب AntiEvil بسیار بسیار ممنون از توضیحات خوب و کاملتون :oops: .

  4. #4
    کاربر دائمی آواتار MOHSEN731
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    147
    جناب AntiEvil از کجا می توان یکBSP TOOL برای طراحی این فرمت پیدا کرد -ممنون ‏

  5. #5
    VIP آواتار Anti_Evil
    تاریخ عضویت
    فروردین 1382
    محل زندگی
    سرگردان در کهکشان !
    پست
    529
    آقای محسن خان، قبلا به شما گفتم که سایت GalaxyRoad.com در حال بازسازی است و اگر کمی صبر کنید جواب تمام این سوال ها را در آنجا پیدا خواهید کرد.
    در هر حال برای اینکه جواب این سوال را داده باشم بهتر است نرم افزار QRadiant را download کنید.
    این نرم افزار برای طراحی محیط بکار میرود و به فایل های BSP. اکسپورت میکند.

    موفق باشید.

  6. #6
    کاربر دائمی آواتار MOHSEN731
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    147
    قربونت برم پس هرچه زودتر راهش بنداز که خیلی مشتاقم (بهتر بگم مشتاقیم چون خیلی ها میخوان درباره بازی نویسی اطلاعات بدونند)
    البته امیدوارم سایت شما جامعیت کامل را در ارائه مطالب داشته باشه و لایق عنوان Iranian game developers باشد
    ممنون

  7. #7
    این مثال رو در نظر بگیرید:
    من یک شی با تعداد face ~ 56640 ایجاد کردم. این رو توی 3dsMax که render میکنم در حدود 5 دقیقه در دستگاه من طول میکشه که 100 فریم اون رندر بشه، توجه کنید که هیچ texture ای هم نداره. ولی وقتی همین رو روی loader که خودم نوشتم توسط OpenGL اجرا میکنم در حدود 5fps به من میده. یعنی 100 frame را در زمان 20 ثانیه اجرا میکنه. (در نظر بگیرید که من حتی به ان Texture هم دادم و 2 منبع نور هم اضافه کردم.
    پس ایراد کار کجاست؟ من که هیچ polygon ای رو disregard نمیکنم و همه را میکشم. پس چرا در برنامه من که حتی detail level بالاتری داره این سریع تر اجرا میشه؟
    یکی از دلایل میتونه این باشه که برنامه من از امکانات کارت گرافیک و به عبارت دیگر از OpenGL Renderer و امکانات GPU مستقیماً استفاده میکنه. در حالیکه در 3dsMax or Maya از
    Renderer های خود Max & Maya استفاده میشه. دلایل زیاد تر میشه برای این اورد ولی این دلایل حرفه ای هستند و سر شما رو درد نمیارم.
    موفق باشید.
    به امید ایران آباد.
    Johnsss

    File 1: Picture of 3ds_loader, using OpenGL
    http://web.axelero.hu/jack857/3ds_loader.JPG
    File 2: Picture of 3dsMax Rendering 100 Frames.
    http://web.axelero.hu/jack857/3ds.JPG

    p.s.
    همونطور که دوست عزیزم آقای anti evil گفت در بازی ها از تکنیک های خاصی استفاده میشه و در آنها اشیا رو به Low Polygon تبدیل میکنند که FrameRate زیاد تر بشه. در تقریبا هیچ بازی نخواهید دید که یک شی 50,000Face داشته باشه و این فقط به عنوان مثال بود.

  8. #8
    VIP آواتار Anti_Evil
    تاریخ عضویت
    فروردین 1382
    محل زندگی
    سرگردان در کهکشان !
    پست
    529
    الف)

    مقایسه دو نرم افزار نظیر 3D Max و 3DS Loader در مورد سرعت rendering اشتباه است، حتی با فرض اینکه نرم افزار 3DS Loader تمام polygon ها را نمایش دهد.

    البته قابلیت های کارت گرافیکی تاثیر بسزایی بر عملکرد نرم افزار 3DS Loader دارد و اگر نگوئیم 100% ولی حداقل 90% بر عملکرد نرم افزار 3D Max نیز تاثیر گذار خواهد بود.
    در حقیقت نرم افزار غول پیکری نظیر 3D Max از بسیاری از عملگرهای Software Processing برای render نهایی بهره میبرد که این خود یکی از عامل های بازدارنده در سرعت rendering میباشد، با این حال قابلیت های کارت گرافیک میتواند در کیفیت و سرعت rendering تاثیر گذار باشد.

    نرم افزار 3D Max در حین render کردن یک frame بسیاری از تنظیمات ( تنظیماتی نظیر Track View و ... ) و پیش فرظ ها ( پیش فرظ هایی برای خروجی زیباتر نظیر vertex shaders و ... ) را در نظر میگیرد و سپس به صورت تک تک شروع به rendering میکند.

    ... برنامه من که حتی detail level بالاتری داره ...
    البته فکر کنم اشتباهی شده اما screen shot هایی که تهیه کردید نشانگر این بود که خروجی 3d max دارای کیفیتی بسیار بالاتر است.

    دلایل دیگری هم وجود دارد که مقایسه بین این دو نرم افزار را غیر ممکن میکند که از حوصله توپیک خارج است.

    ب)

    شاید بتوان این دو نرم افزار را به گونه ای دیگر با هم مقایسه کرد، که البته آن را نیز غیر معقول میدانم.
    از نظر منطقی مقایسه سرعت rendering بین این دو نرم افزار زمانی امکان پذیر است که بخواهیم 3DS Loader را با 3D Max - Design Mode مقایسه کنیم.
    یعنی با 3d max در هنگام رسم و در محیط طراحی آن ...
    در آن حالت به صورت لحظه ای همان اتفاقی می افتد که در 3ds loader می افتد ...
    مقایسه به این شیوه تا حدود بسیار زیادی خطاست زیرا در عمل 3d max تنها رسم اشکال را انجام نمیدهد و بسیاری از عوامل دیگر در آن دخالت میکنند، ولی حتی با در نظر گرفتن این همه محدودیت نتیجه رضایت بخشی دارد.

    یک 3ds loader ساده نوشته شده بوسیله OpenGL:
    http://www.gametutorials.com/downloa...Loader_OGL.zip

    موفق و پیروز باشید،
    هادی

  9. #9
    Anti_Evil عزیز این سایتت چی شد؟ چرا راش ننداختی؟ بی صبرانه منتظر افتتاح و خوندن مطالب جالب شما هستم.

  10. #10
    VIP آواتار Anti_Evil
    تاریخ عضویت
    فروردین 1382
    محل زندگی
    سرگردان در کهکشان !
    پست
    529
    انشاالله تا چند دقیقه دیگر (;

  11. #11
    این نرم افزار QRadiant رو از کجا میشه گیر آورد؟

  12. #12
    VIP آواتار Anti_Evil
    تاریخ عضویت
    فروردین 1382
    محل زندگی
    سرگردان در کهکشان !
    پست
    529
    http://www.barnamenevis.org/viewtopic.php?t=6958

    موفق باشید،
    هادی

تاپیک های مشابه

  1. Shoes, a Tiny Toolkit for Making Web-like Desktop Apps
    نوشته شده توسط Inprise در بخش دیگر زبان های اسکریپتی
    پاسخ: 0
    آخرین پست: سه شنبه 09 مرداد 1386, 18:12 عصر
  2. Google Web Toolkit - Build AJAX apps in the Java language
    نوشته شده توسط sokoot در بخش Java EE : نگارش سازمانی جاوا
    پاسخ: 0
    آخرین پست: شنبه 30 اردیبهشت 1385, 08:05 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •