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

بهینه ساز

به احتمال زیاد ، شما یک بازیکن مشتاق Minecraft هستید و به همین دلیل است که شما پیدا کرده اید که چیست. بلافاصله باید توجه داشت که مفهوم "shader" به راحتی از این بازی جدا شده و می تواند جدا از آن "زندگی" کند. درست مثل حالت ها. بنابراین ، لازم نیست که این دو مفهوم را دقیقاً به هم پیوند دهیم.

به طور کلی ، سایه بان از برنامه نویسی می آید ، به عنوان دستیار متخصصان ظاهر می شود. اگر این ابزار را بهینه ساز بنامیم احتمالاً بلند خواهد بود اما واقعاً باعث بهبود تصویر در بازی ها می شود. بنابراین ، وقتی قبلاً فهمیدید که چیست ، بیایید به یک تفسیر دقیق بپردازیم.

تفسیر

سایه بان چیست؟ که توسط پردازنده های کارت گرافیک اجرا می شود. این ابزارها به زبان ویژه ای توسعه یافته اند. بسته به هدف می تواند متفاوت باشد. پس از آن ، سایه اندازها به طور مشروط به دستورالعمل های پردازنده های شتاب دهنده گرافیکی ترجمه می شوند.

کاربرد

بلافاصله باید گفت که برنامه به طور کلی با هدف از پیش تعیین شده است. برنامه ها در پردازنده های کارت گرافیک تعبیه شده اند ، به این معنی که آنها روی پارامترهای اشیا and و تصاویر گرافیک سه بعدی کار می کنند. آنها می توانند کارهای مختلفی را انجام دهند ، از جمله کار با بازتاب ، شکست ، کم نور شدن ، اثرات برشی و غیره.

فرضیه

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

البته برخی از فرایندها هنوز هم در کار کارت های ویدیویی تعبیه شده اند. توسعه دهندگان می توانند از چنین الگوریتم هایی استفاده کنند. اما آنها نتوانستند الگوریتم های خود را بر روی کارت ویدیو تحمیل کنند. دستورالعمل های غیراستاندارد را می توان توسط CPU اجرا کرد که سرعت آن کندتر از GPU بود.

مثال

برای درک تفاوت ، ارزش دارد که به چند مثال نگاه کنید. بدیهی است که در یک بازی ، ارائه می تواند سخت افزار و نرم افزار باشد. به عنوان مثال ، همه ما Quake 2 معروف را به یاد می آوریم. بنابراین ، هنگام بازی سخت افزار ، آب موجود در بازی فقط می تواند یک فیلتر آبی باشد. اما با مداخله برنامه ای ، یک چلپ چلوپ آب ظاهر شد. این داستان با CS 1.6 همان است. رندر سخت افزاری فقط فلاش سفید می دهد ، در حالی که رندر نرم افزار صفحه ای پیکسلی به آن اضافه می کند.

دسترسی

بنابراین مشخص شد که حل چنین مشکلاتی ضروری است. شتاب دهنده های گرافیکی شروع به گسترش تعداد الگوریتم های محبوب بین توسعه دهندگان کردند. روشن شد که "پر کردن" همه چیز غیرممکن است. دسترسی به متخصصان کارت گرافیک ضروری بود.

قبل از اینکه بازی هایی مانند "Minecraft" با مودها و سایه بان ها وجود داشته باشد ، به توسعه دهندگان این فرصت داده شده بود تا با بلوک های GPU در خطوط لوله کار کنند که می تواند مسئول دستورالعمل های مختلف باشد. به این ترتیب برنامه هایی با نام "shader" شناخته شدند. برای ایجاد آنها ، زبانهای برنامه نویسی به طور ویژه توسعه داده شدند. بنابراین ، کارت های ویدیو نه تنها با "هندسه" استاندارد بلکه با دستورالعمل های پردازنده بارگیری می شوند.

وقتی چنین دسترسی امکان پذیر شد ، امکانات جدید برنامه نویسی شروع به باز شدن کرد. متخصصان می توانند مشکلات ریاضی GPU را حل کنند. این محاسبات به GPGPU معروف شد. این فرایند به ابزارهای خاصی احتیاج داشت. از nVidia CUDA ، از Microsoft DirectCompute و چارچوب OpenCL.

انواع

هرچه افراد بیشتر بدانند سایه بان چیست ، اطلاعات بیشتری در مورد آنها و قابلیت های آنها آشکار می شود. در ابتدا ، شتاب دهنده ها سه پردازنده داشتند. هرکدام مسئول نوع سایه بان خود بودند. با گذشت زمان ، آنها با یک جهانی جایگزین شدند. هر یک از آنها یک سری دستورالعمل داشت که دارای سه نوع سایه بان همزمان بود. با وجود یکپارچه سازی اثر ، شرح هر نوع تا به امروز باقی مانده است.

نوع vertex با رئوس اشکال که چهره های زیادی دارند کار می کند. ابزارهای زیادی وجود دارد. به عنوان مثال ، ما در مورد مختصات بافت ، بردارهای مماس ، دو نرمال یا طبیعی صحبت می کنیم.

نوع هندسی نه تنها با یک راس ، بلکه با یک کل ابتدایی نیز کار می کرد. Pixel برای پردازش قطعاتی از تصاویر bitmap و به طور کلی بافت ها طراحی شده است.

در بازی ها

اگر به دنبال سایه بان های Minecraft 1.5.2 هستید ، به احتمال زیاد فقط می خواهید تصویر را در بازی بهبود بخشید. برای امکان پذیر ساختن این برنامه ها از طریق "لوله های آتش ، آب و مس" انجام شد. سایه بان ها آزمایش و تصفیه شدند. در نتیجه ، مشخص شد که این ابزار دارای مزایا و معایبی است.

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

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

نصب و راه اندازی

اگر یک بسته سایه بان برای Minecraft پیدا کرده اید ، باید بدانید که مشکلات زیادی در نصب آن وجود دارد. علی رغم محبوبیت کم رنگ این بازی ، طرفداران وفادار آن همچنان باقی مانده اند. همه به خصوص در سال 2017 گرافیک را دوست ندارند. برخی فکر می کنند که به لطف سایه بان ها می توانند آن را بهبود بخشند. از نظر تئوری ، این گزاره صحیح است. اما در عمل ، تغییر زیادی نمی کنید.

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

مکان های زیادی در اینترنت وجود دارد که می توانید چنین ابزاری را نصب و بارگیری کنید. بعد ، بایستی بایگانی را در هر پوشه ای باز کنید. در آنجا فایل "GLSL-Shaders-Mod-1.7-Installer.jar" را پیدا خواهید کرد. پس از شروع ، مسیر بازی به شما نشان داده می شود ، اگر درست است ، با تمام دستورالعمل های بعدی موافقت می کنید.

سپس باید پوشه "shaderpacks" را به ".minecraft" منتقل کنید. اکنون ، هنگامی که راه انداز را شروع می کنید ، باید به تنظیمات بروید. در اینجا ، اگر نصب صحیح باشد ، خط "Shaders" ظاهر می شود. شما می توانید بسته مورد نظر خود را از کل لیست انتخاب کنید.

اگر به Shader برای Minecraft 1.7.10 نیاز دارید ، فقط کافیست shaderpack نسخه مورد نیاز را پیدا کرده و همان کار را انجام دهید. نسخه های ناپایدار را می توان در اینترنت یافت. بعضی اوقات شما باید یکی را تغییر دهید ، دوباره نصب کنید و به دنبال یکی از موارد مناسب بگردید. بهتر است به بررسی ها نگاه کنید و محبوب ترین ها را انتخاب کنید.

- ایگور (مدیر)

در چارچوب این مقاله ، من با کلمات ساده به شما می گویم سایه بان ها چیست و همچنین چرا مورد نیاز هستند.

الزامات مربوط به کیفیت گرافیک رایانه ای روز به روز در حال افزایش است. در گذشته ، گرافیک های دو بعدی برای حیرت میلیون ها انسان کافی و کافی در نظر گرفته می شدند. در حال حاضر ، بیشتر به تجسم توجه می شود.

با این حال ، در هنگام شکل گیری گرافیک های سه بعدی فعلی ، بسیاری با این مشکل روبرو شدند که فیلترها و ابزارهای داخلی کارت گرافیک (GPU) داخلی به سادگی کافی نیست. به عنوان مثال ، غالباً نیاز به تأثیرات خودشان بود. بنابراین ، کارهای زیادی باید به صورت دستی انجام می شد و محاسبات در پردازنده اصلی کامپیوتر (CPU) انجام می شد ، که بدون شک بر عملکرد تأثیر می گذارد (علی رغم اینکه vidyuha ، همانطور که می گویند ، "بیکار" بیکار بود).

بنابراین ، با گذشت زمان ، فناوری های مختلفی مانند سایه بان ها به وجود آمده اند که امکان استفاده از توان GPU را برای نیازهای خاص فراهم می کنند.

سایه بان ها چیست و چرا به آنها نیاز است؟

سایه بان - یک برنامه کامپیوتری (کد) که می تواند در پردازنده های کارت گرافیک بدون اتلاف بی مورد پردازنده مرکزی اجرا شود. علاوه بر این ، می توان از طریق این سایه بان ها خط لوله (کاربرد پی در پی) آنها ساخت. یعنی همان سایه بان را می توان برای انواع مختلف اشیا graph گرافیکی اعمال کرد ، که روند ایجاد انیمیشن را بسیار ساده می کند.

در ابتدا ، کارتهای ویدیویی به سه نوع بودند: راس (برای تأثیرات رأسهای منفرد ؛ به عنوان مثال ، برای ایجاد اثر امواج ، ترسیم چمن ، و غیره) ، هندسی (برای ابتدای کوچک ؛ به عنوان مثال برای ایجاد شبح) و پیکسل ( برای فیلترهای یک منطقه خاص از تصویر ؛ به عنوان مثال مه). و بر این اساس ، سه نوع پردازنده تخصصی در هیئت مدیره وجود داشت. بعداً ، این بخش کنار گذاشته شد و همه پردازنده های کارت گرافیک جهانی شدند (آنها از هر سه نوع پشتیبانی می کنند).

کاهش بار کلی پردازنده تمام مسئله این نیست که بتوانید سایه بان های خود را ایجاد کنید. باید درک کرد که بسیاری از بازی ها و فیلم ها از همان ویژگی ها استفاده مجدد می کنند. به عنوان مثال ، اگر می توانید از کتابخانه های آماده مانند OpenGL یا DirectX استفاده کنید ، از ابتدا مثلاً جلوه هایی برای آب را در ده ها برنامه انیمیشن از همان نوع بنویسید؟ موارد اخیر شامل بسیاری از سایه اندازهایی است که قبلاً پیاده سازی شده اند و روش راحت تری را برای نوشتن روش خود ارائه می دهند (نیازی به نوشتن دستورالعمل های سطح پایین برای GPU نیست).

یعنی اگر زودتر ، برای ایجاد ساده ترین انیمیشن یا بازی ، باید دانش قابل توجهی داشت ، در واقعیت های امروز این وظیفه ای است که برای خیلی ها عملی است.

کاربرد روش سایه زن چیست؟

برخی از اشتباهات با سایه بان ها وجود دارد ، زیرا استانداردهای مختلف زبان برنامه نویسی برای کتابخانه های مختلف (GLSL - OpenGL ، HLSL - DirectX و غیره) وجود دارد ، و این واقعیت را حساب نمی کند که تولید کنندگان کارت گرافیک خود می توانند از قابلیت های مختلف پشتیبانی کنند. با این حال ، با مشاهده یک تصویر از تفاوت نمایشگر بین DirectX 9 و DirectX 10 ، می توان به راحتی مزایای استفاده از آنها را ارزیابی کرد.

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

علاوه بر گرافیک ، روش سایه زنی برای کاربران عادی به روش های زیر مفید است:

1. سرعت و عملکرد رایانه افزایش می یابد (به هر حال پردازنده مرکزی نیازی به محاسبه گرافیک به جای GPU ندارد).

معرفی

دنیای گرافیک های سه بعدی ، از جمله بازی ها ، پر از اصطلاحات است. اصطلاحاتی که همیشه تنها تعریف صحیحی ندارند. بعضی اوقات به همان موارد متفاوت گفته می شود و بالعکس ، همان اثر را می توان در تنظیمات بازی "HDR" ، "Bloom" ، سپس "Glow" و سپس "Postprocessing" نامید. اکثر مردم ، از این که توسعه دهندگان از آنچه در موتور گرافیک خود تعبیه کرده اند ، می بالند ، معنای واقعی آنها را نمی فهمند.

