PDA

View Full Version : آیا نرم افزار 3D Max با سی شارپ نوشته شده؟



man_iran
دوشنبه 16 خرداد 1390, 12:52 عصر
آیا نرم افزار 3D Max با سی شارپ نوشته شده؟ اگر نه پس با چه زبان دات نتی نوشته شده؟

حالا اگر قرار باشه برنامه ای مشابه آن نوشته بشه چطور می توان این امکان را به کاربر داد که برای خود افکت و... طراحی کنه؟
منابع آموزشی دارید؟

محمد باقری نسب
دوشنبه 16 خرداد 1390, 13:55 عصر
دوست عزیز نرم افزار 3D MAX و یا نرم افزارهایی از این دست به صورت چند لایه نوشته می شوند. بدین شکل که هسته اصلی نرم افزار جهت بالا بردن کارایی و Performance برنامه با زبانهای Native مانند C\C++ و حتی ASM (اسمبلی) نوشته شده است. لایه ی بعدی نرم افزار که رابط کاربری نام دارد (User Interface) و یا به اختصار UI ، میبایست با زبانی پیاده شود که امکان بست بسیاری در این ضمینه داشته باشد. بدین منظور که دست طراح در طراحی و پیاده سازی بایستی باز باشد. و در این لایه چندان به Performance بهایی داده نمیشود. در این صورت میتوان از زبانهای دات نت که دارای کارایی پایینی جهت انجام فرآیند های اصلی برنامه هستند (مانند Rendering، Physics Simulation ، و ...) ، برای پیاده سازی UI نرم افزار استفاده کرد. که هم قابلیتهای گرافیکی بسیاری در زمینه رابط کاربری ارائه میدهند و هم به سرعت قابل ارائه هستند.

در نهایت همه امکانات نرم افزار به لایه Native برنامه و هسته آن بستگی دارد. در واقع لایه UI کاری بیش از یک قالب نمایشی را در روند کار نرم افزار انجام نمیدهد.

haghft
دوشنبه 16 خرداد 1390, 18:56 عصر
دوست عزیز نرم افزار 3D MAX و یا نرم افزارهایی از این دست به صورت چند لایه نوشته می شوند. بدین شکل که هسته اصلی نرم افزار جهت بالا بردن کارایی و Performance برنامه با زبانهای Native مانند C\C++ و حتی ASM (اسمبلی) نوشته شده است. لایه ی بعدی نرم افزار که رابط کاربری نام دارد (User Interface) و یا به اختصار UI ، میبایست با زبانی پیاده شود که امکان بست بسیاری در این ضمینه داشته باشد. بدین منظور که دست طراح در طراحی و پیاده سازی بایستی باز باشد. و در این لایه چندان به Performance بهایی داده نمیشود. در این صورت میتوان از زبانهای دات نت که دارای کارایی پایینی جهت انجام فرآیند های اصلی برنامه هستند (مانند Rendering، Physics Simulation ، و ...) ، برای پیاده سازی UI نرم افزار استفاده کرد. که هم قابلیتهای گرافیکی بسیاری در زمینه رابط کاربری ارائه میدهند و هم به سرعت قابل ارائه هستند.

در نهایت همه امکانات نرم افزار به لایه Native برنامه و هسته آن بستگی دارد. در واقع لایه UI کاری بیش از یک قالب نمایشی را در روند کار نرم افزار انجام نمیدهد.
لزوما اینطوری نیست و کل پروژه رو میتونن با خود C++ انجام بدن و C++ هم native میشه استفاده کرد و هم با دات نت.

jalalx
دوشنبه 16 خرداد 1390, 19:33 عصر
کلیه ی نرم افزارها و کامپایلرهای مشهوری چون php (نسخه ی ویندوزی)، Photoshop و سایر نرم افزارهای Adobe و مجموعه ی Office، خود کامپایلر C# و سایر کاپایلرهای .NET و CLR، همه و همه با Visual C++ نوشته شده اند.

man_iran
دوشنبه 16 خرداد 1390, 21:33 عصر
خب پس این زبان سی شارپی که این همه میگن قدرتمند هست چه کاربردی داره؟ چه نرم افزارهای قوی و عمومی را با سی شارپ نوشتن؟

