Forwarded from Kamali
در مقایسه با فاصله اقلیدس، محاسبه آن بسیار ارزان تره.
با وجود بسیار متفاوت بودن، فاصله های اقلیدسی و منهتن هر دو موارد خاصی از یک معیار کلی تر هستند: فاصله Minkowsi. برای درک بهتر یک مثال می زنم عملگر های ضرب و تقسیم شبیه هم هستند (یک عدد تقسیم بر 10 برابره با یک عدد ضربدر 1/10) ، حتی ریشه و توان رسانی عمیقا به هم متصله.
به یاد داشته باشید جذر یک عدد در مبنای n برابره با یک عدد به توان 1 تقسیم بر n ، پس می تونیم فاصله Minkowski رو اینطور معرفی کنیم:
https://en.wikipedia.org/wiki/Minkowski_distance
با وجود بسیار متفاوت بودن، فاصله های اقلیدسی و منهتن هر دو موارد خاصی از یک معیار کلی تر هستند: فاصله Minkowsi. برای درک بهتر یک مثال می زنم عملگر های ضرب و تقسیم شبیه هم هستند (یک عدد تقسیم بر 10 برابره با یک عدد ضربدر 1/10) ، حتی ریشه و توان رسانی عمیقا به هم متصله.
به یاد داشته باشید جذر یک عدد در مبنای n برابره با یک عدد به توان 1 تقسیم بر n ، پس می تونیم فاصله Minkowski رو اینطور معرفی کنیم:
https://en.wikipedia.org/wiki/Minkowski_distance
Wikipedia
Minkowski distance
distance between vectors or points computed as the pth root of the sum of pth powers of coordinate differences
Forwarded from Kamali
اما الگوریتمش تو برنامه نویسی
استفاده از میدان فاصله برای یافتن نزدیک ترین فاصله
نویز سلولی بر اساس رشته های فاصله است، فاصله تا نزدیک ترین مجموعه ای از نقاط ویژگی. فرض کنید می خواهیم فاصله 4 نقطه را پیدا کنیم. باید چکار کنیم؟ خوب، برای هر پیکسل ما می خواهیم محاسبه فاصله تا نزدیک ترین نقطه. این به این معنی است که ما باید از طریق همه نقاط تکرار کنیم، فاصله آنها را به پیکسل فعلی محاسبه کنیم و ارزش را برای نزدیکترین ذخیره کنیم.
استفاده از میدان فاصله برای یافتن نزدیک ترین فاصله
نویز سلولی بر اساس رشته های فاصله است، فاصله تا نزدیک ترین مجموعه ای از نقاط ویژگی. فرض کنید می خواهیم فاصله 4 نقطه را پیدا کنیم. باید چکار کنیم؟ خوب، برای هر پیکسل ما می خواهیم محاسبه فاصله تا نزدیک ترین نقطه. این به این معنی است که ما باید از طریق همه نقاط تکرار کنیم، فاصله آنها را به پیکسل فعلی محاسبه کنیم و ارزش را برای نزدیکترین ذخیره کنیم.
Forwarded from Kamali
یه راهش اینه که دونه دونه حداقل فاصله نسبت به نقاط دیگه رو بدست بیاریم که خیلی سخته
Forwarded from Kamali
راه درستش اینه که یه حلقه for بنویسیم و مینیمم فاصله رو نسبت به نقاط دیگه پیدا کنیم
Shader Laboratory
https://blogs.unity3d.com/2010/10/20/shader-compilation-for-multiple-platforms/
Shader Compilation for Multiple Platforms
Forwarded from Kamali
Game Development Stack Exchange
How to write a transparent shader for a sprite that ignores transparent sprites behind it?
I have multiple UI Sprites that have their alpha set so you can see what's behind them. I would like to make these UI Sprites ignore other UI Sprites.
So take this first picture. There are 4 UI
So take this first picture. There are 4 UI
Deleted Account
Photo
دوستان قبلاً یکی از دوستان سوال خوبی پرسیده بود
گفته بود Back to front ordering یعنی چی!
که براش جواب دقیقی پیدا کردم
این sorting ترنسپرنت هست
یعنی فرض کنید دو تا اسپرایت transparent دارید و یک اسپرایت معمولی،شما می تونید برای رندر شدنش ترتیب تعیین کنید
گفته بود Back to front ordering یعنی چی!
که براش جواب دقیقی پیدا کردم
این sorting ترنسپرنت هست
یعنی فرض کنید دو تا اسپرایت transparent دارید و یک اسپرایت معمولی،شما می تونید برای رندر شدنش ترتیب تعیین کنید
Shader Laboratory
http://www.ventuz.com/support/help/latest/RealtimeRendering.html
In the left configuration, the red glass doesn't look transparent at all. Why is that so? The render order of the objects is red then green then blue. When red is rendered, the Z-values in the depth buffer are set and no fragment from another triangle with a farther away Z-value will be rendered at all. So there is no chance to blend green and blue because their fragments are discarded before blending.
In the center configuration, depth testing has been artificially turned off. First red is rendered with nothing to blend it with since it is the first thing rendered. Then green is rendered and blended and blue is rendered and blended. Each time the new object will take 50% of itself and 50% from the already rendered objects, so at the time blue is rendered, only 25% of red will be left.
In the right configuration, depth testing has been re-enabled but the rendering order has been changed to back to front: First blue then green then red. When red is rendered, it takes 50% of itself and 50% of the already rendered objects which creates the correct effect.
In the center configuration, depth testing has been artificially turned off. First red is rendered with nothing to blend it with since it is the first thing rendered. Then green is rendered and blended and blue is rendered and blended. Each time the new object will take 50% of itself and 50% from the already rendered objects, so at the time blue is rendered, only 25% of red will be left.
In the right configuration, depth testing has been re-enabled but the rendering order has been changed to back to front: First blue then green then red. When red is rendered, it takes 50% of itself and 50% of the already rendered objects which creates the correct effect.
Shader Laboratory
http://www.ventuz.com/support/help/latest/RealtimeRendering.html
در تنظیمات چپ، شیشه قرمز شفاف به نظر نمی رسد. چرا اینطور است؟ ترتیب رندر اشیاء قرمز سپس سبز و سپس آبی رنگ است. هنگامی که قرمز نمایش داده می شود، مقادیر Z در عمق بافر تنظیم می شوند و هیچ قطعه ای از مثلث دیگری با Z-value دورتر ارائه نمی شود. بنابراین هیچ فرصتی برای ترکیب سبز و آبی وجود ندارد، زیرا قطعات قبل از مخلوط کردن آنها از بین می روند.
در تنظیمات وسطی، آزمایش عمق بطور مصنوعی خاموش شده است. اول قرمز به تنهایی رندر شده تا با زمانی که اولین چیزی است که رندر شده ترکیب شود. سپس سبز و آبی رنگ رندر و ترکیب شده است. هر بار که جسم جدید 50٪ از خود و 50٪ از اشیاء که قبلا رندر شده است را بگیرد، بنابراین در این زمان آبی رنگ رندر می شود، فقط 25٪ قرمز باقی می ماند.
در تنظیمات سمت راست، تست عمق دوباره فعال شده است، اما ترتیب رندر به عقب به جلو تغییر یافته است: ابتدا آبی و سپس سبز و سپس قرمز. هنگامی که قرمز رندر می شود، 50٪ از خود و 50٪ از اشیاء که قبلا رندر شده است، اثر صحیح را ایجاد می کنند.
در تنظیمات وسطی، آزمایش عمق بطور مصنوعی خاموش شده است. اول قرمز به تنهایی رندر شده تا با زمانی که اولین چیزی است که رندر شده ترکیب شود. سپس سبز و آبی رنگ رندر و ترکیب شده است. هر بار که جسم جدید 50٪ از خود و 50٪ از اشیاء که قبلا رندر شده است را بگیرد، بنابراین در این زمان آبی رنگ رندر می شود، فقط 25٪ قرمز باقی می ماند.
در تنظیمات سمت راست، تست عمق دوباره فعال شده است، اما ترتیب رندر به عقب به جلو تغییر یافته است: ابتدا آبی و سپس سبز و سپس قرمز. هنگامی که قرمز رندر می شود، 50٪ از خود و 50٪ از اشیاء که قبلا رندر شده است، اثر صحیح را ایجاد می کنند.