این مقاله برای کمک به شما در درک معنای برخی از این کلمات است که اغلب در چنین مواردی استفاده می شود. در چارچوب این مقاله ، ما در مورد همه اصطلاحات گرافیک سه بعدی صحبت نخواهیم کرد ، بلکه فقط در مورد مواردی است که در سال های اخیر به عنوان ویژگی های متمایز و فن آوری های مورد استفاده در موتورهای گرافیکی بازی و به عنوان نام برای تنظیمات گرافیکی بازی های مدرن ، در سال های اخیر گسترش یافته اند. . برای شروع ، من اکیداً توصیه می کنم با خود آشنا شوید.

اگر در این مقاله و مقالات اسکندر چیزی نمی فهمید ، منطقی است که از همان ابتدا شروع کنید ، ص. البته این مقالات تا حدودی منسوخ شده اند ، اما اطلاعات اصلی ، ابتدایی و مهم در آن وجود دارد. ما در مورد اصطلاحات "سطح بالاتر" بیشتر با شما صحبت خواهیم کرد. شما باید درک اولیه ای از گرافیک سه بعدی در زمان واقعی و ساختار خط لوله گرافیکی داشته باشید. از طرف دیگر ، انتظار فرمول های ریاضی ، دقت آکادمیک و مثال های کد را نداشته باشید - این چیزی نیست که این مقاله در مورد آن است. مقررات

لیست اصطلاحات توصیف شده در مقاله:

سایه بان

سایه بان به معنای وسیع برنامه ای برای تعریف بصری سطح یک جسم است. این می تواند توصیفی از نور ، بافت ، پردازش پس از آن و غیره باشد. سایه بان ها از درختان سایه کوک و زبان جریان پیکسل پرلین رشد کردند. اکنون RenderMan Shading Language مشهورترین است. سایه بان های قابل برنامه ریزی برای اولین بار در RenderMan Pixar معرفی شدند که چندین نوع سایه بان را تعریف می کند: سایه بان های منبع نور ، سایه بان های سطح ، سایه های جابجایی ، سایه های حجم ، سایه بانهای تصویری. این سایه بانها اغلب در نرم افزار توسط پردازنده های هدف عمومی اجرا می شوند و اجرای سخت افزاری کاملی ندارند. بعداً ، بسیاری از محققان زبانهای مشابه RenderMan را توصیف کردند ، اما قبلاً برای تسریع سخت افزار طراحی شده بودند: سیستم PixelFlow ( اولانو و لسترا) ، Quake Shader Language (استفاده شده توسط id Software در موتور گرافیکی بازی Quake III ، که شرح رندر چند پاس) است ، و غیره. Peercy و همکارانش تکنیکی را برای اجرای برنامه ها با حلقه ها و شرایط سخت افزار سنتی ایجاد کردند معماری ها با استفاده از چندین گذرگاه رندر تعداد پاسهایی که در قاب باکس ترکیب شده اند. بعداً زبانهایی ظاهر شدند که شاهد افزایش سرعت سخت افزار در DirectX و OpenGL هستیم. به این ترتیب سازه های سایه بان برای برنامه های گرافیکی بلادرنگ سازگار شدند.

تراشه های ویدئویی اولیه قابل برنامه ریزی نبودند و فقط اقدامات از پیش برنامه ریزی شده (عملکرد ثابت) را انجام می دادند ، به عنوان مثال الگوریتم نورپردازی به سختی در سخت افزار ثابت شده بود و هیچ چیز قابل تغییر نبود. سپس ، تولیدکنندگان تراشه های ویدیویی به تدریج عناصر قابل برنامه ریزی را به تراشه های خود وارد کردند ، در ابتدا این قابلیت ها بسیار ضعیف بودند (NV10 ، معروف به NVIDIA GeForce 256 ، قبلاً قادر به برخی از برنامه های ابتدایی بود) ، که پشتیبانی نرم افزاری را در Microsoft DirectX API دریافت نکردند ، اما با گذشت زمان ، این امکانات دائماً گسترش یافته اند. گام بعدی برای NV20 (GeForce 3) و NV2A (تراشه ویدیویی مورد استفاده در کنسول بازی Microsoft Xbox) بود که به اولین تراشه های پشتیبانی سخت افزاری از DirectX API Shader تبدیل شد. نسخه Shader Model 1.0 / 1.1 که در DirectX 8 ظاهر شد ، بسیار محدود بود ، طول هر سایه زن (مخصوصاً برای پیکسل) می تواند نسبتاً کوچک باشد و مجموعه ای بسیار محدود از دستورالعمل ها را ترکیب کند. پس از آن ، Shader Model 1 (به طور خلاصه SM1) با Pixel Shaders 1.4 (ATI R200) \u200b\u200bبهبود یافت ، که انعطاف پذیری بیشتری را ارائه می داد ، اما دارای توانایی های بسیار محدودی نیز بود. سایه بانهای آن زمان به اصطلاح به زبان مونتاژ سایه زن نوشته می شدند که نزدیک به زبان مونتاژ برای پردازنده های عمومی است. سطح پایین آن درک خاصی از کد و برنامه نویسی را با مشکلات خاصی روبرو می کند ، خصوصاً وقتی کد برنامه بزرگ است ، زیرا از ظرافت و ساختار زبان های برنامه نویسی مدرن فاصله زیادی دارد.

Shader Model 2.0 (SM2) ، که در DirectX 9 ظاهر شد (که توسط تراشه ویدئویی ATI R300 پشتیبانی می شود ، که اولین GPU با پشتیبانی از shader مدل 2.0 شد) ، به طور جدی توانایی سایه بانهای زمان واقعی را گسترش داده است ، سایه اندازهای پیچیده تر و مجموعه ای از دستورالعمل ها به طور قابل توجهی گسترش یافته است. توانایی انجام محاسبات نقطه شناور در سایه اندازهای پیکسلی اضافه شد که این نیز پیشرفت عمده ای بود. DirectX 9 در مواجهه با قابلیت های SM2 ، زبان سایه بان سطح بالا (HLSL) را نیز معرفی کرد که شباهت زیادی به زبان C دارد. و یک کامپایلر کارآمد که برنامه های HLSL را به کدی در سطح پایین تبدیل می کند که سخت افزار می تواند آن را درک کند. علاوه بر این ، چندین پروفایل برای معماری های مختلف سخت افزاری موجود است. اکنون ، توسعه دهنده می تواند یک کد سایه زن HLSL بنویسد و آن را با استفاده از DirectX در برنامه بهینه تراشه ویدیویی نصب شده توسط کاربر کامپایل کند. پس از آن تراشه هایی از NVIDIA ، NV30 و NV40 منتشر شد که با بهبود یک درصدی قابلیت سایه بان های سخت افزاری ، اضافه کردن سایه های حتی طولانی تر ، امکان انتقال پویا در سایه اندازهای راس و پیکسل ، امکان واکشی بافت از سایه اندازهای راس و غیره از آن زمان تغییرات کیفی ایجاد شده است ، چنین نیست ، انتظار می رود که در اواخر سال 2006 در DirectX 10 ...

به طور کلی ، سایه بان ها امکانات جدید زیادی را به خط لوله گرافیکی برای تبدیل و روشنایی رئوس و پردازش جداگانه پیکسل ها ، همانطور که سازندگان هر برنامه خاص می خواهند ، اضافه کرده اند. و با این وجود ، قابلیت های سایه بان های سخت افزاری هنوز به طور کامل در برنامه ها فاش نشده است و با افزایش قابلیت های آنها در هر نسل جدید سخت افزار ، به زودی شاهد سطح سایه بان های RenderMan خواهیم بود که روزگاری برای شتاب دهنده های بازی های ویدیویی دست نیافتنی به نظر می رسیدند. تاکنون ، در مدلهای سایه بان بلادرنگ که توسط شتاب دهنده های ویدئویی سخت افزاری پشتیبانی می شوند ، فقط دو نوع سایه بان تعریف شده است: و (در تعریف DirectX 9 API). DirectX 10 قول می دهد که در آینده به آنها اضافه شود.

Vertex Shader

سایه بان های vertex برنامه هایی هستند که توسط تراشه های ویدئویی اجرا می شوند و عملیات ریاضی را با رئوس انجام می دهند (راس ، آنها اشیا 3D 3D را در بازی ها تشکیل می دهند) ، به عبارت دیگر ، آنها توانایی اجرای الگوریتم های قابل برنامه ریزی برای تغییر پارامترهای رئوس و روشنایی آنها را فراهم می کنند (T&L - تبدیل و روشنایی) ... هر راس توسط چندین متغیر تعریف می شود ، به عنوان مثال ، موقعیت راس در فضای سه بعدی توسط مختصات تعیین می شود: x ، y و z. همچنین می توان با مشخصه های رنگ ، مختصات بافت و موارد مشابه ، رأس ها را توصیف کرد. سایه اندازهای راس ، بسته به الگوریتم ها ، در طول کار خود این داده ها را تغییر می دهند ، به عنوان مثال ، محاسبه و نوشتن مختصات جدید و / یا رنگ. یعنی ، داده های ورودی سایه بان رأس داده هایی در مورد یک راس از مدل هندسی است که در حال حاضر در حال پردازش است. معمولاً این مختصات در فضا ، عادی ، اجزای رنگ و مختصات بافت هستند. داده های حاصل از برنامه اجرا شده به عنوان ورودی برای قسمت بعدی خط لوله عمل می کند ، رسترایزر داده های ورودی را برای سطح مثلث درون ریزی خطی می کند و برای هر پیکسل سایه بان پیکسل مربوطه را اجرا می کند. یک مثال بسیار ساده و خام (اما امیدوارم واضح باشد): سایه بان راس به شما امکان می دهد یک جسم کره ای سه بعدی بگیرید و از یک سایه زن راس برای ساخت یک مکعب سبز از آن استفاده کنید :).

قبل از ظهور تراشه ویدئویی NV20 ، توسعه دهندگان دو راه داشتند ، یا اینکه از برنامه ها و الگوریتم های خود استفاده کنند که پارامترهای رأس را تغییر می دهد ، اما پس از آن همه محاسبات توسط CPU (نرم افزار T&L) انجام می شود یا اینکه به ثابت الگوریتم های موجود در تراشه های ویدئویی ، با پشتیبانی از تحول سخت افزاری و روشنایی (سخت افزار T&L). اولین مدل سایه زن DirectX گام بزرگی به جلو از توابع ثابت برای تبدیل و روشنایی رئوس به الگوریتم های کاملاً قابل برنامه ریزی است. به عنوان مثال ، اجرای الگوریتم پوست اندازی به طور کامل بر روی تراشه های ویدیویی امکان پذیر شد و قبل از آن تنها امکان اجرای آنها روی پردازنده های مرکزی جهانی بود. اکنون ، با قابلیت های بسیار بهبود یافته از تراشه NVIDIA فوق الذکر ، شما می توانید با استفاده از vertex shader ها کارهای زیادی را انجام دهید (شاید به جز ایجاد آنها) ...

نمونه هایی از نحوه و مکان استفاده از سایه اندازهای راس:

Pixel Shader

Pixel Shader ها برنامه هایی هستند که توسط تراشه ویدئو در حین رستر شدن برای هر پیکسل از تصویر اجرا می شوند ؛ آنها نمونه برداری از بافت و یا عملیات ریاضی را روی مقدار رنگ و عمق (بافر Z) پیکسل ها انجام می دهند. همه دستورالعمل های سایه زن پیکسل پس از اتمام عملیات تحول هندسه و روشنایی ، پیکسل به پیکسل اجرا می شوند. در نتیجه کار ، سایه انداز پیکسل مقدار نهایی رنگ پیکسل و مقدار Z را برای مرحله بعدی خط لوله گرافیکی تولید می کند ، مخلوط می شود. ساده ترین نمونه سایه انداز پیکسل که می توان آن را ذکر کرد: چند متنی پیش پا افتاده ، فقط مخلوط کردن دو بافت (به عنوان مثال منتشر و نور) و تحمیل نتیجه محاسبه بر روی یک پیکسل.

