(来源:bonnefil.com)
我希望这种华丽的图案出现在我的游戏中。到目前为止,我已经知道了...
- 画出一侧,然后左右两次渲染。
- 如何在一侧渲染此图案?嗯...
- 我需要帮助。
我需要一些关于编写着色器的见解。
如果您认为不是着色器拟合任务,那么请告诉我,希望有替代解决方案!
但是,我认为没有gpu不可能实现这一目标。(除非您建议存储一堆准备好的rorscach pic图片)
(来源:bonnefil.com)
我希望这种华丽的图案出现在我的游戏中。到目前为止,我已经知道了...
我需要一些关于编写着色器的见解。
如果您认为不是着色器拟合任务,那么请告诉我,希望有替代解决方案!
但是,我认为没有gpu不可能实现这一目标。(除非您建议存储一堆准备好的rorscach pic图片)
Answers:
为了获得真实的墨迹外观,最好的选择是组装一个由墨迹,条纹和运球组成的图像库。
然后,您可以随机选择其中一些以定位和随机旋转图像的一半。(由于偏向接缝边缘,所以Rorschach测试的中间最密集。您可能可以使用粒子系统执行此散射)
将其渲染为具有环绕模式设置为镜像的纹理,现在您可以显示对称的墨迹,而无需任何自定义着色器。
这是您可以通过这种方式获得结果的示例:
如果您不关心那些标志性的墨迹形状,也可以使用着色器来实现此目的,该着色器将两个噪波模式彼此滚动的阈值设置为阈值。该形状为对称的不规则形状,可以根据需要随时间连续变化,但看起来不太像墨水。
这是dnk drone.vs.drones在另一个答案中建议的方法,它可以产生类似于以下结果:
编辑:这是基于噪声的方法工作原理的分解...
首先,我们从一些噪音开始。1 / f噪声(通常称为湍流)效果很好。您可以将平铺噪声烘焙到纹理中,然后对纹理中的一个或多个样本求和,更改其偏移量/旋转度以更改获得的形状。
如果直接将其设置为阈值,则会得到如右图所示的图像。形状是正确的,但是看起来像Rorschach测试,它应该在中间附近最密集,并在边缘变薄。
我们可以通过在顶部添加渐变来完成这项工作(为清楚起见,此处夸大了对比度)
然后通过采取阈值 (sum - blackLevel) * contrast
(这blackLevel
是一个参数,用于控制结果的斑点程度与斑点程度-较高的值表示更纯的黑色-并contrast
控制边缘的锐度)
镜像此图像将为您提供上面的Rorschach示例。
您可以尝试Perlin噪点(使用适当的黑白梯度),然后应用左右镜像