Vertex Normal and Face Normal

در نرم افزارهای سه بعدی از دو واژه Vetex Normal و Face Normal و یا در بعضی از نرم افزاها مثل سینما فوردی از واژگاه Point Normal و Polygon Normal استفاده می شود. اما نرمال چیست و چه کاربردی دارد؟
قبل از اینکه به واژه های نرمال بپردازیم، نگاهی به عناصر تشکیل دهنده یک مدل سه بعدی می پردازیم. کوچک ترین عنصر تشکیل دهنده یک حجم سه بعدی نقطه است که در نرم افزارهای سه بعدی با واژه هایی همچون Point یا Vertex شناخته می شوند. در بعضی از نرم افزارهای Point را همان Vertex می دانند ولی در اصل این دو واژه با هم تفاوت دارند که در ادامه به تفاوت این دو واژه می پردازم.

عنصر بعدی تشکیل دهنده یک حجم سه بعدی پاره خط است که از اتصال دو نقطه (Vertex) به هم به وجود می آید. واژه هایی که برای این پاره خط در نرم افزارها استفاده می شود Edge, Segment, Subdivision است که بسته به نوع کارگیری این پاره خط ها در جاهای مختلف این واژه تعییر پیدا می کند.

عنصر بعدی تشکیل دهنده یک حجم سه بعدی سطح می باشد که از کنار هم قرار گرفتن چند Edge به وجود می آید. به این سطوح در نرم افزارهای مختلف Face و Polygon گفته می شود. به سطوحی که از ۳ تا Edge تشکیل شده باشد Triangle گفته می شود که برای ایجاد ناهمواری های کوچک بر روی یک حجم سه بعدی کاربرد فراوانی دارند. به طور مثال مدلهای سه بعدی ای که از نرم افزار Real Flow به نرم افزار های دیگر ارسال می گردد (شبیه سازی مایعات) به صورت Triangle است ولی این مدلها برای کنترل و مدیریت تکسچر کار را کمی سخت می کند.
حالت دوم سطح، سطوحی هستند که از ۴ تا Edge شکل میگیرند و به آنها Quadangle گفته می شود. این نوع از سطوح بهترین حالت برای کنترل تکسچر بر روی مدل هستند به عبارتی استانداردترین حالت سطوح، سطوح Quadangle است. در این حالت مدل سه بعدی بهتری Topology را خواهد داشت که هم برای Rigg یا استخوانبندی، هم برای متحرک سازی و هم برای کنترل تکسچر بهترین کارآیی را خواهد داشت. اما حالت بعدی سطوح، سطوحی هستند که بیش از ۴ تا Edge دارند. به این نوع سطوح N-Gon یا چند ضلعی گفته می شود. در سطوح N-Gon دیگر تعداد Edge مهم نیست. از ۵ تا Edge تا بی نهایت. این نوع سطوح بدترین حالت برای مدلسازی، تنظیم تکسچر،Rigg و انیمیت هستند، زیرا کنترل خیلی کمی بر روی آنها خواهیم داشت
حال که با انواع اجزای تشکیل دهنده احجام سه بعدی آشنا شدیم راحت تر می توان درباره Normalها صحبت کنیم.

نرمال ها بردار عمود منصف یک سطح یا نقطه هستند که جهت آنرا مشخص میکنند. هر سطح (Face) یک جهت رو و یک جهت پشت دارد که این جهت برای کنترل تکسچر و کنترل نور پردازی کاربرد به سزایی دارد. همچنین هر نقطه نیز یک نرمال دارد که این نرمال برای کنترل نحوه نورپردازی استفاده خواهد شد.
سطوح سه بعدی در نرم افزار Maya,3D Max, و Houdini با واژه Face شناخته می شود و این سطوح در نرم افزار Cinema 4D با واژه Polygon شناخته می شود. به همین ترتیب دو واژه Face Normal و Polygon Normal استفاده خواهد شد؛ که جهت پشت و روی یک سطح را در مدل سه بعدی تعیین خواهد کرد.

به نقاط تشکیل دهنده یک حجم سه بعدی در نرم افزارهای Maya و 3D Max از واژه Vertex و نرم افزار Cinema 4D از واژه Point استفاده می شود. اما نرم افزار Houdini این دو واژه را به طور مجزا به کار می برد و به عبارتی نرم افزار Houdini کاملترین تعریف و استفاده را از نقاط دارد. هر سطح (Face) در حالت Quadangle از ۴ نقطه یا Vertex تشکیل میشود و حتی اگر سطوح در کنار یکدیگر قرار بگیرند Vertex های مشترکی خواهند داشت که در یک نقطه تجمیع میشوند. علت یکی نشدن Vertex ها کنترل نحوه نورپردازی سطوح است که در زیر مثال خواهیم زد. اما Point فصل مشترک بین ۴ تا Vertex میباشد. وقتی ما در نرم افزاری نقطه ای را جابه جا می کنیم به عبارتی در حالت حرکت Point یا فصل مشترک ۴ نقطه (Vertex) می باشیم، اما زمانی که در حال تنظیم UV یک سطح می باشیم و یا به عبارتی زمانی که نقاط UV را حرکت می دهیم در حال حرکت و کنترل Vertex ها هستیم.

اما کنترل Vertex ها به UV ها خلاصه نخواهد شد. یکی دیگر از کاربردهای Vertexها، کنترل Vertex Normal ها است که برای کنترل جهت نوپردازی مدل استفاده می شود. هر Vertex یک خط عمود منصف بر خود دارد که جهت و زاویه آن را تعیین می کند. اگر میزان زاویه چند Vertex که در یک نقطه قرار گرفته اند با هم متفاوت شود، می توان میزان نورپردازی آنها را کنترل نمود.
در نرم افزارها می توان میزان اختلاف زاویه Normal چند Vertex را محاسبه کرد و حالت Shading یا Phonge سطوح را تعیین نمود. به طور مثال می توان برای نرم افزارها تعیین کرد که اگر اختلاف زاویه بین Vertex Normal ها کمتر از N درجه باشد، سطوح مشترک را یکی محاسبه نموده و نور در مرز بین سطوح شکست نداشته باشد و یا Vertex Normal ها با هر اختلاف زاویه ای که دارند، به طور مجزا محاسبه شوند و سطوح کاملا شکننده و جدا از هم دیده شوند (حالتی مثل لبه های تیز یک الماس). با استفاده از Vertex Normal ها می توان داشتن تعداد سطوحهای کم در یک مدل سه بعدی، در زمان رندر مدل نرم و یکدستی داشته باشیم.