arefba
سه شنبه 17 خرداد 1390, 03:59 صبح
داداش مطمئنی با ویژوال سی پلاس پلاس نوشته شده کلی بهت خندیدم حلالم کن

man_iran جان قدرت زبان سی شارپ ربطی به این موضوع نداره
شما فکر کنید اگر بخوان تری دی مکس رو با سی شارپ بنویسن باید چند لایه بگذره تا برنامه به سخت افزار برسه
تو جاوا هم تقریبا همینطوره
اما زبان سی پلاس پلاس یا اسمبلی یا سی اینها مستقیما از سخت افزار جواب می گیرن و به خاطر نبودن دلال این وسط سرعت اجرا میره بالا
من اگه تری دی مکس رو بهم بدن بنویسم اون رو با ایکس ان ای مینویسم چون کارش همینه (ارتباط مستقیم با دایرکت ایکس )

Felony
سه شنبه 17 خرداد 1390, 05:55 صبح
لزوما اینطوری نیست و کل پروژه رو میتونن با خود C++ انجام بدن و C++ هم native میشه استفاده کرد و هم با دات نت.
++C که Managed نداره !
اون ++VC هست که نسخه Net. داره ، در ضمن تفاوت Performance زبان Native با زبان Managed در این نوع پروژه ها زمین تا آسمون فرق میکنه !

haghft
سه شنبه 17 خرداد 1390, 09:17 صبح
++C که Managed نداره !
اون ++VC هست که نسخه Net. داره ، در ضمن تفاوت Performance زبان Native با زبان Managed در این نوع پروژه ها زمین تا آسمون فرق میکنه !
منم منظورم همین بود.قطعا زبان native در اینجور موارد بهتره.

محمد باقری نسب
سه شنبه 17 خرداد 1390, 09:59 صبح
پس در نهایت رسیدیم به توضیحی که خودم داده بودم جناب haghft. تعریف از خود نباشه ، بنده با اجازتون 12 ساله برنامه نویسم که 8 سال C/C++ کار کردم و 4 سال هم دات نت. در حدود 80 تا پروژه صنعتی هم انجام دادم که حالا غیر صنعتی هاشم پیشکش.

- native که همون C/C++/ASM هست دسترسی بالاتر سرعت بیشتر و چون جزو زبانهای low level هستند فراگیریش برای عموم سختر
- dot net که زبانهای vc++.net, vb.net, c#.net رو شامل میشه ، دسترسی پاینتر به امکانات سیستم (به عنوان مثال اینکه مدیریت حافظه بیخودی داره که تازه دست شما هم نیست managed شده) و در نهایت سرعت پایینتر نسبت به native و مزیتش هم اینه که بسیار قابل فهم و فراگیرتره و شما سه سوت میتونین یه برنامه باهاش پیاده کنید.

haghft
سه شنبه 17 خرداد 1390, 10:33 صبح
منم قصد جسارت به کسی یا چیزی را نداشتم و اینم قبول دارم که هر زبان ویژگی های خاص خودشو داره و به درد کاری میخوره و نمیشه گفت یه زبان از همه زبان ها برتره.البته این تاپیک هم کمی نامربوط به تالار بود:چشمک: چون معلومه که اصلا پروژه های سنگینی مثل 3dmax رو یا نمیشه یا اگر هم بشه به خوبی زبان های native نمیشه نوشت و زبان هایی مثل C# ربطی به C++ ندارن و هر کدوم کاربرد خودشونو دارن.

jalalx
شنبه 01 مرداد 1390, 17:07 عصر
@arefba: خنده نداره که عزیزم! شما اگه بخوای سورس php رو دانلود کنی، دو نسخه داره، یکی با کامپایلر C++ که اوپن سورس هست و مال GNU است، و سورس بعدی که خودش 2 نسخه است، یکی VC++6 و دیگری VC++9 اگه اشتباه نکنم.
در پلتفرم ویندوز گزینه ی دیگری برای نوشتن این نرم افزارها نیست. وقتی شما پلتفرم یک شرکت رو انتخاب می کنید، برای پایداری بیشتر توزیع های آینده ناچار هستین از کامپایلرهای خود اون شرکت استفاده کنید.

احتمالا شما VC++ رو با VC++ CLI اشتباه گرفتین :چشمک:

منبع (http://www2.research.att.com/%7Ebs/applications.html)