星期二, 八月 29, 2006

找到一个图形显示和输入管理项目

名叫ggc 全称 General Graphics System虽为一个过气的项目,
不过仍然对思考有帮助.特别是dag的全程灌入.参考ghost,跟opensg后再做
下一步打算.

可能会将这个草稿给翻译一遍.

 

做个严肃的cad

花了很多时间在书籍寻找和文档阅读上面,因为远离了教育系统,所以资料获取相对来说比较困难.不过应该坚持的就要坚持下去,已经选择了,就没有时间再回头,已经没有力气调头了.

在接触Blender 前,都没有完整的受到过计算机图学的训练.以前的兴趣放在了人工智能跟区域经济的学习上,再加上受老师影响,对物理特别是粒子物理方面的兴趣极其浓厚.老师是新中国50年代的一批大学生,读书时代就跟同学一起研究引力波的假设,不过受到的却是苏联专家的无理否定和嘲讽.读书时候遇到的运动,被定性为中偏右,毕业时因为成分问题,打入冷宫,相当于流放到贵州的山区任教,这里又再次受到排挤,而郁郁半生.现在每每与同学相见,他同学们都无比叹息当时全系最聪明的人成现在这副模样.这些同学在中科院/科大等高等学府拿着3-5k的退休金,老师也就普通中学教师似的工资,只能感叹,世事无常,民生之多坚啊.

跟着老师,也明白了学术界的诸多虚伪和不真实,提出很多有建树的理论却为他人作嫁妆.这也严重打击我的学习积极性,年进70的老江湖也如此,那么我们呢?如何做研究,怎么生存?

直到05年时看到Blender,喜欢它,在当时身心最疲惫的时候,似乎找到了希望,在这之前,对软件之类不过就是知道写写代码,自己也重来没有完整的学过什么语言,接着的大半年时间里,干了很多事情,花大力气学习英语,丢掉很多工作机会来学习计算机图学.为的就是能够随心而生活.

这个软件迟早要写的,事情也是迟早要做的,边做边想边记录,不重复造轮子,也不做无用功,要对Blender有贡献,什么都没有,有的就是时间跟生命了:)

不想被某些不喜欢的事情所束缚,喜欢真实,讲真话,也许就是种虚无的盆地意识吧.http://bbs.scol.com.cn/dispbbs.asp?boardid=26&id=120764&star=1#475606

quote:

开源有核心价值,那就是真实。
你真正为开源做了多少事情,别人都能看到。通过你的言行。
在开源世界里,你更要首道义规则,不可能不付出努力就想要获得知识或者其他回报。
你的水平几乎不能拿去唬人。
你能为开源做什么?那就是敞开思绪,努力蓄势待发。
你如果没能力,那么就变得有能力。
都说宣传开源文化很难,但大部分人都知道自由共享。
都说宣传开源软件要比无厘头的宣传开源文化来得容易,所以就请走容易这条路吧,走的人多了,自然就是大路。
真实,不让伪代码存在就是开源的真谛,当然也是完美社会的生存法则,不过我们在现实世界中。

点,线,面之外

总在学习,如何处理多边形的问题.

在点线面之外,又有什么呢?

为了减小运算时的内存体积,我们有意将一些东西给予定义.

比如环,比如洞,比如shell,这些都是绝对重要的,因为有了他们,才能构成整个几何的东西.

星期日, 八月 20, 2006

讲讲点线面

点线面很简单对吧.
不过却伤人脑筋.
点线面的关系,除了简单的空间标定,还有位置关系的判断.
这两个加起来就不得了了.
头大啊.
一般来将,我们可以找到它们之间的位置关系,点-点的,点-面的,点-线的,线-线的,面-面的,线-面的,线-点的,面-点的.总共是九种吧.
但是这些东西都混在一起,那么一个物体的描述就是很长很长的段落,必然会造成在计算机编码上很多的空间消耗.这个是尽量能少则少.但是太少了又描述不清,或者又需要很多计算.
所以要在两者之间进行取舍.
于是就最笨的办法,普通mesh,这个的某些查询量比较大,但是又可以得到很少的内存和某些操作的便捷.
下面还有以面的相邻为基础的,以边的想邻为基础的,各种表述.
比如半边,翼边,四边,这些边为基础的多边形网格表示法.
他们都是建立在2维流型基础之上.什么是2维流型,这就是topo学的范畴.下次细说,比如可以直接展uv的就是很好的2d manifold.

星期六, 八月 19, 2006

有点忙碌

最近规划了五个专题来学习,mesh/3d structure/subvsurface,体渲染,ray tracing/monte carlo rt/rediosity/photon mapping,计算机视觉.

