تور لحظه آخری
امروز : شنبه ، 24 شهریور 1403    احادیث و روایات:  امام صادق (ع):منزلت مردم را در نزد ما، از اندازه روايتشان از ما بشناسيد.
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها

تبلیغات

تبلیغات متنی

تریدینگ ویو

کاشت ابرو

لمینت دندان

لیست قیمت گوشی شیائومی

صرافی ارکی چنج

صرافی rkchange

دزدگیر منزل

تشریفات روناک

اجاره سند در شیراز

قیمت فنس

armanekasbokar

armanetejarat

صندوق تضمین

طراحی کاتالوگ فوری

Future Innovate Tech

پی جو مشاغل برتر شیراز

لوله بازکنی تهران

آراد برندینگ

وکیل کرج

خرید تیشرت مردانه

وام لوازم خانگی

نتایج انتخابات ریاست جمهوری

خرید ابزار دقیق

خرید ریبون

موسسه خیریه

خرید سی پی کالاف

واردات از چین

دستگاه تصفیه آب صنعتی

حمية السكري النوع الثاني

ناب مووی

دانلود فیلم

بانک کتاب

دریافت دیه موتورسیکلت از بیمه

خرید نهال سیب سبز

قیمت پنجره دوجداره

بازسازی ساختمان

طراحی سایت تهران سایت

دیوار سبز

irspeedy

درج اگهی ویژه

ماشین سازان

تعمیرات مک بوک

دانلود فیلم هندی

قیمت فرش

درب فریم لس

شات آف ولو

تله بخار

شیر برقی گاز

شیر برقی گاز

خرید کتاب رمان انگلیسی

زانوبند زاپیامکس

بهترین کف کاذب چوبی

پاد یکبار مصرف

روغن بهران بردبار ۳۲۰

 






آمار وبسایت

 تعداد کل بازدیدها : 1815633823




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

تکنولوژی 3بعدی در بازیهای رایانه -