قبل از ظهور تراشه های ویدئویی با پشتیبانی سخت افزاری برای سایه اندازهای پیکسل ، توسعه دهندگان تنها فرصت هایی برای چند متنی معمولی و مخلوط کردن آلفا داشتند ، که به طور قابل توجهی امکان بسیاری از جلوه های بصری را محدود می کرد و اجازه نمی داد کارهای زیادی را که اکنون در دسترس است انجام دهد. و اگر با هندسه می توان از طریق برنامه ریزی کار دیگری انجام داد ، با پیکسل - نه. نسخه های اولیه DirectX (حداکثر تا 7.0) همیشه همه محاسبات را به صورت عمودی انجام می دادند و عملکرد بسیار محدودی را برای روشنایی در هر پیکسل ارائه می دادند (EMBM را بخاطر بسپارید - نقشه برداری از محیط و DOT3) در آخرین نسخه ها. سایه اندازهای Pixel با استفاده از مواد برنامه ریزی شده توسط توسعه دهندگان ، امکان روشن کردن هر پیکسل به پیکسل سطح را فراهم می کند. پیکسل سایه اندازهای نسخه 1.1 (به معنای DirectX) که در NV20 ظاهر شد نه تنها می تواند چند متریکینگ را انجام دهد ، بلکه کارهای بیشتری را نیز می تواند انجام دهد ، اگرچه اکثر بازی ها با استفاده از SM1 به سادگی از مولتی تکسچر سنتی در اکثر سطوح استفاده می کنند و پیکسل های پیچیده پیچیده تر را فقط در بخشی از سطوح ، برای ایجاد انواع جلوه های ویژه (همه می دانند که آب هنوز هم متداول ترین نمونه استفاده از سایه بان های پیکسلی در بازی ها است). اکنون ، پس از ظهور SM3 و تراشه های ویدیویی که از آنها پشتیبانی می کند ، قابلیت سایه اندازهای پیکسلی افزایش یافته است و حتی امکان محدودیت ریتینگ را نیز می دهد ، البته با محدودیت هایی.

نمونه هایی از استفاده از سایه دهنده های پیکسل:

بافت های رویه ای

بافت های رویه ای بافت هایی هستند که با فرمول های ریاضی توصیف می شوند. چنین بافت هایی در حافظه ویدئویی اشغال نمی کنند ، آنها توسط سایه زن پیکسل "در حال پرواز" ایجاد می شوند ، هر یک از عناصر آنها (texel) در نتیجه اجرای دستورات مربوط به سایه بان به دست می آیند. متداول ترین ساختارهای رویه ای: انواع مختلف سر و صدا (به عنوان مثال ، سر و صدای فراکتال) ، چوب ، آب ، گدازه ، دود ، سنگ مرمر ، آتش سوزی و غیره ، یعنی مواردی که می توان آنها را به روش نسبتاً ساده ریاضی توصیف کرد. بافت های رویه ای به شما این امکان را می دهد که فقط با اندکی تغییر در فرمول های ریاضی از بافت های متحرک استفاده کنید. به عنوان مثال ، ابرهایی که به این روش ساخته می شوند هم از نظر پویایی و هم از نظر ایستایی بسیار مناسب به نظر می رسند.

مزایای بافت های رویه ای همچنین شامل سطح نامحدودی از جزئیات برای هر بافت است ، به سادگی هیچ پیکسلی وجود ندارد ، بافت همیشه به اندازه لازم برای نمایش آن تولید می شود. انیمیشن نیز بسیار مورد توجه است ، با کمک آن می توانید بدون استفاده از بافت متحرک از قبل محاسبه شده ، روی آب موج ایجاد کنید. یکی دیگر از مزایای اینگونه بافت ها این است که هرچه از آنها در یک محصول بیشتر استفاده شود ، برای هنرمندان (هرچند بیشتر برای برنامه نویسان) برای ایجاد بافت های منظم کار کمتری انجام می شود.

متأسفانه ، از روشهای رویه ای هنوز به درستی در بازیها استفاده نشده است ، در برنامه های واقعی بارگیری یک ساختار منظم اغلب آسان تر است ، حجم حافظه ویدئویی با جهش و کران افزایش می یابد ، در مدرن ترین شتاب دهنده ها 512 مگابایت حافظه ویدیویی اختصاصی ، که لازم است چیزی را بردارید. علاوه بر این ، آنها هنوز هم اغلب برعکس عمل می کنند - برای سرعت بخشیدن به ریاضیات در سایه اندازهای پیکسلی ، آنها از جداول جستجو (LUT) استفاده می کنند - بافت های خاص حاوی مقادیر از پیش محاسبه شده که در نتیجه محاسبات بدست آمده است. برای اینکه چندین دستورالعمل ریاضی برای هر پیکسل محاسبه نشود ، آنها به سادگی مقادیر از پیش محاسبه شده را از بافت می خوانند. اما هرچه بیشتر ، تأکید بیشتر باید به سمت محاسبات ریاضی تغییر یابد ، همان نسل جدید تراشه های تصویری ATI را در نظر بگیرید: RV530 و R580 که به ترتیب برای هر 4 و 16 واحد پردازنده دارای پردازنده های 12 و 48 پیکسلی هستند. علاوه بر این ، اگر ما در مورد بافت های سه بعدی صحبت می کنیم ، زیرا اگر بافت های دو بعدی بدون مشکل در حافظه محلی شتاب دهنده قرار بگیرند ، پس بافت های سه بعدی به تعداد بیشتری از آن نیاز دارند.

نمونه هایی از بافت های رویه ای:

نقشه برداری دست انداز / نقشه برداری خاص دست انداز

Bumpmapping روشی برای شبیه سازی بی نظمی ها (یا مدل سازی میکرو رله ، هر کدام را که ترجیح می دهید) در یک سطح صاف و بدون هزینه های محاسباتی زیاد و تغییرات هندسه است. برای هر پیکسل در سطح ، محاسبه روشنایی بر اساس مقادیر موجود در یک نقشه ارتفاع خاص به نام bumpmap انجام می شود. این معمولاً یک بافت سیاه و سفید 8 بیتی است و مقادیر رنگ بافت مانند بافت های معمولی پوشانده نمی شوند ، اما برای توصیف ناهمواری سطح استفاده می شوند. رنگ هر texel ارتفاع نقطه تسکین مربوطه را تعیین می کند ، مقادیر بالاتر به معنای ارتفاع بالاتر از سطح اصلی و مقادیر کمتر به ترتیب کمتر است. یا برعکس.

میزان روشنایی یک نقطه به زاویه بروز پرتوهای نور بستگی دارد. هرچه زاویه بین حالت عادی و تابش نور کمتر باشد ، یک نقطه روی سطح بیشتر روشن می شود. یعنی اگر یک سطح صاف را بگیرید ، در این صورت عادی ها در هر نقطه یکسان و روشنایی نیز یکسان خواهد بود. و اگر سطح ناهموار باشد (در واقع ، عملاً تمام سطوح در واقع) ، در این صورت عادی ها در هر نقطه متفاوت خواهند بود. و نور متفاوت است ، در یک نقطه بیشتر خواهد شد ، در نقطه دیگر - کمتر. از این رو اصل نگاشت دست انداز - برای مدل سازی بی نظمی برای نقاط مختلف چند ضلعی ، نرمال های سطح تنظیم می شوند که هنگام محاسبه روشنایی در هر پیکسل در نظر گرفته می شوند. در نتیجه ، یک تصویر طبیعی تر از سطح بدست می آید ، bumpmapping جزئیات بیشتری از جمله بی نظمی روی آجرها ، منافذ روی پوست و غیره را بدون افزایش پیچیدگی هندسی مدل به سطوح می دهد ، زیرا محاسبات انجام شده در سطح پیکسل علاوه بر این ، هنگامی که موقعیت منبع نور تغییر می کند ، روشنایی این بی نظمی ها به درستی تغییر می کند.

البته ، از نظر محاسباتی روشنایی راس بسیار راحت تر است ، اما بسیار غیرواقعی به نظر می رسد ، به خصوص با هندسه نسبتاً کم پلی ، درون یابی رنگ برای هر پیکسل نمی تواند مقادیر بزرگتر از مقادیر محاسبه شده برای رئوس را بازتولید کند. یعنی پیکسل های وسط مثلث نمی توانند از قطعات نزدیک به راس روشن تر باشند. در نتیجه ، مناطقی با تغییر ناگهانی روشنایی ، مانند تابش خیره کننده و منابع نوری بسیار نزدیک به سطح ، از نظر جسمی به درستی نمایش داده نمی شوند و این امر خصوصاً در پویایی بسیار محسوس خواهد بود. البته ، با افزایش پیچیدگی هندسی مدل ، تقسیم آن به رئوس و مثلث بیشتر ، این مشکل تا حدی حل می شود ، اما نورپردازی پیکسل به پیکسل بهترین گزینه است.

برای ادامه ، باید اجزای روشنایی را به یاد بیاورید. رنگ یک نقطه سطح به عنوان مجموع اجزای محیط ، منتشر و ویژه از همه منابع نوری در صحنه محاسبه می شود (در حالت ایده آل از همه ، که اغلب توسط بسیاری از افراد نادیده گرفته می شوند). مشارکت در این مقدار از هر منبع نوری به فاصله بین منبع نور و یک نقطه روی سطح بستگی دارد.

اجزای روشنایی:

حالا بیایید bumpmapping را به این مورد اضافه کنیم:

م componentلفه یکنواخت (محیط) نورپردازی یک تقریب ، "اولیه" برای هر نقطه از صحنه است ، که در آن تمام نقاط به طور مساوی روشن می شوند و روشنایی به عوامل دیگر بستگی ندارد.
جز component منتشر نور به موقعیت منبع نور و سطح طبیعی بستگی دارد. این م lightingلفه روشنایی برای هر راس جسم متفاوت است که به آنها حجم می دهد. نور دیگر سطح را با همان سایه پر نمی کند.
م specلفه ویژه ای از نور در بازتاب تابش نور از سطح خود را نشان می دهد. برای محاسبه آن علاوه بر بردار موقعیت منبع نور و حالت عادی ، از دو بردار دیگر نیز استفاده می شود: بردار جهت نگاه و بردار بازتاب. مدل روشنایی Specular برای اولین بار توسط Phong Bui-Tong ارائه شد. این شراره ها واقع گرایی تصویر را به میزان قابل توجهی افزایش می دهند ، زیرا سطوح واقعی نادر نور را منعکس نمی کنند ، بنابراین م specلفه مخصوص بسیار مهم است. به خصوص در حال حرکت ، زیرا تابش خیره کننده بلافاصله تغییر وضعیت دوربین یا خود جسم را نشان می دهد. بعداً ، محققان با در نظر گرفتن توزیع انرژی نور ، جذب آن توسط مواد و پراکندگی به شکل یک جز diff منتشر ، روشهای دیگری برای محاسبه این جز component پیچیده تر (Blinn ، Cook-Torrance ، Ward) یافتند.

بنابراین ، Specular Bump Mapping از این طریق بدست می آید:

و بیایید همین را با مثال بازی Call of Duty 2 ببینیم:


قطعه اول تصویر بدون bumpmapping ارائه شده است () ، دومین (بالا سمت راست) bumpmapping بدون یک جز spec specular است ، بخش سوم با یک جز spec specular به اندازه نرمال است که در بازی استفاده می شود و آخرین ، از سمت راست پایین ، با حداکثر جز component احتمالی ممکن.

همانطور که برای اولین کاربرد سخت افزاری ، برخی از انواع نقشه برداری دست انداز (Emboss Bump Mapping) شروع به استفاده از روز کارت های ویدیویی مبتنی بر تراشه های NVIDIA Riva TNT کردند ، اما تکنیک های آن زمان بسیار ابتدایی بودند و به طور گسترده ای مورد استفاده قرار نمی گرفتند. نوع شناخته شده بعدی Environment Mapped Bump Mapping (EMBM) بود ، اما فقط کارت های ویدیویی Matrox در آن زمان از پشتیبانی سخت افزاری در DirectX برخوردار بودند و باز هم استفاده بسیار محدود بود. سپس Dot3 Bump Mapping ظاهر شد و تراشه های ویدئویی آن زمان (GeForce 256 و GeForce 2) برای اجرای کامل چنین الگوریتمی ریاضی به سه پاس نیاز داشتند ، زیرا آنها توسط دو بافت بکار رفته همزمان محدود می شوند. با شروع NV20 (GeForce3) ، انجام همان کار در یک عبور با استفاده از سایه اندازهای پیکسل امکان پذیر شد. علاوه بر این. آنها شروع به استفاده از تکنیک های موثرتری مانند

نمونه هایی از استفاده از bumpmapping در بازی ها:


