Voronoi Noise 原理
1、随机数当作偏移量
o = frac(sin § *43758.5453);
2、切割小圆圈
0~1重复的数字变为0-1-0的圆圈
for ( int j = -1; j <= 1; j++ )
{for ( int i = -1; i <= 1; i++ ){float2 g = float2( i, j );float2 r = g - f + ofloat d = 0.5 * dot( r, r );if (d < F1)F1 = d;}
}
完整代码:
// Made with Amplify Shader Editor
// Available at the Unity Asset Store - http://u3d.as/y3X
Shader "TestS"
{Properties{_Size("Size", Float) = 36.6[HideInInspector] _texcoord( "", 2D ) = "white" {}[HideInInspector] __dirty( "", Int ) = 1}SubShader{Tags{ "RenderType" = "Opaque" "Queue" = "Geometry+0" }Cull BackCGPROGRAM#pragma target 3.0#pragma surface surf Standard keepalpha addshadow fullforwardshadows struct Input{float2 uv_texcoord;};uniform float _Size;float2 voronoihash1( float2 p ){p = float2( dot( p, float2( 127.1, 311.7 ) ), dot( p, float2( 269.5, 183.3 ) ) );return frac( sin( p ) *43758.5453);}float voronoi1( float2 v, float time, inout float2 id, float smoothness ){float2 n = floor( v );float2 f = frac( v );float F1 = 8.0;float F2 = 8.0; float2 mr = 0; float2 mg = 0;for ( int j = -1; j <= 1; j++ ){for ( int i = -1; i <= 1; i++ ){float2 g = float2( i, j );float2 o = voronoihash1( n + g );o = ( sin( time + o * 6.2831 ) * 0.5 + 0.5 ); float2 r = g - f + o;float d = 0.5 * dot( r, r );if( d<F1 ) {F2 = F1;F1 = d; mg = g; mr = r; id = o;} else if( d<F2 ) {F2 = d;}}}return F1;}void surf( Input i , inout SurfaceOutputStandard o ){float time1 = 0.0;float2 coords1 = ( i.uv_texcoord * _Size ) * 1.0;float2 id1 = 0;float voroi1 = voronoi1( coords1, time1,id1, 0 );float3 temp_cast_0 = (voroi1).xxx;o.Albedo = temp_cast_0;o.Alpha = 1;}ENDCG}Fallback "Diffuse"CustomEditor "ASEMaterialInspector"
}
效果:
Voronoi Noise 原理相关推荐
- Voronoi Noise
一.Voronoi Noise 沃罗诺伊图(Voronoi Diagram,也称作Dirichlet tessellation,狄利克雷镶嵌)是由俄国数学家Georgy Fedoseevich V ...
- 【游戏开发渲染】Unity ShaderGraph使用教程与各种特效案例:Unity2022(持续更新)
文章目录 一.ShaderGraph前言 二.ShaderGraph科普 1.渲染管线(Render Pipline) 2.可编程渲染管线,SRP(Scriptable Render Pipline) ...
- 虚幻引擎 4 14 版发布
Share on Facebook Share on Twitter Share on Google+ Share on LinkedIn 此版包含 Epic 的数百项更新,以及 GitHub 虚幻引 ...
- 虚幻引擎 4.14 版发布!
Share on Facebook Share on Twitter Share on Google+ Share on LinkedIn 此版包含 Epic 的数百项更新,以及 GitHub 虚幻引 ...
- UNREAL ENGINE 4.13 正式发布!
这次的版本带来了数百个虚幻引擎 4 的更新,包括来自 GitHub 的社区成员们提交的 145 个改进!感谢所有为虚幻引擎 4 添砖加瓦贡献的人们: alk3ovation, Allegorithmi ...
- metaball公式_Houdini 节点解释
一 模型部分 掌握快捷键 1物体 2 点 3线 4面 a.编辑模型 主要使用edit工具 直接移动旋转缩放 在属性条添加软修改半径进行软修改 按m键 切换成笔刷修改类似zb b.简单练习4个常用命令 ...
- Houdini 节点
-Houdini 节点 由于刚学Houdini,对于缺少的我会在后续持续补充........... 所有节点均按字母先后顺序排列. 表达式 $PT 点序号 $NPT点总序号数 fit 重映射区间 ra ...
- 小白的python与houdini之旅(houdini_转载houdini节点解析)
Houdini 节点解释 OP 解释 Add Generators|polygon 创建点或Polygon线/面,为输入添加点或polys Align Filters|NURBS 互相对齐一组面或和辅 ...
- 用Shader Graph的Flipbook节点实现水花效果
一个有趣的教程 昨天看了一个老外的视频教程:Rain Drop Ripples,教程用 Shader Graph 实现了游戏中常见的下雨天地面的水花效果. 视频中水花动画的实现和我们游戏的实现方式有所 ...
最新文章
- linux shell读取文件
- iOS 2D绘图详解(Quartz 2D)之路径(点,直线,虚线,曲线,圆弧,椭圆,矩形)
- webpack简单配置
- 代码Overlay机制
- SpringMVC获取Request,Response, Session对象
- OllyDbg笔记-暴力破解简单判断程序(TraceMe.exe与简单Qt程序)
- matlab snr eb n0,snr ber Eb/N0之间的区别与联系
- python 混淆矩阵 画图_【Python-机器学习】sciki-learn/pandas与OLS求解
- exchange 2003 event id 1221
- python类中的self参数和cls参数
- img加载在IE11,chrome,FF下的不同
- 使用 SpringBoot 写 RESTful风格 增删改查接口
- python中使用什么表示代码块、不需要使用大括号_PYTHON基础语法
- 做了多年开发的你发现自己的水平一直上不去,一篇文章教你如何提高开发水平的方法
- 输入一个字符串,内有数字和非数字字符,
- 手机淘宝app、xsign签名算法
- Ceres-Solver安装与简介
- 如何理解总体标准差、样本标准差与标准误
- Android 中定义图片的资源文件
- 基于C#实现的《勇士返乡》游戏设计