واضح آرشیو وب فارسی:سایت ریسک: تکنولوژی 3بعدی در بازیهای رایانه Mahdi_Rashed 29 مرداد 1389, 14:18این روزا که بازار فیلمهای 3بعدی و دوربین های 3بعدی خیلی داغ شده بد نیست یک سری بزنیم به استفاده از تصاویر 3بعدی قابل مشاهده با عینک در بازیهای رایانه . تصاویر 3بعدی چطور ایجاد میشن ؟ در فیلمهای 3بعدی دوربینهایی ساخته شدن که میتونن تصاویر 3بعدی رو تهیه کنن . تصاویری که از 3بخش تصویر اصلی , تصویر فیلتر قرمز و تصویر فیلتر آبی . با ادقام شدن این تصاویر با هم و با استفاده از عینک مخصوص میشه فیلم مورد نظر رو 3بعدی دید . دوربینهایی که این نوع فیلمها رو فیلمبرداری میکنن دارای 2 لنز هستن که معمولاً فاصله بین اونها به اندازه فاصله بین دو چشم در یک صورت استاندارد هست . حلا ما هم میایم از همین روش به صورت معمولی در بازی استفاده میکنیم . یعنی 2 دوربین در صحنه قرار میدیم و با توجه به اطلاعات رنگی و ... کدهای مورد نظر رو به توابع رندر دوربین میدیم . ولی این کار استاندارد نیست . چون با وجود 2 دوربین در بازی و دو تابع رندر کننده کامل حجم پردازشی 2 برابر میشه در نتیجه سرعت بازی از نصف کمتر میشه و کاربر رو از بازی دور میکنه . برای این که یک بازی با تکنولوژی 3بعدی طراحی کنیم نیاز به ساخت یک دوربین با 3لنز دارین که فاصله لنز اول و سوم با لنز دوم که وسط هست یکی باشه . در این حالت لنز وسط یک تابع رندر کامل رو میگیره و به طور معمولی کار میشگیش رو انجام میده ولی 2 لنز اول و سوم باید Shader مخصوص خودشون رو دریافت کنن . پس تابع های هر کدوم از لنزهای 1 و 3 رو به رندر گوشه ای یا Edge Renderer نسبت میدیم . در این حالت کل حجم پردازشی که اضافه میشه یک شانزدهم هست که خیلی کم و سرعت رو کاهش نمیده . البته باید بدونین که برد رندر کننده های لنز 1 و 3 باید به نصف کاهش پیدا کنه . چون اشیای دور به صورت 3بعدی دیده نخواهند شد و لازم نیست که رندر کننده ها این کار رو انجام بدن . فاصله بین لنزها و Offset رو در مرحله نهایی تنظیم میکنیم تا اندازه های دقیق و مناسب رو تعیین کنیم . این اندازه ها به ازای هر بخش از مرحله فرق خواهد کرد . وقتی که لنزها آماده شد میریم به سمت ساخت Shader ها . هر دو Shader برای لنزهای 1 و 3 شبیه هم و از نوع محیطی هستن . پس یک Shader رنگ ابی نسبتاً پررنگ و Shader دیگه رنگ قرمز مایل به صورتی رو میگیره . برای ساخت base و پایه Shader باید از یک Standard Mat استفاده کنیم . یک لایه رنگ مورد نظر رو میدیم و روی صفحه با multiply تلفیق میکنیم . این Blending mode هست که در فتوشاپ همه باهاش آشنا هستن . بعد از این کار باید Opacity رو به 35 تا 45 کاهش بدیم . در این حالت اگر Shader ها رو به دو تابع رندر کننده لنزها بدیم تصویر 3بعدی میشه ولی مشکلاتی هم داره . مثلاً سایه ها هم 3بعدی میشن و برجسته یا SSAO که در کنار دیوارها ساخته میشه در این حالت شبیه سکوی کنار دیوار میشه . یا نورهایی که حجمی هستن و افکت مه دارن 3بعدی و برجسته دیده میشن که خیلی غیر طبیعی خواهد بود . برای حل این مشکل باید برای توابع رندر کننده لنز 1 و 3 یک دامنه تعیین کنین . در این دامنه هر تابعی که قرار بگیره رندر 3بعدی میشه . دقیقاً شبیه دامنه ها در توابع ریاضی با فرق این که به جای عدد نام تابع قرار میگیره . مثلاً تابع تکسچرهایی با ضریب normal Map +12 یعنی هرچی که تکسچرش و نرمال تکسچرش بیشتر از عدد 12 بود 3بعدی دیده بشه . پس یک کلاس با نام مثلاً 3drender تعریف میشه و تمامی چیزهایی که باید رندر 3بعدی بشن درونش قرار میگیره و به توابع رندر لنز 1 و 3 نسبت داده میشه . روش دیکه عکس روش قبلی هست . یعنی شما تمامی عواملی که رندر میشن رو در تابعی تعریف میکنین و عواملی رو که نباید رندر 3بعدی بشن رو از تابع کم میکنین . این راه بهتر و سبک تری خواهد بود چون عواملی که نباید رندر بشن کم هستن و زودتر میشه تابع رو ساخت . این کار رو هم که انجام دادین رندر کننده 3بعدی شما درست شده و خوب کار خواهد کرد . فقط در آخر باید فاصله های لنز 1 از 2 و 3 از 2 رو تعیین کنین و Offset هر کدوم رو مشخص کنین و با توجه به صحنه تغییر بدین . این تکنولوژی رو خودمون در پروژه Main Core انجام دادیم . البته در مراحل آزمایشی هست ولی خروجیها قابل توجه بوده . موفق باشید . منبع : MRashed.ir () Mahdi_Rashed 29 مرداد 1389, 14:23کد رنگهایی که ما استفاده کردیم : #00aade برای آبی #ff0054 برای قرمز سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود




این صفحه را در گوگل محبوب کنید

[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 560]

bt

اضافه شدن مطلب/حذف مطلب







-


گوناگون

پربازدیدترینها
طراحی وب>


صفحه اول | تمام مطالب | RSS | ارتباط با ما
1390© تمامی حقوق این سایت متعلق به سایت واضح می باشد.
این سایت در ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ثبت شده است و پیرو قوانین جمهوری اسلامی ایران می باشد. لطفا در صورت برخورد با مطالب و صفحات خلاف قوانین در سایت آن را به ما اطلاع دهید
پایگاه خبری واضح کاری از شرکت طراحی سایت اینتن