Displacement Mapping روشی برای افزودن جزئیات به اشیا 3D سه بعدی است. بر خلاف bumpmapping و سایر روش های هر پیکسل ، وقتی فقط نور یک نقطه به درستی توسط نقشه های ارتفاع مدل می شود ، اما موقعیت آن در فضا تغییر نمی کند ، که فقط توهم افزایش پیچیدگی سطح را می دهد ، نقشه های جابجایی به شما امکان می دهد اشیا 3D سه بعدی واقعی پیچیده از راس و چند ضلعی ، بدون محدودیت. ذاتی روش های هر پیکسل است. این روش رئوس مثلث ها را با نرمال سازی آنها با مقداری بر اساس مقادیر موجود در نقشه های جابجایی ، مجدداً جای خود قرار می دهد. نقشه جابجایی معمولاً یک بافت سیاه و سفید است و از مقادیر برای تعیین ارتفاع هر نقطه از سطح جسم استفاده می شود (مقادیر را می توان به صورت اعداد 8 بیتی یا 16 بیتی ذخیره کرد) ، شبیه نقشه bumpmap . برای ایجاد زمینی با تپه ها و دره ها اغلب از نقشه های جابجایی استفاده می شود (در این حالت به آنها نقشه های بلندی نیز گفته می شود). از آنجا که زمین با یک نقشه جابجایی 2D توصیف می شود ، در صورت لزوم تغییر شکل نسبتاً آسان است ، زیرا این فقط به تغییر نقشه جابجایی و ارائه سطح بر اساس آن در قاب بعدی نیاز دارد.

ایجاد منظره با استفاده از نقشه های جابجایی به وضوح در تصویر نشان داده شده است. نسخه اصلی 4 رئوس و 2 چند ضلعی بود ، در نتیجه ، یک قطعه تمام عیار از منظره مشخص شد.

مزیت بزرگ روکش نقشه های جابجایی فقط توانایی افزودن جزئیات به سطح نیست ، بلکه ایجاد تقریباً کامل جسم است. یک جسم کم پلی گرفته شده ، به رأس و چند ضلعی بیشتری تقسیم می شود. رئوس تولید شده توسط tessellation بر اساس مقدار خوانده شده در نقشه جابجایی ، در امتداد حالت عادی جابجا می شوند. در انتها با استفاده از نقشه جابجایی مناسب یک شی سه بعدی پیچیده از یک چیز ساده به دست می آوریم:


تعداد مثلث های ایجاد شده توسط قالب باید به اندازه کافی بزرگ باشد تا تمام جزئیات نقشه جابجایی را به خود اختصاص دهد. بعضی اوقات مثلث های اضافی به طور خودکار با استفاده از N-patch یا روش های دیگر ایجاد می شوند. نقشه های جابجایی بهتر است همراه با نگاشت دست انداز برای ایجاد جزئیات خوب در جایی که نورپردازی صحیح در هر پیکسل کافی است استفاده شود.

نقشه برداری جابجایی برای اولین بار در DirectX 9.0 پشتیبانی شد. این اولین نسخه از این API بود که از تکنیک نقشه برداری جابجایی پشتیبانی می کند. DX9 از دو نوع نقشه برداری جابجایی ، فیلتر شده و از پیش آماده پشتیبانی می کند. روش اول توسط تراشه ویدئویی فراموش شده MATROX Parhelia پشتیبانی می شود ، و روش دوم توسط ATI RADEON 9700 پشتیبانی می شود. روش فیلتر شده در این تفاوت است که اجازه می دهد از mip-سطح برای نقشه های جابجایی استفاده کنید و از فیلتر سه خطی برای آنها استفاده کنید. در این روش سطح میپ نقشه جابجایی برای هر راس بر اساس فاصله راس تا دوربین انتخاب می شود ، یعنی سطح جزئیات به طور خودکار انتخاب می شود. وقتی تقسیم مثلث تقریباً یکسان باشد ، این تقسیم صحنه تقریباً یکنواخت حاصل می شود.

در اصل می توان نقشه جابجایی را به عنوان یک روش فشرده سازی هندسه در نظر گرفت ، استفاده از نقشه های جابجایی میزان حافظه مورد نیاز برای جزئیات مدل سه بعدی خاص را کاهش می دهد. داده های هندسه بزرگ با بافت های جابجایی 2 بعدی ساده ، معمولاً 8 بیتی یا 16 بیتی جایگزین می شوند. این میزان حافظه و پهنای باند مورد نیاز برای انتقال داده های هندسه به تراشه ویدیویی را کاهش می دهد و این محدودیت ها از مهمترین سیستمهای امروزی هستند. متناوباً ، با پهنای باند برابر و نیازهای ذخیره سازی ، نقشه برداری جابجایی مدل های سه بعدی هندسی بسیار پیچیده تری را امکان پذیر می کند. استفاده از مدل هایی با پیچیدگی بسیار کمتر ، وقتی به جای ده ها یا صدها هزار مثلث ، از هزاران واحد استفاده می شود ، سرعت بخشیدن به انیمیشن آنها را نیز ممکن می کند. یا با استفاده از الگوریتم ها و تکنیک های پیچیده تر ، مانند شبیه سازی پارچه ، آن را بهبود ببخشید.

مزیت دیگر این است که استفاده از نقشه های جابجایی شبکه های سه بعدی چند ضلعی پیچیده را به چندین بافت دو بعدی تبدیل می کند که پردازش آنها راحت تر است. به عنوان مثال ، برای سازماندهی ، می توانید از نقشه برداری معمولی برای پوشاندن نقشه های جابجایی استفاده کنید. همچنین ، به جای الگوریتم های نسبتاً پیچیده برای فشرده سازی مش های سه بعدی ، می توانید از روش های معمول فشرده سازی بافت ها ، حتی از نوع JPEG مانند ، استفاده کنید. و برای ایجاد رویه اشیا 3D سه بعدی ، می توانید از الگوریتم های معمول برای بافت های دو بعدی استفاده کنید.

اما نقشه های جابجایی محدودیت هایی نیز دارند ، نمی توان آنها را در همه شرایط اعمال کرد. به عنوان مثال ، اشیای صاف که حاوی جزئیات ریز زیادی نیستند ، به صورت مش استاندارد یا سایر سطوح سطح بالاتر مانند منحنی های Bezier بهتر نشان داده می شوند. از طرف دیگر ، مدل های بسیار پیچیده مانند درختان یا گیاهان نیز به راحتی با نقشه های جابجایی نشان داده نمی شوند. سهولت استفاده از آنها نیز مشکلاتی دارد ، این تقریباً همیشه به برنامه های کاربردی تخصصی نیاز دارد ، زیرا ایجاد مستقیم نقشه های جابجایی بسیار دشوار است (اگر در مورد اشیا ساده مانند منظره صحبت نکنیم). بسیاری از مشکلات و محدودیت های ذاتی نقشه های جابجایی همانند مشکلات موجود است ، زیرا این دو روش اساساً دو نمایش متفاوت از یک ایده مشابه هستند.

به عنوان نمونه ای از بازی های واقعی ، من یک بازی را ذکر می کنم که از نمونه برداری بافت از یک سایه بان vertex استفاده می کند ، این ویژگی در تراشه های ویدیویی NVIDIA NV40 و Shader Model 3.0 ظاهر شده است. بافت ورتکس را می توان به روش ساده ای از همپوشانی نقشه های جابجایی که به طور کامل توسط پردازنده گرافیکی انجام می شود ، بدون تقسیم بندی (تقسیم به مثلث های بیشتر) اعمال کرد. کاربرد چنین الگوریتمی محدود است ، آنها فقط در صورت پویا بودن نقشه ها معنی می یابند ، یعنی در روند کار تغییر می کنند. به عنوان مثال ، این یک رندر از سطوح بزرگ آب است که در بازی Pacific Fighters انجام می شود:


Normalmapping نسخه بهبودیافته تکنیک bumpmapping است که قبلاً توضیح داده شد ، نسخه گسترده ای از آن. Bumpmapping توسط Blinn در سال 1978 توسعه یافت ، جایی که نرمال های سطح با استفاده از این روش نقشه برداری دست انداز بر اساس اطلاعات نقشه bump تغییر می کند. در حالی که bumpmapping فقط عادی موجود را برای نقاط سطحی تغییر می دهد ، normalmapping با واکشی مقادیر آنها از یک نقشه عادی مخصوص تهیه شده ، به طور کامل جایگزین نرمال می شود. این نقشه ها معمولاً بافتهایی با مقادیر عادی از پیش محاسبه شده در آنها ذخیره می شوند ، که به عنوان اجزای رنگی RGB نشان داده می شوند (با این حال ، برای نقشه های عادی ، از جمله آنهایی که دارای فشرده سازی هستند ، فرمت های خاصی نیز وجود دارد) ، بر خلاف ارتفاع سیاه و سفید 8 بیتی نقشه ها در bumpmapping.

به طور کلی ، مانند bumpmapping ، این روش "ارزان" برای افزودن جزئیات به مدل های دارای پیچیدگی هندسی نسبتاً کم ، بدون استفاده از هندسه واقعی بیشتر ، فقط پیشرفته تر است. یکی از جالب ترین کاربردهای این تکنیک ، افزایش قابل توجه جزئیات مدل های کم پلی با استفاده از نقشه های معمولی است که با پردازش همان مدل از پیچیدگی هندسی بالا بدست آمده است. نقشه های عادی توصیف دقیق تری از سطح را از نقشه برداری برجستگی ارائه می دهند و به شما امکان می دهند اشکال پیچیده تری را نشان دهید. ایده هایی برای به دست آوردن اطلاعات از اشیای بسیار دقیق در اواسط دهه 90 قرن گذشته ابراز شد ، اما بعد از آن بحث استفاده از بود. بعداً ، در سال 1998 ، ایده هایی برای انتقال جزئیات به صورت نقشه های معمولی از مدل های با پلی بالا به مدل های با پلی کم ارائه شد.

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

نقشه های عادی معمولاً از دو نسخه مدل کم و زیاد پلی تولید می شوند. مدل پلی کم از حداقل هندسه ، اشکال اساسی جسم تشکیل شده است و مدل پلی از بالا شامل هر آنچه برای حداکثر جزئیات نیاز دارید. سپس ، با استفاده از برنامه های ویژه ، آنها را با یکدیگر مقایسه می کنند ، تفاوت محاسبه و در بافتی به نام نقشه معمولی ذخیره می شود. هنگام ایجاد آن ، می توانید برای جزئیات بسیار کوچک از نقشه برآمدگی استفاده کنید که حتی در یک مدل با پلی بالا (منافذ پوست ، دیگر فرورفتگی های کوچک) قابل مدل سازی نیست.

نقشه های عادی در ابتدا به عنوان بافت های معمولی RGB نشان داده می شوند ، در آنجا اجزای رنگ R ، G و B (0 تا 1) به عنوان مختصات X ، Y و Z تفسیر می شوند. نقشه های عادی می توانند دو نوع باشند: دارای مختصات در فضای مدل (سیستم مختصات مشترک) یا فضای مماس (اصطلاح در روسی "فضای مماس" ، سیستم مختصات محلی یک مثلث است). گزینه دوم بیشتر استفاده می شود. هنگامی که نقشه های عادی در فضای مدل ارائه می شوند ، آنها باید دارای سه جز components باشند ، زیرا همه جهت ها را می توان نشان داد ، و هنگامی که در سیستم مختصات محلی ، فضای مماس هستید ، می توانید با دو جز components کنار بیایید و سومین را در یک سایه زن پیکسل بدست آورید .

برنامه های مدرن در زمان واقعی هنوز هم از نظر کیفیت تصویر بسیار بهتر از انیمیشن های پیش ساخته ارائه می شوند ، این مسئله قبل از هر چیز به کیفیت نور و پیچیدگی هندسی صحنه ها مربوط می شود. تعداد رئوس و مثلث محاسبه شده در زمان واقعی محدود است. بنابراین ، روش های کاهش مقدار هندسه بسیار مهم است. قبل از نقشه برداری عادی ، چندین روش از این دست ساخته شده است ، اما مدل های کم پلی ، حتی با نقشه برداری ، بسیار بدتر از مدل های پیچیده تر هستند. اگرچه نقشه برداری معمولی اشکالات مختلفی دارد (واضح ترین موارد - از آنجا که مدل کم پلی است ، این امر از مرزهای زاویه ای آن به راحتی قابل مشاهده است) ، کیفیت نهایی ارائه به طور محسوسی بهبود می یابد و پیچیدگی هندسی مدل ها را پایین می آورد. اخیراً افزایش محبوبیت این تکنیک و استفاده از آن در تمام موتورهای محبوب بازی به وضوح قابل مشاهده است. این امر به دلیل ترکیب کیفیت عالی و کاهش همزمان الزامات پیچیدگی هندسی مدل ها است. تکنیک نقشه برداری معمولی اکنون تقریباً در همه جا مورد استفاده قرار می گیرد ، همه بازی های جدید تا حد ممکن از آن استفاده می کنند. در اینجا فقط یک لیست کوتاه از بازی های رایانه های شخصی معروف است که از نقشه برداری معمولی استفاده می کنند: Far Cry ، Doom 3 ، Half-Life 2 ، Call of Duty 2 ، FEAR ، Quake 4. همه آنها بسیار بهتر از بازی های گذشته هستند ، از جمله به دلیل استفاده از نقشه های عادی.

