Bump, Displacement, Normal Map
یکی از عواملی که باعث میگردد ساخت یک متریال یا جنسیت مدل سه بعدی در زمان رندر طبیعی به نظر برسد ایجاد ناهمواری یا بافت بر روی سطح متریال یک موضوع است. چیزی که در زمان رندر باعث ایجاد ناهمواری یا بافت میگردد، استفاده از سه پارامتر Bump,Displacement,Normal Map است. اما تفاوت و شباهتهای هریک از اینها چیست و هر کدام در کجا کاربرد دارند؟
ما در نرم افزارها به دو صورت کلی می توانیم ناهمواری یا برجستگی برروی موضوعات ایجاد کنیم. حالت اول، در هنگام مدلسازی است که در این حالت باید از تعداد سطوح خیلی زیاد استفاده کرد و همین امر باعث سنگین شدن حجم مدل و به همان نسبت طولانی تر شدن زمان محاسبات رندر و داینامیک است که این گزینه راهکار خیلی مناسبی برای ایجاد بافت نیست. البته در جاهایی مثل موضوعات نزدیک به دوربین در انیمیشن و جلوه های ویژه که نیاز به رئال بودن مدل دارد شاید مجبور به استفاده از این روش شویم. اما در اکثر پلانها از روشهای دیگر استفاده خواهیم کرد.
در روش دوم به جای ایجاد سطحهای خیلی زیاد در هنگام مدلسازی، مدل را با جزيیات کم ساخته و سپس بافت مورد نظر را در متریال اعمال نموده و سپس از موضوع رندر میگیریم. در این روش بافت فقط در زمان رندر محاسبه خواهد شد، البته اکنون با داشتن تکنولوژی های بالای کارتهای گرافیک این نوع بافتها نیز در صفحه نمایش (Viewport) نیز قابل رویت هستند.
در کل روش دوم، روش مقرون به صرفه تری نسبت به روش اول است و همچین به زمان کمتری در رندر و محاسبات داینامیکی نیاز دارد. اما روش دوم خود چند نوع دارد که در ادامه به توضیح روش دوم و تفاوتهای آنها می پردازیم.
برای ایجاد بافت در متریال یک موضوع در زمان رندر میتوان از یک تکسچر برای ایجاد بافت استفاده نمود. این تکسچرها بسته به نوع استفاده شان (Bump, Displacement, Normal Map ) انواع مختلفی خواهند داشت.
در این روش (ایجاد بافت در متریال) دو حالت وجود خواهد داشت. ۱- ایجاد بافت فقط بر روی متریال در زمان رندر ۲- ایجاد بافت برروی مدل در زمان رندر
در روش اول ما با ساخت یک تکسچر در متریال ناهمواری را بر روی سطح متریال ایجاد میکنیم و این ناهمواری فقط بر روی متریال اعمال شده و بر روی حجم موضوع هیچ تاثیری ندارد. این روش برای موضوعاتی استفاده می شود که از دوربین فاصله زیادی دارند و جزئیاتشان خیلی قابل توجه نیست. البته این روش در ساخت Game کاربرد فراوانی دارد. برای انجام این کار ما از دو نوع تکسچر میتوانیم استفاده کنیم.
Bump
در این روش ما با استفاده از یک تکسچر سیاه و سفید محدوده فرورفته و برجسته یک متریال را تعیین میکنیم و در زمان رندر سطح فرورفته و برجسته بر روی متریال محاسبه خواهد شد و هیچ تاثیری بر روی حجم مدل ندارد. این روش اجرایی، زمان رندر را تا حد زیادی کاهش خواهد داد.
Normal Map
این روش هم مانند روش Bump کاملا دو بعدی بوده و فقط بر روی متریال اعمال می گردد و در زمان رندر ناهمواری را فقط بر روی متریال و توسط یک تکسچر ایجاد میکند و به حجم موضوع کاری نخواهد داشت. تفاوت این روش با روش Bump در این است که در Normal Map به جای استفاده از یک تکسچر سیاه و سفید ، از تکسچر RGB یا رنگی استفاده می شود و در این روش میتوان با کنترل جهت نورپردازی، جهت بافت ایجاد شده را کنترل نمود که به مراتب بهتر از روش Bump است. زیرا زوایه نورپردازی نیز در این ایجاد جهت بافت نیز تاثیر گذار است.
Displacement
اما حالت دوم که بافت میتواند غیر از متریال بر حجم موضوع هم اثر گذار باشد، Displacement است. این حالت نه تنها ناهمواری بر روی متریال ایجاد میکند، بلکه بر روی حجم موضوع نیز اثر گذار خواهد بود. به مراتب این حالت ایجاد ناهمواری از دو روش دیگر دقیق تر و بهتر است ولی زمان رندر آن و محاسباتش از دو روش قبلی بیشتر به طول می انجامد؛ ولی باز هم از مدلسازی Highpoly بهتر و سریعتر خواهد بود. شباهت این نوع ناهمواری با Bump در این است که هر دو آنها از تکسچر سیاه و سفید برای ایجاد ناهمواری استفاده خواهد کرد. ولی در کل باید متذکر شوم که در هر سه نوع ایجاد بافت، ناهمواری ها در جهت Face Normal ها انجام می پذیرد.
پس تنظیم و کنترل Face Normal ها اهمیت به سزایی در پارامترهای متریال و رندر خواهد داشت در صورتی که نیاز به دانش Normalها دارید پیشنهاد میکنم مقاله Normal ها را مطالعه بفرمایید.