总的来说,效果不太理想,连续的高温,蒸的人神荡荡的,很难集中注意力,进展最大的可能就是mesh这块了,知道一些名词.渲染方程下派生出来的一系列算法算是理解了部分,对体绘制还是有些莫名.计算方法的问题还是没有完全解决,都说需要实践才能检验所学知识的 深度,不过还是那些莫名在阻碍事情的进展.开始怀恋我的ai/ann时代了.要是我部分功能能够有双核的抠肉这么持续,那我一定选择astar这个蛮力来解决现在的困境.口口声声说要做code方面的后援,但是还是在缓慢的螺旋上升之中挣扎匍匐.

桌面上已经铺满了paper,真的是讽刺.没有一篇是重头到尾看完过的.性格使然?

想要找好自己的贴身工具,不过又是一个遥远的梦境.在梦中思考到底是nc2400还是4200比较受用.哈哈.某些东西可以看但是摸不着啊.资金永远都是一个问题,刚筹点出来就又要接受几十个平方的偏街小巷,一切计划又得重头再来.想想自己手头的几套房源,是不是搞个中介还来得轻松点呢?

继续奢侈而贫穷着.适当的时候也可以作为一个mentor了.当然好为人师一直是被人诟病的.哪里能够找到甘于暂时的清平而又脑袋异常活跃而又精力旺盛的交流者呢.

继续Blender 吧,所以一切都是为了它.现在最喜欢听到的一句话就是:我要用blender赚钱.不是想 而是要!这个觉悟就高了,走的是自己为自己开辟的路,而不是去重复别人已经走过的路,创新和赚大钱是没有路可以复制的.唯有一往无前,才能受到洗礼!

有人言ogl要死了,blender是找不到商业模式的.我说不见得.就看各人的胆量有多大了.

看来打的将是一场未知的持续战.忙碌而幸福,不言失败,不言放弃.

细分曲面分析讲义‘99 目录

目录
细分曲面
原始思想
举例
规则
三次样条线细分
三次细分矩阵
特征值分析
特征值分析
特征值分析
特征值分析
特征值分析
特征值分析
小节
loop构成
loop构成
总结细分构成
变化性细分
变化性细分
变化性细分
loop构成
改进型蝴蝶构成
catmull-clark构成
catmull-clark构成
kobbelt构成
kobbelt构成
doo-sabin和中边构成
doo-sabin和中边构成
普通细分的局限性
geri下棋的细分曲面
混合细分曲面
光滑规则
无限尖锐褶皱
布料模拟
能量方程
碰撞
构建阶层
纹理映射
可用的网格识别

Blender renderAPI建议

原文: http://mediawiki.blender.org/index.php/BlenderDev/RenderAPI

Blender api
介绍,
一个render api必须具备3个部分,
方便的保存定制数据在材质物体和mesh中
一个具有弹性的操作界面来定义和修改数据,python可以说是最方便的选择.
c api可以获得任意定制数据,处理渲染场景,然后输入给目标render.
个人认为,xml是存储指定数据的最好的选择,我想python也是理想的处理定义数据ui,很明显,这需要先为定制数据进行接口设计.

api结构? 为什么用xml?怎样与渲染器的接口相联系?

这些问题都要通过重新设计scene场景数据来得到.

恩,这个比较有意思,比照着完全实现一个ri有意思多了.

离散微分几何

这是现在解决mesh这类几何体的有效宏观工具.

关键词: Discrete Differential Geometry 简单的知道mesh的基础结构是不够的.

http://www.google.com/search?hl=zh-CN&newwindow=1&q=Discrete+Differential+Geometry&btnG=%E6%90%9C%E7%B4%A2&lr=

对2,3维流型的研究,可以在cg方面有更多作为,比如uv的蒙皮更好的算法现在好象是abf+比较流行,点云几何体的存储简化,复杂mesh的网络传输,mesh水印??这个研究不太成熟..还有关于npr的一些边线算法:视线与面/边法线的夹角.3d morph恩,好象很流行的样子.mesh的smooth.

当然就是把微分几何的东西搬过来,曲线的曲率,挠率,微分不变亮,曲面的包络,流型几何等等,放在mesh上面来完成.

纯数学的东西我一向是没啥大的兴趣,但是这些东西跟工程结合,就变得非常有趣了,要把mesh 作为信号了处理,就需要在某些方面对mesh的拓扑性质做更深层次的理解.懂点撒一类不变量egf,2类不变量lmn的,可以更好的看懂什么高斯曲率/filter,恩,很明显我是不懂这些的,懂了也不解决温饱,还不如正确计算出每升油能卖个啥价有趣.

深入微分几何,还可以搞点黎曼/拓扑,然后整点群论,就是研究那个更有趣但是不管饭的广义相对论了.

脚本&c语言/normal mesh&ngons mesh