تنها یک نتیجه منفی استفاده از این روش وجود دارد - افزایش حجم بافت ها. از این گذشته ، یک نقشه عادی به شدت بر روی شکل ظاهری یک شی influ تأثیر می گذارد و باید از وضوح کافی کافی برخوردار باشد ، بنابراین نیاز به حافظه ویدئویی و پهنای باند آن دو برابر می شود (در مورد نقشه های عادی فشرده نشده). اما اکنون کارت های ویدیویی با 512 مگابایت حافظه محلی در حال تولید هستند ، پهنای باند آن دائماً در حال رشد است ، روشهای فشرده سازی به طور خاص برای نقشه های معمولی توسعه یافته است ، بنابراین در واقع این محدودیت های کوچک اهمیت چندانی ندارند. اثر نقشه برداری طبیعی بسیار بیشتر است ، اجازه می دهد تا از مدل های نسبتاً کم پلی استفاده شود ، حافظه مورد نیاز برای ذخیره داده های هندسی کاهش یابد ، عملکرد بهبود یابد و یک نتیجه بصری بسیار مناسب داشته باشد.

نقشه برداری اختلاف منظر / نقشه برداری افست

نقشه برداری عادی ، که در سال 1984 توسعه یافته است ، با Relief Texture Mapping ارائه شد ، که توسط Olivera و Bishop در سال 1999 معرفی شد. این یک روش نقشه برداری بافت بر اساس اطلاعات عمق است. این روش در بازی ها کاربردی پیدا نکرد ، اما ایده آن به ادامه کار در زمینه نقشه برداری اختلاف منظر و بهبود آن کمک کرد. Kaneko نقشه برداری اختلاف منظر را در سال 2001 معرفی کرد ، که اولین روش کارآمد برای ارائه اثر اختلاف منظر با پیکسل بود. در سال 2004 ، ولز استفاده از نقشه برداری اختلاف منظر را روی تراشه های ویدیویی قابل برنامه ریزی نشان داد.

این روش شاید متفاوت ترین نام ها را داشته باشد. من کسانی را که ملاقات کردم لیست می کنم: نقشه برداری اختلاف منظر ، نقشه برداری افست ، نقشه برداری جابجایی مجازی ، نقشه برداری جابجایی در هر پیکسل. عنوان اول در مقاله برای اختصار استفاده شده است.
نقشه برداری Parallax یکی دیگر از گزینه های نقشه برداری دست انداز و تکنیک های عادی نقشه برداری است که به شما اطلاعات بیشتری نسبت به جزئیات سطح ، نمایش طبیعی تر سطوح سه بعدی ، همچنین بدون از دست دادن عملکرد زیاد ، می دهد. این تکنیک هم به نقشه برداری جابجایی و هم به صورت نقشه برداری طبیعی شبیه است ، جایی در این بین است. این روش همچنین برای نمایش جزئیات سطح بیشتر از مدل هندسی اصلی طراحی شده است. این شبیه نقشه برداری معمولی است ، اما تفاوت در این است که این روش با تغییر مختصات بافت ، نقشه برداری بافت را تحریف می کند به طوری که وقتی از زوایای مختلف به سطح نگاه می کنید ، به نظر می رسد محدب است ، اگرچه در واقع سطح صاف است و تغییر نمی کند . به عبارت دیگر ، نقشه برداری اختلاف منظر تکنیکی برای تقریب اثر تغییر مکان های سطح بسته به تغییر در دیدگاه است.

این تکنیک مختصات بافت را جابجا می کند (از این رو گاهی اوقات به این روش نقشه برداری افست می گویند) تا سطح حجیم تر به نظر برسد. ایده پشت روش این است که مختصات بافت نقطه ای را که بردار نمایش سطح را قطع می کند ، برگرداند. این امر برای نقشه ارتفاع به ردیابی اشعه (ردیابی اشعه) نیاز دارد ، اما اگر مقادیر تغییر زیادی نداشته باشد ("صاف" یا "صاف") ، با تقریب می توانید کنار بیایید. این روش بدون محاسبه اشتباه تقاطع ها و مقادیر زیاد جبران ، برای سطوحی با ارتفاع هموار متغیر مناسب است. این الگوریتم ساده با نقشه برداری طبیعی فقط با سه دستورالعمل سایه زن پیکسل متفاوت است: دو دستورالعمل ریاضی و یک برداشت اضافی از بافت. پس از محاسبه مختصات بافت جدید ، برای خواندن سایر لایه های بافت از آن استفاده می شود: بافت پایه ، نقشه معمولی و غیره این روش نقشه برداری اختلاف منظر بر روی تراشه های ویدئویی مدرن تقریباً به اندازه نقشه برداری معمولی از بافت م effectiveثر است و نتیجه آن در مقایسه با نقشه برداری معمولی ساده ، نمایشگر سطح واقع بینانه تری است.

اما استفاده از نقشه برداری منظر معمولی محدود به نقشه های ارتفاع با اختلاف کمی در مقادیر است. بی نظمی های "شیب دار" توسط الگوریتم به اشتباه پردازش می شود ، مصنوعات مختلف ظاهر می شود ، بافت ها "شناور" و غیره هستند. چندین روش اصلاح شده برای بهبود روش نقشه برداری اختلاف منظر توسعه یافته است. چندین محقق (Yerex ، Donnelly ، Tatarchuk ، Policarpo) روش های جدیدی را برای بهبود الگوریتم اولیه توصیف کرده اند. تقریباً همه ایده ها مبتنی بر ردیابی اشعه در سایه زن پیکسل برای تشخیص تقاطع های جزئیات سطح با یکدیگر است. تکنیک های اصلاح شده چندین نام مختلف دریافت کرده اند: نقشه برداری اختلاف منظر با انسداد ، نقشه برداری اختلاف منظر با فاصله های مختلف ، نقشه برداری انسداد اختلاف منظر. برای اختصار ، همه آنها را Parallax Occlusion Mapping می نامیم.

روش های نقشه برداری انسداد Parallax همچنین شامل تعیین ردیابی اشعه برای تعیین ارتفاع و محاسبه میزان دید Texel است. در واقع ، هنگامی که زاویه نسبت به سطح مشاهده می شود ، texels یکدیگر را مسدود می کنند ، و با توجه به این نکته ، می توانید عمق بیشتری به اثر اختلاف منظر اضافه کنید. تصویر حاصل از آن واقع گرایانه تر می شود و می توان از این قبیل روشهای بهبود یافته برای تسکین عمیق تر استفاده کرد ، برای به تصویر کشیدن دیوارهای آجری و سنگی ، روسازی و غیره بسیار مناسب است. به ویژه باید توجه داشت که تفاوت اصلی بین نقشه برداری اختلاف منظر و نقشه برداری جابجایی این است که محاسبات همه در هر پیکسل ، و نه سطحی. به همین دلیل است که این روش نام هایی مانند نقشه برداری جابجایی مجازی و نقشه برداری جابجایی در هر پیکسل دارد. به تصویر نگاه کنید ، باور کردن آن دشوار است ، اما سنگ فرش های اینجا فقط یک پیکسل به پیکسل است:

این روش به شما امکان می دهد بدون داشتن میلیون ها راس و مثلث که برای اجرای این هندسه مورد نیاز است ، سطوح دقیق را به طور موثر نمایش دهید. این جزئیات بالا را حفظ می کند (به جز سایه ها / لبه ها) و محاسبات انیمیشن را بسیار ساده می کند. این روش ارزان تر از استفاده از هندسه واقعی است و به طور قابل توجهی از چند ضلعی های کمتری استفاده می شود ، به خصوص در مواردی که جزئیات بسیار کمی دارند. کاربردهای زیادی برای الگوریتم وجود دارد و برای سنگها ، آجرها و مواردی از این دست بهترین کاربرد را دارد.

همچنین ، یک مزیت اضافی این است که نقشه های ارتفاع می توانند به صورت پویا تغییر کنند (سطح آب همراه با موج ، سوراخ گلوله در دیوارها و موارد دیگر). عیب این روش عدم وجود شبح های درست هندسی (لبه های جسم) است ، زیرا الگوریتم پیکسل به پیکسل است و یک نقشه برداری جابجایی واقعی نیست. اما باعث صرفه جویی در عملکرد به صورت کاهش بار در تغییر شکل ها ، انیمیشن روشنایی و هندسه می شود. حافظه ویدئویی مورد نیاز برای ذخیره مقدار زیادی از داده های هندسه را ذخیره می کند. این فناوری همچنین از یکپارچه سازی نسبتاً ساده در برنامه های موجود و استفاده از برنامه های کاربردی آشنا که برای نقشه برداری عادی در فرآیند استفاده می شود ، سود می برد.

این تکنیک اخیراً اخیراً در بازی های واقعی به کار رفته است. تا کنون ، آنها با نقشه برداری منظر ساده بر اساس نقشه های ارتفاع ساکن ، بدون ردیابی اشعه و محاسبه تقاطع ها ، کنار می آیند. در اینجا چند نمونه از نقشه برداری اختلاف منظر در بازی ها آورده شده است:

پردازش پس از پردازش

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

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

گزینه های مختلفی برای پردازش تصویر پس از ارائه وجود دارد. همه احتمالاً فیلترهای گرافیکی به اصطلاح زیادی را در ویرایشگرهای گرافیک دیده اند. این دقیقاً همان چیزی است که پس فیلترها نامیده می شوند: تاری ، تشخیص لبه ، تیز کردن ، سر و صدا ، صاف ، برجسته کردن ، و غیره. وقتی در حالت واقعی به رندر سه بعدی اعمال می شود ، این کار به صورت زیر انجام می شود - کل صحنه در یک منطقه خاص ، رندر ارائه می شود هدف ، و پس از ارائه اصلی این تصویر علاوه بر این با استفاده از سایه زن پیکسل پردازش می شود و فقط پس از آن بر روی صفحه نمایش داده می شود. از تأثیرات پس از پردازش در بازی ها ، بیشترین موارد مورد استفاده " بسیاری از اثرات پست دیگر وجود دارد: سر و صدا ، شعله ور ، اعوجاج ، قهوه ، و غیره.

در اینجا چند نمونه برجسته از پردازش پس از کار در برنامه های بازی وجود دارد:

محدوده دینامیکی بالا (HDR)

محدوده دینامیکی بالا (HDR) همانطور که برای گرافیک های سه بعدی اعمال می شود ، یک ارائه دامنه دینامیکی بالا است. ماهیت HDR توصیف شدت و رنگ با مقادیر واقعی فیزیکی است. مدل معمول برای توصیف تصویر RGB است ، زمانی که همه رنگها به عنوان مجموع رنگهای اصلی نشان داده می شوند: قرمز ، سبز و آبی ، با شدتهای مختلف به شکل مقادیر عدد صحیح ممکن از 0 تا 255 برای هر کد ، کدگذاری شده با هشت بیت در هر رنگ. نسبت حداکثر شدت به حداقل قابل نمایش توسط یک مدل یا دستگاه خاص را دامنه دینامیکی می نامند. بنابراین ، دامنه دینامیکی مدل RGB 256: 1 یا 100: 1 cd / m 2 (دو مرتبه اندازه) است. این مدل برای توصیف رنگ و شدت معمولاً به عنوان دامنه دینامیکی پایین (LDR) شناخته می شود.

مقادیر احتمالی LDR برای همه موارد کافی نیست ، فرد قادر است دامنه بسیار بیشتری را ببیند ، به ویژه در شدت نور کم ، و مدل RGB در چنین مواردی بسیار محدود است (و همچنین در شدت زیاد نیز). دامنه دینامیکی بینایی انسان از 10-6 تا 10 8 cd / m 2 است ، یعنی 10000000000000000: 1 (14 مرتبه قدر). ما نمی توانیم کل دامنه را همزمان ببینیم ، اما دامنه قابل مشاهده برای چشم در هر زمان مشخص تقریباً 10000: 1 است (چهار مرتبه قدر). بینایی به تدریج با مقادیر قسمت دیگر از محدوده روشنایی سازگار می شود ، با استفاده از اصطلاح سازگاری ، که به راحتی می توان با وضعیت خاموش شدن نور اتاق در شب توصیف کرد - در ابتدا چشم بسیار کمی می بیند ، اما با گذشت زمان آنها با شرایط تغییر یافته نور سازگار می شوند و چیزهای بیشتری را می بینند ... وقتی محیط تاریک را دوباره به نور تغییر می دهید ، همین اتفاق می افتد.

