در گرافیک کامپیوتری، ambient occlusion یک روش رندرینگ و شیدینگ است که محاسبه میکند هر نقطعه ای در صحنه چگونه توسط نورهای محیطی روشن می شود. باید توجه داشته باشیم که AO یک روش تقریبی است که نشان می دهد نور محیطی چگونه سطوح مختلف را روشن می کند. Ambient Occlusion بیان می کند که نور چگونه در هر قسمت از صحنه می تواند نقاط دیگری از صحنه را روشن کند.با توجه به اینکه این روش یک جریان و محاسبه تقریبی است، پردازش آن از سرعت بالایی برخوردار خواهد بود. به همین منظور و به دلیل سرعت بسیار بالای آن از AO برای شبیه سازی GI استفاده می کنند. اما این بدان معنی نیست که Ambient Occlusion می تواند GI را حساب کند بلکه AO کاملا با Globall Illumination متفاوت است .
AO عموما برای محاسبه و ایجاد سایه های نرم (Soft shadow) بر روی جسم به کار می روند.اما توجه داشته باشید که از AO برای نمایش سایه استفاده نمیشود بلکه از AO برای ایجاد نوعی سایه به نام سایه نرم (Soft shadow) یا deep shadow استفاده می شود که عموما در قسمت های زاویه دار و شکسته و چین دار استفاده می شود که نور محیطی به صورت مستقیم به آنها نفوذ نمی کند یا برای روشن کردن آنها مانعی بر سر راه نور محیطی وجود دارد. در نتیجه خواهیم فهمید که AO وابسته به موقعیت و نحوه قرار گیری موضوعات داخل صحنه می باشد، یعنی اگر موقعیت و زاویه قرارگیری اجسام در صحنه عوض شود باید Ambient Occlusion مجددا محاسبه شود.

 

ambient occlusion AO Globall illumination rendering
Ambient Occlusion

کاربران AO را یک GI ناقص و جزیی تلقی می کنند زیرا AO بسیار سریعتر و با جزٸیات و پیچیدگی های کمتری از GI محاسبه و پردازش می شود و از این رو در موتور های رندرینگ RealTime مخصوصا در بازی ها و نرم افزار های شبیه سازی از AO به منظور شبیه سازی GI استفاده می کنند.اجازه دهید کمی بیشتر به این موضوع بپردازیم.شاید درک نور محیطی یا Ambient Light کمی برای شما دشوار باشد. نور محیطی عموما به تمامی پرتوهای گفته می شود که منبع مشخصی برای انتشار آنها وجود ندارد. این پرتوها میتوانند شامل پرتوهای بازتاب داده شده ثانویه و نور های غیر مستقیم (INDIRECT) نیز باشد.به عبارت ساده و غیر علمی Ambient Light نوری است که از منابع قابل تشخیص و قابل شناسایی تولید نمی شود زیرا عموما این نور توسط نورهای سرگردان و بازتاب داده شده در صحنه ایجاد می شود. تمام پرتو های سرگردان و بازتاب داده شده از سطوح مختلف در صحنه در نقاط مختلف روی سطوح جمع آوری می شوند تا اینکه مجموع آنها باعث ایجاد Ambient Light می شود.در مقابل این نورها، موضوعات و لبه های اجسام درون صحنه میتواند مانعی بر سر راه پرتوهای نورهای عمومی باشد.به این مانع شدن Blocked یا Occlude گفته می شود.

ambient occlusion AO Globall illumination rendering
Ambient Occlusion

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

ambient occlusion AO Globall illumination rendering
AO

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

ambient occlusion AO Globall illumination rendering
AO

از جمله کاربردهای Ambient Occlusion ، افزایش جزٸیات روشنایی صحنه بر روی لبه هاست که در هر موتور رندرینگ به روش های متفاوتی انجام می شود. از دیگر کاربردهای مهم Ambient Occlusion میتوان به ایجاد متریال کهنگی اشاره کرد.ساخت متریال های موسوم به Dirt که نشان دهنده قسمت های قدیمی، زنگ زده و کثیف و کهنه می باشند، ساخت سایه های لبه های موضوعات و جزٸیات سایه ها و ده ها مورد دیگر را میتوان از کاربردهای Ambient Occlusion برشمرد.در اکثر موتورهای رندرینگ محاسبه روشنایی هر نقطه بر روی سطح بر اساس نیم کره قرار گرفته بر روی آن نقطه و بررسی دریافت پرتو های نور رسیده از روشنایی َAmbient Light و محاسبه بازتابها به دست می آید.

ambient occlusion AO Globall illumination rendering
Ambient Occlusion

Ambient Occlusion به دو روش ایستا (static) و داینامیک یا پویا (dynamic) محاسبه می شود که بنا به کاربرد و نیازمندی هر یک می توان از آنها استفاده کرد. هر موتور رندرینگ به صورت خاصی از Ambient Occlusion استفاده می کنند بنابراین نحوه استفاده در تمام موتور های رندرینگ به یک صورت نمی باشد اما تٸوری و ساختار آن در همه جا یکسان است. AO در تمامی نرم افزارها مانند Maya , 3ds Max , Houdini , Modo , Cinema4D , Blender و تمام موتورهای رندرینگ قابل دسترسی و استفاده می باشد.