这总是一个似是而非的话题.关于效率的问题.关于机器性能.... 看了unix编程艺术 里面提到 http://page.mi.fu-berlin.de/~prechelt/Biblio/jccpprtTR.pdf 统计结果是这样的 同c c++相比,使用脚本语言可以使生产效率增加一倍.虽然速度性能上来说脚本没有c类语言快,但是现实世界中,各种不确定因素使得这些劣势微不足道.

blender中的也有着类似的争论,那就是关于mesh是否应该支持现在几乎所有商业软件都支持的n-gon特性.有的人说,看lw这么多个版本都没有支持那个玩意,也照样受到很多人的欢迎.有的人激烈反对应为做游戏这样的情况已经足够了.而且blender的所有特性都已经建筑在了那个简单的mesh基础之上.要重头来过基本已经不可能了.主程对所有的事情都不置可否,好象也没有找到他相关的言论,也许是我们进如得太迟,没有看到相关的讯息.但是争论到现在也没有停息. 谈谈自己的感受:虽然建模是个苦力活,但是最后的作品给人仍然是一种享受,前几天下了个新的wings3d,喜欢tweak smoth 几个简单的loop选择,就这几个工具就已经足够用了.比起blender的建模方面最大的优势是明显的,效率:选择工具的全面性,比起blender多了完整的bevel工具,一些常用的n-gon工具也占着很大比重,这些都能够在建模效率上给你很大的提高,当然wings的函数语言/脚本语言的编写在本来就慢的基础上又加慢了许多,也许应该直接整合进blender,双赢啊! 还好,最新的wing版本在culling和lod上好象有点动作.

当然,blender的n-gon支持也不是说得那么简单,在joeedh的这么多年工作中,我看到了一些问题:需求的人很多,但是没有人真正的跟进这件事情,这个改动先前是以所有模块的维护者来teamwork的,因为涉及的代码太多,02年开始 弄到现在,依然走走停停.现在又搞为单独独立出一种物体来支持n-gon,好象到现在还是举步为艰。

也许是 ton要 等到blender3的 时候 再送给我们大礼吧,所以,凡是都要靠自己,也许沉默的大多数也要开始爆发了,走着瞧好了,很多的事情都很难预测,特别是在blender这里。 blender铁定是要走向ogre的这个图形前端的,没有意外这应该是个最好的 选择,所以关注blender成长的同时还是应该关注它,对blender进行创造会给大多数人带来快感,除非maya开源,max开源,lw开源,这个竞争依然会走下去的,本段最前面的假设依然成立。

Computational Geometry

简单的计算几何介绍,点线面边的一些关系,还有凸包,面积啥的,简单东西复杂化,就是这帮人搞的事情。

还是喜欢什么 机器证明。微分几何 黎曼几何,拓扑,广义相对论。。。

一直想随着爱好前进,看来物理方面的东西要抛一边了,到40后再研究也不迟,谁tm说老了记忆力就会减退,我看6 70岁的老头也能很快的解掉偏微分方程。大脑随时需要刺激。不然真的会老。

http://acm.fzu.edu.cn/reference/Computational%20Geometry.htm

Introduction to Solid Modeling

好书,只有一条评价。

Excellent, excellent book
I have been trying to build my own application that uses 3D graphics in a CAD-like environment, and this book is an absolute gem in providing the reader with a great deal of background on solid modeling. It is written in a way that is excellent for novices as well as more advanced programmers. If you need to get a handle on 3D solid modeling (or any 3D modeling, actually), don't pass this book by.
可惜我是没有找到类似的书来哈。curve跟surface是好东东,可能对art cad来说,polygen也许更有发展空间。哦,无知者无畏,资料已经找齐了,准备上路。

找到一位前辈

恩,找到98年的文章,现在依然没啥改进。

还有篇 halfedge跟 winged edge结合的混合体东东。pm有关,我还是想干干out of core的活。还没开始看,也许永远也看不懂。

http://blog.donews.com/piaoger/

http://www.donews.net/piaoger/archive/2004/11/21/177934.aspx

NPR&NURBS&SUBDIVISION

恩,精力有限,现在重点应该放在这上面了。离散微分几何也不是啥大问题。看来我是有点发育迟钝了。 laoyifuxi zhizaiqianli :) 分形,细分,曲线,数值,非真实,万事万物都有内在的相互联系性。老k的问道之路,长漫漫。

小小总结下半年的学习-cg方面

这半年开始,大量涉及计算机图形学的知识。虽然大部分都不懂,但是却渐渐明确了我的努力终身的目标。

记得去年这个时候,对blender的操作才懂得怎么旋转。读书的时候也灭有很好的学习英文,几乎什么都荒废了,差点连奋斗两个字都丢掉。