بنابراین ، دامنه دینامیکی مدل توصیف RGB برای نشان دادن تصاویری که شخص می تواند در واقعیت ببیند کافی نیست ، این مدل مقادیر احتمالی شدت نور را در قسمت های بالا و پایین دامنه به طور قابل توجهی کاهش می دهد. متداول ترین مثالی که در مواد HDR ذکر شده تصویری از یک اتاق تاریک با پنجره در یک خیابان روشن در یک روز آفتابی است. با یک مدل RGB می توانید از آنچه در خارج از پنجره است ، یا فقط از آنچه در داخل اتاق است ، یک نمایشگر عادی بدست آورید. مقادیر بیشتر از 100 cd / m 2 در LDR به طور کلی قطع می شوند ، که نمایش 3 بعدی نمایش صحیح چراغ های روشن را که مستقیماً به داخل دوربین می روند دشوار می کند.

تا کنون ، دستگاههای نمایش داده نمی توانند به طور جدی بهبود یابند ، و منطقی است که LDR را در محاسبات کنار بگذارید ، می توانید از مقادیر فیزیکی واقعی شدت و رنگ (یا متناسب خطی) استفاده کنید و حداکثر ممکن را در نمایش دهید مانیتور ماهیت نمایش HDR در استفاده از مقادیر شدت و رنگ در مقادیر فیزیکی واقعی یا متناسب خطی و استفاده از عدد صحیح نیست بلکه اعداد شناور با دقت بالا است (به عنوان مثال 16 یا 32 بیت). این محدودیت های مدل RGB را برطرف می کند و دامنه دینامیکی تصویر را به طرز چشمگیری افزایش می دهد. اما پس از آن هر تصویر HDR می تواند در هر محیط نمایشگر (همان مانیتور RGB) نمایش داده شود ، با بالاترین کیفیت ممکن برای آن با استفاده از الگوریتم های خاص.

ارائه HDR به شما امکان می دهد پس از ارائه تصویر ، میزان نوردهی را تغییر دهید. امکان شبیه سازی اثر انطباق بینایی انسان (حرکت از فضاهای باز روشن به اتاقهای تاریک و بالعکس) را فراهم می کند ، از نظر جسمی روشنایی صحیح را امکان پذیر می سازد ، و همچنین یک راه حل واحد برای اعمال جلوه های پس از پردازش (خیرگی ، شعله ور شدن ، شکوفا شدن) است. ، تاری حرکت). الگوریتم های پردازش تصویر ، تصحیح رنگ ، اصلاح گاما ، تاری حرکت ، شکوفه و سایر روش های پس از پردازش در نمایش HDR بهتر انجام می شود.

در برنامه های رندر سه بعدی به صورت بلادرنگ (به طور عمده بازی ها) ، رندر HDR چندی پیش شروع به استفاده کرد ، زیرا به محاسبات و پشتیبانی از هدف رندر در قالب های شناور نیاز دارد ، که ابتدا فقط در تراشه های ویدیویی با پشتیبانی از DirectX 9. مسیر معمول ارائه HDR در بازی ها: ارائه یک صحنه به یک بافر نقطه شناور ، پردازش پس از تصویر در یک محدوده رنگی گسترده (تغییر کنتراست و روشنایی ، تعادل رنگ ، جلوه های تابش خیره کننده و حرکت ، تابش لنز و مانند) ، استفاده از نگاشت صدا برای خروجی تصویر نهایی HDR به دستگاه نمایش LDR. گاهی اوقات از نقشه های محیطی در قالب های HDR استفاده می شود ، برای بازتاب های ساکن روی اشیا، ، استفاده از HDR در شبیه سازی انکسارهای دینامیکی و بازتاب ها بسیار جالب است ، برای این منظور می توان از نقشه های دینامیکی در قالب های شناور نیز استفاده کرد. به این می توانید نقشه های نوری را که از قبل محاسبه شده و در قالب HDR ذخیره شده اند ، اضافه کنید. بیشتر موارد ذکر شده برای مثال در Half-Life 2: Lost Coast انجام شده است.

رندر HDR برای پردازش پیچیده با کیفیت بالاتر از روش های معمول بسیار مفید است. همان شکوفه در مدل نمای HDR محاسبه شده واقع بینانه تر به نظر می رسد. به عنوان مثال ، همانطور که در بازی Far Cry Crytek انجام شده است ، از تکنیک های استاندارد ارائه HDR استفاده می شود: استفاده از فیلترهای شکوفه ارائه شده توسط Kawase و اپراتور نقشه برداری صدا Reinhard.

متأسفانه ، در برخی موارد ، توسعه دهندگان بازی می توانند با نام HDR فقط یک فیلتر شکوفه را در محدوده معمول LDR پنهان کنند. و گرچه بیشتر کاری که در حال حاضر در بازی هایی با رندر HDR انجام می شود شکوفایی با کیفیت بهتر است ، اما مزایای رندر HDR فقط به این پس از اثر محدود نمی شود بلکه انجام آن ساده ترین کار است.

نمونه های دیگر ارائه HDR در برنامه های زمان واقعی:


نگاشت صدا روند تبدیل یک محدوده درخشندگی HDR به محدوده LDR است که توسط دستگاه خروجی مانند مانیتور یا چاپگر نمایش داده می شود ، زیرا خروج تصاویر HDR به آنها نیاز به تبدیل دامنه دینامیکی و گستره مدل HDR به پویای LDR مربوطه دارد. محدوده ، معمولاً RGB. به هر حال ، دامنه روشنایی ارائه شده در HDR بسیار گسترده است ، این یک مرتبه از چندین مرتبه از دامنه دینامیکی مطلق در یک زمان ، در یک صحنه است. و محدوده قابل تولید در دستگاههای خروجی متعارف (مانیتور ، تلویزیون) فقط حدود دو مرتبه اندازه دامنه دینامیکی است.

تبدیل HDR به LDR را نگاشت صدا می نامند و از بین می رود و از ویژگی های بینایی انسان تقلید می کند. به این الگوریتم ها معمولاً عبارات نگاشت لحن گفته می شود. اپراتورها تمام مقادیر روشنایی تصویر را به سه نوع مختلف تقسیم می کنند: تاریک ، متوسط \u200b\u200bو روشن. بر اساس تخمین میزان روشنایی میانه ها ، روشنایی کلی اصلاح می شود ، مقادیر روشنایی پیکسل های صحنه برای توزیع مجدد توزیع می شود تا وارد محدوده خروجی شود ، پیکسل های تیره روشن شده و روشنایی ها تیره می شوند. سپس ، درخشان ترین پیکسل های تصویر در محدوده دستگاه خروجی یا مدل نمایش خروجی مقیاس بندی می شوند. تصویر زیر ساده ترین تبدیل یک تصویر HDR به محدوده LDR ، یک تغییر شکل خطی را نشان می دهد و یک اپراتور نگاشت لحن پیچیده تر روی قطعه ای در مرکز اعمال می شود ، که همانطور که در بالا توضیح داده شد کار می کند:

مشاهده می شود که تنها با استفاده از نگاشت لحن غیرخطی می توانید حداکثر جزئیات تصویر را بدست آورید و اگر HDR را به صورت خطی به LDR تبدیل کنید ، بسیاری از چیزهای کوچک به سادگی از دست می روند. هیچ الگوریتم نگاشت صحیحی وجود ندارد ، چندین عملگر وجود دارد که در موقعیت های مختلف نتایج خوبی می دهند. در اینجا یک مثال خوب از دو عبارت مختلف نگاشت لحن مختلف آورده شده است:

همراه با رندر HDR ، به تازگی از نگاشت صدا در بازی ها استفاده شده است. شبیه سازی اختیاری خصوصیات بینایی انسان امکان پذیر شد: از دست دادن وضوح در صحنه های تاریک ، سازگاری با شرایط جدید روشنایی هنگام انتقال از مناطق بسیار روشن به تاریک و بالعکس ، حساسیت به تغییر کنتراست ، رنگ ... به این ترتیب تقلید از توانایی انطباق بینایی در Far Cry به نظر می رسد. تصویر اول تصویری را که بازیکن مشاهده می کند فقط در حال تبدیل شدن از یک اتاق تاریک به یک فضای باز با نور زیاد است ، نشان می دهد و تصویر دوم همان تصویر را چند ثانیه پس از اقتباس نشان می دهد.

شکوفه

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

در گرافیک 3D Bloom ، فیلتر با استفاده از پردازش اضافی ساخته می شود - مخلوط کردن یک قاب تاری توسط فیلتر تاری (کل قاب یا مناطق روشن آن ، فیلتر معمولاً چندین بار اعمال می شود) و قاب اصلی. یکی از رایج ترین الگوریتم های پس از فیلتر شکوفه در بازی ها و سایر برنامه های زمان واقعی:

  • صحنه به یک بافر فریم تبدیل می شود ، شدت تابش اشیا به کانال آلفا بافر نوشته می شود.
  • بافر فریم در یک بافت خاص برای پردازش کپی می شود.
  • وضوح بافت به عنوان مثال 4 برابر کاهش می یابد.
  • فیلترهای ضد بیگانه (تاری) بر اساس داده های شدت ثبت شده در کانال آلفا ، چندین بار بر روی تصویر اعمال می شوند.
  • تصویر حاصل با قاب اصلی در بافر فریم ترکیب شده و نتیجه نمایش داده می شود.

مانند انواع دیگر پردازش بعد ، شکوفه بهتر است هنگام ارائه در دامنه دینامیکی بالا (HDR) استفاده شود. نمونه های اضافی پردازش تصویر نهایی توسط یک فیلتر شکوفه از برنامه های سه بعدی در زمان واقعی:

تاری حرکت

تاری حرکت در عکسبرداری و فیلمبرداری به دلیل حرکت اجسام درون فریم در زمان نوردهی قاب در حالی که شاتر لنز باز است ، رخ می دهد. قاب گرفته شده توسط دوربین (عکس ، فیلم) عکس فوری گرفته شده با مدت زمان صفر را نشان نمی دهد. به دلیل محدودیت های تکنولوژیکی ، قاب مدت زمان مشخصی را نشان می دهد ، در این مدت اشیا in موجود در قاب می توانند مسافت مشخصی را حرکت دهند و اگر این اتفاق بیفتد ، تمام موقعیت های جسم در حال حرکت در طول شاتر باز لنز ارائه می شود روی قاب به عنوان یک تصویر تاری در طول بردار حرکت ... این در صورتی اتفاق می افتد که جسم نسبت به دوربین در حال حرکت باشد یا دوربین نسبت به جسم باشد و مقدار تاری آن تصور بزرگی از سرعت جسم را به ما می دهد.

در انیمیشن سه بعدی ، در هر لحظه از زمان (قاب) ، اشیا at در مختصات خاصی در فضای سه بعدی قرار دارند ، شبیه دوربین مجازی با نوردهی بی نهایت سریع. در نتیجه ، هیچ تاری مانند آنچه توسط دوربین و چشم انسان هنگام مشاهده اجسام با سرعت حرکت به دست می آید ، وجود ندارد. غیر طبیعی و غیرواقعی به نظر می رسد. یک مثال ساده را در نظر بگیرید: چندین کره به دور یک محور می چرخند. در اینجا تصویری از نحوه به نظر رسیدن این حرکت با و بدون تاری وجود دارد:

حتی نمی توانید از روی تصویر بدون تاری تشخیص دهید که کره ها در حال حرکت هستند یا خیر ، در حالی که تاری حرکت ایده روشنی از سرعت و جهت حرکت اجسام می دهد. ضمناً ، عدم تاری حرکت نیز دلیلی بر این است که حرکت در بازی ها با سرعت 25-30 فریم در ثانیه تند به نظر می رسد ، اگرچه فیلم ها و ویدیوها با همان پارامترهای نرخ فریم یکسان به نظر می رسند. برای جبران عدم وجود تاری حرکت ، سرعت بالای فریم (60 فریم در ثانیه یا بالاتر) یا استفاده از روشهای اضافی پردازش تصویر برای تقلید از اثر تاری حرکت مطلوب است. این مورد برای بهبود نرمی انیمیشن و برای تأثیر همزمان عکس واقع در فیلم و فیلم استفاده می شود.

