unity3d shader之Julia集和Mandelbrot集绘制美丽图案
在书上偶然看到Mandelbrot集的绘制方法,在网上查阅了一些资料,自己动手试了一下,终于“看到了”数学之美。
在百度百科上的简介
julia朱丽叶集与之相似
也是百度百科上的简介
这一序列可能反散于无穷大或始终处于某一范围之内并收敛于某一值。我们将使其不扩散的z值的集合称为朱利亚集合
更详细的包括算法可以在wiki百科上看链接在这里
先来看看效果
颜色调得不太好,但是也可以看到精致的美丽。
就是在unity的shader中实现
Mandelbrot集的代码如下,julia集就由各位看官自己练习实现:
Shader "Custom/mandelbrot" {Properties {_MainTex ("Noise", 2D) = "white" {}_MaxIters("Max Iters", range(0,185)) = 1//迭代次数_TS("TS", range(0,15)) = 1//x缩放_CS("CS", range(0,15)) = 1//y缩放_S0("S0", range(-3,3)) = 0.5//x偏移_T0("T0", range(-3,3)) = 0.5//y偏移_Limits("iLimits", range(0,19)) = 5_ConColor("ConColor",color)=(1,1,1,1)_DivColor1("Diverge Color1",color)=(1,1,1,1)_DivColor2("Diverge Color2",color)=(1,1,1,1)}SubShader {pass{Tags{"LightMode"="ForwardBase" }Cull offCGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"float4 _LightColor0;int _MaxIters;float _TS;float _CS;float _S0;float _T0;float _Limits;float4 _ConColor;float4 _DivColor1;float4 _DivColor2;float4 _MainTex_ST;struct v2f {float4 pos:SV_POSITION;float2 uv_MainTex:TEXCOORD0;};v2f vert (appdata_full v) {v2f o;o.pos=mul(UNITY_MATRIX_MVP,v.vertex);o.uv_MainTex = TRANSFORM_TEX(v.texcoord,_MainTex);return o;}float4 frag(v2f i):COLOR{float real = i.uv_MainTex.x * _TS + _S0;float imag = i.uv_MainTex.y * _CS + _T0;float real0 = real;float imag0 = imag;float newr;int numIters;float4 color = 0;for(numIters = 0;numIters < _MaxIters;numIters++){float newreal = real0 + real * real - imag*imag;float newimag = imag0 + 2* real* imag;newr = newreal * newreal + newimag * newimag;if(newr >= _Limits)break;real = newreal;imag = newimag;}if(newr<_Limits)color = _ConColor;if(newr>_Limits)color = lerp(_DivColor1,_DivColor2, frac(numIters/_CS));// color = float4(frac(numIters/_CS),0,0,1);//lerp(_DivColor1,_DivColor2, frac(numIters/_CS));return color;}ENDCG}//}
}
----------------by wolf96 http://blog.csdn.net/wolf96
unity3d shader之Julia集和Mandelbrot集绘制美丽图案相关推荐
- 数学之美之分形——C++及OpenCV实现Julia集和Mandelbrot集绘制
搞了一天,终于全部搞定了,久久惊叹于分形的美而不能自拔-- 先来简单介绍下Julia集和Mandelbrot集:(来自这里) 曼德勃罗特(Mandelbrot)集是人类有史以来做出的最奇异,最瑰丽的几 ...
- 分形之Julia集和Mandelbrot集及浅谈分形理论的应用
首先要show一把这俩个集合的图片 [img]http://upload.wikimedia.org/wikipedia/commons/a/a4/Mandelbrot_sequence_new.gi ...
- 神奇的分形艺术(四):Julia集和Mandelbrot集
考虑函数f(z)=z^2-0.75.固定z0的值后,我们可以通过不断地迭代算出一系列的z值:z1=f(z0), z2=f(z1), z3=f(z2), ....比如,当z0 = 1时,我们可以依次迭代 ...
- python分形几何_使用 Python 绘制分形: Koch 曲线、Julia 集、Mandelbrot 集
目录 1. Koch曲线 瑞典数学家Helge von Koch,在1904年发表的"从初等几何构造的一条没有切线的连续曲线"的论文中提出Korch曲线.它的描述如下:指定一条线段 ...
- 分形几何python代码_Python, Cython绘制美妙绝伦的Mandelbrot集, 曼德博集分形图案
上世纪60-70年代,美籍数学家曼德博 - Benoit B. Mandelbrot几乎单枪匹马的创立了一个新的数学分支,即分形几何学 - fractal geometry.这个新的数学分支有助于人类 ...
- Python, Cython绘制美妙绝伦的Mandelbrot集, 曼德博集分形图案
上世纪60-70年代,美籍数学家曼德博 - Benoit B. Mandelbrot几乎单枪匹马的创立了一个新的数学分支,即分形几何学 - fractal geometry.这个新的数学分支有助于人类 ...
- 【浅墨Unity3D Shader编程】之一 夏威夷篇:游戏场景的创建 第一个Shader的书写
本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/40723789 作者:毛星云(浅墨) ...
- 【Unity3D Shader编程】之一 夏威夷篇:游戏场景的创建 第一个Shader的书写
本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/40723789 作者:毛星云(浅墨) ...
- 【浅墨Unity3D Shader编程】之中的一个 夏威夷篇:游戏场景的创建 amp; 第一个Shader的书写...
本系列文章由@浅墨_毛星云 出品.转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/40723789 作者:毛星云(浅墨) ...
- 【Unity3D Shader编程】之一 夏威夷篇 游戏场景的创建 第一个Shader的书写
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本系列文 ...
最新文章
- 青岛工学院计算机专业分数线,青岛工学院计算机科学与技术专业2016年在河南理科高考录取最低分数线...
- leetcode算法题--目标和
- 求最小子数组之二维篇
- Jupyter notebook Ipython 魔法函数 Magic 计算代码(函数)耗时 Timing(%%time %time %timeit)
- android textView设置粗体
- 《大话数据结构》读后总结(九)
- Wtm Blazor来了!
- SON_EXAM考试php,通用全国少儿英语等级考试:三星笔试真题
- webpack快速学习2
- apache+gzip+ssl网页压缩率50%
- winform 显示分隔控件_WinForm使用Label控件模拟分割线(竖向)
- oppoa11android版本是什么,oppoa11x处理器是什么?oppoA11x配置介绍
- 16、TFT-LCD 1.8寸显示屏使用
- Unity3dAndroid Studio实现开机自启App以及激活其他App
- python实现千牛客服自动回复语_千牛会用到的回复语有哪些?千牛自动回复短语大全...
- Adobe Acrobat XI Pro 2019安装教程
- TCP协议的相关特性
- 网页模板UI素材推荐 精品 小众
- 微信小程序实现图片预览功能
- 最不伤耳朵的耳机有哪些,分享五款不伤耳的骨传导耳机