今年1月,算是为了应景,开始学习blender的代码,这个时候才发现原来需要的东西太多了。首先面对的问题就是语言关难多,c言也好,英语也好,这些基本上心中都没有一个底,这两个没学好还谈什么读代码,当时的我连一个很基本的循环都搞不明白,只知道以前学8051的时候循环是有很多种的,位置不同次数不一样,汗,这就是大学里面学到的唯一知识。其次是算法和数据结构,这一块基本没有涉及过,最多就是以前在上选修的时候,c语言老师着重讲过排序问题,但是那时候估计我正在最后一排躺着做梦。就这样又是一个难题。接下来的就更难得说了,曾经发誓要看懂blender中的subdivision surface这部分代码,后来才发觉更多的连基本理论都不知道,找了找siggraph 98和00的专题看了看,才明白自己更多的东西没有学过,离散数学跟数值分析,这些东西是一遍遍的google才逐渐明了。虽然说有点点知道线性代数的东西,不过用来看图形学方面却太少了。于是又开始买关于图形学的书籍,明白了一些简单操作,才知道这些东西跟机器人的很多是共通的,豁然悟到为啥以前教机器人选修的外教图形学也这么强,也渐渐明白图形图象之间的关系,图象和信号之间的关系,信号和人工神经网络之间的关系,离散数学和人工智能之间的关系。。。。

图形学这堵墙实在是太厚了,撞得头破血流,才刚刚开始起步。这段时间或而醉心于计算流体力学与所学知识的联系,一下又去追逐光线追踪算法模拟的计算机真实感,突然又跑去学习一下为啥blender不能象silo/modo这些软件支持多于4边的多边形建模,然后又对计算机视觉产生浓厚兴趣,想着等学成后为blender也整个双摄相头的视频捕捉,让我们直接可以用手来捏泥巴,忽然有一天又觉得该传承下中华文明,要做一个彩墨的npr出来,或者搞一个刺绣的模拟渲染器,某一天又觉得自己才思敏捷,应该搞个故事脚本,写个上古时代的动画片--对是写,在这前是为机器编一个脚本自动理解程序,然后照着脚本想象一下把资料库的东西拿出来重新编排自动渲染,于是我就可以看动画片了,惬意兮

老辈人说过,心多肺烂。。。呵呵,blender让我爱上了图形学的绚烂。最近的努力也让我逐渐走出了身在庐山的那种困境,做个小小结,算是为以后的回头望写个注本。也为以后实在没动力时做为打气的工具。半年可以种出一季水稻,可以设计并生产出一个车型,可以升级两代cpu,可以完成几千亩的多层楼盘开发,可以让一个人彻底改变。恩,就是这样。

还没学会爬就要开始跑

最近在学npr,真正的看书,看代码。几个免费的东东,不是java的就是c++的,有的还有mfc在里面的。乱啊。

npr其实也很乱。有人想要把很多种实现方法收入一个系统里面。画出各种效果? 我现在仍然有很多疑惑,unified remder ing freestyleing.哈哈 快颠了。

BlenderDev_CN我们业余,我们一样走得更远

本来是想写在论坛上的,刚写了一点发现想要表达的没有很到的组织,或者说总想写全面但是又怕贻笑大方,一句话---水平不够。所以先安在这里,等顺利把知识点全部填补了,再放论坛上不迟。

今天买菜想到的一些读代码该需要了解的常识。
也许很多专业人士已经领悟到这些方面了,所以我想的这些就是和同我一样只翻过c语言教材前几章的朋友交流下看法,或者说跟象我一样想把学习Blender代码作为程序学习的起点的朋友共勉。
Blender在我看来更象是一个可视化的数据库。我们的一切操作就是在对数据库中的东西进行查询修改然后保存。这个数据库是用c语言来写成的,所以Blender利用了这个语言的优点:预定义和指针。预定义的例子就象那个globe变量,定义g.flag的值。指针的问题更在Blender当中常见,随便一处都是函数指针,结构体也是随处可见,不过一般的教科书上却对这些讲解很少。c语言写的很小的数据库范例,我们也不常见,但是如果找得到那么最好看看。操作系统上的那些技术是Blender当中经常会遇到的。这个作为业余来说也许难了点,我上网搜索的时候,也看到一些甚至是大学毕业的人在感叹他们对函数指针这类不太熟悉,而要在操作系统之类的项目里面常用这些东西。也许你会窃喜--哈哈,这些都是我的拿手好戏。恩,这些对你不是问题,那么说明你在某一方面比这些科班出生的人强一点,但是其他的呢,算法设计,数据结构,数值分析的应用这些呢?你说你也会?好,你是专家了,应该领悟得比我更深刻。我们大家都要向你请教,需要你这样的人为我们带路,不要让我们这群有激情参观blender代码的人耗巨量的功夫却没多大收获。什么?对blender不感兴趣,那你看这个干嘛:)

