![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
分形艺术与图形图象
张友邦
微软认证专家,系统分析员,希赛网专业顾问,CCF会员,IEEE会员。1980年生于四川宜宾,2002年国防科大宇航系本科毕业。2003年底创业,07年卖掉公司后曾在多家公司任CTO,09年至2011年于新加坡南洋理工大学任研究员,回国后继续IT方面的创业。主要领域有软件架构与设计、流媒体、云计算、社会网络及大数据等。
展开
-
渲染Double Cusp
昨晚无聊,把Double Cusp照出来换了个着色方式渲染了出来。原创 2008-09-12 11:02:00 · 950 阅读 · 0 评论 -
双线性插值(Bilinear Interpolation)
在图像放大算法中,双线性插值简单而有效,可以让结果图像显得平滑而不是呈现锯齿状。它的原理很简单,把临近四个点的像素值与相应的贡献系数相乘后加起来就可以了。 //bilinear interpolationint x1 = ((int)x) % bp.bmWidth;int y1 = ((int)y) % bp.bmHeight;int x2 = (u1 + 1) % bp.bmWidt原创 2007-08-12 21:08:00 · 5022 阅读 · 1 评论 -
纹理映射
做纹理的时候主要涉及到几方面的问题。一是加载外部的图片文件,我用OleLoadPicture。另外是通过纹理坐标得到纹理的颜色值,我用的是双线性插值。还有就是计算交点处的UV值了。等这些都完了后,用材质本身的颜色调制一下得到最终的颜色值。本文属Span Zhang(张友邦)原创,转载请注明出处。中国原创分形艺术、中国原创分形软件第一站原创 2007-08-06 23:48:00 · 969 阅读 · 0 评论 -
基于Perlin Noise的法线扰动
Perlin噪声有很广泛的应用(http://freespace.virgin.net/hugo.elias/models/m_perlin.htm),特别是在生成漫无边际的地形方面。由于它的连续性以及在给定点处的噪声恒定的特点,用在光线追踪里面可以作为法线扰动的好方面。不仅如此,它还可以作为凹凸映射的函数用来影响UV坐标。本文属Span Zhang(张友邦)原创,转载请注明出处。中国原创原创 2007-08-05 07:49:00 · 1325 阅读 · 0 评论 -
Renderosity关于FerryMan Fractal的介绍文章
前段时间因为Siggraph的东西优先级太高了,FerryMan Fractal的介绍被推后了。现在终于放出来了:http://www.renderosity.com 本文属Span Zhang(张友邦)原创,转载请注明出处。中国原创分形艺术、中国原创分形软件第一站原创 2007-08-04 17:44:00 · 1173 阅读 · 0 评论 -
体积光和软阴影(Volume Light and Soft Shadow)
把点光源扩展了一下,允许指定体积。在体积光模式下,需要指定采样范围以及采样模式。float radius;int volume;int samplingMethod;其中的volume是采样密度,也就是相当于体积的一个系数。radius指定了采样范围,samplingMethod指定了采样范围。下图是使用stochastic采样10个点,外部使用Adaptive Grid作自适应采样的结果原创 2007-08-04 11:20:00 · 2217 阅读 · 1 评论 -
采用树形bounding box渲染的图片
对场景组织作了调整,采用树状的包围盒来分隔空间。Primitive被做成了recursive的结构,整个场景就是一个Primitive。每一个场景都有自己的一个包围盒,子场景也有自己的包围盒。intersect的时候从顶向下逐级过滤。对底层的单个三角形的intersect仍然采用包围球来计算,球体的intersect也一样不采用包围盒判断,因为考虑到一个球体和它的包围盒之间差别不大。结合分形迭原创 2007-08-03 14:07:00 · 1115 阅读 · 0 评论 -
三角形边界球的一次测试结果
为三角形带中的每一个三角形都加上一个bounding sphere,在一次测试中比不加包围球的情况要快2.06倍。测试中用了2600个三角形,边界球直径比三角形主分量长度大0.02倍。本文属Span Zhang(张友邦)原创,转载请注明出处。中国原创分形艺术、中国原创分形软件第一站原创 2007-08-01 10:28:00 · 815 阅读 · 0 评论 -
FerryMan Fractal 1.6.4 Released
The new version of 1.6.4 released today with anti-aliasing refactored. I finally put a item of Adaptive Grid to the sampling method list and thus to avoid making all of the sampling methods adaptive.本原创 2007-07-30 09:44:00 · 1229 阅读 · 0 评论 -
仍然是采样和自适应反走样(Sampling and Adaptive Anti-aliasing)
目前已经为FMF设计好了5种采样模式。一种是Pixel模式,它实际上就是把像素的中心作为采样点,并且缓存采样点颜色索引(或直接着色土层的最终颜色)的一个代名词。第二种是Grid模式,它是最简单最直接的supersampling算法,把像素的采样区域分成等分后取点计算。第三种是Stochastic模式,实际上就是随机采样。第四种是Poisson Disc,把随机采样的太过随机性给限制了一下,任何两个原创 2007-07-28 09:45:00 · 1379 阅读 · 0 评论 -
法线平均后的效果
对顶点法线作了平均处理后的效果: 下一步想把体积光和软阴影实现了,但又嫌麻烦。。。。本文属Span Zhang(张友邦)原创,转载请注明出处。中国原创分形艺术、中国原创分形软件第一站原创 2007-07-31 13:46:00 · 868 阅读 · 0 评论 -
学习编译理论,实现DSL
准备为FMF实现一个脚本插件,可以通过编写脚本的方式来实现各种分形组件。以前做过一个,用的是Microsoft Script Control结合javascript,但速度慢得让人无法接受。由于分形是计算密集型的,打算实现一个嵌入式的DSL (Domain-Specific Language)。以前从来没有接触过这方面的内容,上学的时候也没有学过相关的课程,对程序语言和编译理论的了解几乎为零。要原创 2007-08-15 13:37:00 · 1267 阅读 · 0 评论 -
分形专用语言开发完毕
FMF的嵌入式DSL的核心基本上开发完毕了,正如以前所设想的,语言运行的时候是直接在语法树上执行的。流程控制语句只有if/else if/else以及while循环,break和return等。程序的语法类似javascript,只支持复数类型,输入的浮点数和整数都会被当成复数处理。用关键字var来定义临时变量,一条语句只能定义一个变量,定义变量的时候允许赋值。可以用[real_part_ex原创 2007-08-17 23:54:00 · 1443 阅读 · 0 评论 -
基于层次包围盒的光线追踪渲染加速算法
本文属spanzhang(张友邦)原创,发布地址为:http://blog.csdn.net/spanzhang。转载或引用请注明原文之出处,谢谢!光线追踪的效率问题一直以来都是关注的焦点,因为很多时候都会有非常多的求交运算要执行。目前几乎所有的加速算法都是尽量减少求交运算量,比如octree、kd-tree、包围盒(及层次包围盒)等。基于空间分割的算法最重要的就是如何有效地分隔空间,让场景细原创 2008-03-09 12:04:00 · 2234 阅读 · 0 评论 -
Another Image Won the FWW
本文属spanzhang(张友邦)原创,发布地址为:http://blog.csdn.net/spanzhang。转载或引用请注明原文之出处,谢谢!It really means an honor to me. One of my images, named Burn, was selected into the FWW this week. Heres the thumbnail of i原创 2008-03-10 12:57:00 · 1151 阅读 · 0 评论 -
分布式光线追踪模拟景深效果
本文为spanzhang(张友邦)原创,发布地址为:http://blog.csdn.net/spanzhang,转载请注明出处。如果你还不知道景深是什么意思,可以随便找本摄影的入门书籍看看。景深是在大光圈下显示的特别的摄影效果,它能把焦点前后的景物虚化(所谓的焦外成像,Out of Focus),虚化的形状和快门的孔形有关。当光圈孔很小的时候,景深很大,光圈大的时候景深小。这里有一个关于景深原创 2008-02-25 18:34:00 · 1513 阅读 · 0 评论 -
二维平面上点与多边形位置关系判断
要判断点是否落在多边形内部,图形学书上给出了三种解决方法,一种是针对凸多边形的叉乘法,二是角度和判别法,三是水平/垂直交叉点数判别法。由于后两种可以针对任意多边形,故权衡之后我用了最简单最直接的角度和判别法。double angle = 0;realPointList::iterator iter1 = points.begin();for (realPointList::iterator i原创 2007-06-07 08:11:00 · 1485 阅读 · 0 评论 -
Context Free Art以及FMF Direct Draw构想
Context Free是一款基于2维L-System的分形生成软件,GNU Public License开源。CFDG是用C++8.0写的,用了大量的STL,源码非常漂亮。Follow this link to have a look at it: http://www.contextfreeart.org. 我觉得它一定能做的非常强大,因为L-System是分形大家族中非常重要的一员。现在原创 2007-06-04 07:37:00 · 868 阅读 · 0 评论 -
Welcome back, Thom!
Thom消失了几天,正好这段时间Bunny一直在跟我讨论right track,哎,希望她已经在FMF的right track上了。昨天Thom突然冒出来说更新了网站首页layout,要我看看。可惜的是,我并不能打开他给的链接。今天突然想到用香港的代理服务器访问,呵呵,总算看到了。原来他做了一个顶级菜单项介绍FerryMan Fractal,还做了个Banner连接在Links里面。Ferry原创 2007-06-04 07:13:00 · 723 阅读 · 0 评论 -
Fractal Art Contest 2007
Attached Link: Fractal Art Contest 2007Hi folks,Its my pleasure to announce the Benoit Mandelbrot Fractal Art Contest 2007is now open. As with the 2006 contest, we are asking for artwork to besub转载 2007-06-03 17:42:00 · 742 阅读 · 0 评论 -
位图图象处理之像素调整信息量分类
[注]:这里用到的很多名词和术语只是我自己的理解,并不一定是大家都认同的。位图的图象处理分为两类,一类是单像素的调整,另一种是卷积滤波。而单像素调整又可以分出两类来,一类是纯粹单像素调整,另一类是全局单像素调整。 所谓纯粹单像素调整是指的只根据一个像素的颜色信息就能做调整的情况,而全局单像素调整需要根据图象整体的信息来调整每一个单独的像素。卷积滤波是介于这两种类型之间的情况,它需要用到一个小块原创 2007-06-08 07:36:00 · 1011 阅读 · 0 评论 -
Script Panel
在做Direct Draw之前,把Free Panel改造了一下,发布了一个新的着色算法:Script Panel。以前用鼠标画shapes改成了用script来生成shapes。这样,可以更精确的控制那些图形的位置和大小。另外,Script Panel采用的是Direct Coloring方式,那意味着可以定义颜色。同时,还提供了线条粗细的控制。使用Script Panel来制作图案非常方便原创 2007-06-05 14:57:00 · 874 阅读 · 0 评论 -
Registered a new domain named ferrymanfractal.com
I registered a new domain for FerryMan Fractal. The original domain of cgpad.com continues to work.原创 2007-06-05 14:38:00 · 719 阅读 · 0 评论 -
一个分形源码
http://www.cgpad.com">原创 2007-06-01 08:36:00 · 884 阅读 · 0 评论 -
FMF与UF的对比分析
其实我不愿意把FMF和UF对比,因为自卑。 如果非要比一下呢,可以有几个小小的结论:1、从群众基础上来看,UF具有绝对的优势。由于UF是老牌的分形创作软件了,已经发展了这么多年,它具有深厚的群众基础,非常多的分形艺术家都是在围绕着它转,写了很多的算法并创作出了大量的作品。FMF刚刚出道,还没有为大家所认识和了解,基本上都是因为看了我的作品后才知道FMF的存在。2、语言和帮助上,UF也有优势原创 2007-05-25 15:33:00 · 876 阅读 · 1 评论 -
Image Tessellation
为FMF加Image Tessellation是一件非常容易的事情,219行代码绝对不算多。相对UF的Bring It In来说,FMF的解决方案显得非常的优雅。不过为了简单起见,并没有做插值处理。原创 2007-05-24 23:49:00 · 549 阅读 · 0 评论 -
Bicubic Interpolation (双三次插值)
在Wikipedia (http://en.wikipedia.org/wiki/Bicubic_interpolation) 上找到了bicubic的描述,不过它只给出了知道导数情况下的公式。后来在CSDN上找到了C语言的算法描述(http://topic.csdn.net/t/20021118/15/1186136.html),改造了一下做了个测试。他没有给出插值样条,通常使用sin(x *原创 2007-08-29 22:14:00 · 12619 阅读 · 6 评论 -
Group/Image Level Mapping in FerryMan Fractal 1.6.2
FMF 1.6.2 was released yesterday. It contains a very interesting feature, means, Group/Image Level Mapping. This is something that UF doesnt have. With this feature, we can create effects at group le原创 2007-05-27 19:58:00 · 757 阅读 · 0 评论 -
Mathematica
发现用Mathematica研究分形简直就是绝配,可以研究研究。 image = Import[" Z:/Fractals/V1.6-x/x62.jpg"][[1, 1]]; n = Length[image]; m = /Length[image[[1]]];Show[Graphics[RasterArray[Table[Module[{zc = x + I y, z = 0.0}, Do原创 2007-05-24 15:19:00 · 732 阅读 · 0 评论 -
FerryMan Fractal渲染的第一张3DS图片
对于光线追踪场景中的任何物体,只要有了求交算法以及法线算法就可以渲染。virtual int intersect(const Ray& ray, float& distance ) = 0;virtual Vector3 getNormal(Vector3& pos) = 0;为了适应三角形带的渲染,把三角形的数据结构定义为:Vector3 vertex[3];Vector3原创 2007-07-31 10:23:00 · 2094 阅读 · 0 评论 -
FerryMan Fractal V1.5
这是第一个Full Functional版本,界面的命令全部实现了。进一步的工作就不知道要什么时候才会做了。。。。http://www.cgpad.com上放的是1.3版的,看什么时候方便了就把1.5的也放上去。原创 2007-04-27 05:24:00 · 938 阅读 · 0 评论 -
几个分形链接
1、http://www.wizzleworld.com/tutorials/ufworkshop/2_basics.htm这是个讲分形色彩的系列文章。我没怎么看,但我觉得他的出发点是很好的。分形的着色是非常关键的一个环节,怎么用色对分形图最终的效果起着非常重要的作用。图层的混合就是用颜色控制颜色。2、http://www.bmva.ac.uk/bmvc/1997/papers/002/node2原创 2005-10-18 14:24:00 · 1199 阅读 · 1 评论 -
数学制造
新版的spanFractal还在思考中,但最近实在太忙,连睡觉的时间都不多,更不用说玩这些个玩意了。整体来说,新版的程序主要的改进是在整体框架方面,完全摒弃了以前的滤波器概念。下面给出的图片是一张试验性的,程序还没时间来开发,估计要等比较长的时间才能面世了。不过这东西本来就是拿来玩的,什么时候出来都一样。............图片是由spanFractal V1.3 Prebuild产生出来的,原创 2005-04-28 20:20:00 · 1112 阅读 · 0 评论 -
spanFractal V1.1发布
下载地址:http://bbs.gamedev.csdn.net/attachment.php?attachmentid=2231、增加了信号同步处理,每次修改参数后取消前一次的绘图操作。(根据网友“接近无限透明”意见修改)2、采样率增加了反方向的值,提供了Preview支持。3、提供文件保存与读取支持,后缀为“sfd“(spanFractal Document)。4、新增两个滤镜,对捕获值作处理原创 2005-04-05 10:25:00 · 870 阅读 · 0 评论 -
spanFractal V1.0发布
本文属spanzhang(张友邦)原创,其blog地址为:http://blog.csdn.net/spanzhang。引用或转贴请注明出处,谢谢!!http://bbs.gamedev.csdn.net/showthread.php?t=10055原创 2005-03-30 14:53:00 · 880 阅读 · 0 评论 -
复分形四期
本文属spanzhang(张友邦)原创,其blog地址为:http://blog.csdn.net/spanzhang。引用或转贴请注明出处,谢谢!!spanFractal有了1.0版,但感觉和国外的很多作品还是有很大差距。采用log10附加变换得到原创 2005-03-27 00:44:00 · 1226 阅读 · 4 评论 -
分形集合放送
本文属spanzhang原创,其blog地址为:http://blog.csdn.net/spanzhang。引用或转贴请注明出处,谢谢!!以下的几张图片全部使用spanFractal V0.5生成。该版本目前还比较幼稚,所用的着色算法也比较单一。特别是在迭代过滤方面还很欠缺。等1.0版本出来后我再将程序放出来。原创 2005-03-14 19:36:00 · 1154 阅读 · 4 评论 -
复迭代第二期开盘
本文属spanzhang原创,其blog地址为:http://blog.csdn.net/spanzhang。引用或转贴请注明出处,谢谢!!原创 2005-03-13 20:13:00 · 831 阅读 · 0 评论 -
spanFractal V1.4
spanFractal经过很长时间的搁置,重新拾起,作了几张图片。................原创 2005-07-09 16:21:00 · 939 阅读 · 0 评论 -
刚做的分形桌面
本文属spanzhang原创,其blog地址为:http://blog.csdn.net/spanzhang。引用或转贴请注明出处,谢谢!!原创 2005-03-07 19:20:00 · 946 阅读 · 0 评论