عمق میدان، اثر عکاسی ناشی از طول دیافراگم و فاصله کانونی است. یک مقاله بسیار جالب در مورد این موضوع منتشر شده است در istockphoto.com . آن را فراهم نشانه عمق قابل اعتماد برای دو بعدی، مواد پیش بینی شده است. به عبارت دیگر: این باعث می شود تصاویر 3D نگاه کنید در حالی که آنها هنوز هم پیش بینی های 2D هستیم.
در نسل فعلی از سخت افزار گرافیکی، ممکن است که به ارائه بسیاری از علاقه داشتن به اثرات پس از پردازش - سایه علاوه بر نرم و تاری، عمق میدان (DOF) ممکن است در اثر اغلب استفاده می شود به منظور افزایش کیفیت بصری. پوشش گسترده ای در تکنیک های مختلف در ایجاد اثرات DOF خشنود وجود دارد - یک گوگل ساده برای "عمق از زمینه سایه زن" من حدود 74.000 بازدیدها داد. برای نسخه ی نمایشی من می خواستم برای نوشتن، من تصمیم به استفاده از یک روش ساده و مبتنی بر کانال آلفا به دلیل آن ساده است، سریع است و به نظر می رسد خوب است.
ایده ساده است: اگر شما در حال حاضر سایه زن که نمی تواند چیزهایی مانند هر پیکسل روشنایی، فقط با قرار دادن از عمق اطلاعات را به کانال آلفا رنگ. همه است که به پاس دوم باید انجام شود: ارائه تصویر دوباره و محو کردن تصویر با یک هسته مناسب. به عنوان هسته است، من یک پواسون دیسک فیلتر با CPU-precomputed داده را انتخاب - این است که کمتر "jaggy" از با استفاده از یک کرنل ساده درجه دوم، به کیفیت بصری بهتر با نمونه کمتر. برای جلوگیری از هاله تند و زننده در اطراف لبه از مناطق که عمق تفاوت بالا، نتیجه این است که به سادگی یک تصویر تاری، اما طول فاصله کانونی همچنین کنترل چقدر اطلاعات تصویر تار به نتیجه نهایی دریافت کنید.
vec4 vColor = texture2D (sceneMap)، (gl_TexCoord [0] XY.)؛ شناور fBlurAmount = ABS (vColor.a * 2.0-1.0)؛ شناور fTexel = 16.0/mapSize؛ vec4 vResult؛ برای (اعضای هیات من = 0؛ من <16؛ + +) { + = texture2D (blurMap، gl_TexCoord vResult [0] XY + fBlurAmount * fTexel * پواسون [من] XY * پواسون های [i] Z.)؛ } vResult / = 16.0؛ gl_FragColor = مخلوط (vColor، vResult، fBlurAmount)؛
من آگاه هستم که این روش بسیار محدود است - به عنوان به زودی به عنوان کانال آلفا برای عوارض دیگر (مانند تب و تاب بودن پاس یا سرعت) مورد نیاز است، می توان آن را نمی توان شبیه به این استفاده می شود. اما به هر حال، من با نتایج راضی هستم. ![]()
| |

















