Blender的代码能给我带来什么,这也是我一直在思考的问题。代码是人写的,人的水平决定着软件的生死,现在在开源领域还没有类似的软件可以跟blender叫板,(当然不排除max突然开源的情况)。既然能够把代码放在公共域里面随便你参观,那么写代码的人还是应该在这上面倾注了很多心血的,虽然说是在开发时bug free,但是有资格对blender代码进行修改的几个人,还是得到了社区大多数code的承认的,在编写格式上,在思考方式和组织上面,应该还是见得人的。我们可以在读代码的同时学习到Blender数据的组织(数据结构),对数据的操作(算法),还有一个软件的总体把握(软件工程),和方法的应用(desgin partten)。我可重来没有想过要再造一个blender,这个是有条件限制的。时间:10年,精力:5-800个人月,金钱:500万欧元。这些没有庞大的组织和资金作保障是完不成的,就算有,那你10年做完的时候,也许blender已经象现在的maya之流一样好了。
兴趣方面也会是能不能够走得更远的关键。兴趣的力量要能抵挡住各种诱惑这也是相当难的。

半年的时间,学到很多,不过也是刚入门的样子,读代码,既在之内又在之外。{添加感想n字 mesh,细分曲面技术,2次三次插值,nurbs,b-spline与数值分析的关系,raytracing的算法种类,eular法与动力学模拟。。。}

打住,以后在论坛随时贴点学习进展,也许要比长篇大论好得多。

老k要补的最后一门课

最后一门打基础的课,断断续续把该要深入的课程基础学了一遍。以前被问到喜欢干什么,头脑里没有深刻的印象,也许就是做个blender的爱好者吧,现在我如是想。

要在这方面深入下去,我还需要打基础的一科就是 数值分析了。呵呵,现在看曲线曲面,看细分曲面不是很懂跟这个有很大关系,其实真正还是因为符号系统的不适应。自学是没法考试的,唯一检验的方法就是做东西,从失败开始,慢慢成长:)

所有的一切都是为了爱好,为了blender,为了cg,就这样坚持努力好了。明天不知道会是什么样,做好自己,积累进步。在2.42出来前,完成知识的新生。

随记

form one world to another world(未完成)

学习了差不多一年的cg,认识就是这么高一点点。

学习任何东西都是要付出代价的,那么就简单的算一下成本,我们是否有学习cg的必要。

对于学习,现在我们普遍把它当成是一种投资。智力投资也是需要收回成本。自学也是如此,我能从中得到一些什么东西,就需要把自己看作投资方,对所有的智力投资作一个比较。

这个随笔就是为了想看看学习cg到底能需要作出一些什么样的投资来写的。内容也许会很肤浅,不过也会相当直接的指出一些经历,供大家参考。

google夏日代码,半边结构(half edge)n-gon的开发建议

在Blender中实现半边结构(half-edge)的建议
介绍,
半边网格结构是一个多能的边界表示法,在编写快速边界邻接查询和统一定位方面的工具非常有用。
这种结构对编写重拓扑工具,高级bevel工具(点/边挤压),有效的网格优化,更有效的csg实现。
这篇建议是对blender半边工具的额外附加支持。经过了最初的开发阶段后,它已经成为一类单独的物体类型,但是我们想要达到目标是,在需要的情况下,可以将普通的网格同半边网格互换,为更高层次的工具实现提供支持。现在的网格fgon可以通过这样实现。
半边的优点
半边结构存储了非常明确的朝向信息在网格几何体中。可以实现非常快的邻接查询,从而发展出一些高级的建模工具(比如点/边的挤压和倒角)很容易的写出他们,而且运行也相当迅速。包围一个顶点的边的查询,面面相临,所有这些都能够实时的完成耗时也只是常数时间。

对用户的好处
从用户的角度,fgons变得越来越重要。很多的建模工具都开始变得fgons化了。包括倒角,挤压,甚至(可以实现的)细分。
更实际和更重要的改变就是很多高级的非常有用的工具可以做出来:
面/点/边 倒角和挤出工具,这些基本上是在普通的网格结构上不能实现的。
坍塌点工具(坍塌边/面工具会在半边结构实现后重写代码)
多边形/伪多边形网格工具
更多,可以更充分的增强布尔工具和优化工具,如果按照在silo里面实现的那种retopolizing工具做出来的话。

半边实现的细节

Basic Information
Basic half-edge only supports closed and fully manifold meshes. The proposed implementation will support the open mesh and vertex-hole (also called incident vertices) extensions of half-edge, along with support for multiple shells. The term vertex-hole refers to the situation where two mesh solids are joined by one vertex (imagine two pyramids, one upside down, joined by their tips). This implementation will support query operations for iterating over the mesh solids surrounding a vertex. It will use the circular vertex method to "unglue," or separate, solids connected this way (but will hide this from both a tool and user point of view).

There will also be support for "ghost" boundary edges, which will allow circulators (iterators that operate on circular linked lists) to be used for virtually every query operation.

