<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8252604129444828813</id><updated>2012-02-17T03:22:42.997+08:00</updated><category term='MEL'/><category term='Software'/><category term='Maya'/><category term='C/C++'/><title type='text'>第九乐章</title><subtitle type='html'>黑牛奶，不加糖</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://9th-movement.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://9th-movement.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Cobra'Nails</name><uri>http://www.blogger.com/profile/04547120036471659938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://1.bp.blogspot.com/-EZLTaKKbp2o/TeJxE13xyCI/AAAAAAAAAOo/JK5q8IR4Big/s220/Killzone_2_Movie_Style_Poster_by_mehdi5.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>35</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8252604129444828813.post-7591978557561553117</id><published>2009-11-18T18:44:00.000+08:00</published><updated>2009-11-18T18:45:27.671+08:00</updated><title type='text'>暂停更新</title><content type='html'>Nothing yet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8252604129444828813-7591978557561553117?l=9th-movement.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://9th-movement.blogspot.com/feeds/7591978557561553117/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8252604129444828813&amp;postID=7591978557561553117' title='38 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/7591978557561553117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/7591978557561553117'/><link rel='alternate' type='text/html' href='http://9th-movement.blogspot.com/2009/11/blog-post.html' title='暂停更新'/><author><name>Cobra'Nails</name><uri>http://www.blogger.com/profile/04547120036471659938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://1.bp.blogspot.com/-EZLTaKKbp2o/TeJxE13xyCI/AAAAAAAAAOo/JK5q8IR4Big/s220/Killzone_2_Movie_Style_Poster_by_mehdi5.jpg'/></author><thr:total>38</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8252604129444828813.post-8551817630824717708</id><published>2009-05-23T23:43:00.004+08:00</published><updated>2009-05-23T23:51:13.612+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Maya'/><title type='text'>autorig的maya前端</title><content type='html'>highend3d上的链接&lt;br /&gt;&lt;a href="http://highend3d.com/maya/downloads/mel_scripts/character/5753.html"&gt;http://highend3d.com/maya/downloads/mel_scripts/character/5753.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;这里是论文，MIT的phd啊&lt;br /&gt;&lt;a href="http://www.mit.edu/~ibaran/autorig/"&gt;http://www.mit.edu/~ibaran/autorig/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;linux和macosx：&lt;br /&gt;highend3d上只提供了win版的，前端是python写的，不过需要autorig的执行文件。autorig的程序叫Pinocchio，源码可以从&lt;a href="http://github.com/elrond79/Pinocchio/tree/master"&gt;http://github.com/elrond79/Pinocchio/tree/master&lt;/a&gt;下载。makefile有点小问题，需要自己加tab。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8252604129444828813-8551817630824717708?l=9th-movement.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://9th-movement.blogspot.com/feeds/8551817630824717708/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8252604129444828813&amp;postID=8551817630824717708' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/8551817630824717708'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/8551817630824717708'/><link rel='alternate' type='text/html' href='http://9th-movement.blogspot.com/2009/05/autorigmaya.html' title='autorig的maya前端'/><author><name>Cobra'Nails</name><uri>http://www.blogger.com/profile/04547120036471659938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://1.bp.blogspot.com/-EZLTaKKbp2o/TeJxE13xyCI/AAAAAAAAAOo/JK5q8IR4Big/s220/Killzone_2_Movie_Style_Poster_by_mehdi5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8252604129444828813.post-2170971523543122332</id><published>2008-12-14T21:04:00.002+08:00</published><updated>2008-12-14T21:14:51.466+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MEL'/><category scheme='http://www.blogger.com/atom/ns#' term='Maya'/><title type='text'>定制右键标记菜单</title><content type='html'>在dagMenuProc.mel的dagMenuProc过程定义了各种不同物体的右键标记菜单。&lt;br /&gt;比如，在&lt;br /&gt; if (($object == "CubeCompass"))&lt;br /&gt; {&lt;br /&gt;  createViewCubeMenuItems($parent);&lt;br /&gt;  return;&lt;br /&gt; }&lt;br /&gt;的下面加入： &lt;br /&gt; if(`attributeExists "extNode" $object`){&lt;br /&gt;  print ($object+" RMB menu proc calls!\n");&lt;br /&gt;  return;  &lt;br /&gt; &lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;重新加载dagMenuProc.mel，新建一个物体，增加一个属性:extNode，类别任意。&lt;br /&gt;再这个物体上使用右键菜单时，就会输出OBJECT NAME RMB menu proc calls!&lt;br /&gt;如果在$parent上加入菜单，就可以显示菜单了。&lt;br /&gt;&lt;br /&gt;技术细节：&lt;br /&gt;dagMenuProc并没有出现在文档中，更详细的信息也没法得到，从网上搜索到的信息表明rmb标记菜单是附加在dag属性上的。&lt;br /&gt;Maya's dagMenuProc script controls Right-Mouse-Button clicking on objects in the model viewports.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8252604129444828813-2170971523543122332?l=9th-movement.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://9th-movement.blogspot.com/feeds/2170971523543122332/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8252604129444828813&amp;postID=2170971523543122332' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/2170971523543122332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/2170971523543122332'/><link rel='alternate' type='text/html' href='http://9th-movement.blogspot.com/2008/12/blog-post.html' title='定制右键标记菜单'/><author><name>Cobra'Nails</name><uri>http://www.blogger.com/profile/04547120036471659938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://1.bp.blogspot.com/-EZLTaKKbp2o/TeJxE13xyCI/AAAAAAAAAOo/JK5q8IR4Big/s220/Killzone_2_Movie_Style_Poster_by_mehdi5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8252604129444828813.post-8454417026655765145</id><published>2008-12-12T20:26:00.002+08:00</published><updated>2008-12-12T20:33:18.334+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C/C++'/><title type='text'>boost::regex匹配序列文件名2</title><content type='html'>regex默认是perl的语法，但是一些细微的地方和perl的不尽相同。今天就在这上面吃大亏了。&lt;br /&gt;&lt;br /&gt;    std::string regstr2="("+name+")([0-9]+{"+ia+"})([.]"+ext+")";&lt;br /&gt;    boost::regex expression2(regstr2);&lt;br /&gt;就这两句，编译的时候没有问题，一运行就出错，总是说表达式不合法。折腾了半晚上才发现[0-9]+外面要加()才行。&lt;br /&gt;用reggy工具的时候就没有这个问题([0-9]+){3}和[0-9]+{3}是同样的效果，在boost里后者就是不合法的表达式。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8252604129444828813-8454417026655765145?l=9th-movement.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://9th-movement.blogspot.com/feeds/8454417026655765145/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8252604129444828813&amp;postID=8454417026655765145' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/8454417026655765145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/8454417026655765145'/><link rel='alternate' type='text/html' href='http://9th-movement.blogspot.com/2008/12/boostregex2.html' title='boost::regex匹配序列文件名2'/><author><name>Cobra'Nails</name><uri>http://www.blogger.com/profile/04547120036471659938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://1.bp.blogspot.com/-EZLTaKKbp2o/TeJxE13xyCI/AAAAAAAAAOo/JK5q8IR4Big/s220/Killzone_2_Movie_Style_Poster_by_mehdi5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8252604129444828813.post-1157066714302233160</id><published>2008-12-12T13:46:00.002+08:00</published><updated>2008-12-12T13:55:39.222+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C/C++'/><title type='text'>boost::regex匹配序列文件名</title><content type='html'>#include &lt;boost/regex.hpp&gt;&lt;br /&gt;#include &lt;iostream&gt;&lt;br /&gt;int main() {&lt;br /&gt;std::string regstr = "(^.*/)([^/]+?)([0-9]+)([.])([^./]+$)";&lt;br /&gt;boost::regex expression(regstr);&lt;br /&gt;std::string testString = "/Users/cobranail/Documents/helghast_sub_ver2.4_mesh006.jpg";&lt;br /&gt;boost::smatch what;&lt;br /&gt;std::string::const_iterator start = testString.begin();&lt;br /&gt;std::string::const_iterator end = testString.end();&lt;br /&gt;while( boost::regex_search(start, end, what, expression) )&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;    std::string path(what[1].first, what[1].second);&lt;br /&gt;    std::string name(what[2].first, what[2].second);&lt;br /&gt;    std::string index(what[3].first, what[3].second);&lt;br /&gt;    std::string ext(what[5].first, what[5].second);&lt;br /&gt;        std::cout&lt;&lt; "path:" &lt;&lt; path.c_str() &lt;&lt; std::endl;&lt;br /&gt;	std::cout&lt;&lt; "name:" &lt;&lt; name.c_str() &lt;&lt; std::endl;&lt;br /&gt;    std::cout&lt;&lt; "index:" &lt;&lt; index.c_str() &lt;&lt; std::endl;&lt;br /&gt;    std::cout&lt;&lt; "ext:" &lt;&lt;ext.c_str() &lt;&lt; std::endl;&lt;br /&gt;    start = what[0].second;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;return 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;可以匹配的文件名:&lt;br /&gt;filename.001.ext&lt;br /&gt;filename001.ext&lt;br /&gt;filename1.ext&lt;br /&gt;file.name.001.ext&lt;br /&gt;file.name001.ext&lt;br /&gt;&lt;br /&gt;(^.*/)       ----&gt;path&lt;br /&gt;([^/]+?)  ----&gt;file&lt;br /&gt;([0-9]+) ----&gt;index&lt;br /&gt;([.])    -------&gt;dot&lt;br /&gt;([^./]+$) ----&gt;ext&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blog.csdn.net/firebird321/archive/2008/03/24/2212111.aspx"&gt;参考&lt;/a&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8252604129444828813-1157066714302233160?l=9th-movement.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://9th-movement.blogspot.com/feeds/1157066714302233160/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8252604129444828813&amp;postID=1157066714302233160' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/1157066714302233160'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/1157066714302233160'/><link rel='alternate' type='text/html' href='http://9th-movement.blogspot.com/2008/12/boostregex_3009.html' title='boost::regex匹配序列文件名'/><author><name>Cobra'Nails</name><uri>http://www.blogger.com/profile/04547120036471659938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://1.bp.blogspot.com/-EZLTaKKbp2o/TeJxE13xyCI/AAAAAAAAAOo/JK5q8IR4Big/s220/Killzone_2_Movie_Style_Poster_by_mehdi5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8252604129444828813.post-8258106778433441170</id><published>2008-08-06T10:07:00.002+08:00</published><updated>2008-08-06T10:14:07.153+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>umf converter</title><content type='html'>e-motek的umfconv的mac版里destination format那个下拉列表看起来无法选中，其实只是没有显示而已，按下去，拖动鼠标再放开，可以看到格式可以变化。当然不能输入文字的问题估计是无法解决了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8252604129444828813-8258106778433441170?l=9th-movement.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://9th-movement.blogspot.com/feeds/8258106778433441170/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8252604129444828813&amp;postID=8258106778433441170' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/8258106778433441170'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/8258106778433441170'/><link rel='alternate' type='text/html' href='http://9th-movement.blogspot.com/2008/08/umf-converter.html' title='umf converter'/><author><name>Cobra'Nails</name><uri>http://www.blogger.com/profile/04547120036471659938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://1.bp.blogspot.com/-EZLTaKKbp2o/TeJxE13xyCI/AAAAAAAAAOo/JK5q8IR4Big/s220/Killzone_2_Movie_Style_Poster_by_mehdi5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8252604129444828813.post-2553234782858634267</id><published>2008-07-04T20:51:00.001+08:00</published><updated>2008-07-04T20:52:27.799+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C/C++'/><title type='text'>ginac另一个符号代数库</title><content type='html'>http://www.ginac.de/&lt;br /&gt;c++的，大概看了一下演示，效果还不错，使用起来也方便。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8252604129444828813-2553234782858634267?l=9th-movement.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://9th-movement.blogspot.com/feeds/2553234782858634267/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8252604129444828813&amp;postID=2553234782858634267' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/2553234782858634267'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/2553234782858634267'/><link rel='alternate' type='text/html' href='http://9th-movement.blogspot.com/2008/07/ginac.html' title='ginac另一个符号代数库'/><author><name>Cobra'Nails</name><uri>http://www.blogger.com/profile/04547120036471659938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://1.bp.blogspot.com/-EZLTaKKbp2o/TeJxE13xyCI/AAAAAAAAAOo/JK5q8IR4Big/s220/Killzone_2_Movie_Style_Poster_by_mehdi5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8252604129444828813.post-1188500992624107394</id><published>2008-05-23T12:57:00.002+08:00</published><updated>2008-05-23T13:23:51.992+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C/C++'/><title type='text'>GSL笔记20080523</title><content type='html'>最近的一个程序要用到一些矩阵和向量的操作，主程序是用c写的，自己实现一些矩阵的操作倒也不算困难，但是有些运算就不太好实现了，而且质量也难以保证。在google上搜索了一番，于是就发现了GSL(GNU Scientific Library)，GNU的好东西还真不少。&lt;br /&gt;&lt;br /&gt;很快的翻了一下gsl的手册，写的比较详细，再配合它的例子，一般的使用应该不成问题。&lt;br /&gt;照葫芦画瓢，写了一个求逆矩阵的程序，当然都是数值运算的，好在这次的程序没有符号运算。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;#include &lt;stdio.h&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;#include &lt;gsl/gsl_linalg.h&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;int&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;main (void)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  double a_data[] = { 0.3, 0, 0, 0,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;                      0, 0.3, 0, 0,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;                      0, 0, 0.3, 0,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;                      0, 0, 0, 0.3 };&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  double b_data[] = { 1.0, 2.0, 3.0, 4.0 };&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  gsl_matrix_view m &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    = gsl_matrix_view_array(a_data, 4, 4);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  gsl_vector_view b&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    = gsl_vector_view_array(b_data, 4);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  gsl_vector *x = gsl_vector_alloc (4);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  gsl_matrix *mi= gsl_matrix_alloc (4,4);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  int s;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  gsl_permutation * p = gsl_permutation_alloc (4);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  gsl_linalg_LU_decomp (&amp;amp;m.matrix, p, &amp;amp;s);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  gsl_linalg_LU_invert (&amp;amp;m.matrix, p, mi);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  printf ("inv=\n");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  gsl_matrix_fprintf (stdout, mi, "%f");&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  gsl_permutation_free (p);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  return 0;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;permutation没有查到准确的意思，从手册和例子中的用法猜测，意思大概是行列式前面的符号。&lt;br /&gt;gsl中的线性代数部分在操作矩阵的时候，都是把矩阵分解成某种乘积形式，然后再做运算，上面程序用的是LU分解把m分解成一个下三角阵和上三角阵的乘积，之后再求逆。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8252604129444828813-1188500992624107394?l=9th-movement.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://9th-movement.blogspot.com/feeds/1188500992624107394/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8252604129444828813&amp;postID=1188500992624107394' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/1188500992624107394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/1188500992624107394'/><link rel='alternate' type='text/html' href='http://9th-movement.blogspot.com/2008/05/gsl20080523.html' title='GSL笔记20080523'/><author><name>Cobra'Nails</name><uri>http://www.blogger.com/profile/04547120036471659938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://1.bp.blogspot.com/-EZLTaKKbp2o/TeJxE13xyCI/AAAAAAAAAOo/JK5q8IR4Big/s220/Killzone_2_Movie_Style_Poster_by_mehdi5.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8252604129444828813.post-1584066802406543492</id><published>2008-05-10T19:09:00.003+08:00</published><updated>2008-05-10T19:18:49.122+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C/C++'/><title type='text'>ADT, queue.h</title><content type='html'>以前写C的代码的时候，所有的ADT都是自己去实现，那真是一个累啊，无奈自己能力有限，要花费大量的时间来调试ADT部分的代码。终于，某天，在某论坛，看到某高人的一句话…解放了，直接用bsd的queue.h就好了。&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;能用的还有linux的list.h，不过我在osx上测试没有成功，总是说指针类型不匹配，就算是在linux上也要修改一下，里面已经说了，"don't include kernel headers in userspace"。&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8252604129444828813-1584066802406543492?l=9th-movement.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://9th-movement.blogspot.com/feeds/1584066802406543492/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8252604129444828813&amp;postID=1584066802406543492' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/1584066802406543492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/1584066802406543492'/><link rel='alternate' type='text/html' href='http://9th-movement.blogspot.com/2008/05/adt-queueh.html' title='ADT, queue.h'/><author><name>Cobra'Nails</name><uri>http://www.blogger.com/profile/04547120036471659938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://1.bp.blogspot.com/-EZLTaKKbp2o/TeJxE13xyCI/AAAAAAAAAOo/JK5q8IR4Big/s220/Killzone_2_Movie_Style_Poster_by_mehdi5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8252604129444828813.post-2345768252484082376</id><published>2008-05-02T00:02:00.002+08:00</published><updated>2008-05-02T00:03:20.401+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Maya'/><title type='text'>Duncan提供的几个nCloth的tips</title><content type='html'>&lt;span class="Apple-style-span" style="font-size: 11px; "&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;Here are a few points on breakable nCloth:&lt;br /&gt;-If you select verts, edges or faces when making a tearable constraint then it can only tear at those regions, which is more efficient.&lt;br /&gt;&lt;br /&gt;-The detach component code internally detachs based on vertices, not edges, so the tearable surface constraint will give "ragged" edges. You can make it more efficient by carefully modelling your own detach edges. Basically initially create your model with all the edges you wish to be breakable being border edges. &lt;br /&gt;&lt;br /&gt;-For large rigid chunks you may wish to use separate objects, each with its own nCloth. Constrain the chunks together with a component to component constraint with glueStrength set and the weld method. Then combine, merge vertex, smooth normals and possibly extrude downstream of the nCloth nodes. This allows you to use rigidity on the nCloth nodes(otherwise you need to use high bend/stretch levels which is less efficient). You can also turn off self collision on the nCloth nodes, because they are internally rigid. If instead you were using one cloth node for all the chunks then you would need self collision so that the chunks could intercollide.&lt;br /&gt;&lt;br /&gt;-There is bend stiffness on the constraint node, which can be used for glass shatter sorts of effects. However this requires that you have edge nComponents. If you use standard breakable surface setup with edge components it gets extremely slow to use the constraint bend stiffness for a complex surface. We are currently looking at fixing this problem, as it makes it hard to do rigid shatter effects.&lt;br /&gt;&lt;br /&gt;Duncan&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8252604129444828813-2345768252484082376?l=9th-movement.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://9th-movement.blogspot.com/feeds/2345768252484082376/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8252604129444828813&amp;postID=2345768252484082376' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/2345768252484082376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/2345768252484082376'/><link rel='alternate' type='text/html' href='http://9th-movement.blogspot.com/2008/05/duncannclothtips.html' title='Duncan提供的几个nCloth的tips'/><author><name>Cobra'Nails</name><uri>http://www.blogger.com/profile/04547120036471659938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://1.bp.blogspot.com/-EZLTaKKbp2o/TeJxE13xyCI/AAAAAAAAAOo/JK5q8IR4Big/s220/Killzone_2_Movie_Style_Poster_by_mehdi5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8252604129444828813.post-3145598936507152369</id><published>2008-04-28T20:59:00.006+08:00</published><updated>2008-04-28T21:40:57.527+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Maya'/><category scheme='http://www.blogger.com/atom/ns#' term='C/C++'/><title type='text'>关于mr framebuffer输出openEXR中的通道</title><content type='html'>openEXR是ILM设计的一种图像格式，可以比较灵活的存储图像数据，最近的这个demoreel中原始的图像序列都用exr了，唯一的缺点就是体积太大，一张640*360的rgba 4*32bit的图竟然要3.5MB的空间。&lt;br /&gt;这里要说的是exr的另一个问题，在maya中用输出exr格式的图像时，sw渲染器不支持exr，这里说的是mr。如果在mr的framebuffer中设置成输入rgba，那么在生成的exr文件中，rgba通道都会用A B G R的名字表示。但是，如果要单独输出motion或者alpha的话，通道的名字就成了mi_buffer_###，###就是每一帧的序列号，也就是说每一帧的通道名称都是不一样的。&lt;br /&gt;这样，在合成的时候就有点麻烦了。nuke的reader节点可以正常的预览的这种exr序列，创建reader节点之后，它是按通道来读取exr序列的，每都一帧，都会创建一个新的通道，可viewer节点却是按照通道来显示的，还有channel组里的节点也都是如此，这样一来每一帧改变一次通道。&lt;br /&gt;这个问题解决起来也简单，只要该一下exr文件通道的名字即可，以framebuffer输出motion向量为例。&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_IGE0MwoF1sA/SBXTgSUKmGI/AAAAAAAAAGc/JE7L5Wnz2C8/s1600-h/exr_channel_name1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_IGE0MwoF1sA/SBXTgSUKmGI/AAAAAAAAAGc/JE7L5Wnz2C8/s400/exr_channel_name1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5194290296867428450" /&gt;&lt;/a&gt;&lt;br /&gt;用一个16进制编辑器打开一个exr文件，可以看到从offset:0x1CL开始，就是通道和分量的名字，这里我们只需要修改0x26L开始的帧编号，只要把整个exr序列中的帧编号都替换成一个固定的字符串即可。我写了一个简单的程序来完成这个工作。&lt;br /&gt;&lt;br /&gt;#include &lt;stdio.h&gt;&lt;br /&gt;#include &lt;stdlib.h&gt;&lt;br /&gt;&lt;br /&gt;int main(int argc, char *argv[]){&lt;br /&gt; char *str="mt0";&lt;br /&gt; &lt;br /&gt; FILE *fp;&lt;br /&gt; fp=fopen(argv[1],"rb+");&lt;br /&gt;&lt;br /&gt; fseek(fp,0x26L,0);&lt;br /&gt; fwrite(str,sizeof(char),3,fp);&lt;br /&gt;&lt;br /&gt; fseek(fp,0x46L,0);&lt;br /&gt; fwrite(str,sizeof(char),3,fp);&lt;br /&gt;&lt;br /&gt; fseek(fp,0x66L,0);&lt;br /&gt; fwrite(str,sizeof(char),3,fp);&lt;br /&gt;&lt;br /&gt; fclose(fp);&lt;br /&gt; return 0;&lt;br /&gt; &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;下面是修改后的exr文件头，我把帧编号都改成了mt0。&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_IGE0MwoF1sA/SBXTqyUKmHI/AAAAAAAAAGk/Grzy8KrWNz4/s1600-h/exr_channel_name2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_IGE0MwoF1sA/SBXTqyUKmHI/AAAAAAAAAGk/Grzy8KrWNz4/s400/exr_channel_name2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5194290477256054898" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8252604129444828813-3145598936507152369?l=9th-movement.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://9th-movement.blogspot.com/feeds/3145598936507152369/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8252604129444828813&amp;postID=3145598936507152369' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/3145598936507152369'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/3145598936507152369'/><link rel='alternate' type='text/html' href='http://9th-movement.blogspot.com/2008/04/mr-framebufferopenexr.html' title='关于mr framebuffer输出openEXR中的通道'/><author><name>Cobra'Nails</name><uri>http://www.blogger.com/profile/04547120036471659938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://1.bp.blogspot.com/-EZLTaKKbp2o/TeJxE13xyCI/AAAAAAAAAOo/JK5q8IR4Big/s220/Killzone_2_Movie_Style_Poster_by_mehdi5.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_IGE0MwoF1sA/SBXTgSUKmGI/AAAAAAAAAGc/JE7L5Wnz2C8/s72-c/exr_channel_name1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8252604129444828813.post-4289920614360715788</id><published>2008-02-13T00:53:00.000+08:00</published><updated>2008-02-13T01:14:10.138+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Maya'/><category scheme='http://www.blogger.com/atom/ns#' term='C/C++'/><title type='text'>maya fluid cache笔记1</title><content type='html'>&lt;blockquote&gt;&lt;br /&gt;&lt;br /&gt;FOR4 CACH       &lt;------------ This exists for all disk cache &lt;br /&gt;         . STIM       startTime       (TanimTime) &lt;br /&gt;         . ETIM       endTime         (TanimTime) &lt;br /&gt;         . TYPE       isOverSampling  (Tboolean) &lt;br /&gt;         . RATE       samplingRate    (TuInt32) &lt;br /&gt;     // block #1 &lt;br /&gt;     FOR4 FLUD &lt;br /&gt; .TIME currentTime    (TanimTime) &lt;br /&gt; .WRES widthRes       (Tint32) &lt;br /&gt; .HRES heightRes      (Tint32) &lt;br /&gt; .DRES depthRes       (Tint32) &lt;br /&gt; .NUMD numDensVal     (Tint32) &lt;br /&gt; .DENS densities      (Tfloats) &lt;br /&gt; .NMVX numVelX        (Tint32) &lt;br /&gt; .NMVY numVelY        (Tint32) &lt;br /&gt; .NMVZ numVelZ        (Tint32) &lt;br /&gt; .VELX xVelocities    (Tfloats) &lt;br /&gt; .VELY yVelocities    (Tfloats) &lt;br /&gt; .VELZ zVelocities    (Tfloats) &lt;br /&gt; .NUMT numTemperature (Tinit32) &lt;br /&gt; .TEMP temperatures (Tfloats) &lt;br /&gt; .NUMR numReaction (Tinit32) &lt;br /&gt; .REAC reactions (Tfloats) &lt;br /&gt; .NUMC numColors (Tint32) &lt;br /&gt; .COLR RedColors (Tfloats) &lt;br /&gt; .COLB BlueColors (Tfloats) &lt;br /&gt; .COLG GreenColors (Tfloats) &lt;br /&gt; .NUMU numTexCoord (Tint32) &lt;br /&gt; .TEXU uCoords (Tfloats) &lt;br /&gt; .TEXV vCoords (Tfloats) &lt;br /&gt; .TEXW wCoords (Tfloats)  &lt;br /&gt;     // block #2 &lt;br /&gt;     FOR4 FLUD &lt;br /&gt;     ........ &lt;br /&gt;Note: &lt;br /&gt;TanimTime:  an unsigned int, units are 1/6000 second &lt;br /&gt;Tfloats:    an array of floats, the count is specified by the &lt;br /&gt;preceding "num" tag. &lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;以上引用自maya文档。&lt;br /&gt;&lt;br /&gt;下面是一个4x4的2d流体的cache，只有density部分。&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_IGE0MwoF1sA/R7HQeXJyfjI/AAAAAAAAAGU/otTs5I0474w/s1600-h/fluidcache1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_IGE0MwoF1sA/R7HQeXJyfjI/AAAAAAAAAGU/otTs5I0474w/s400/fluidcache1.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5166139467600395826" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;用STIM作为例子来说明，53 54 49 4D 00 00 00 04，是STIM段的标识，而后面的00 00 00 FA才是SITM段的数据。00 00 00 FA是一个无符号整数，作为一个整数读入之后，是FA 00 00 00的顺序，这与本意是相反的（开始我以为是mac才这样，后来发现在linux上也是如此）。在读入之后，需要直接通过内存地址修改数据的顺序。&lt;br /&gt;后面的DENS数据段里的42 C8 00 00，在内存中，应该是(低地址)00 00 C8 42(高地址)的顺序。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8252604129444828813-4289920614360715788?l=9th-movement.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://9th-movement.blogspot.com/feeds/4289920614360715788/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8252604129444828813&amp;postID=4289920614360715788' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/4289920614360715788'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/4289920614360715788'/><link rel='alternate' type='text/html' href='http://9th-movement.blogspot.com/2008/02/maya-fluid-cache1.html' title='maya fluid cache笔记1'/><author><name>Cobra'Nails</name><uri>http://www.blogger.com/profile/04547120036471659938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://1.bp.blogspot.com/-EZLTaKKbp2o/TeJxE13xyCI/AAAAAAAAAOo/JK5q8IR4Big/s220/Killzone_2_Movie_Style_Poster_by_mehdi5.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_IGE0MwoF1sA/R7HQeXJyfjI/AAAAAAAAAGU/otTs5I0474w/s72-c/fluidcache1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8252604129444828813.post-4871162214273981076</id><published>2008-01-15T00:30:00.000+08:00</published><updated>2008-01-15T00:35:03.411+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>Dryad</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://dryad.stanford.edu/images/gallery/image1_big.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px;" src="http://dryad.stanford.edu/images/gallery/image1_big.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://dryad.stanford.edu/index.php"&gt;http://dryad.stanford.edu/index.php&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;当斯坦福大学计算机科学家Vladlen Koltun计划建立一个更完美的虚拟世界时，他选择了树——数以百万计，现在他想把它们送给别人种植。&lt;br /&gt;&lt;br /&gt;ps：输出的obj有问题，不如在软件中的好看，maya打开obj后出错，blender打开后树的模型很粗糙。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8252604129444828813-4871162214273981076?l=9th-movement.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://9th-movement.blogspot.com/feeds/4871162214273981076/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8252604129444828813&amp;postID=4871162214273981076' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/4871162214273981076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/4871162214273981076'/><link rel='alternate' type='text/html' href='http://9th-movement.blogspot.com/2008/01/dryad.html' title='Dryad'/><author><name>Cobra'Nails</name><uri>http://www.blogger.com/profile/04547120036471659938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://1.bp.blogspot.com/-EZLTaKKbp2o/TeJxE13xyCI/AAAAAAAAAOo/JK5q8IR4Big/s220/Killzone_2_Movie_Style_Poster_by_mehdi5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8252604129444828813.post-7237216920502040190</id><published>2007-12-20T11:11:00.000+08:00</published><updated>2007-12-20T11:13:52.367+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C/C++'/><title type='text'>数组与指针---都是"退化"惹的祸</title><content type='html'>转自：&lt;a href="http://bbs.chinaunix.net/thread-1031622-1-1.html"&gt;http://bbs.chinaunix.net/thread-1031622-1-1.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;个人的浅显认识, 欢迎批评指正.&lt;br /&gt;&lt;br /&gt;1. 什么是数组类型?&lt;br /&gt;&lt;br /&gt;下面是C99中原话:&lt;br /&gt;An array type describes a contiguously allocated nonempty set of objects with a&lt;br /&gt;particular member object type, called the element type.36) Array types are characterized by their element type and by the number of elements in the array. An array type is said to be derived from its element type, and if its element type is T , the array type is sometimes called ‘‘array of T ’’. The construction of an array type from an element type is called ‘‘array type derivation’’.&lt;br /&gt;&lt;br /&gt;很显然, 数组类型也是一种数据类型, 其本质功能和其他类型无异:定义该类型的数据所占内存空间的大小以及可以对该类型数据进行的操作(及如何操作).&lt;br /&gt;&lt;br /&gt;2. 数组类型定义的数据是什么?它是变量还是常量?&lt;br /&gt;char s[10] = "china";&lt;br /&gt;在这个例子中, 数组类型为 array of 10 chars(姑且这样写), 定义的数据显然是一个数组s.&lt;br /&gt;&lt;br /&gt;下面是C99中原话:&lt;br /&gt;  An lvalue is an expression with an object type or an incomplete type other than void; if an lvalue does not designate an object when it is evaluated, the behavior is undefined. When an object is said to have a particular type, the type is specified by the lvalue used to designate the object. A modifiable lvalue is an lvalue that does not have array type, does not have an incomplete type, does not have a const-qualified type, and if it is a structure or union, does not have any member (including, recursively, any member or element of all contained aggregates or unions) with a const-qualified type.&lt;br /&gt;&lt;br /&gt;看了上面的定义, 大家应该明白了modifiable lvalue和lvalue的区别, 大家也应该注意到array type定义的是lvalue而不是modifiable lvalue.所以说s是lvalue.&lt;br /&gt;&lt;br /&gt;s指代的是整个数组, s的内容显然是指整个数组中的数据, 它是china\0****(这里*表示任意别的字符).s的内容是可以改变的, 从这个意义上来说, s显然是个变量.&lt;br /&gt;&lt;br /&gt;3. 数组什么时候会"退化"&lt;br /&gt;&lt;br /&gt;下面是C99中原话:&lt;br /&gt;Except when it is the operand of the sizeof operator or the unary &amp; operator, or is a string literal used to initialize an array, an expression that has type ‘‘array of type’’ is converted to an expression with type ‘‘pointer to type’’ that points to the initial element of the array object and is not an lvalue.&lt;br /&gt;&lt;br /&gt;上面这句话说的很清楚了, 数组在除了3种情况外, 其他时候都要"退化"成指向首元素的指针.&lt;br /&gt;比如对 char s[10] = "china";&lt;br /&gt;这3中例外情况是:&lt;br /&gt;(1) sizeof(s)&lt;br /&gt;(2) &amp;s;&lt;br /&gt;(3) 用来初始化s的"china";&lt;br /&gt;&lt;br /&gt;除了上述3种情况外,s都会退化成&amp;s[0], 这就是数组变量的操作方式&lt;br /&gt;&lt;br /&gt;4. 数组与指针有什么不同?&lt;br /&gt;4.1 初始化的不同&lt;br /&gt;char s[] = "china";&lt;br /&gt;char *p = "china";&lt;br /&gt;&lt;br /&gt;在第一句中,以&amp;s[0]开始的连续6个字节内存分别被赋值为:&lt;br /&gt;'c', 'h', 'i', 'n', 'a', '\0'&lt;br /&gt;&lt;br /&gt;第二句中,p被初始化为程序data段的某个地址,该地址是字符串"china"的首地址&lt;br /&gt;&lt;br /&gt;4.2 sizeof的不同&lt;br /&gt;&lt;br /&gt;sizeof就是要求一种数据(类型)所占内存的字节数. 对于4.1中的s和p&lt;br /&gt;sizeof(s)应为6, 而sizeof(p)应为一个"指针"的大小.&lt;br /&gt;&lt;br /&gt;这个结果可以从1中对于数组类型的定义和3中数组什么时候不会"退化"中得出来.&lt;br /&gt;&lt;br /&gt;4.3 &amp;操作符&lt;br /&gt;&lt;br /&gt;对于&amp;操作符, 数组同样不会退化.&lt;br /&gt;4.1中的s和p分别取地址后,其意义为:&lt;br /&gt;&amp;s的类型为pointer to array of 6 chars.&lt;br /&gt;&amp;p的类型为pointer to pointer to char.&lt;br /&gt;&lt;br /&gt;4.4 s退化后为什么不可修改&lt;br /&gt;&lt;br /&gt;除3种情况外,数组s在表达式中都会退化为"指向数组首元素的指针", 既&amp;s[0]&lt;br /&gt;&lt;br /&gt;举个例子&lt;br /&gt;int a;&lt;br /&gt;(&amp;a)++; //你想对谁++? 这显然是不对的&lt;br /&gt;&lt;br /&gt;对(&amp;s[0])++操作犹如(&amp;a)++, 同样是不对的,这就导致退化后的s变成不可修改的了.&lt;br /&gt;&lt;br /&gt;4.5 二维数组与二级指针&lt;br /&gt;&lt;br /&gt;char s[10];与char *p;&lt;br /&gt;char s2[10][8];与char **p2;&lt;br /&gt;&lt;br /&gt;s与p的关系,s2与p2的关系,两者相同吗?&lt;br /&gt;紧扣定义的时候又到了.&lt;br /&gt;除3种情况外,数组在表达式中都会退化为"指向数组首元素的指针".&lt;br /&gt;&lt;br /&gt;s退化后称为&amp;s[0], 类型为pointer to char, 与p相同&lt;br /&gt;s2退化后称为&amp;s2[0], 类型为pointer to array of 8 chars, 与p2不同&lt;br /&gt;&lt;br /&gt;4.6 数组作为函数参数&lt;br /&gt;&lt;br /&gt;毫无疑问, 数组还是会退化.&lt;br /&gt;&lt;br /&gt;void func(char s[10]); &lt;===&gt; void func(char *s);&lt;br /&gt;&lt;br /&gt;void func(char s[10][8]); &lt;===&gt; void func(char (*s)[8]);&lt;br /&gt;&lt;br /&gt;4.7 在一个文件中定义char s[8], 在另外一个文件中声明extern char *s. 这样可以吗?&lt;br /&gt;&lt;br /&gt;---------file1.c---------&lt;br /&gt;char s[8];&lt;br /&gt;&lt;br /&gt;---------file2.c---------&lt;br /&gt;extern char *s;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;答案是不可以. 一般来说,在file2.c中使用*s会引起core dump, 这是为什么呢?&lt;br /&gt;&lt;br /&gt;先考虑int的例子.&lt;br /&gt;---------file1.c---------&lt;br /&gt;int a;&lt;br /&gt;&lt;br /&gt;---------file2.c---------&lt;br /&gt;extern int a;&lt;br /&gt;&lt;br /&gt;file1.c和file2.c经过编译后, 在file2.o的符号表中, a的地址是尚未解析的&lt;br /&gt;file1.o和file2.o在链接后, file2.o中a的地址被确定.假设此地址为0xbf8eafae&lt;br /&gt;&lt;br /&gt;file2.o中对该地址的使用,完全是按照声明extern int a;进行的,即0xbf8eafae会被认为是整形a的地址&lt;br /&gt;比如 a = 2; 其伪代码会对应为 *((int *)0xbf8eafae) = 2;&lt;br /&gt;&lt;br /&gt;现在再看原来的例子.&lt;br /&gt;&lt;br /&gt;---------file1.c---------&lt;br /&gt;char s[8];&lt;br /&gt;&lt;br /&gt;---------file2.c---------&lt;br /&gt;extern char *s;&lt;br /&gt;&lt;br /&gt;同样, file1.c和file2.c经过编译后, 在file2.o的符号表中, s的地址是尚未解析的&lt;br /&gt;file1.o和file2.o在链接后, file2.o中s的地址被确定.假设此地址为0xbf8eafae&lt;br /&gt;&lt;br /&gt;file2.o中对该地址的使用,完全是按照声明extern char *s;进行的,即0xbf8eafae会被认为是指针s的地址&lt;br /&gt;比如 *s = 2; 其伪代码会对应为 *(*((char **)0xbf8eafae)) = 2;&lt;br /&gt;&lt;br /&gt;*((char **)0xbf8eafae)会是什么结果呢?&lt;br /&gt;这个操作的意思是:将0xbf8eafae做为一个二级字符指针, 将0xbf8eafae为始址的4个字节(32位机)作为一级字符指针&lt;br /&gt;也就是将file1.o中的s[0], s[1], s[2], s[3]拼接成一个字符指针.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;那么*(*((char **)0xbf8eafae)) = 2;的结果就是对file1.o中s[0], s[1], s[2], s[3]拼接成的这个地址对应&lt;br /&gt;的内存赋值为2.&lt;br /&gt;这样怎么会正确呢?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;下面看看正确的写法:&lt;br /&gt;&lt;br /&gt;---------file1.c---------&lt;br /&gt;char s[8];&lt;br /&gt;&lt;br /&gt;---------file2.c---------&lt;br /&gt;extern char s[];&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;同样, file1.c和file2.c经过编译后, 在file2.o的符号表中, s的地址是尚未解析的&lt;br /&gt;file1.o和file2.o在链接后, file2.o中s的地址被确定.假设此地址为0xbf8eafae&lt;br /&gt;&lt;br /&gt;file2.o中对该地址的使用,完全是按照声明extern char s[];进行的,即0xbf8eafae会被认为是数组s的地址&lt;br /&gt;比如 *s = 2; 其伪代码会对应为 *(*((char (*)[])0xbf8eafae)) = 2;&lt;br /&gt;&lt;br /&gt;*((char (*)[])0xbf8eafae)会是什么结果呢?&lt;br /&gt;这个操作的意思是:将0xbf8eafae做为一个指向字符数组的指针, 然后对该指针进行*操作.&lt;br /&gt;这就用到了数组的一个重要性质:&lt;br /&gt;对于数组 char aaa[10];来说, &amp;aaa[0], &amp;aaa, *(&amp;aaa)在数值上是相同的(其实, *(&amp;aaa)之所以在程序中&lt;br /&gt;会在值上等于&amp;aaa[0], 这也是退化的结果: *(&amp;aaa)就是数组名aaa, aaa退化为&amp;aaa[0]).&lt;br /&gt;所以, *((char (*)[])0xbf8eafae)的结果在值上还是0xbf8eafae, 在类型上退化成"指向数组首元素的指针"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;那么*(*((char (*)[])0xbf8eafae)) = 2;&lt;br /&gt;其伪代码就成为*((char *)0xbf8eafae) = 2; 即将数组s的第一个元素设为2&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;5. 小结论&lt;br /&gt;&lt;br /&gt;(a). 数组类型是一种特殊类型, 它定义的是数组变量, 是lvalue但不是modifiable lvalue&lt;br /&gt;(b). 除了3种情况外(sizeof, &amp;, 用做数组初始化的字符串数组), 数组会退化成"指向数组首元素的指针"&lt;br /&gt;(c). 不要将数组名简单的看作不可修改的相应的指针, 它们还是有很多不同的&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8252604129444828813-7237216920502040190?l=9th-movement.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://9th-movement.blogspot.com/feeds/7237216920502040190/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8252604129444828813&amp;postID=7237216920502040190' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/7237216920502040190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/7237216920502040190'/><link rel='alternate' type='text/html' href='http://9th-movement.blogspot.com/2007/12/blog-post.html' title='数组与指针---都是&quot;退化&quot;惹的祸'/><author><name>Cobra'Nails</name><uri>http://www.blogger.com/profile/04547120036471659938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://1.bp.blogspot.com/-EZLTaKKbp2o/TeJxE13xyCI/AAAAAAAAAOo/JK5q8IR4Big/s220/Killzone_2_Movie_Style_Poster_by_mehdi5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8252604129444828813.post-7694493884719833613</id><published>2007-12-14T14:03:00.000+08:00</published><updated>2007-12-14T14:06:52.944+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Maya'/><title type='text'>qWrap包裹变形</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.qarl.com/qLab/pile/wrap/wrap-anim.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px;" src="http://www.qarl.com/qLab/pile/wrap/wrap-anim.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.qarl.com/qLab/?p=29"&gt;http://www.qarl.com/qLab/?p=29&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;不是很好用，貌似只适合高模。自己试了试，效果不尽人意。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8252604129444828813-7694493884719833613?l=9th-movement.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://9th-movement.blogspot.com/feeds/7694493884719833613/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8252604129444828813&amp;postID=7694493884719833613' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/7694493884719833613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/7694493884719833613'/><link rel='alternate' type='text/html' href='http://9th-movement.blogspot.com/2007/12/qwrap.html' title='qWrap包裹变形'/><author><name>Cobra'Nails</name><uri>http://www.blogger.com/profile/04547120036471659938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://1.bp.blogspot.com/-EZLTaKKbp2o/TeJxE13xyCI/AAAAAAAAAOo/JK5q8IR4Big/s220/Killzone_2_Movie_Style_Poster_by_mehdi5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8252604129444828813.post-3231815191197789720</id><published>2007-12-14T13:18:00.000+08:00</published><updated>2007-12-14T14:03:41.518+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Maya'/><category scheme='http://www.blogger.com/atom/ns#' term='C/C++'/><title type='text'>Maya 2008 API Template for Xcode</title><content type='html'>&lt;a href="http://www.thomascraigen.com/tools/index.html"&gt;http://www.thomascraigen.com/tools/index.html&lt;/a&gt;&lt;br /&gt;开发maya插件的xcode模板，不多说了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8252604129444828813-3231815191197789720?l=9th-movement.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://9th-movement.blogspot.com/feeds/3231815191197789720/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8252604129444828813&amp;postID=3231815191197789720' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/3231815191197789720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/3231815191197789720'/><link rel='alternate' type='text/html' href='http://9th-movement.blogspot.com/2007/12/maya-2008-api-template-for-xcode.html' title='Maya 2008 API Template for Xcode'/><author><name>Cobra'Nails</name><uri>http://www.blogger.com/profile/04547120036471659938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://1.bp.blogspot.com/-EZLTaKKbp2o/TeJxE13xyCI/AAAAAAAAAOo/JK5q8IR4Big/s220/Killzone_2_Movie_Style_Poster_by_mehdi5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8252604129444828813.post-3573712325693524475</id><published>2007-12-12T21:31:00.000+08:00</published><updated>2007-12-12T22:35:45.807+08:00</updated><title type='text'>不同拓扑结构的模型之间的变换1</title><content type='html'>写在前面：&lt;br /&gt;    这只是一些想法，目前我还没有办法验证，可能跟本就行不通，现在只希望能把这些想法记载下来。&lt;br /&gt;&lt;br /&gt;shapeA和shapeB的拓扑结构不同，简单的说就是顶点数和面数不一样。如果要由shapeA平滑的变换到shapeB，目前来说还没有很好办法，至少这些主流的3d软件还都无法做到。siggraph的paper可能有解决方案，有空的时候翻翻看。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_IGE0MwoF1sA/R1_xnf1bYiI/AAAAAAAAAGE/xRAl_wSyq1E/s1600-h/illus0001.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_IGE0MwoF1sA/R1_xnf1bYiI/AAAAAAAAAGE/xRAl_wSyq1E/s400/illus0001.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5143094960343179810" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8252604129444828813-3573712325693524475?l=9th-movement.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://9th-movement.blogspot.com/feeds/3573712325693524475/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8252604129444828813&amp;postID=3573712325693524475' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/3573712325693524475'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/3573712325693524475'/><link rel='alternate' type='text/html' href='http://9th-movement.blogspot.com/2007/12/1.html' title='不同拓扑结构的模型之间的变换1'/><author><name>Cobra'Nails</name><uri>http://www.blogger.com/profile/04547120036471659938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://1.bp.blogspot.com/-EZLTaKKbp2o/TeJxE13xyCI/AAAAAAAAAOo/JK5q8IR4Big/s220/Killzone_2_Movie_Style_Poster_by_mehdi5.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_IGE0MwoF1sA/R1_xnf1bYiI/AAAAAAAAAGE/xRAl_wSyq1E/s72-c/illus0001.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8252604129444828813.post-4981581641165970461</id><published>2007-12-12T00:58:00.001+08:00</published><updated>2007-12-12T01:21:57.963+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>cmiVFX的免费教程</title><content type='html'>最近cmi有提供了一篇免费的blender教程，主要说的是用node来做合成。用blender做合成，看起来很有nuke的感觉，只是功能和稳定性比起nuke差些。&lt;br /&gt;&lt;br /&gt;&lt;a href="http://cgchannel.com/news/viewfeature.jsp?newsid=6763"&gt;http://cgchannel.com/news/viewfeature.jsp?newsid=6763&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;现在的blender真是一个怪物，各个方面都可以做，3D、后期、剪辑通吃，只是做的都不是很好。&lt;br /&gt;差点忘了，cmi的网站要穿墙才能访问到。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8252604129444828813-4981581641165970461?l=9th-movement.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://9th-movement.blogspot.com/feeds/4981581641165970461/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8252604129444828813&amp;postID=4981581641165970461' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/4981581641165970461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/4981581641165970461'/><link rel='alternate' type='text/html' href='http://9th-movement.blogspot.com/2007/12/cmivfx.html' title='cmiVFX的免费教程'/><author><name>Cobra'Nails</name><uri>http://www.blogger.com/profile/04547120036471659938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://1.bp.blogspot.com/-EZLTaKKbp2o/TeJxE13xyCI/AAAAAAAAAOo/JK5q8IR4Big/s220/Killzone_2_Movie_Style_Poster_by_mehdi5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8252604129444828813.post-3602847151226433517</id><published>2007-12-12T00:49:00.000+08:00</published><updated>2007-12-12T00:53:59.110+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>Automatic Rigging and Animation of 3D Characters</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.mit.edu/~ibaran/autorig/teaser.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px;" src="http://www.mit.edu/~ibaran/autorig/teaser.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.mit.edu/~ibaran/autorig/"&gt;http://www.mit.edu/~ibaran/autorig/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;以前曾经考虑过自动装配角色的问题，现在已经有人做出来了。大概看了一下paper和视频，对于复杂的模型，这样rig恐怕还不行，不过动画转换的功能却非常不错。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8252604129444828813-3602847151226433517?l=9th-movement.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://9th-movement.blogspot.com/feeds/3602847151226433517/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8252604129444828813&amp;postID=3602847151226433517' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/3602847151226433517'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/3602847151226433517'/><link rel='alternate' type='text/html' href='http://9th-movement.blogspot.com/2007/12/automatic-rigging-and-animation-of-3d.html' title='Automatic Rigging and Animation of 3D Characters'/><author><name>Cobra'Nails</name><uri>http://www.blogger.com/profile/04547120036471659938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://1.bp.blogspot.com/-EZLTaKKbp2o/TeJxE13xyCI/AAAAAAAAAOo/JK5q8IR4Big/s220/Killzone_2_Movie_Style_Poster_by_mehdi5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8252604129444828813.post-4912742183288491210</id><published>2007-12-03T10:45:00.000+08:00</published><updated>2007-12-03T10:54:16.622+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>TopMod-拓扑建模软件</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_IGE0MwoF1sA/R1Nvsf1bYZI/AAAAAAAAAEo/PORkbpPpTEg/s1600-R/topmod.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_IGE0MwoF1sA/R1Nvsf1bYZI/AAAAAAAAAEo/VZhcXbxSZTY/s320/topmod.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5139574410010386834" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;在blender的论坛里冒泡的时候，无意中发现了这个软件。是一个google code上的项目，基于QT4，opensource，支持osx和windows，貌似linux也在支持之列。下载之后试了试，不会用。&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.topmod3d.org"&gt;http://www.topmod3d.org&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8252604129444828813-4912742183288491210?l=9th-movement.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://9th-movement.blogspot.com/feeds/4912742183288491210/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8252604129444828813&amp;postID=4912742183288491210' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/4912742183288491210'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/4912742183288491210'/><link rel='alternate' type='text/html' href='http://9th-movement.blogspot.com/2007/12/topmod.html' title='TopMod-拓扑建模软件'/><author><name>Cobra'Nails</name><uri>http://www.blogger.com/profile/04547120036471659938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://1.bp.blogspot.com/-EZLTaKKbp2o/TeJxE13xyCI/AAAAAAAAAOo/JK5q8IR4Big/s220/Killzone_2_Movie_Style_Poster_by_mehdi5.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_IGE0MwoF1sA/R1Nvsf1bYZI/AAAAAAAAAEo/VZhcXbxSZTY/s72-c/topmod.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8252604129444828813.post-6877989830470229274</id><published>2007-12-01T13:18:00.000+08:00</published><updated>2007-12-01T13:21:24.069+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>Blender中的Fluid</title><content type='html'>&lt;a href="http://www.blendernation.com/2007/11/21/guide-on-blender-fluid-simulators-parameters/"&gt;http://www.blendernation.com/2007/11/21/guide-on-blender-fluid-simulators-parameters/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A Blender artist called Antonio Gessi, has published a very cool guide about the Fluid Simulator options. To make this guide even more interesting, all parameters are illustrated with animations. For instance, when he explains how the Domain option works, there is an animation showing how the fluid will behave at different resolutions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8252604129444828813-6877989830470229274?l=9th-movement.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://9th-movement.blogspot.com/feeds/6877989830470229274/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8252604129444828813&amp;postID=6877989830470229274' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/6877989830470229274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/6877989830470229274'/><link rel='alternate' type='text/html' href='http://9th-movement.blogspot.com/2007/12/blenderfluid.html' title='Blender中的Fluid'/><author><name>Cobra'Nails</name><uri>http://www.blogger.com/profile/04547120036471659938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://1.bp.blogspot.com/-EZLTaKKbp2o/TeJxE13xyCI/AAAAAAAAAOo/JK5q8IR4Big/s220/Killzone_2_Movie_Style_Poster_by_mehdi5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8252604129444828813.post-4365426356964467694</id><published>2007-10-16T14:43:00.000+08:00</published><updated>2007-10-16T14:44:05.339+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C/C++'/><title type='text'>传闻是EMC的一道笔试题</title><content type='html'>http://bbs.chinaunix.net/thread-918458-1-1.html&lt;br /&gt;&lt;br /&gt;函数原形已经给出：int p(int i, int N);&lt;br /&gt;功能：调用该函数，打印如下格式的输出，例p(1, 7);&lt;br /&gt;1&lt;br /&gt;2&lt;br /&gt;3&lt;br /&gt;4&lt;br /&gt;5&lt;br /&gt;6&lt;br /&gt;7&lt;br /&gt;6&lt;br /&gt;5&lt;br /&gt;4&lt;br /&gt;3&lt;br /&gt;2&lt;br /&gt;1&lt;br /&gt;即每行一个数字。（注意：N只打印一次）&lt;br /&gt;要求：&lt;br /&gt;函数中唯一能够调用的函数就是printf。&lt;br /&gt;只使用一条语句，如果你真的不能用一条语句，每增加一条语句扣1分。&lt;br /&gt;不准使用如下的关键字：typedef, enum, do, while, for, switch, case, break, continue, goto,&lt;br /&gt;until, if,  ..具体很多我也忘了，反正能用的不多。&lt;br /&gt;不能使用逗号表达式和？：表达式。&lt;br /&gt;标准：（总分10分）&lt;br /&gt;1. 每多一条语句扣1分，即每多一个；就扣1分&lt;br /&gt;2. 每使用一次if或？：扣2分&lt;br /&gt;3. 每使用一次for,while, swith各扣4分&lt;br /&gt;大体上就是如上的要求了。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;水牛们给出的答案：&lt;br /&gt;1.&lt;br /&gt;int p( int i, int N ){&lt;br /&gt;   return ( printf( "%d\n", i ) &amp;amp;&amp;amp; N &gt; 1 &amp;amp;&amp;amp; p( i+1, N-1 ) &amp;amp;&amp;amp; printf( "%d\n", i ) ) + 1;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;2.&lt;br /&gt;如果不递归的话，能不能做出来呢？&lt;br /&gt;我觉得还是有可能的。&lt;br /&gt;只需要用 flwlibc 不要用 glibc 就可以。&lt;br /&gt;printf( "%*v", N, i );&lt;br /&gt;&lt;br /&gt;3.非递归&lt;br /&gt;int p (int i, int N)&lt;br /&gt;{&lt;br /&gt;       return i &lt; 2*N&lt;br /&gt;               &amp;amp;&amp;amp; printf ("%d\n", N - (N-i) * (2*(i&lt;n)-1))&gt;&lt;br /&gt;               &amp;amp;&amp;amp; (*((int volatile *)&amp;amp;i - 1) -= 5) &amp;amp;&amp;amp; ++(*(int volatile *)&amp;amp;i);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;4.正确的&lt;br /&gt;这个是通用的正确的代码：&lt;br /&gt;int p(int i, int n)  &lt;br /&gt;{  &lt;br /&gt;   return i&lt;=n &amp;amp;&amp;amp; printf("%d\n", i) &amp;amp;&amp;amp;( !p(i+1, n) || printf("%d\n", i));  &lt;br /&gt;}  &lt;br /&gt;p(1,7),p(2,9)... i&lt;n&gt;&lt;/n&gt;&lt;/n)-1))&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8252604129444828813-4365426356964467694?l=9th-movement.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://9th-movement.blogspot.com/feeds/4365426356964467694/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8252604129444828813&amp;postID=4365426356964467694' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/4365426356964467694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/4365426356964467694'/><link rel='alternate' type='text/html' href='http://9th-movement.blogspot.com/2007/10/emc.html' title='传闻是EMC的一道笔试题'/><author><name>Cobra'Nails</name><uri>http://www.blogger.com/profile/04547120036471659938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://1.bp.blogspot.com/-EZLTaKKbp2o/TeJxE13xyCI/AAAAAAAAAOo/JK5q8IR4Big/s220/Killzone_2_Movie_Style_Poster_by_mehdi5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8252604129444828813.post-2308395180768974665</id><published>2007-08-20T13:31:00.000+08:00</published><updated>2007-08-20T13:35:40.174+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Maya'/><title type='text'>Autodesk area的blog，duncan's corner和mayalicious</title><content type='html'>流体spec&lt;br /&gt;http://area.autodesk.com/blogs/blog/7/&lt;br /&gt;&lt;br /&gt;Mel spec&lt;br /&gt;http://area.autodesk.com/blogs/blog/4/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8252604129444828813-2308395180768974665?l=9th-movement.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://9th-movement.blogspot.com/feeds/2308395180768974665/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8252604129444828813&amp;postID=2308395180768974665' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/2308395180768974665'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/2308395180768974665'/><link rel='alternate' type='text/html' href='http://9th-movement.blogspot.com/2007/08/autodesk-areablogduncans.html' title='Autodesk area的blog，duncan&apos;s corner和mayalicious'/><author><name>Cobra'Nails</name><uri>http://www.blogger.com/profile/04547120036471659938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://1.bp.blogspot.com/-EZLTaKKbp2o/TeJxE13xyCI/AAAAAAAAAOo/JK5q8IR4Big/s220/Killzone_2_Movie_Style_Poster_by_mehdi5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8252604129444828813.post-622908704512677444</id><published>2007-07-27T18:00:00.000+08:00</published><updated>2007-07-27T18:01:26.811+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Maya'/><title type='text'>maya笔记 2007-7-27</title><content type='html'>添加和删除粒子&lt;br /&gt;&lt;br /&gt;添加粒子：&lt;br /&gt;emit -o particle1;&lt;br /&gt;emit -object particle1;&lt;br /&gt;&lt;br /&gt;删除粒子：&lt;br /&gt;在maya中，已经产生的粒子是无法被删除的，在文档中提到，如果要“删除”一个粒子，只能把生命值设置成0，同时粒子的ID不会被回收。&lt;br /&gt;&lt;br /&gt;particle -e -or 2 -at lifespanPP -fv 1.0 particleShape1 ;&lt;br /&gt;particle -edit -order 2 -attribute lifespanPP -floatValue 1.0 particleShape1 ;&lt;br /&gt;&lt;br /&gt;per-particle属性都是在数组中保存的，但是却不能通过a[n]的方式直接操作。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8252604129444828813-622908704512677444?l=9th-movement.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://9th-movement.blogspot.com/feeds/622908704512677444/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8252604129444828813&amp;postID=622908704512677444' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/622908704512677444'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/622908704512677444'/><link rel='alternate' type='text/html' href='http://9th-movement.blogspot.com/2007/07/maya-2007-7-27.html' title='maya笔记 2007-7-27'/><author><name>Cobra'Nails</name><uri>http://www.blogger.com/profile/04547120036471659938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://1.bp.blogspot.com/-EZLTaKKbp2o/TeJxE13xyCI/AAAAAAAAAOo/JK5q8IR4Big/s220/Killzone_2_Movie_Style_Poster_by_mehdi5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8252604129444828813.post-2931185671058206116</id><published>2007-05-27T22:47:00.000+08:00</published><updated>2007-05-27T22:53:57.881+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MEL'/><title type='text'>stretchy bone</title><content type='html'>也就是可以伸长和的骨骼系统，也叫toony rig。&lt;br /&gt;&lt;br /&gt;j1-j2-j3&lt;br /&gt;locator1点约束到j1，ik点约束到locator2&lt;br /&gt;创建如下表达式：&lt;br /&gt;&lt;br /&gt;vector $l1p,$l3p;&lt;br /&gt;$l1p=&lt;&lt;locator1.translatex,&gt;&gt;;&lt;br /&gt;$l3p=&lt;&lt;locator2.translatex,&gt;&gt;;&lt;br /&gt;float $diff=(mag($l1p-$l3p)-18)/2;&lt;br /&gt;if($diff&gt;0.001){&lt;br /&gt;    joint2.translateX=10+$diff;&lt;br /&gt;    joint3.translateX=8+$diff;&lt;br /&gt;}&lt;br /&gt;else{&lt;br /&gt;    joint2.translateX=10;&lt;br /&gt;    joint3.translateX=8;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt; 其中有几个常量，10是j2的tx，8是j3的tx，也就是每段骨骼的长度。&lt;br /&gt;&lt;br /&gt;尝试用rotatepivot，结果发现得到的坐标是0，最后只能让locator保持没有父物体的状态用translate。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8252604129444828813-2931185671058206116?l=9th-movement.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://9th-movement.blogspot.com/feeds/2931185671058206116/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8252604129444828813&amp;postID=2931185671058206116' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/2931185671058206116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/2931185671058206116'/><link rel='alternate' type='text/html' href='http://9th-movement.blogspot.com/2007/05/stretchy-bone.html' title='stretchy bone'/><author><name>Cobra'Nails</name><uri>http://www.blogger.com/profile/04547120036471659938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://1.bp.blogspot.com/-EZLTaKKbp2o/TeJxE13xyCI/AAAAAAAAAOo/JK5q8IR4Big/s220/Killzone_2_Movie_Style_Poster_by_mehdi5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8252604129444828813.post-3084960465706677504</id><published>2007-05-26T01:58:00.000+08:00</published><updated>2007-05-26T02:33:42.818+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MEL'/><title type='text'>MEL笔记 2007-05-26</title><content type='html'>joint/ik旋转轴向+/- 180度的限制&lt;br /&gt;&lt;br /&gt;如果使用ik handle来控制joint的旋转，会有一个+/-180度限制的问题。一般来说，这不是什么问题，如果通过表达式用这个旋转的角度来控制其他的物体的时候，很可能就会在某个转角出现“跳动(flip)”。&lt;br /&gt;比如j1-j2是一个joint层级，j1是父，用ikhandle(sc/pr均可)来控制j1的转向。有如下表达式:&lt;br /&gt;locator1.rx=j1.rx/4;&lt;br /&gt;&lt;br /&gt;拖动ikhandle，j1的旋转不会出现跳动，但是locator1在j1旋转过某些位置(j1.rx超过180或者小于-180)的时候，就会发生跳动。&lt;br /&gt;&lt;br /&gt;如何绕过这个问题呢？&lt;br /&gt;&lt;br /&gt;j1-j2同上，locator1是j1-j2要指向的位置，locator2-locator3是旋转的驱动。&lt;br /&gt;将j1 aim约束到locator1上，只约束y和z，在j1.rx创建如下表达式，&lt;br /&gt;j1.rx=locator2.rx+locator3.rx;&lt;br /&gt;这样基本上就可以了。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;05年的maya master classes，starwar3的note里，介绍了一个prop工具，可以非常方便的制作手持物体的动画，可惜在没有更多的说明，除了一段屏幕录像和pdf中的2页简述，几乎不涉及任何实现。根据一些猜测和试验，现在差不多已经清楚如何实现，这个joint的问题就是在prop之后，控制手的旋转时遇到的问题之一。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8252604129444828813-3084960465706677504?l=9th-movement.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://9th-movement.blogspot.com/feeds/3084960465706677504/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8252604129444828813&amp;postID=3084960465706677504' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/3084960465706677504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/3084960465706677504'/><link rel='alternate' type='text/html' href='http://9th-movement.blogspot.com/2007/05/mel-2007-05-26.html' title='MEL笔记 2007-05-26'/><author><name>Cobra'Nails</name><uri>http://www.blogger.com/profile/04547120036471659938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://1.bp.blogspot.com/-EZLTaKKbp2o/TeJxE13xyCI/AAAAAAAAAOo/JK5q8IR4Big/s220/Killzone_2_Movie_Style_Poster_by_mehdi5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8252604129444828813.post-6107810329123772486</id><published>2007-05-24T18:12:00.000+08:00</published><updated>2007-05-26T02:34:23.285+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MEL'/><title type='text'>MEL笔记 2007-05-24</title><content type='html'>joint &amp; locator&lt;br /&gt;joint的属性：&lt;br /&gt;创建joint的时候，会有这么一句命令: joint -e -zso -oj xyz -sao yup joint13;&lt;br /&gt;作用是将orient按照xyz的优先指向第一个子节点，会改变orientation的值，这句命令有一个条件，就是joint13的Rotate必须为0。channelbox中显示为0并不一定是0，可能是个很小的数。&lt;br /&gt;&lt;br /&gt;orient也可以用直接用命令joint -e -orientation来修改，在设置新的值之后，joint会旋转，但是rotate的值却不会改变。&lt;br /&gt;&lt;br /&gt;给locator添加joint子物体的时候，如果locator的scale不为1，那么joint的translate将保持原来的值。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8252604129444828813-6107810329123772486?l=9th-movement.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://9th-movement.blogspot.com/feeds/6107810329123772486/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8252604129444828813&amp;postID=6107810329123772486' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/6107810329123772486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/6107810329123772486'/><link rel='alternate' type='text/html' href='http://9th-movement.blogspot.com/2007/05/mel-2007-05-04.html' title='MEL笔记 2007-05-24'/><author><name>Cobra'Nails</name><uri>http://www.blogger.com/profile/04547120036471659938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://1.bp.blogspot.com/-EZLTaKKbp2o/TeJxE13xyCI/AAAAAAAAAOo/JK5q8IR4Big/s220/Killzone_2_Movie_Style_Poster_by_mehdi5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8252604129444828813.post-1554354679270255414</id><published>2007-05-16T21:03:00.000+08:00</published><updated>2007-05-16T21:10:19.945+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MEL'/><title type='text'>MEL笔记 3</title><content type='html'>maya master 2005中有starwar3的note中介绍了一个UNIQUE CHARACTER USER&lt;br /&gt;INTERFACES，其中有个创建带分区位图界面的要求。我发现用formLayout可以满足这个要求。&lt;br /&gt;&lt;br /&gt;拿mel的例子改一改，貌似位图要最后加载才能正常显示。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;string $window = `window`;&lt;br /&gt;string $form = `formLayout -numberOfDivisions 100`;&lt;br /&gt;string $b1 = `button -label "b1"`;&lt;br /&gt;string $b2 = `button -label "b2"`;&lt;br /&gt;string $column = `columnLayout -adjustableColumn true`;&lt;br /&gt;button; button; button;&lt;br /&gt;&lt;br /&gt;setParent ..;&lt;br /&gt;formLayout;&lt;br /&gt;picture -image "MayaStartupImage.xpm";&lt;br /&gt;&lt;br /&gt;formLayout -edit&lt;br /&gt;    -attachForm     $b1     "top"    5&lt;br /&gt;    -attachForm     $b1     "left"   5&lt;br /&gt;    -attachControl  $b1     "bottom" 5 $b2&lt;br /&gt;    -attachPosition $b1     "right"  5 75&lt;br /&gt;&lt;br /&gt;    -attachNone     $b2     "top"&lt;br /&gt;    -attachForm     $b2     "left"   5&lt;br /&gt;    -attachForm     $b2     "bottom" 5&lt;br /&gt;    -attachForm     $b2     "right"  5&lt;br /&gt;&lt;br /&gt;    -attachForm     $column "top"    5&lt;br /&gt;    -attachPosition $column "left"   0 75&lt;br /&gt;    -attachControl  $column "bottom" 5 $b2&lt;br /&gt;    -attachForm     $column "right"  5&lt;br /&gt;$form;&lt;br /&gt;&lt;br /&gt;showWindow $window;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8252604129444828813-1554354679270255414?l=9th-movement.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://9th-movement.blogspot.com/feeds/1554354679270255414/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8252604129444828813&amp;postID=1554354679270255414' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/1554354679270255414'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/1554354679270255414'/><link rel='alternate' type='text/html' href='http://9th-movement.blogspot.com/2007/05/mel-3.html' title='MEL笔记 3'/><author><name>Cobra'Nails</name><uri>http://www.blogger.com/profile/04547120036471659938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://1.bp.blogspot.com/-EZLTaKKbp2o/TeJxE13xyCI/AAAAAAAAAOo/JK5q8IR4Big/s220/Killzone_2_Movie_Style_Poster_by_mehdi5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8252604129444828813.post-8764079041801120042</id><published>2007-05-13T22:57:00.000+08:00</published><updated>2007-05-13T23:00:31.744+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='Maya'/><title type='text'>Maya8.5 linux 32bitbug</title><content type='html'>Bug多多。&lt;br /&gt;1. q/w/e..marking menu，如果在lmb放开之前把键盘放开的话，crash...&lt;br /&gt;2. 如果选中一个物体，然后打开channel editor，crash...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8252604129444828813-8764079041801120042?l=9th-movement.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://9th-movement.blogspot.com/feeds/8764079041801120042/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8252604129444828813&amp;postID=8764079041801120042' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/8764079041801120042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/8764079041801120042'/><link rel='alternate' type='text/html' href='http://9th-movement.blogspot.com/2007/05/maya85-linux-32bitbug.html' title='Maya8.5 linux 32bitbug'/><author><name>Cobra'Nails</name><uri>http://www.blogger.com/profile/04547120036471659938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://1.bp.blogspot.com/-EZLTaKKbp2o/TeJxE13xyCI/AAAAAAAAAOo/JK5q8IR4Big/s220/Killzone_2_Movie_Style_Poster_by_mehdi5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8252604129444828813.post-63234767041932024</id><published>2007-05-02T01:59:00.000+08:00</published><updated>2007-05-02T02:54:52.650+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='Maya'/><title type='text'>Maya笔记 1</title><content type='html'>projection贴图的alpha通道问题。&lt;br /&gt;在使用layeredTexture的时候发现的这个问题。projection的image参数只接受图像的RGB参数，然而在输出的时候，却提供alpha的输出，如此，在制作复合贴图的时候，图像的alpha参数就无法正确传递。&lt;br /&gt;workround：把图像的alpha连接到projection节点的alpha offset上，projection的alpha gain设置为0。如果图像没有warp的话，图像的default color和projection的default color都要设置为0，避免“膏药”的效果。&lt;br /&gt;&lt;br /&gt;Maya8.5的文档中有一处错误，transferAttribute的sampleSpace参数，文档中说3是component-based，实际上应该是4，3会导致程序崩溃。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8252604129444828813-63234767041932024?l=9th-movement.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://9th-movement.blogspot.com/feeds/63234767041932024/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8252604129444828813&amp;postID=63234767041932024' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/63234767041932024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/63234767041932024'/><link rel='alternate' type='text/html' href='http://9th-movement.blogspot.com/2007/05/maya-1.html' title='Maya笔记 1'/><author><name>Cobra'Nails</name><uri>http://www.blogger.com/profile/04547120036471659938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://1.bp.blogspot.com/-EZLTaKKbp2o/TeJxE13xyCI/AAAAAAAAAOo/JK5q8IR4Big/s220/Killzone_2_Movie_Style_Poster_by_mehdi5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8252604129444828813.post-724489678367062280</id><published>2007-04-23T22:55:00.000+08:00</published><updated>2007-04-23T23:49:42.599+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C/C++'/><title type='text'>ffmpeg,libquicktime,nuke像素格式笔记</title><content type='html'>NUKE:&lt;br /&gt;nuke的图像数据保存在channel中，我们只需要用到其中的r,g,b三个channel。这三个channel是相互独立的，可以分别从中读取数据，每一次可以读取图像的一行像素。这样看来，最合理的线性存储方式就是每个channel的数据作为一组来保存，即：RRRR...RRRRGGGG...GGGGBBBB...BBBB的形似。&lt;br /&gt;&lt;br /&gt;FFMPEG:&lt;br /&gt;ffmpeg支持的编码比较多，如果按照像素格式来分，主要有两类，一类是是RGB，另一类是YUV。对于影像类编码，比如xvid/mpeg4之类，颜色模式只能是YUV，甚至仅仅支持yuv420p这一种。因为要考虑到与nuke相结合，这里只看rgb像素格式中的rgb24。rgb24的线性格式为:RRRR...RRRRGGGG...GGGGBBBB...BBBB，可以很方便的和nuke中的channel数据结合。&lt;br /&gt;&lt;br /&gt;ffmpeg提供了一个函数可以在各种像素格式之间转换。yuv420p的Cr和Cb分量只有Y分量大小的一半，因此需要的空间只有rgb24的2/3。&lt;br /&gt;&lt;br /&gt;libquicktime:&lt;br /&gt;libquicktime中没有与上面RGB24一致的原始rgb格式，有一种rgb888格式。其线性格式为:RGBRGBRGB...。libquicktime在保存帧的时候也要先将rgb转换为yuv，不过这个过程是自动完成的。&lt;br /&gt;&lt;br /&gt;从rgb24到rgb888的转换：&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   pFrameBufferLinear[y*w*3+3*x] = pFrameRGB_r[Y*w+i];    //R&lt;br /&gt;   pFrameBufferLinear[y*w*3+3*x+1] = pFrameRGB_g[Y*w+i];  //G&lt;br /&gt;   pFrameBufferLinear[y*w*3+3*x+2] = pFrameRGB_b[Y*w+i];  //B&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8252604129444828813-724489678367062280?l=9th-movement.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://9th-movement.blogspot.com/feeds/724489678367062280/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8252604129444828813&amp;postID=724489678367062280' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/724489678367062280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/724489678367062280'/><link rel='alternate' type='text/html' href='http://9th-movement.blogspot.com/2007/04/ffmpeglibquicktimenuke.html' title='ffmpeg,libquicktime,nuke像素格式笔记'/><author><name>Cobra'Nails</name><uri>http://www.blogger.com/profile/04547120036471659938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://1.bp.blogspot.com/-EZLTaKKbp2o/TeJxE13xyCI/AAAAAAAAAOo/JK5q8IR4Big/s220/Killzone_2_Movie_Style_Poster_by_mehdi5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8252604129444828813.post-2920268023214604021</id><published>2007-04-20T21:31:00.000+08:00</published><updated>2007-04-20T21:38:35.057+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MEL'/><title type='text'>mel笔记 2</title><content type='html'>把一个locator约束到一个cv点上。&lt;br /&gt;vector $cvpoint=`xform -query -worldSpace -translation curve1.cv[1]`;&lt;br /&gt;locator1.translateX=$cvpoint.x;&lt;br /&gt;locator1.translateY=$cvpoint.y;&lt;br /&gt;locator1.translateZ=$cvpoint.z;&lt;br /&gt;存在的问题：&lt;br /&gt;只有在播放的时候表达式的值才会被更新。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8252604129444828813-2920268023214604021?l=9th-movement.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://9th-movement.blogspot.com/feeds/2920268023214604021/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8252604129444828813&amp;postID=2920268023214604021' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/2920268023214604021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/2920268023214604021'/><link rel='alternate' type='text/html' href='http://9th-movement.blogspot.com/2007/04/mel-2.html' title='mel笔记 2'/><author><name>Cobra'Nails</name><uri>http://www.blogger.com/profile/04547120036471659938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://1.bp.blogspot.com/-EZLTaKKbp2o/TeJxE13xyCI/AAAAAAAAAOo/JK5q8IR4Big/s220/Killzone_2_Movie_Style_Poster_by_mehdi5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8252604129444828813.post-5459482851151450555</id><published>2007-04-17T17:42:00.000+08:00</published><updated>2007-04-17T17:55:47.897+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C/C++'/><title type='text'>Nuke videoWriter参考资源列表</title><content type='html'>libquicktime:&lt;br /&gt;http://libquicktime.sourceforge.net/doc/apiref/index.html&lt;br /&gt;&lt;br /&gt;Multi-Process:&lt;br /&gt;http://linux.chinaunix.net/doc/program/2005-01-27/957.shtml&lt;br /&gt;http://www.linuxforum.net/books/upfaq/book1.htm&lt;br /&gt;http://www.ibm.com/developerworks/cn/views/linux/articles.jsp&lt;br /&gt;&lt;br /&gt;FIFO:&lt;br /&gt;http://www.linuxhq.com/guides/LPG/node11.html#SECTION00722000000000000000&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8252604129444828813-5459482851151450555?l=9th-movement.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://9th-movement.blogspot.com/feeds/5459482851151450555/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8252604129444828813&amp;postID=5459482851151450555' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/5459482851151450555'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/5459482851151450555'/><link rel='alternate' type='text/html' href='http://9th-movement.blogspot.com/2007/04/nuke-videowriter.html' title='Nuke videoWriter参考资源列表'/><author><name>Cobra'Nails</name><uri>http://www.blogger.com/profile/04547120036471659938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://1.bp.blogspot.com/-EZLTaKKbp2o/TeJxE13xyCI/AAAAAAAAAOo/JK5q8IR4Big/s220/Killzone_2_Movie_Style_Poster_by_mehdi5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8252604129444828813.post-2085652021715586800</id><published>2007-04-17T17:34:00.000+08:00</published><updated>2007-04-17T17:40:23.112+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C/C++'/><title type='text'>Nuke4.6 for linux的video输出插件</title><content type='html'>第一个测试版终于完成了。&lt;br /&gt;一共两个 程序，videoWriter是nuke的插件，lqt_server是mov编码程序。&lt;br /&gt;依赖关系：&lt;br /&gt;lqt_server依赖libquicktime，而libquicktime依赖ffmpeg，要编译的话，需要先编译安装ffmpeg和libquicktime。&lt;br /&gt;我的libquicktime和ffmpeg都在/opt里，zip里包含的预编译版本都是链接/opt里的libquicktime和ffmpeg。&lt;br /&gt;安装：&lt;br /&gt;编译完成后，将videoWriter.linuxfc4_intel复制到~/.nuke里，lqtEncodeServer复制到/usr/local/bin里。&lt;br /&gt;使用：&lt;br /&gt;创建一个write节点，文件类型选择video，".mov"的输出留给foundry去实现吧。在Total frames设置要输出的总帧数，framerate是帧率。在execute的时候还要输入帧范围，务必使这个帧数和Total frames中设置的相等，否则程序会出错。最后输出的文件是是由ffmpeg_mpeg4编码的mov格式的文件。用libquicktime的qtinfo工具可以看到格式的信息，用mplayer和vlc可以正常播放，但是xine不能。&lt;br /&gt;&lt;br /&gt;其它：&lt;br /&gt;videoWriter是在NDK中yuvWriter的基础上改写的，因此继承了yuvWriter类的局限，Total frames参数就是其一。在yuvWriter无法获得序列的总帧数，而视频输出的过程中，这个帧数必须是知道的。在Write类中是可以知道总帧数， yuvWriter并未继承Write类，而是从FileWriter类里继承过来的，也就是说需要从Write类派生出一个新的类才能解决帧数未知的问题。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_IGE0MwoF1sA/RiSV0Wx0XhI/AAAAAAAAACY/Gvnaom2f8pc/s1600-h/video_out.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_IGE0MwoF1sA/RiSV0Wx0XhI/AAAAAAAAACY/Gvnaom2f8pc/s320/video_out.jpg" alt="" id="BLOGGER_PHOTO_ID_5054329408516808210" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;文件:&lt;br /&gt;http://cobranail.googlepages.com/videoWriter_Nuke.zip&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8252604129444828813-2085652021715586800?l=9th-movement.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://9th-movement.blogspot.com/feeds/2085652021715586800/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8252604129444828813&amp;postID=2085652021715586800' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/2085652021715586800'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/2085652021715586800'/><link rel='alternate' type='text/html' href='http://9th-movement.blogspot.com/2007/04/nuke46-for-linuxvideo.html' title='Nuke4.6 for linux的video输出插件'/><author><name>Cobra'Nails</name><uri>http://www.blogger.com/profile/04547120036471659938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://1.bp.blogspot.com/-EZLTaKKbp2o/TeJxE13xyCI/AAAAAAAAAOo/JK5q8IR4Big/s220/Killzone_2_Movie_Style_Poster_by_mehdi5.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_IGE0MwoF1sA/RiSV0Wx0XhI/AAAAAAAAACY/Gvnaom2f8pc/s72-c/video_out.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8252604129444828813.post-5206501417051362091</id><published>2007-04-17T17:00:00.000+08:00</published><updated>2007-04-17T17:02:20.904+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MEL'/><title type='text'>MEL笔记 1</title><content type='html'>source命令:&lt;br /&gt;Maya的文档上说：“ It is important for advanced MEL users to understand that "source" is not a MEL command.”&lt;br /&gt;在文档中举的几个例子似乎对此也有暗示。根据我的体会，source不接受变量做参数。比如source "mel_file.mel"是可以的，但是如果用这种形式：&lt;br /&gt;string $mfile = "mel_file.mel";&lt;br /&gt;source $mfile;&lt;br /&gt;就会提示语法错误。使用eval似乎也不可以trick。&lt;br /&gt;&lt;br /&gt;$gShelfTopLevel变量：&lt;br /&gt;global string $gShelfTopLevel;&lt;br /&gt;这个变量似乎是工具架的默认父级部件，createNewShelf等创建shelf的命令都会将新的shelf添加到这个变量所指的部件之下。&lt;br /&gt;&lt;br /&gt;shelf文件：&lt;br /&gt;SaveAllShelves之后，各个工具架上的button都会被保存到mel文件中，里面是一个函数，函数命即为工具架的名称。函数的内容就是一些shelfButton命令。&lt;br /&gt;例如：&lt;br /&gt;global proc Polys () {&lt;br /&gt;global string $gBuffStr;&lt;br /&gt;global string $gBuffStr0;&lt;br /&gt;global string $gBuffStr1;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;shelfButton&lt;br /&gt;-enableCommandRepeat 1&lt;br /&gt;-enable 1&lt;br /&gt;-width 38&lt;br /&gt;-height 38&lt;br /&gt;-manage 1&lt;br /&gt;-visible 1&lt;br /&gt;-preventOverride 0&lt;br /&gt;-align "center"&lt;br /&gt;-label "Sphere"&lt;br /&gt;-labelOffset 0&lt;br /&gt;-font "tinyBoldLabelFont"&lt;br /&gt;-image "polySphere.xpm"&lt;br /&gt;-image1 "polySphere.xpm"&lt;br /&gt;-style "iconOnly"&lt;br /&gt;-marginWidth 1&lt;br /&gt;-marginHeight 1&lt;br /&gt;-command "polySphere -r 1 -sx 20 -sy 20 -ax 0 1 0 -cuv 2 -ch 1; objectMoveCommand;"&lt;br /&gt;-sourceType "mel"&lt;br /&gt;-actionIsSubstitute 0&lt;br /&gt;;&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8252604129444828813-5206501417051362091?l=9th-movement.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://9th-movement.blogspot.com/feeds/5206501417051362091/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8252604129444828813&amp;postID=5206501417051362091' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/5206501417051362091'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8252604129444828813/posts/default/5206501417051362091'/><link rel='alternate' type='text/html' href='http://9th-movement.blogspot.com/2007/04/mel-1.html' title='MEL笔记 1'/><author><name>Cobra'Nails</name><uri>http://www.blogger.com/profile/04547120036471659938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://1.bp.blogspot.com/-EZLTaKKbp2o/TeJxE13xyCI/AAAAAAAAAOo/JK5q8IR4Big/s220/Killzone_2_Movie_Style_Poster_by_mehdi5.jpg'/></author><thr:total>0</thr:total></entry></feed>
