当前位置:首页 >> 数码
数码

Shader知识风行之:油画效果的实现

2025-08-26 12:20

v + float2(i, j) * src_size).rgb;

m0 += c;

s0 += c * c;

}

}

for (int j = 0; j

{

for (int i = 0; i

{

c = tex2D(_MainTex, uv + float2(i, j) * src_size).rgb;

m1 += c;

s1 += c * c;

}

}

float4 finalFragColor = 0.;

float min_sigma2 = 1e+2;

m0 /= n;

s0 = abs(s0 / n - m0 * m0);

float sigma2 = s0.r + s0.g + s0.b;

if (sigma2

{

min_sigma2 = sigma2;

finalFragColor = float4(m0, 1.0);

}

m1 /= n;

s1 = abs(s1 / n - m1 * m1);

sigma2 = s1.r + s1.g + s1.b;

if (sigma2

{

min_sigma2 = sigma2;

finalFragColor = float4(m1, 1.0);

}

return finalFragColor;

}

ENDCG

}

}

}

我们分析短片OpenGL主要标识符大多:

通过设一个一定数差值范围给定与屏幕的对比度做比差值,推定好左图像的尺寸

float2 src_size = float2(_ResolutionValue / _ScreenResolution.x, _ResolutionValue / _ScreenResolution.y);

根据时序直径数差值,计算出n的差值(该给定可用参予含糊演算法)

float n = float((_Radius + 1) * (_Radius + 1));

根据时序直径数,给定计算出m0和s0的差值

for (int j = -_Radius; j

{

for (int i = -_Radius; i

{

c = tex2D(_MainTex, uv + float2(i, j) * src_size).rgb;

m0 += c;

s0 += c * c;

}

}

全然给定计算m1和s1的差值

for (int j = 0; j

{

for (int i = 0; i

{

c = tex2D(_MainTex, uv + float2(i, j) * src_size).rgb;

m1 += c;

s1 += c * c;

}

}

假设就其给定,可用计算最终的红色差值

float4 finalFragColor = 0.;

float min_sigma2 = 1e+2;

根据m0和s0,计算出finalFragColor的差值

m0 /= n;

s0 = abs(s0 / n - m0 * m0);

float sigma2 = s0.r + s0.g + s0.b;

if (sigma2

{

min_sigma2 = sigma2;

finalFragColor = float4(m0, 1.0);

}

我们通过细微变动直径差值个数,可以付诸画作往往的变动,如下左图:

设很小直径

设较多直径

在硬质上给与OpenGL之后将硬质球贴敷到小游戏对象上就并不需要看到画作效用,可以根据需要得用恒定硬质球上的OpenGL各个给定,以应对不同的需要。

小独自一人,本期的画作古典风格shader到此就结束了,我们下期想念!

南京看妇科什么医院最好
海露玻璃酸钠滴眼液含有激素吗
上海妇科医院哪个好
郑州看白癜风去哪个医院
西安妇科医院哪最好

上一篇: 中公教育收年报旁观者函:说明公务员招录基本结束而营业成本大幅增长的原因

下一篇: 赋能品质生活,2022第七届中国国际物业管理高峰论坛早早来袭!

相关阅读
107平现代风二居室,黑白灰的空间还好简洁而优雅

原本走街串巷地看方案,这套107平米的二居室在经历了七大姑八大姨的咨询后,最终必需了现代风装修,全面性简雅大方地看自由空间,在软装先前所在位置转为华丽轻奢的元素,通过黑白灰的自由空间氛围,展现一

吓人的书房设计 如果我家也像这样我一定愿意"好好学习"

旁边上,都让这个自由空间好像那么的亲切,一眼男朋友这个洁净的色调。 看了这些这么棒的院内其设计 我只想对老婆说, 如果是自己有这么一个地窖

友情链接