Note that this implementation will not support edges that share more then two faces, and as such invalid meshes will only have access to the normal mesh structure's user tools.

Euler Validation
欧拉验证
This half-edge implementation will support validation of the underlying mesh structure using the Euler-Poincaré formula. The validation system will automatically detect half-edge mesh corruption, and revert the mesh to a previous state (using a backup that will be automatically created before any user tool is executed).


就是要验证这个公式:V - E + F - (L - F) - 2(S - G) = 0
Coding Goals
The specific goals of this project are:

Achieve a stable half-edge implementation, with full support for boundary edges, vertex-holes (also known as incident vertices), and multiple shells/meshes.
Have full support for converting to/from a normal mesh structure, including awareness of fgons.
Have a fully-working euler validation system.
Implement a full set of mesh tools, including a set of extrude tools, a subdivide tool, and a set of collapse tools.
Implement a full query system, based on circulators (this includes edge and face loops).
Implement a full set of Euler operators, including collapse-vertex, collapse-face, collapse-edge, split-vertex, split-edge, and split-face.
Retrieved from "http://mediawiki.blender.org/index.php/User:Joeedh/Hemesh_SOC_Proposal"

Image-Based Modeling and Rendering

从照片出发,搞出模型,然后再渲染成图片。ri 这是啥倒霉事情。

including movie maps, panoramas, image warping, photogrammetry, light fields, and 3D scanning.

http://www.debevec.org/IBMR99/

link cloth animation modeling

http://www.cs.ucl.ac.uk/research/vr/Projects/3DCentre/cloth_simulation_links.htm

http://www-viz.tamu.edu/faculty/house/cloth/

http://www.reyes-infografica.com/cloth.php

http://www.digimation.com/home/?Content=softwarehome.html cloth

http://www.csee.umbc.edu/~yiwang1/clothsim.htm

作个记号ADVANCED TOPICS IN COMPUTER GRAPHICS

够我看一段时间的了

http://www.daimi.au.dk/~rip/rtc2005/lectures.html

http://web.cs.wpi.edu/~matt/courses/cs563/talks95.html

http://www.cs.unc.edu/~rademach/xroads-RT/RTarticle.html

http://www.cs.unc.edu/~rademach/xroads-RT/RTarticle.html
http://www.cs.utah.edu/npr/
http://plib.sourceforge.net/sg/index.html
http://www.acm.org/jgt/
http://www.faqs.org/faqs/graphics/bsptree-faq/
http://pages.cpsc.ucalgary.ca/~mario/npr/bib/
http://www.cs.utah.edu/npr/
http://www.red3d.com/cwr/npr/
http://www.cs.kuleuven.ac.be/~phil/GI/
http://www.cnitblog.com/IntelligentMachine/archive/2005/11/04/3867.aspx
http://www.mit.edu/~danz/marti/intro.html
http://web.umr.edu/~johns/raytracer/rtn/
http://www.mit.edu/~danz/marti/intro.html
http://www.mit.edu/~danz/marti/intro.html
http://www.cs.uu.nl/docs/vakken/gr/lectures.html
http://www.cs.utah.edu/vissim/papers/raynurbs/raynurbs.html
http://www.cs.uu.nl/docs/vakken/gr/lectures.html
http://www.intel.com/cd/ids/developer/apac/zho/dc/threading/247366.htm

有点忙碌

最近规划了五个专题来学习,mesh/3d structure/subvsurface,体渲染,ray tracing/monte carlo rt/rediosity/photon mapping,计算机视觉.

总的来说,效果不太理想,连续的高温,蒸的人神荡荡的,很难集中注意力,进展最大的可能就是mesh这块了,知道一些名词.渲染方程下派生出来的一系列算法算是理解了部分,对体绘制还是有些莫名.计算方法的问题还是没有完全解决,都说需要实践才能检验所学知识的 深度,不过还是那些莫名在阻碍事情的进展.开始怀恋我的ai/ann时代了.要是我部分功能能够有双核的抠肉这么持续,那我一定选择astar这个蛮力来解决现在的困境.口口声声说要做code方面的后援,但是还是在缓慢的螺旋上升之中挣扎匍匐.

桌面上已经铺满了paper,真的是讽刺.没有一篇是重头到尾看完过的.性格使然?

想要找好自己的贴身工具,不过又是一个遥远的梦境.在梦中思考到底是nc2400还是4200比较受用.哈哈.某些东西可以看但是摸不着啊.资金永远都是一个问题,刚筹点出来就又要接受几十个平方的偏街小巷,一切计划又得重头再来.想想自己手头的几套房源,是不是搞个中介还来得轻松点呢?

继续奢侈而贫穷着.适当的时候也可以作为一个mentor了.当然好为人师一直是被人诟病的.哪里能够找到甘于暂时的清平而又脑袋异常活跃而又精力旺盛的交流者呢.

