罗夏墨迹(又名心理学测试图片)着色器


12

在此处输入图片说明

在此处输入图片说明 在此处输入图片说明
(来源:bonnefil.com

我希望这种华丽的图案出现在我的游戏中。到目前为止,我已经知道了...

  1. 画出一侧,然后左右两次渲染。
  2. 如何在一侧渲染此图案?嗯...
  3. 我需要帮助。

我需要一些关于编写着色器的见解。

如果您认为不是着色器拟合任务,那么请告诉我,希望有替代解决方案!

但是,我认为没有gpu不可能实现这一目标。(除非您建议存储一堆准备好的rorscach pic图片)


您正在使用什么引擎/语言/框架?
akaltar 2015年

@akaltar Unity Shaderlab
Blue Bug

Answers:


15

为了获得真实的墨迹外观,最好的选择是组装一个由墨迹,条纹和运球组成的图像库。

然后,您可以随机选择其中一些以定位和随机旋转图像的一半。(由于偏向接缝边缘,所以Rorschach测试的中间最密集。您可能可以使用粒子系统执行此散射)

将其渲染为具有环绕模式设置为镜像的纹理,现在您可以显示对称的墨迹,而无需任何自定义着色器。

这是您可以通过这种方式获得结果的示例:

从splat图像库组装的墨迹

如果您不关心那些标志性的墨迹形状,也可以使用着色器来实现此目的,该着色器将两个噪波模式彼此滚动的阈值设置为阈值。该形状为对称的不规则形状,可以根据需要随时间连续变化,但看起来不太像墨水。

这是dnk drone.vs.drones在另一个答案中建议的方法,它可以产生类似于以下结果:

墨迹阈值受噪声限制

编辑:这是基于噪声的方法工作原理的分解...

首先,我们从一些噪音开始。1 / f噪声(通常称为湍流)效果很好。您可以将平铺噪声烘焙到纹理中,然后对纹理中的一个或多个样本求和,更改其偏移量/旋转度以更改获得的形状。

湍流 门槛

如果直接将其设置为阈值,则会得到如右图所示的图像。形状是正确的,但是看起来像Rorschach测试,它应该在中间附近最密集,并在边缘变薄。

我们可以通过在顶部添加渐变来完成这项工作(为清楚起见,此处夸大了对比度)

边缘遮罩 遮罩增加了噪音

然后通过采取阈值 (sum - blackLevel) * contrast

(这blackLevel是一个参数,用于控制结果的斑点程度与斑点程度-较高的值表示更纯的黑色-并contrast控制边缘的锐度)

门槛

镜像此图像将为您提供上面的Rorschach示例。


我正在尝试通过无人机方法来实现。您能否详细说明其完成方式?我使用的是传统的Perlin杂讯功能,但我的杂点看起来像是随机点的集合。
Blue Bug

@BlueBug,我在上面添加了分步细分。
DMGregory

8

您可以尝试Perlin噪点(使用适当的黑白梯度),然后应用左右镜像

在此处输入图片说明


那是佩林的声音吗?这看起来与传统的Perlin噪音完全不同。哇,看上去确实像电影《守望者》中的那种“阴天墨水”。
Blue Bug

2
这完全取决于您从噪声值->像素值开始的传递函数。看起来这里的窗口水平很小,导致黑白之间形成鲜明的对比,并带有少量柔和的边缘
MistaGiggles 2015年

是的,只是在灰色周围的某个地方做一个高通滤波器,然后吹掉高点(即乘以一个大数,然后在255或任何最大像素值的情况下将头皮切掉)
Shayne
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.