ساده ترین الگوریتم تاری حرکت برای برنامه های لحظه ای استفاده از داده های فریم های انیمیشن قبلی برای ارائه فریم فعلی است. اما همچنین روش های تاریک حرکت مدرن کارآمدتر و مدرنی وجود دارد که از فریم های قبلی استفاده نمی کنند ، اما بر اساس بردارهای حرکت اجسام موجود در قاب هستند و همچنین فقط یک مرحله دیگر پس از پردازش به روند ارائه اضافه می کنند. اثر تاری می تواند تمام صفحه باشد (که معمولاً در مراحل بعد از پردازش انجام می شود) ، یا برای اشیا individual منفرد ، با سریع ترین سرعت در حال حرکت است.

کاربردهای احتمالی اثر حرکت تاری در بازی ها: همه بازی های مسابقه ای (برای ایجاد اثر حرکت بسیار بالا و استفاده هنگام تماشای تکرارهای شبیه تلویزیون) ، بازی های ورزشی (همان تکرارها و در خود بازی ، تاری ممکن است بر روی اشیا moving در حال حرکت بسیار سریع ، مانند یک توپ یا توله استفاده شود ، بازی های مبارزه ای (حرکات سریع سلاح های غوغا ، بازوها و پاها) ، بسیاری از بازی های دیگر (در طول صحنه های برش 3D در موتور). در اینجا چند نمونه از جلوه های ارسال تیرگی حرکت از بازی ها آورده شده است:

عمق میدان (DOF)

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

همانطور که حدس زدید ، این یک عکس است ، نه یک رندر. در گرافیک رایانه ای ، هر شی از تصویر ارائه شده کاملاً واضح است ، زیرا در محاسبات از لنزها و اپتیک ها تقلید نمی شود. بنابراین ، برای دستیابی به رئالیسم عکس و سینما ، باید الگوریتم های ویژه ای برای کار مشابهی در گرافیک رایانه استفاده شود. این تکنیک ها تأثیر تمرکز متفاوت را روی اشیا at در فواصل مختلف شبیه سازی می کنند.

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

سطح جزئیات (LOD)

سطح جزئیات در برنامه های سه بعدی روشی برای کاهش پیچیدگی ارائه یک قاب ، کاهش تعداد کل چند ضلعی ها ، بافت ها و سایر منابع در یک صحنه و به طور کلی کاهش پیچیدگی آن است. یک مثال ساده: مدل شخصیت اصلی شامل 10000 چند ضلعی است. در مواردی که در صحنه پردازش شده نزدیک به دوربین قرار دارد ، مهم است که از همه چند ضلعی ها استفاده شود ، اما در فاصله بسیار زیادی از دوربین در تصویر نهایی ، فقط چند پیکسل طول می کشد و هیچ نقطه در پردازش همه 10،000 چند ضلعی شاید ، در این حالت ، صدها چند ضلعی یا حتی چند قطعه و یک بافت مخصوص تهیه شده برای تقریباً یکسان نمایش مدل کافی باشد. بر این اساس ، در فواصل متوسط \u200b\u200bاستفاده از مدلی متشکل از مثلث بیشتر از ساده ترین مدل و کمتر از پیچیده ترین مدل منطقی است.

از روش LOD معمولاً هنگام مدل سازی و ارائه صحنه های سه بعدی ، با استفاده از چندین سطح پیچیدگی (هندسی یا سایر موارد) متناسب با فاصله آنها از دوربین ، استفاده می شود. این تکنیک اغلب توسط توسعه دهندگان بازی برای کاهش تعداد چند ضلعی ها در یک صحنه و بهبود عملکرد استفاده می شود. وقتی در نزدیکی دوربین قرار دارند ، از مدلهایی با حداکثر جزئیات (تعداد مثلث ، اندازه بافت ، پیچیدگی بافت) ، برای بالاترین کیفیت تصویر ممکن و بالعکس ، هنگامی که مدلها از دوربین برداشته می شوند ، استفاده می شود ، مدل هایی با مثلث کمتر استفاده می شوند - برای افزایش سرعت ارائه. تغییر پیچیدگی ، به ویژه تعداد مثلث موجود در مدل ، می تواند به طور خودکار بر اساس یک مدل سه بعدی با حداکثر پیچیدگی یا ممکن است براساس چندین مدل از قبل آماده شده با سطوح مختلف جزئیات ، رخ دهد. با استفاده از مدل هایی با جزئیات کمتر در فواصل مختلف ، از پیچیدگی ارائه شده تخمین زده می شود ، تقریباً هیچ گونه خرابی در جزئیات کلی تصویر وجود ندارد

این روش به ویژه در صورتی م effectiveثر است که تعداد اشیا موجود در صحنه زیاد باشد و در فواصل مختلف از دوربین قرار داشته باشند. به عنوان مثال ، یک بازی ورزشی مانند شبیه ساز هاکی یا فوتبال را در نظر بگیرید. مدل های با کاراکتر پلی کم در مواقعی که از دوربین دور باشند استفاده می شود و هنگام بزرگنمایی ، مدل ها با تعداد زیادی چند ضلعی جایگزین مدل ها می شوند. این مثال بسیار ساده است و ماهیت روش را بر اساس دو سطح جزئیات مدل نشان می دهد ، اما هیچ کس زحمت ایجاد چندین سطح جزئیات را ندارد تا اثر تغییر سطح LOD خیلی محسوس نباشد ، به طوری که جزئیات به تدریج با نزدیک شدن جسم "رشد" کنید.

علاوه بر فاصله از دوربین ، فاکتورهای دیگری نیز می توانند برای LOD مهم باشند - تعداد کل اشیا the روی صفحه (وقتی یک یا دو شخصیت در کادر هستند ، سپس از مدل های پیچیده استفاده می شود و وقتی 10-20 هستند ، آنها) تغییر به فریم های ساده تر) یا تعداد فریم در ثانیه (محدودیت هایی برای مقادیر FPS تنظیم شده است که در آن سطح جزئیات تغییر می کند ، به عنوان مثال ، در FPS زیر 30 ما از پیچیدگی مدل های روی صفحه و 60 را کاهش می دهیم) برعکس ، افزایش می یابد). از دیگر عوامل احتمالی تأثیرگذار بر میزان جزئیات می توان به سرعت حرکت جسم (بعید به نظر می رسد که وقت کافی برای در نظر گرفتن موشک در حرکت را داشته باشید ، اما حلزون را به راحتی می توانید مشاهده کنید) ، اهمیت شخصیت از نظر بازی (همان فوتبال را در نظر بگیرید - برای مدل بازیکنی که کنترل می کنید ، می توانید از هندسه و بافت های پیچیده تری استفاده کنید ، آن را نزدیک ترین و بیشتر اوقات می بینید). همه اینها به خواسته ها و توانایی های یک توسعه دهنده خاص بستگی دارد. نکته اصلی این است که زیاده روی نکنید ، تغییرات مکرر و قابل توجه در سطح جزئیات آزار دهنده است.

بگذارید یادآوری کنم که سطح جزئیات لزوما فقط مربوط به هندسه نیست ، همچنین می توان از این روش برای صرفه جویی در منابع دیگر نیز استفاده کرد: هنگام ساخت تکسچر (اگرچه تراشه های ویدئویی قبلاً از نگاشت نگاشت استفاده می کنند ، اما گاهی اوقات منطقی است که ساختارها را به دیگران تغییر دهیم) ، با جزئیات مختلف) ، تکنیک های نورپردازی (اجسام نزدیک با توجه به الگوریتم پیچیده ای روشن می شوند ، و اشیای دور - با توجه به یک الگوی ساده) ، روش بافت و غیره.

نشان دادن نمونه ای از بازی چندان آسان نیست ، از یک طرف ، تا حدودی تقریباً در هر بازی LOD استفاده می شود ، از طرف دیگر ، نشان دادن این مسئله همیشه امکان پذیر نیست ، در غیر این صورت نکته کمی وجود خواهد داشت در خود LOD.

اما در این مثال ، هنوز مشخص است که نزدیکترین مدل اتومبیل حداکثر جزئیات را دارد ، دو یا سه ماشین بعدی نیز بسیار نزدیک به این سطح هستند ، و همه موارد دور دارای ساده سازی های قابل مشاهده هستند ، در اینجا فقط مهمترین موارد وجود دارد: بدون آینه دید عقب ، پلاک ، برف پاک کن شیشه جلو اتومبیل ، و غیره تجهیزات روشنایی اضافی. و از دورترین مدل حتی سایه ای در جاده وجود ندارد. این سطح الگوریتم جزئیات در عمل است.

روشنایی جهانی

شبیه سازی نور واقع گرایانه صحنه دشوار است ، هر پرتوی از نور در واقعیت بارها و بارها منعکس و شکسته می شود ، تعداد این بازتاب ها محدود نیست. و در رندر سه بعدی ، تعداد بازتاب ها به شدت به قابلیت های طراحی بستگی دارد ، هر محاسبه صحنه یک مدل فیزیکی ساده است و تصویر حاصل فقط به واقعیت نزدیک است.

الگوریتم های نورپردازی را می توان به دو مدل تقسیم کرد: نور مستقیم یا محلی و نور جهانی (نور مستقیم یا محلی و نور جهانی). مدل روشنایی محلی با استفاده از محاسبه روشنایی مستقیم ، نور از منابع نور تا اولین تقاطع نور با یک سطح مات ، برهم کنش اشیا با یکدیگر در نظر گرفته نمی شود. اگرچه این مدل سعی دارد با افزودن نور پس زمینه یا یکنواخت (محیط) این کار را جبران کند ، اما این ساده ترین تقریب است ، یک نور بسیار ساده از تمام اشعه های غیرمستقیم منابع نور ، که رنگ و شدت روشنایی اجسام را در غیاب تعیین می کند. منابع نور مستقیم.

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

در مدل روشنایی جهانی ، روشنایی جهانی ، نورپردازی با در نظر گرفتن تأثیر اشیا بر روی یکدیگر محاسبه می شود ، بازتاب و شکستهای متعدد پرتوهای نور از سطح جسم ، مواد کاستیک و پراکندگی زیر سطح در نظر گرفته می شود. این مدل به شما امکان می دهد تا تصویری واقع بینانه تر بدست آورید ، اما فرایند را پیچیده می کند و به منابع قابل توجهی بیشتر نیاز دارد. چندین الگوریتم روشنایی جهانی وجود دارد ، ما نگاهی سریع به تابش (محاسبه روشنایی غیرمستقیم) و نگاشت فوتون خواهیم داشت (محاسبه نور جهانی بر اساس نقشه های فوتونی که با استفاده از ردیابی از قبل محاسبه شده اند). همچنین روش های ساده شده ای برای شبیه سازی نور غیر مستقیم وجود دارد ، مانند تغییر روشنایی کلی یک صحنه بسته به تعداد و میزان روشنایی منابع نور در آن ، یا استفاده از تعداد زیادی چراغ نقطه ای که در اطراف صحنه قرار گرفته اند تا شبیه سازی نور منعکس شده را انجام دهند ، اما هنوز هم این یک الگوریتم واقعی نیست.

الگوریتم تابش فرایند محاسبه بازتاب های ثانویه پرتوهای نور از یک سطح به سطح دیگر و همچنین از محیط به اشیا است. پرتوها از منابع نور ردیابی می شوند تا زمانی که قدرت آنها به زیر سطح مشخصی برسد یا اینکه تابش ها به تعداد بازتاب مشخصی برسند. این یک روش رایج GI است ، محاسبات معمولاً قبل از ارائه انجام می شوند و نتایج محاسبه را می توان برای ارائه به صورت real-time استفاده کرد. ایده های اساسی تابش بر اساس فیزیک انتقال گرما است. سطوح اجسام به مناطق کوچکی به نام وصله شکسته شده و فرض بر این است که نور منعکس شده در همه جهات به طور مساوی پخش می شود. به جای محاسبه هر پرتو برای چراغ ها ، از تکنیک متوسط \u200b\u200bسازی استفاده می شود که چراغ ها را بر اساس سطح انرژی تولید شده به لکه های تقسیم می کند. این انرژی به طور متناسب بین تکه های سطح توزیع می شود.