继续Blender 吧,所以一切都是为了它.现在最喜欢听到的一句话就是:我要用blender赚钱.不是想 而是要!这个觉悟就高了,走的是自己为自己开辟的路,而不是去重复别人已经走过的路,创新和赚大钱是没有路可以复制的.唯有一往无前,才能受到洗礼!

有人言ogl要死了,blender是找不到商业模式的.我说不见得.就看各人的胆量有多大了.

看来打的将是一场未知的持续战.忙碌而幸福,不言失败,不言放弃.

最近在学GLUT

也许这个是看看就会的,但是我却怎么都不会.不是没有动手,当然还是做了很多练习题.

看来还是我某些知识点的缺失导致了这种状况.

以前总是想用blender的库文件来做软件方面的辅助库,但是仔细想想,还不如成熟完善一个或者几个库,这样再反还给blender社区也许更好。到时候互相使用软件的成熟度和使用度也许会更高.因为没有商业利益,软件的开发会很漫长.不过仍然是很有用的探索,至少对我自己是这样.

所做的程序,目标总体应该是指向silo2.0,不过经过仔细学习后,感觉能够开始达到wings的水平就相当不错了.

这个软件大致分为基本数据模块,简单显示控制,操作工具,subsurf工具库(ccg的库总体来说是用c来模拟面向对象的方法,这里的知识点还有欠缺),lua脚本支持.高级点的文件io暂时不提供.以后会添加诸如体素,更强的渲染引擎之类,高级io等,不过是时间问题.

总体来讲,要得到支持n-gon和普通mesh,而让用户不需要做过多操作.工具集能够定制,用户界面如果可以的话准备用cegui,在用户界面上尽量贴近silo跟wings,大部分可以定制就行.至于其他的可能还是需要继续深入研究才有改变.还应该有lod,海量存储的功能.这些都会考虑到软件开发当中.

详细的软件需求也会慢慢写出.最近还是需要为生活而战斗,虽然房租大概能2k/月,但是仍然不够补贴家用.还要准备明年的考试的费用支出,偶尔还要出去做点家教改善下伙食.所以时间看来有限的.

涓涓细水能长流.只要坚持不懈,任何事情都会成功的.前段时间说学uml/c++,直到看了一本书: Navigating C++ and Object-Oriented Design ,我才发现我对很多事情认识太过于苛刻,oo方法其实很简单.推荐有点c知识的朋友学习.

一句话,最近在学glut/ogl/glu/renderman interface,为了最后的准备!欢迎同好的讨论.做modeler啊做modeler.自勉!

一个模拟maya的艺用cad

名字叫clay3d.
地址没有.g之.

星期五, 八月 18, 2006

为什么想做cad

因为blender的实在是有点弱.
还有因为一些爱好.所以就想做.
当然,想是一件事情,做是另一件事情.
到底能够怎样,做不做得好.就要看本事了.吹牛是吹不来的.

以前用过的cad

读书的时候是机械的大专业方向.
很多时候都在跟cad打交道.
autocad就不用说了。
ug这个是在实习工厂里面用的.实习老师把ug吹得神乎其神.最后得知他们的除了电脑是正的外.软件都是盗版.
pro/e这个学了整整一学期.
solidwork有人让我们花钱去买证.不过我还是在电脑里面装了玩玩.
mastercam总的来说是一个数控平台,因为便宜,所以国内用的比较多.能做一些简便的模型,虚拟简单加工还是可以的.
catia因为听说五粮液要造车,造车就是需要一个cad的,这个是g到的cad.然后看了看,没有深入这个法国人的玩意.
caxa因为是中国的汉语言支持度很好,很多东西都模块化了,所以我比较喜欢用它,同时也推荐同学用,做机械的时候因为有很多默认配置,所以基本上能够做得有效率.
rhino只能说是一个cagd,不过也算是在曲面方面成佛了的万一,毕业那年狂买了一堆书,然后学习,不过忙碌没有学到什么名堂.现在还耿耿于怀.哈哈.不过现在我很想用opennurbs来做一些事情,因此还是能够跟rhino挂上一点关系的.
玩了这么多,说到底,cad就是需要你对软件工具的掌握熟练,对国家标准或者行业标准比较熟悉,这两样来了,那么效率就上去了.做机械图还是比较便宜,所以基本上都丢掉了.而且很不愿意在这方面下大力气去深入研究,再学也是别人的软件,别人来赚你的钱.所以很想有自己做的cad.只是专业性强点而已.

星期四, 八月 17, 2006

交互式软件的架构

