تو XNA 4 تغییرات زیادی داده شده که تعدادی از این تغییرات هم به نظر برای سازگاری نسخه های اینده XNA با DirectX10 یا 11 بوده.کلا برای port کردنشون باید یه کمی درد سر بکشیالبته اگه پروژه های بزرگی نباشن راحت می شه تبدیلشون کرد.
تو XNA 4 تغییرات زیادی داده شده که تعدادی از این تغییرات هم به نظر برای سازگاری نسخه های اینده XNA با DirectX10 یا 11 بوده.کلا برای port کردنشون باید یه کمی درد سر بکشیالبته اگه پروژه های بزرگی نباشن راحت می شه تبدیلشون کرد.
اینکه دونه دونه Content ها و کد های پروژه های ورژن های قبل رو وارد یه پروژه جدید کنم نه؟...واقعا دردسر داره!
مشکل شما تو conversion هستش؟تو این مورد خودمم نمی دونم چرا بعضی از پروژه ها به درستی به نسخه بالاتر تبدیل نمی شن.به هر حال می تونین از همون روشی که خودتون گفتید استفاده کنید ولی تو XNA 4 تغییراتی تو کدها هم داده شده که خودتون باید کدها رو تغییر بدید.
برای تغییر کد ها هم یه سری از تغییرات تو این جا گفته شده:
بلاگ خود Shawn Hargreaves یه اطلاعاتی داره.کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
مگه به جز همین روشی که من گفتن راهه دیگه ای هم هست؟
تو VS 2010 که میخوای پروژه های 3.1 رو باز میکنی هیچکدوم باز نمیشن و Unavailable میدن.
فکر کنم اون بازی هایی که دارم با XNA 2 باشن چون الان یه پروژه که با XNA 3 بود تو VS 2010 باز شد.
حالا این بازی ها چی هستن؟سورساشون بدرد بخور هست.
راستی شما چقدر با XNA کار کردین؟
راستی مگه اسم این تاپیک معرفی و اموزش XNA نیست.یه چندتا نکته ای اموزشی چیزی بذاریدما شیفته اموختن چیزای جدیدیم.
اینا رو از سایت xnaprojects.net گرفتم همشون هم ورژن 2 یی هستن.
من تازه اول کارم با xna هست شما که 7-8 ماهه xna کارکردی یه چند تا اموزش بزار.![]()
حالا که شروع به یادگیری XNA کردی برنامه خاصی هم داری؟یعنی با هدف خاصی شروع به یادگیری کردی یا نه گفتی همین طوری شروع کنیم بعد از یه مدتی هم دیدیم فایده نداشت ولش می کنیم.
در مورد اموزشم که ما کوچیک تر از اینیم که بخوایم اموزش بذاریمولی اگه می تونستم سعی می کردم حتا به صورت نکته ای هر چی بلد بودیم بگیم(وقت)
حالا که تا اینجا اومدیم یه نکته کوچیک بذاریم.با استفاده از 2 متد زیر می تونید 2 عدد 8 بیتی رو تو 1 عدد 16 بیتی ذخیره کنید.این فشرده سازی در Deferred rendering به کار میاد.اگه از target های RGBA64 استفاده کنید می تونید حجم زیادی از اطلاعات رو تو target های خودتون ذخیره کنید.برای مثال می تونید علاوه بر نرمال های bump شده نرمال های معمولی صحنه را ذخیره کنید.این نرمال های بدون bump در افکت هایی مثل SSAO یا edge detection کاربرد دارند.معمولا تو 4 تا render target 32 بیتی اطلاعات زیادی نمی شه ذخیره کرد ولی اگه از 3 تا target 64 بیتی استفاده کنید می تونید حجم زیادی از اطلاعات مختلف رو ذخیره کنید و از رندر دوباره ابجکت ها صرف نظر کنید.
چه نکته باقالییکد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید![]()
راستش بین C++ و XNA دارم هنوز تحقیق میکنم کدوم رو برای شروع برنامه نویسی سه بعدی انتخاب کنم.
از اونجا که C++ بهترین زبان به دلیل سطح پایین بودن برای ساخت بازی و همینطور Multi Platform هست انتخابم C++ هست ولی از اون ور به قول یکی از بزرگترین برنامه نویسان دنیا (اسمشو یادم نیست) C++ زبان جوجه برنامه نویسا نیست میترسم وسط راه کم بیارم.
ولی C# رو در حد متوسط به بالا بلدم.
در XNA 4 نمی توان از depth buffer کارت یک پشتیبان تهیه کرد.برای مثال اگر شما یک render target ست کنید و یک سری ابجکت رندر کنید وقتی render target را غیر فعال کنید depth buffer کارت از بین می ره.این مورد تو deferred lighting می تونه مشکل ساز باشه.وقتی شما در مرحله Gbuffer اشیای خودتون رو رندر می کنید پس از غیر فعال کردن target ها depth buffer کارت هم از بین خواهد رفت.در مرحله بعد که باید ابجکت های شفاف را رندر کنید خودتون باید depth test را درون shader پیاده سازی کنید.
راه حل دیگر برای این مشکل اینه که یه جوری depth buffer کارت رو برگردونیم.به این ترتیب دیگه نیازی به پیاده سازی depth test در shader نیز نمی باشد.برای این کار از semantic به نام Depth در خروجی Pixel Shader استفاده می کنیم.
توجه کنید که تکسچر depth باید حاوی nonLinear Depth یا screenSpace depth باشد.کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
ولی در deferred lighting معمولا Linear Depth را ذخیره می کنند که ما باید با روشی این Linear Depth را تبدیل به nonLinear depth کنیم.چرا که کارت گرافیک از nonLinearDepth برای depth test استفاده می کند.
این شیدر Linear Depth را تبدیل به nonLinear Depth می کنه. پارامتر cornerFustrum هم باید در خارج از شیدر محاسبه و به شیدر فرستاده شود.برای محاسبه cornerFustrum می تونید از متد زیر استفاده کنید.کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
Last edited by PersianLoverMRB; 22-06-2011 at 13:58.
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)