روش دیگر برای محاسبه روشنایی جهانی ، که توسط Henrik Wann Jensen پیشنهاد شده است ، روش نگاشت فوتون است. نقشه های فوتونیک یکی دیگر از الگوریتم های تابش نور جهانی است که برای شبیه سازی نحوه تعامل پرتوهای نور با اجسام در یک صحنه استفاده می شود. این الگوریتم بازتاب های ثانویه اشعه ، شکست نور از طریق سطوح شفاف ، بازتاب پراکنده را محاسبه می کند. این روش شامل محاسبه روشنایی نقاط سطح در دو گذر است. اولین مورد ردیابی مستقیم اشعه های نور با بازتاب های ثانویه است ، این یک فرآیند اولیه است که قبل از رندر اصلی انجام می شود. این روش انرژی فوتونهایی را که از منبع نور به اجسام موجود در صحنه می روند محاسبه می کند. وقتی فوتونها به سطح می رسند ، نقطه تقاطع ، جهت و انرژی فوتون در یک حافظه نهان ذخیره می شود که نقشه فوتون نامیده می شود. نقشه های فوتونیکی را می توان برای استفاده های بعدی در دیسک ذخیره کرد ، بنابراین نیازی به ارائه آنها در هر فریم نیست. بازتاب فوتون ها تا زمانی که کار بعد از تعداد معینی بازتاب یا رسیدن به انرژی خاصی متوقف شود ، محاسبه می شوند. پاس رندر دوم ، نور پیکسل های صحنه را با اشعه مستقیم محاسبه می کند ، با در نظر گرفتن داده های ذخیره شده در نقشه های فوتون ، انرژی فوتون به انرژی روشنایی مستقیم اضافه می شود.

محاسبات روشنایی جهانی که از تعداد زیادی بازتاب ثانویه استفاده می کنند بسیار بیشتر از محاسبات روشنایی مستقیم است. تکنیک هایی برای محاسبه سخت افزاری یک شهر رادیویی در زمان واقعی وجود دارد که از قابلیت های جدیدترین نسل تراشه های ویدئویی قابل برنامه ریزی استفاده می کند ، اما تاکنون صحنه هایی که نور جهانی در زمان واقعی برای آنها محاسبه می شود باید کاملاً ساده باشد و بسیاری از ساده سازی ها انجام شده است در الگوریتم ها

اما آنچه برای مدت طولانی مورد استفاده قرار گرفته است ، نور جهانی از پیش محاسبه شده استاتیک است که برای صحنه های بدون تغییر موقعیت منابع نور و اجسام بزرگی که به شدت بر نور تأثیر می گذارند ، قابل قبول است. از این گذشته ، محاسبه روشنایی جهانی به موقعیت ناظر بستگی ندارد و اگر موقعیت چنین اشیایی در صحنه و پارامترهای منابع نور در صحنه تغییر نکند ، مقادیر روشنایی محاسبه شده قبلی می تواند استفاده شود این در بسیاری از بازی ها استفاده می شود ، داده های محاسبه GI را به صورت نقشه های نوری ذخیره می کند.

همچنین الگوریتم های قابل قبولی برای شبیه سازی روشنایی جهانی پویا وجود دارد. به عنوان مثال ، یک روش ساده برای استفاده در برنامه های زمان واقعی برای محاسبه روشنایی غیر مستقیم یک جسم در یک صحنه وجود دارد: رندر ساده تمام اشیا با جزئیات کاهش یافته (به جز موردی که نور برای آن محاسبه می شود) نقشه مکعب با وضوح (همچنین می تواند برای نمایش بازتاب های پویا در سطح جسم مورد استفاده قرار گیرد) ، سپس فیلتر کردن این بافت (عبورهای متعدد از فیلتر محو) و استفاده از داده ها از بافت محاسبه شده برای روشن کردن این جسم به عنوان یک مکمل برای هدایت روشنایی در مواردی که محاسبه دینامیکی بیش از حد سنگین است ، می توانید با نقشه های تابشی ساکن کنار بیایید. مثالی از بازی MotoGP 2 ، که به وضوح تأثیر مفید حتی یک تقلید ساده از GI را نشان می دهد:



مطمئناً شما با شرایطی آشنا هستید که سایه بان را خیلی دوست داشتید ، اما از آنجا که دانش لازم را ندارید ، نمی توانید سایه بان را روی Minecraft نصب کنید. نگران نباشید ، در مقاله امروز ما به جزئیات نحوه نصب سایه بان ها در Minecraft خواهیم پرداخت!

همانطور که می دانید ، بیشتر سایه بان ها به همراه مودهای اضافی نصب می شوند که به نوبه خود مقدار زیادی حافظه ویدیویی و منابع RAM را مصرف می کنند. اما اگر مدی را بخواهید که دارای سایه بان های زیبا باشد و کامپیوتر یا لپ تاپ ضعیفی داشته باشید ، چه می کنید؟ امروز ما نیز راه حل این مسئله را بررسی خواهیم کرد. خوب ، بیایید شروع کنیم!

سایه بان ها در Minecraft چیست و برای چه کارهایی هستند؟

Shaders Mod یک حالت کاملاً واقع بینانه Minecraft است که نور واقعی تر و همچنین سایه های واقعی تری را ارائه می دهد که اشکال را منعکس می کند.

بنابراین ، حالت های shader به معنای واقعی کلمه دنیای Minecraft شما را به جهانی واقع بینانه تر ، کاملاً غیر قابل مقایسه با دنیای بازی استاندارد تبدیل می کنند. بنابراین ، اگر می خواهید بدانید که گرافیک واقع بینانه در Minecraft چگونه است ، پس خواندن این مقاله را ادامه دهید!

چگونه سایه بان ها را برای Minecraft بارگیری کنیم؟

در اینترنت ، تعداد زیادی از درگاه ها و خدمات بازی سایه بان های بازی را با حالت های اضافی برای بارگیری ارائه می دهند. همانطور که قبلاً گفتیم ، نصب مودها تأثیر زیادی در عملکرد بازی دارد ، خصوصاً اگر کامپیوتر یا لپ تاپ ضعیفی دارید.

بنابراین ، در زیر محبوب ترین و همه کاره ترین سایه های بازی را که برای هر نسخه از Minecraft مناسب هستند ، لیست می کنیم.

Bbepc-lite-nvidia-fix.zip - بارگیری 599 بار - 72 کیلوبایت

Chocapic13.zip - بارگیری 682 بار - 443 کیلوبایت

Continuum.zip - بارگیری 455 بار - 131 کیلوبایت

Kadir-nck-shader-v1.2.zip - بارگیری 438 بار - 30 کیلوبایت

Plunderpixels_shaders_1.7.x.zip - بارگیری 440 بار - 36 کیلوبایت

Robobo1221.zip - 399 بار بارگیری - 180 کیلوبایت

چگونه سایه بان ها را روی Minecraft 1.7.10 ، 1.8 ، 1.8.8 ، 1.10.2 ، 1.11.2 ، 1.12 ، 1.12.2 نصب کنیم؟

  • اولین کاری که باید انجام دهید این است که Optifine را بارگیری کنید. با کلیک بر روی دکمه زیر می توانید این کار را انجام دهید.

Optifine_1.7.10.rar - بارگیری شده 668 بار - 1 مگابایت

Optifine_1.8.rar - بارگیری 385 بار - 1 مگابایت

Optifine_1.8.8.rar - بارگیری 323 بار - 1 009 KB

Optifine_1.10.2.rar - بارگیری 345 بار - 1 مگابایت

Optifine_1.11.2.rar - بارگیری 405 بار - 1 مگابایت

Optifine_1.12.rar - بارگیری 353 بار - 1 مگابایت

Optifine_1.12.2.rar - بارگیری 797 بار - 2 مگابایت

  • سپس حالت Optifine را نصب کنید. بدون نصب آن ، سایه بان ها کار نمی کنند.
  • پس از آن سایه بان مورد نظر جهت نصب برای Minecraft را بارگیری کنید.
  • اکنون پوشه را با سایه باز کنید ، برای این میانبر صفحه کلید را فشار دهید Win + Rو سپس دستور را بنویسید: "٪ Appdata٪ /. Minecraft / shaderpacks"و دکمه را فشار دهید خوب.
  • در پوشه باز شده ، باید سایه اندازهایی را که می خواهید برای Minecraft استفاده کنید حرکت دهید.

  • بعد از مراحل بالا ، فقط باید Minecraft را شروع کنید. وارد منوی تنظیمات شوید و برگه را انتخاب کنید "کارایی"... در اینجا شما باید عملکرد را غیرفعال کنید "رندر سریع".

  • در بخش "تنظیمات گرافیک"برگه را باز کنید "Shaders" ، و سایه بان مورد نیاز را فعال کنید. از تنظیمات خارج شوید ، جهانی بسازید و از نمای قابل پخش جدید لذت ببرید.

سQالات متداول / پاسخ های سایه بان

پوشه shaderpacks کجاست؟

مسیر پوشه: "٪ Appdata٪ /. Minecraft / shaderpacks".

چرا نمی توانم دکمه Shaders را در منوی گزینه ها پیدا کنم؟

مطمئن شوید که Optifine را نصب کرده اید و از نسخه صحیح آن استفاده می کنید.

از کجا می توانم Optifine را بارگیری کنم؟

برای بارگیری Optifine ، باید از پیوندهای ارائه شده در مقاله بالا استفاده کنید.

آیا در نصب سایه بان ها محدودیتی وجود دارد؟

هیچ محدودیتی وجود ندارد اما در یک جلسه بازی ، شما فقط می توانید از یک بسته سایه بان استفاده کنید.

آیا سایه بان ها روی سرورها کار می کنند؟

نه همیشه ، اما بیشتر سرورهای بازی از کار آنها پشتیبانی می کنند.

ویدئو: چگونه سایه بان ها را روی Minecraft 1.7.10 نصب کنیم؟

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

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

نصب شامل دو مرحله است ، ابتدا باید مد را روی سایه بان ها نصب کنید و سپس سایه بان های اضافی را به آن اختصاص دهید

مرحله شماره 1 - نصب حالت برای سایه بان ها

  1. جاوا را بارگیری و نصب کنید
  2. نصب OptiFine HD
    یا ShadersMod;
  3. بایگانی حاصل را در هر مکان بسته بندی می کنیم.
  4. پرونده jar را اجرا کنید ، زیرا او یک نصاب است.
  5. این برنامه مسیر بازی را به شما نشان می دهد ، اگر همه چیز درست است ، روی Yes ، Ok، Ok کلیک کنید.
  6. قابل اعتماد و متخصص .minecraft و یک پوشه در آنجا ایجاد کنید سایه بان ها;
  7. وارد پرتاب می شویم و در خط پروفایل جدیدی با نام "ShadersMod" مشاهده می کنیم ، در غیر این صورت ، آن را به صورت دستی انتخاب کنید.
  8. بعد باید shaderpacks را بارگیری کنید

مرحله شماره 2 - نصب سایه بان

  1. shaderpack مورد علاقه خود را بارگیری کنید (در انتهای مقاله لیست کنید)
  2. کلیدها را فشار دهید WIN + R
  3. قابل اعتماد و متخصص .minecraft / shaderpacks... اگر چنین پوشه ای وجود ندارد ، آن را ایجاد کنید.
  4. بایگانی سایه بان را به آن منتقل یا استخراج کنید .minecraft / shaderpacks... مسیر باید به این شکل باشد: .minecraft / shaderpacks / SHADER_FOLDER_NAME / shaders / [. فایلهای fsh و .vsh داخل]
  5. Minecraft را شروع کنید و بروید تنظیمات\u003e Shaders... در اینجا لیستی از سایه بان های موجود را مشاهده خواهید کرد. موارد مورد نیاز را انتخاب کنید
  6. در تنظیمات سایه بان "tweakBlockDamage" را فعال کنید ، "CloudShadow" و "OldLighting" را غیرفعال کنید

باورنکردنی ساینده های Sonic Ether
سایه بانهای سیلدور
سایه بانهای Chocapic13
yShaders sensi277 "
Shaders MrMeep_x3 "
Naelego "s Cel Shaders
سایه بان های RRe36
Shaders CUDA DeDelner
ساینده های اسیدی bruceatsr44 "
سایه بان های Beed28
بسته سایه بان Ziipzaap
سایبانهای robobo1221 "
سایه بانهای dvv16
سایه بان های فوق العاده Stazza85
بسته سایه بان های hoo00 B
گیاهان تکان دهنده Regi24
MrButternuss ShaderPack
گرافیک عالی DethRaid در مورد Shaders Nitro
Edi "s Shader ForALLPc" s
ساینده های TME CrankerMan
Kadir Nck Shader (برای اسکیت 702)
سایه بانهای Werrus
Knewtonwako "s Life Nexus Shaders
سایه بان CYBOX
CrapDeShoes CloudShade آلفا
AirLoocke42 Shader
Shaders BSL CaptTatsu
سایه بان های Triliton
ShadersMcOfficial "Bloominx Shaders (Chocapic13" Shaders)
dotModded "ساینده های پیوسته
Qwqx71 "s Lunar Shaders (سایه بان chocapic13")