需要做一个用户界面非常复杂的应用程序的时候,就需要考虑把数据抽象为3类:模型,视图和控制器.
一般就简称mvc.
在blender的设计上就是这样来完成的.
内核部分用于定义模型,视图显示是在disp_xxx中完成.控制就是menu_x 等等中.
它们互相分开,通过譬如derivemesh之类的数据结构相关联.
这样做的好处就是可以很好的分离用户界面和业务逻辑.
不过cad总的来说,还是要暴露基本的数据给用户.这是这类软件的本质.
如何更深层次的简化用户看到的可视化数据,这是研究的重点.

星期三, 八月 16, 2006

这个blog的调调就定位为做cad的算法

这个blog就研究open cascade好了.
这些cad软件都有好几千个类库,真的比较麻烦.但是为了blender的顺利成长,研究这些又有何错误呢.
何苦去做游戏,其实有点技术积累做做cad算了,但是拿autolisp搞搞二次开发的就除开算了.
用mfc的也除开算了.很多个减法让我只能选择学习cascade.
其他的方面,另外的那个blog就给它定义为通过实力做一个artcad,也许这就是最好的分开选择,blog的tag都暂时不支持,多几个blog也许是个最好的选择.

其他的blog定位是,新闻/转载,blender文化(可能还不存在,不过可以催生的),做一个象blender的3维软件,如何step by step,如何思考的, 做电影的想法和奋青的表露,还有一个转注于商业模式的.

就这样开始行动,少写英文,多写中文,出发.

artCAD

艺术用cad,可能这个词汇不是那么的恰当.
应该说是cagd,计算机辅助几何设计.
大家不是都说做模型吗.
做了模型以后呢? 通常概念下的艺术cad就到此为止.它不会去给你检查你模型的完整性,不会对模型进行一些细致的剖析.没有通常意义下的cad的那种知识库,可以给你提供导向.
因为行业的特性,artcad的存在,让模型基本没有章法可寻,虽然有些布线的规则可以让你去追寻,但是那些并不是最关键的.如果电脑可以改变这些方面,也许以后的建模将会更加的富有创造力.
最近没有研究这个问题,其实在modeler中,专家系统是存在的,不过很多规则限定而已.使用过程中更注意用户感受,从而让大家融进了这些规则.
artcad的专家系统化,可能吗?

庆祝blogspot重新能上了

搞这么多站点的目的就是做一个实验,看能否通过在有几个blog上面添加google的广告赞助,来使得到的费用可以完成http://www.blendercn.org/现在需要扩张的经费.虽然都是靠赞助,但是cn的目标显然是没有完成,需要更多能够脱离生产活动而专心研究blender的朋友,当然这只是一个想象.

点击广告一次可以得到0.01美圆.在没有firefox的机器上点广告下载一次firefox可以得到1美圆,adword推荐是需要别人消费了100美圆才可以得到20美圆,adsence是别人赚到了100美圆你才有100美圆.
也打算为blendercn投放广告.在某些关键字上面可以有搜索连接.虽然不是竟价广告,但是每个月100人民币的消费,还是有点累.
如果有了小额度的现金流支持,也许blendercn能够迅速前进,也说不定:)实验中,无聊中. 呵呵,继续写作,希望能为cn筹到一些活动经费.

激励措施

网页中不能包含任何激励用户点击广告的措施。这些措施包括鼓励用户点击广告或访问广告客户的网站以及采用任何不恰当的方式引起用户对广告的注意。例如,网站不能包含 “click here (单击此处) ” 、 “support us (支持我们) ” 、 “visit these link (访问这些链接) ” 或其他与内容无关、适用于任何广告的类似词语。此类行为必须严禁发生以防止加大广告客户的成本。 此外,发布商不得透过未经索取的大众电子邮件或在第三方的网站上对投放 Google 广告的网站引起不自然的注意。同时,发布商不可使用任何欺骗或不恰当的方式吸引或鼓励用户对推介按钮进行点击 。

我已经很邪恶的这样做了. 我会尽快改正.看来此路不通 除非一个帐号的adsense能够在更多的blog或者网站上投放.否则基本上这是一条死路.

http://kidux.blogspot.com/
http://kidux.sitesled.com/
http://blendercn.blogspot.com/
http://cgmovie.blogspot.com/

星期二, 八月 15, 2006

CCGsubsurfLIB补充计划

附件是ccgsubsurf的代码. 它是由daniel实现的一个catmull算法的细分曲面包.因为速度很快,所以在blender中有其代码的移植. 但是时间关系,作者并没有完成所有功能,比如adaptive subdivision就没有. 项目地址: http://minormatter.com/zr/ccgSubSurf/index.html
程序的基本功能就是,获得处理mesh的几何信息,建立点线面的表谱,转换四边形,建立0层级的细分曲面的点线面的表,处理请求,获得指定层级的细分曲面点线面表,输出给mesh,mesh程序段重建新的点线面的表。

网上汇款免手续费, 收货满意后卖家才能拿钱,货款都安全