<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feed.feedsky.com/styles/feedsky0.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link href="http://feed.feedsky.com/SpeedRadiosity" type="application/rss+xml" rel="self"></atom:link><fs:self_link href="http://feed.feedsky.com/SpeedRadiosity" type="application/rss+xml"></fs:self_link><lastBuildDate>Sat, 30 Aug 2008 06:03:02 GMT</lastBuildDate><title>SpeedRadiosity</title><description>Integrateable Radiosity Solution</description><link>http://www.speedradiosity.com/chinese</link><language>en</language><pubDate>Sun, 31 Aug 2008 15:29:10 GMT</pubDate><item><title>将Shader编译进程序的简单方法</title><link>http://item.feedsky.com/~feedsky/SpeedRadiosity/~6957147/109272573/5065041/1/item.html</link><content:encoded>&lt;p&gt; 以前为了将Shader写进程序里,不得不用一大堆&amp;#8221;&quot; + \ 来将Shader代码拼凑成字符串.&lt;/p&gt;
&lt;p&gt;或者用资源文件将Shader导入到EXE中，但是Shader修改起来又十分不方便。&lt;/p&gt;
&lt;p&gt;最近发现原来可以用 # 符号将Shader代码字符串化，方法如下:&lt;/p&gt;
&lt;p&gt;1.定义宏STRINGIFY如下:&lt;/p&gt;
&lt;p&gt;#define STRINGIFY(x) #x&lt;/p&gt;
&lt;p&gt;2.用STRINGIFY(x)将Shader代码简单的转换成字符串类型。&lt;/p&gt;
&lt;p&gt;const char *code= STRINGIFY(&lt;/p&gt;
&lt;p&gt;void main(float4 position : POSITION,  float2 texCoordin  : TEXCOORD0, &lt;/p&gt;
&lt;p&gt; out float4 oPosition :POSITION,  out float2 texCoord  : TEXCOORD0,&lt;/p&gt;
&lt;p&gt;uniform float4&amp;#215;4 modelViewProj)&lt;br /&gt;
{&lt;br /&gt;
 oPosition = mul(modelViewProj, position);          &lt;br /&gt;
 texCoord=texCoordin;&lt;br /&gt;
}   );&lt;/p&gt;
&lt;p&gt;这样const char *code中就会包含Shader代码了。实在是方便。&lt;/p&gt;
&lt;p&gt;3.为了让Shader编写更加方便，可以利用Cg等语言提供的“关键字高亮功能”。方法如下：&lt;/p&gt;
&lt;p&gt;a)建立shader.cg文件。&lt;/p&gt;
&lt;p&gt;b)在文件中写Shader，并将Shader代码放在一个STRINGIFY()中，如下：&lt;/p&gt;
&lt;p&gt;const char * vertexshader =&lt;br /&gt;
STRINGIFY(&lt;/p&gt;
&lt;p&gt;void main(float4 position : POSITION,&lt;br /&gt;
                 float2 texCoordin  : TEXCOORD0,&lt;br /&gt;
                out float4 oPosition :POSITION,&lt;br /&gt;
                out float2 texCoord  : TEXCOORD0,&lt;br /&gt;
              uniform float4&amp;#215;4 modelViewProj)&lt;/p&gt;
&lt;p&gt;{&lt;br /&gt;
     oPosition = mul(modelViewProj, position);          &lt;br /&gt;
        texCoord=texCoordin;&lt;br /&gt;
}&lt;br /&gt;
);           &lt;/p&gt;
&lt;p&gt;然后在使用这个Shader前：&lt;/p&gt;
&lt;p&gt;#include &amp;#8220;shader.cg&amp;#8221;&lt;/p&gt;
&lt;p&gt;之后就可以直接用&lt;/p&gt;
&lt;p&gt;const char * vertexshader 创建Shader对象了。&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.speedradiosity.com/chinese/?feed=rss2&amp;p=87</wfw:commentRss><description> 以前为了将Shader写进程序里,不得不用一大堆&amp;#8221;&quot; + \ 来将Shader代码拼凑成字符串.
或者用资源文件将Shader导入到EXE中，但是Shader修改起来又十分不方便。
最近发现原来可以用 # 符号将Shader代码字符串化，方法如下:
1.定义宏STRINGIFY如下:
#define STRINGIFY(x) #x
2.用STRINGIFY(x)将Shader代码简单的转换成字符串类型。
const char *code= STRINGIFY(
void main(float4 position : POSITION,  float2 texCoordin  : TEXCOORD0, 
 out float4 oPosition :POSITION,  out float2 texCoord  : TEXCOORD0,
uniform float4&amp;#215;4 modelViewProj)
{
 oPosition = mul(modelViewProj, position);          
 texCoord=texCoordin;
}   );
这样const char *code中就会包含Shader代码了。实在是方便。
3.为了让Shader编写更加方便，可以利用Cg等语言提供的“关键字高亮功能”。方法如下：
a)建立shader.cg文件。
b)在文件中写Shader，并将Shader代码放在一个STRINGIFY()中，如下：
const char * vertexshader =
STRINGIFY(
void main(float4 position : POSITION,
                 float2 texCoordin  : TEXCOORD0,
                out float4 oPosition :POSITION,
                out float2 texCoord  : [...]</description><category>shader</category><category>resource</category><category>Speed Radiosity</category><category>STRINGIFY</category><category>字符串化</category><category>资源文件</category><pubDate>Sat, 30 Aug 2008 14:03:02 +0800</pubDate><author>admin</author><comments>http://www.speedradiosity.com/chinese/?p=87#comments</comments><guid isPermaLink="false">http://www.speedradiosity.com/chinese/?p=87</guid><dc:creator>admin</dc:creator><fs:srclink>http://www.speedradiosity.com/chinese/?p=87</fs:srclink><fs:srcfeed>http://www.speedradiosity.com/chinese/?feed=rss2</fs:srcfeed><fs:itemid>feedsky/SpeedRadiosity/~6957147/109272573/5065041</fs:itemid></item><item><title>Normal Map Radiosity + HDR 或 Bloom的效果</title><link>http://item.feedsky.com/~feedsky/SpeedRadiosity/~6957147/109272574/5065041/1/item.html</link><content:encoded>&lt;p&gt;Normal Map Radiosity 配合流行的Bloom或HDR渲染器能够体现出惊人的绚丽效果:&lt;/p&gt;
&lt;p&gt;&lt;img border=&quot;0&quot; width=&quot;400&quot; src=&quot;http://www.speedradiosity.com/chinese/wp-content/gallery/album85_4/normal_Snap1.jpg&quot; height=&quot;331&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img border=&quot;0&quot; width=&quot;400&quot; src=&quot;http://www.speedradiosity.com/chinese/wp-content/gallery/album85_4/normal_Snap2.jpg&quot; height=&quot;331&quot; /&gt;&lt;/p&gt;
&lt;p&gt;使用了和Half Life 2 Source Engine 类似的渲染技术,效果也基本上达到同样的级别了!&lt;/p&gt;
&lt;p&gt;更多图请参考:&lt;a rel=&quot;bookmark&quot; href=&quot;http://www.speedradiosity.com/chinese/?page_id=85#picture_nav&quot; title=&quot;back to thumbnails for Normal Map Radiosity + HDR / BLOOM&quot;&gt;&lt;font color=&quot;#da790b&quot;&gt;Normal Map Radiosity + HDR / BLOOM&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.speedradiosity.com/chinese/?feed=rss2&amp;p=86</wfw:commentRss><description>Normal Map Radiosity 配合流行的Bloom或HDR渲染器能够体现出惊人的绚丽效果:


使用了和Half Life 2 Source Engine 类似的渲染技术,效果也基本上达到同样的级别了!
更多图请参考:Normal Map Radiosity + HDR / BLOOM</description><category>Map</category><category>Normal</category><category>高动态范围</category><category>Bloom</category><category>radiosity</category><category>Speed Radiosity</category><category>HDR</category><pubDate>Tue, 19 Aug 2008 19:06:48 +0800</pubDate><author>admin</author><comments>http://www.speedradiosity.com/chinese/?p=86#comments</comments><guid isPermaLink="false">http://www.speedradiosity.com/chinese/?p=86</guid><dc:creator>admin</dc:creator><fs:srclink>http://www.speedradiosity.com/chinese/?p=86</fs:srclink><fs:srcfeed>http://www.speedradiosity.com/chinese/?feed=rss2</fs:srcfeed><fs:itemid>feedsky/SpeedRadiosity/~6957147/109272574/5065041</fs:itemid></item><item><title>Normal Map Radiosity 的完美细节</title><link>http://item.feedsky.com/~feedsky/SpeedRadiosity/~6957147/109272575/5065041/1/item.html</link><content:encoded>&lt;p&gt;终于实现了Normal Maped Radiosity , 利用一张法线图和三张光照图实现惊人的光照细节.&lt;/p&gt;
&lt;p&gt;此方法辐射度计算过程与法线图无关,法线图和光能传递计算之间完美解藕.由此带来的好处是显而易见的,光能传递计算完成后仍可进行法线图切换,大大加速场景生成效率.&lt;/p&gt;
&lt;p&gt;晒图!!&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.speedradiosity.com/chinese/wp-content/uploads/2008/08/snap6.jpg&quot; title=&quot;snap6.jpg&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.speedradiosity.com/chinese/wp-content/uploads/2008/08/snap10.jpg&quot; title=&quot;snap10.jpg&quot;&gt;&lt;/a&gt;&lt;img border=&quot;0&quot; width=&quot;100&quot; src=&quot;http://www.speedradiosity.com/chinese/wp-content/gallery/album77_3/thumb_use.jpg&quot; height=&quot;135&quot; /&gt;&lt;img border=&quot;0&quot; width=&quot;100&quot; src=&quot;http://www.speedradiosity.com/chinese/wp-content/gallery/album77_3/thumb_use_noref.jpg&quot; height=&quot;135&quot; /&gt;&lt;img border=&quot;0&quot; width=&quot;100&quot; src=&quot;http://www.speedradiosity.com/chinese/wp-content/gallery/album77_3/thumb_use1.jpg&quot; height=&quot;135&quot; /&gt;&lt;img border=&quot;0&quot; width=&quot;100&quot; src=&quot;http://www.speedradiosity.com/chinese/wp-content/gallery/album77_3/thumb_Snap20.jpg&quot; height=&quot;135&quot; /&gt;&lt;/p&gt;
&lt;p&gt;带有反射效果的Normal Map Radiosity, 反射贴图同样受到法线影响.&lt;/p&gt;
&lt;p&gt;&lt;img border=&quot;0&quot; width=&quot;400&quot; src=&quot;http://www.speedradiosity.com/chinese/wp-content/gallery/album77_3/normal_use.jpg&quot; height=&quot;323&quot; /&gt;&lt;/p&gt;
&lt;p&gt;单纯的Norml Map Radiosity效果.&lt;/p&gt;
&lt;p&gt;&lt;img border=&quot;0&quot; width=&quot;400&quot; src=&quot;http://www.speedradiosity.com/chinese/wp-content/gallery/album77_3/normal_use_noref.jpg&quot; height=&quot;323&quot; /&gt; &lt;/p&gt;
&lt;p&gt;更多图请参考:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.speedradiosity.com/chinese/?page_id=77&quot;&gt;http://www.speedradiosity.com/chinese/?page_id=77&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.speedradiosity.com/chinese/?feed=rss2&amp;p=78</wfw:commentRss><description>终于实现了Normal Maped Radiosity , 利用一张法线图和三张光照图实现惊人的光照细节.
此方法辐射度计算过程与法线图无关,法线图和光能传递计算之间完美解藕.由此带来的好处是显而易见的,光能传递计算完成后仍可进行法线图切换,大大加速场景生成效率.
晒图!!

带有反射效果的Normal Map Radiosity, 反射贴图同样受到法线影响.

单纯的Norml Map Radiosity效果.
 
更多图请参考:
http://www.speedradiosity.com/chinese/?page_id=77</description><category>Normal Maped Radiosity</category><category>GI</category><category>radiosity</category><category>Speed Radiosity</category><category>法线图</category><category>全局光</category><pubDate>Wed, 13 Aug 2008 23:28:04 +0800</pubDate><author>admin</author><comments>http://www.speedradiosity.com/chinese/?p=78#comments</comments><guid isPermaLink="false">http://www.speedradiosity.com/chinese/?p=78</guid><dc:creator>admin</dc:creator><fs:srclink>http://www.speedradiosity.com/chinese/?p=78</fs:srclink><fs:srcfeed>http://www.speedradiosity.com/chinese/?feed=rss2</fs:srcfeed><fs:itemid>feedsky/SpeedRadiosity/~6957147/109272575/5065041</fs:itemid></item><item><title>由顶点法线插值计算图素法线的方法</title><link>http://item.feedsky.com/~feedsky/SpeedRadiosity/~6957147/109272576/5065041/1/item.html</link><content:encoded>&lt;p&gt;十分基础的问题,突然要用了却怎么也想不起来,推了半天未果&amp;#8230;.汗&amp;#8230;&lt;/p&gt;
&lt;p&gt;终于找到正确的结果,记录如下:&lt;/p&gt;
&lt;p&gt;A, B, C are the vertices of a particular triangle.&lt;br /&gt;
Auv, Buv, Cuv are the UV coordinates at the vertices.&lt;br /&gt;
Axyz, Bxyz, Cxyz are the positions of the vertices.&lt;br /&gt;
Puv are the UV coordinates of the point.&lt;br /&gt;
Pabc are the barycentric coordinates of the point [for that triangle]&lt;br /&gt;
Pxyz is the object space position of the point&lt;/p&gt;
&lt;p&gt;aa = (Bu-Au) * (Cv-Av) - (Cu-Au) * (Bv-Av)&lt;br /&gt;
Pa = ((Bu-Pu) * (Cv-Pv) - (Cu-Pu) * (Bv-Pv)) / aa&lt;br /&gt;
Pb = ((Cu-Pu) * (Av-Pv) - (Au-Pu) * (Cv-Pv)) / aa&lt;br /&gt;
Pc = ((Au-Pu) * (Bv-Pv) - (Bu-Pu) * (Av-Pv)) / aa&lt;/p&gt;
&lt;p&gt;The above are just a bunch of 2D cross products. The 2D cross product happens to give you the area of a triangle. If you look at the Wolfram reference posted above, it notes that the areas of the sub triangles ABP ACP and BCP are proportional to the barycentric coordinates.&lt;/p&gt;
&lt;p&gt;The division of each sub triangle by the area of the main triangle is so we can get the useful property of areal coordinates that for any point which is &lt;strong&gt;*inside*&lt;/strong&gt; the triangle, Pa+Pb+Pc=1&lt;/p&gt;
&lt;p&gt;Once you have barycentric coordinates, you can use those to convert between texture units and object units by doing: Pxyz = Axyz*Pa + Bxyz*Pb + Cxyz*Pc&lt;/p&gt;
&lt;p&gt;So now to come up with an algorithm for you:&lt;/p&gt;
&lt;pre&gt;For every triangle in the mesh {&lt;/pre&gt;
&lt;pre&gt; // the barycentric coordinates with respect to this triangle&lt;/pre&gt;
&lt;pre&gt; Compute Pa, Pb, Pc&lt;/pre&gt;
&lt;pre&gt;// is the point inside this triangle ?&lt;/pre&gt;
&lt;pre&gt;If (Pa+Pb+Pc == 1)&lt;/pre&gt;
&lt;pre&gt; {&lt;/pre&gt;
&lt;pre&gt;     // yes, so use the barycentric coordinates to compute the position&lt;/pre&gt;
&lt;pre&gt;  Pxyz = Axyz*Pa + Bxyz*Pb + Cxyz*Pc&lt;/pre&gt;
&lt;pre&gt; }&lt;/pre&gt;
&lt;pre&gt;}&lt;/pre&gt;
&lt;p&gt;Notes:&lt;br /&gt;
1. remember to take floating point storage issues into account when testing Pa+Pb+Pc against 1.&lt;/p&gt;
&lt;p&gt;2. if you can guarantee that every face of the mesh uses a unique part of the texture map, then you can early-out from the loop for the first triangle that contains the point. For completely arbitrary texturing, multiple polygons may use the same piece of texture map (e.g. mirroring, repeats etc).&lt;/p&gt;
&lt;p&gt;3. on a related note if the artist has stretched a single texel of the texture to cover multiple faces and that&amp;#8217;s the point you&amp;#8217;re testing, all of those faces will return matches.&lt;/p&gt;
&lt;p&gt;4. as with all &amp;#8220;arbitrary mesh&amp;#8221; problems, if you know anything like the connectivity between triangles, or knowledge of how the mesh has been textured, or have any kind of spatial data structure, you can make the test somewhat better than O(numFaces).&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.speedradiosity.com/chinese/?feed=rss2&amp;p=76</wfw:commentRss><description>十分基础的问题,突然要用了却怎么也想不起来,推了半天未果&amp;#8230;.汗&amp;#8230;
终于找到正确的结果,记录如下:
A, B, C are the vertices of a particular triangle.
Auv, Buv, Cuv are the UV coordinates at the vertices.
Axyz, Bxyz, Cxyz are the positions of the vertices.
Puv are the UV coordinates of the point.
Pabc are the barycentric coordinates of the point [for that triangle]
Pxyz is the object space position of the point
aa = (Bu-Au) * [...]</description><category>interpolation</category><category>其他</category><pubDate>Tue, 15 Jul 2008 21:58:33 +0800</pubDate><author>admin</author><comments>http://www.speedradiosity.com/chinese/?p=76#comments</comments><guid isPermaLink="false">http://www.speedradiosity.com/chinese/?p=76</guid><dc:creator>admin</dc:creator><fs:srclink>http://www.speedradiosity.com/chinese/?p=76</fs:srclink><fs:srcfeed>http://www.speedradiosity.com/chinese/?feed=rss2</fs:srcfeed><fs:itemid>feedsky/SpeedRadiosity/~6957147/109272576/5065041</fs:itemid></item><item><title>max sdk修改器的实现</title><link>http://item.feedsky.com/~feedsky/SpeedRadiosity/~6957147/109272577/5065041/1/item.html</link><content:encoded>&lt;p&gt;最近给MAX开发插件,需要利用修改器修改模型的各种属性.包括添加新的纹理坐标\添加新的贴图和材质等等.&lt;/p&gt;
&lt;p&gt;Max的Mesh是一个十分灵活的mesh类,采用面索引实现各种类型的Triangle组织.(各种Fan、strip等 )&lt;/p&gt;
&lt;p&gt;比较特殊的是连纹理坐标也用一个TVFace进行了索引。下面代码给一个MESH添加了一层纹理坐标。&lt;/p&gt;
&lt;p&gt;执行过后，经修改器修改过的模型，可以利用UVW Unwrap修改器查看新的纹理坐标。&lt;/p&gt;
&lt;p&gt;特别要注意的是：TVFace * tfaces = mesh.mapFaces(2); 这里tfaces 中的顶点索引值一定要正确的初始化，因为Max会通过&lt;/p&gt;
&lt;p&gt;这些值查找UV顶点（UVVert）。无效的值会导致其他修改器修改模型时、甚至是更新场景时出现错误。&lt;/p&gt;
&lt;p&gt; TriObject *tobj = (TriObject*)os-&amp;gt;obj-&amp;gt;ConvertToType(t , triObjectClassID);&lt;br /&gt;
  &lt;br /&gt;
  Mesh &amp;amp;mesh = tobj-&amp;gt;GetMesh();  &lt;/p&gt;
&lt;p&gt;  //int newmap = mesh.getNumMaps();&lt;br /&gt;
  mesh.setNumMaps(2,TRUE);&lt;br /&gt;
  &lt;br /&gt;
  mesh.setMapSupport(2,TRUE );&lt;br /&gt;
  &lt;br /&gt;
  int uvnum = mesh.getNumTVerts();&lt;br /&gt;
  &lt;br /&gt;
  mesh.setNumMapVerts(2,uvnum);&lt;/p&gt;
&lt;p&gt;  mesh.setNumTVFaces(mesh.getNumFaces());&lt;/p&gt;
&lt;p&gt;  TVFace * tfaces = mesh.mapFaces(2);&lt;br /&gt;
  &lt;br /&gt;
  for(int faceid = 0; faceid &amp;lt; mesh.getNumFaces();faceid++)&lt;br /&gt;
  {&lt;br /&gt;
   tfaces[faceid].t[0] = mesh.faces[faceid].v[0];&lt;br /&gt;
   tfaces[faceid].t[1] = mesh.faces[faceid].v[1];&lt;br /&gt;
   tfaces[faceid].t[2] = mesh.faces[faceid].v[2];&lt;br /&gt;
  }&lt;/p&gt;
&lt;p&gt;  UVVert *mv = mesh.mapVerts(2);&lt;/p&gt;
&lt;p&gt;  for (int i=0; i&amp;lt;uvnum; i++)&lt;br /&gt;
  {&lt;br /&gt;
   mv[i] = UVVert(1,1,0);&lt;br /&gt;
  }&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.speedradiosity.com/chinese/?feed=rss2&amp;p=75</wfw:commentRss><description>最近给MAX开发插件,需要利用修改器修改模型的各种属性.包括添加新的纹理坐标\添加新的贴图和材质等等.
Max的Mesh是一个十分灵活的mesh类,采用面索引实现各种类型的Triangle组织.(各种Fan、strip等 )
比较特殊的是连纹理坐标也用一个TVFace进行了索引。下面代码给一个MESH添加了一层纹理坐标。
执行过后，经修改器修改过的模型，可以利用UVW Unwrap修改器查看新的纹理坐标。
特别要注意的是：TVFace * tfaces = mesh.mapFaces(2); 这里tfaces 中的顶点索引值一定要正确的初始化，因为Max会通过
这些值查找UV顶点（UVVert）。无效的值会导致其他修改器修改模型时、甚至是更新场景时出现错误。
 TriObject *tobj = (TriObject*)os-&amp;#62;obj-&amp;#62;ConvertToType(t , triObjectClassID);
  
  Mesh &amp;#38;mesh = tobj-&amp;#62;GetMesh();  
  //int newmap = mesh.getNumMaps();
  mesh.setNumMaps(2,TRUE);
  
  mesh.setMapSupport(2,TRUE );
  
  int uvnum = mesh.getNumTVerts();
  
  mesh.setNumMapVerts(2,uvnum);
  mesh.setNumTVFaces(mesh.getNumFaces());
  TVFace * tfaces = mesh.mapFaces(2);
  
  for(int faceid = 0; faceid &amp;#60; mesh.getNumFaces();faceid++)
  {
   tfaces[faceid].t[0] = mesh.faces[faceid].v[0];
   tfaces[faceid].t[1] = mesh.faces[faceid].v[1];
   tfaces[faceid].t[2] = mesh.faces[faceid].v[2];
  }
  UVVert *mv = mesh.mapVerts(2);
  for (int i=0; i&amp;#60;uvnum; i++)
  {
   mv[i] = UVVert(1,1,0);
  }</description><category>max sdk</category><category>其他</category><category>modifiter</category><pubDate>Tue, 01 Jul 2008 09:32:56 +0800</pubDate><author>admin</author><comments>http://www.speedradiosity.com/chinese/?p=75#comments</comments><guid isPermaLink="false">http://www.speedradiosity.com/chinese/?p=75</guid><dc:creator>admin</dc:creator><fs:srclink>http://www.speedradiosity.com/chinese/?p=75</fs:srclink><fs:srcfeed>http://www.speedradiosity.com/chinese/?feed=rss2</fs:srcfeed><fs:itemid>feedsky/SpeedRadiosity/~6957147/109272577/5065041</fs:itemid></item><item><title>Doxygen 使用笔记</title><link>http://item.feedsky.com/~feedsky/SpeedRadiosity/~6957147/109272578/5065041/1/item.html</link><content:encoded>&lt;p&gt;最近用doxygen 生成文档，有些细小的问题还是很折腾了一阵。现将使用方法记录如下，便于日后查找。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;步骤1 ：下载doxygen的binary 包&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;doxygen下载地址&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.10.xdowns.com/uploadFile/2007-7/doxygen.rar&quot;&gt;http://www.10.xdowns.com/uploadFile/2007-7/doxygen.rar&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;为了使doxygen能够将类图、协作图等 加入到文档中，还要下载安装graphviz for win。&lt;/p&gt;
&lt;p&gt;graphviz 2.18下载：&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.graphviz.org/pub/graphviz/ARCHIVE/graphviz-2.18.exe&quot;&gt;http://www.graphviz.org/pub/graphviz/ARCHIVE/graphviz-2.18.exe&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;全部安装后就可以开始使用了。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;步骤2：运行doxygen wizard.exe&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;如果你像我一样希望只通过图形界面运行doxygen的话，请在doxygen的bin目录中运行doxywizard.exe，这时按照doxygen根目录下的文档（&lt;a name=&quot;doxywizard_usage&quot; title=&quot;doxywizard_usage&quot; class=&quot;anchor&quot;&gt;&lt;/a&gt;doxygen_manual-1.5.2.chm）中 Doxywizard usage一节的说明设置即可。主要包括，源码路径、工作路径、输出路径等。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;步骤3：点开始，即可生成文档&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;最后对文档生成过程中遇到的一些问题进行说明：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1.中文问题：中文注释在文档中是乱码。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;解决：在expert中的INPUT选项页的INPUT_ENCODEING中填入“GB2312”，这样基于GB的文本编辑器生成的代码就可以正常使用了。&lt;/p&gt;
&lt;p&gt;但是，还有一个无法彻底解决的问题就是，当输出语言为中文时左边的导航栏的所有中文仍然是乱码。哪位有解决方案，请务必告知！&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2.图形问题：无法绘制类图协作图等图形。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;解决：首先确保安装了graphviz for win，注意不是wingraphviz，后者是一个graphviz的com封装，但是doxygen并不是基于它开发的，所以装了也没用。然后在expert的DOT_PATH中填入graphviz的安装路径。接着在wizard的diagram中选择需要生成的图形类别就可以了。&lt;/p&gt;
&lt;p&gt;如果出现无法包含.map文件的错误，可以将工作目录设置成html，并将html中所有文件都清除再试。这个问题的原因还不太确定。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3.输出chm的问题：如何输出.chm文件&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;在expert中的HTML页：选中“GENERATE_HTMLHELP”，然后在CHM_FILE中填上想要的chm文件名。&lt;/p&gt;
&lt;p&gt;HHC_LOCATION中输入hhc.exe文件的路径。hhc.exe可以通过安装HTML Help Workshop获得。&lt;/p&gt;
&lt;p&gt;HTML Help Workshop 地址：&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.microsoft.com/downloads/details.aspx?FamilyID=00535334-c8a6-452f-9aa0-d597d16580cc&amp;amp;displaylang=en&quot;&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=00535334-c8a6-452f-9aa0-d597d16580cc&amp;amp;displaylang=en&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;这样，基本上就能够用doxygen生成漂亮的文档了。代码方面，doxygen支持多种格式的注释风格，根据manual选择自己喜欢的就好。&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.speedradiosity.com/chinese/?feed=rss2&amp;p=73</wfw:commentRss><description>最近用doxygen 生成文档，有些细小的问题还是很折腾了一阵。现将使用方法记录如下，便于日后查找。
步骤1 ：下载doxygen的binary 包
doxygen下载地址
http://www.10.xdowns.com/uploadFile/2007-7/doxygen.rar
为了使doxygen能够将类图、协作图等 加入到文档中，还要下载安装graphviz for win。
graphviz 2.18下载：
http://www.graphviz.org/pub/graphviz/ARCHIVE/graphviz-2.18.exe
全部安装后就可以开始使用了。
步骤2：运行doxygen wizard.exe
如果你像我一样希望只通过图形界面运行doxygen的话，请在doxygen的bin目录中运行doxywizard.exe，这时按照doxygen根目录下的文档（doxygen_manual-1.5.2.chm）中 Doxywizard usage一节的说明设置即可。主要包括，源码路径、工作路径、输出路径等。
步骤3：点开始，即可生成文档
最后对文档生成过程中遇到的一些问题进行说明：
1.中文问题：中文注释在文档中是乱码。
解决：在expert中的INPUT选项页的INPUT_ENCODEING中填入“GB2312”，这样基于GB的文本编辑器生成的代码就可以正常使用了。
但是，还有一个无法彻底解决的问题就是，当输出语言为中文时左边的导航栏的所有中文仍然是乱码。哪位有解决方案，请务必告知！
2.图形问题：无法绘制类图协作图等图形。
解决：首先确保安装了graphviz for win，注意不是wingraphviz，后者是一个graphviz的com封装，但是doxygen并不是基于它开发的，所以装了也没用。然后在expert的DOT_PATH中填入graphviz的安装路径。接着在wizard的diagram中选择需要生成的图形类别就可以了。
如果出现无法包含.map文件的错误，可以将工作目录设置成html，并将html中所有文件都清除再试。这个问题的原因还不太确定。
3.输出chm的问题：如何输出.chm文件
在expert中的HTML页：选中“GENERATE_HTMLHELP”，然后在CHM_FILE中填上想要的chm文件名。
HHC_LOCATION中输入hhc.exe文件的路径。hhc.exe可以通过安装HTML Help Workshop获得。
HTML Help Workshop 地址：
http://www.microsoft.com/downloads/details.aspx?FamilyID=00535334-c8a6-452f-9aa0-d597d16580cc&amp;#38;displaylang=en
这样，基本上就能够用doxygen生成漂亮的文档了。代码方面，doxygen支持多种格式的注释风格，根据manual选择自己喜欢的就好。</description><category>doxygen</category><category>其他</category><category>doxywizard</category><category>graphviz</category><pubDate>Mon, 19 May 2008 14:01:41 +0800</pubDate><author>admin</author><comments>http://www.speedradiosity.com/chinese/?p=73#comments</comments><guid isPermaLink="false">http://www.speedradiosity.com/chinese/?p=73</guid><dc:creator>admin</dc:creator><fs:srclink>http://www.speedradiosity.com/chinese/?p=73</fs:srclink><fs:srcfeed>http://www.speedradiosity.com/chinese/?feed=rss2</fs:srcfeed><fs:itemid>feedsky/SpeedRadiosity/~6957147/109272578/5065041</fs:itemid></item><item><title>Speed Radiosity 参展中部博览会</title><link>http://item.feedsky.com/~feedsky/SpeedRadiosity/~6957147/109272579/5065041/1/item.html</link><content:encoded>&lt;p&gt;2008 年4月 26日至 4月28日，第三届中部博览会在武汉举行。&lt;/p&gt;
&lt;p&gt;中博会盛况空前&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.speedradiosity.com/chinese/wp-content/uploads/2008/04/dsc04630.JPG&quot; title=&quot;dsc04630.JPG&quot;&gt;&lt;/a&gt;&lt;img border=&quot;2&quot; width=&quot;500&quot; src=&quot;http://www.speedradiosity.com/chinese/wp-content/uploads/2008/04/dsc04630.JPG&quot; alt=&quot;dsc04630.JPG&quot; height=&quot;400&quot; /&gt;&lt;/p&gt;
&lt;p&gt;SpeedRadiosity全局光照渲染器很荣幸的以武汉大学国际软件学院的名义参展。在引擎开发板块，SpeedRadiosity留下了浓墨重彩的一笔！&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.speedradiosity.com/chinese/wp-content/uploads/2008/04/dsc04646.JPG&quot; title=&quot;dsc04646.JPG&quot;&gt;&lt;/a&gt; &lt;a href=&quot;http://www.speedradiosity.com/chinese/wp-content/uploads/2008/04/dsc04646.JPG&quot;&gt;&lt;img border=&quot;1&quot; width=&quot;230&quot; src=&quot;http://www.speedradiosity.com/chinese/wp-content/uploads/2008/04/dsc04646.JPG&quot; alt=&quot;dsc04646.JPG&quot; height=&quot;350&quot; /&gt;&lt;/a&gt;        &lt;a href=&quot;http://www.speedradiosity.com/chinese/wp-content/uploads/2008/04/dsc04649.JPG&quot;&gt;&lt;img border=&quot;1&quot; width=&quot;230&quot; src=&quot;http://www.speedradiosity.com/chinese/wp-content/uploads/2008/04/dsc04649.JPG&quot; alt=&quot;dsc04649.JPG&quot; height=&quot;350&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://www.speedradiosity.com/chinese/wp-content/uploads/2008/04/dsc04649.JPG&quot; title=&quot;dsc04649.JPG&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;同时参展的还有我们去年参加“挑战数码时代”比赛的团队剪影以及翁子杨老师的插画作品等。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.speedradiosity.com/chinese/wp-content/uploads/2008/04/dsc04652.JPG&quot; title=&quot;dsc04652.JPG&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.speedradiosity.com/chinese/wp-content/uploads/2008/04/dsc04652.JPG&quot;&gt;&lt;img border=&quot;2&quot; width=&quot;500&quot; src=&quot;http://www.speedradiosity.com/chinese/wp-content/uploads/2008/04/dsc04652.JPG&quot; alt=&quot;dsc04652.JPG&quot; height=&quot;250&quot; style=&quot;width: 503px; height: 316px&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;虽然展示的文字部分“淡化”了Speed Radiosity的名称，以展示院系实力为主要目的。但所有插图以及技术描述均出自SpeedRadiosity。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.speedradiosity.com/chinese/wp-content/uploads/2008/04/dsc04649.JPG&quot; title=&quot;dsc04649.JPG&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.speedradiosity.com/chinese/wp-content/uploads/2008/04/dsc04646.JPG&quot; title=&quot;dsc04646.JPG&quot;&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.speedradiosity.com/chinese/?feed=rss2&amp;p=67</wfw:commentRss><description>2008 年4月 26日至 4月28日，第三届中部博览会在武汉举行。
中博会盛况空前

SpeedRadiosity全局光照渲染器很荣幸的以武汉大学国际软件学院的名义参展。在引擎开发板块，SpeedRadiosity留下了浓墨重彩的一笔！
         
同时参展的还有我们去年参加“挑战数码时代”比赛的团队剪影以及翁子杨老师的插画作品等。

虽然展示的文字部分“淡化”了Speed Radiosity的名称，以展示院系实力为主要目的。但所有插图以及技术描述均出自SpeedRadiosity。</description><category>中博会</category><category>radiosity</category><category>Speed Radiosity</category><category>中部博览会</category><pubDate>Sun, 27 Apr 2008 22:24:11 +0800</pubDate><author>admin</author><comments>http://www.speedradiosity.com/chinese/?p=67#comments</comments><guid isPermaLink="false">http://www.speedradiosity.com/chinese/?p=67</guid><dc:creator>admin</dc:creator><fs:srclink>http://www.speedradiosity.com/chinese/?p=67</fs:srclink><fs:srcfeed>http://www.speedradiosity.com/chinese/?feed=rss2</fs:srcfeed><fs:itemid>feedsky/SpeedRadiosity/~6957147/109272579/5065041</fs:itemid></item><item><title>用于辐射度计算的内建场景结构</title><link>http://item.feedsky.com/~feedsky/SpeedRadiosity/~6957147/109272580/5065041/1/item.html</link><content:encoded>&lt;p&gt;这段时间使用了一套内建的场景结构用于辐射度计算过程中的半立方体绘制。通过标准的层次结构和各种节点管理场景。然后利用visitor pattern遍历场景。&lt;/p&gt;
&lt;p&gt;这样做的初衷主要是使得半立方体的绘制过程能够独立的在模块内部完成，使得场景绘制不再依赖于目标系统的功能。于是模块的集成工作就只是场景数据的转换和新的纹理坐标的写回，使得集成过程更加稳定和容易。&lt;/p&gt;
&lt;p&gt;另一方面，由于这套场景结构简单，需要的功能也很少，有效的避免了冗余的操作，性能比原先使用osg绘制半立方体反而有了提高。&lt;/p&gt;
&lt;p&gt;这样的场景结构还可以用来做光线追踪等算法，同时也能够保持对外接口的稳定。&lt;/p&gt;
&lt;p&gt;就是工作量和规模都大了不少。&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.speedradiosity.com/chinese/?feed=rss2&amp;p=66</wfw:commentRss><description>这段时间使用了一套内建的场景结构用于辐射度计算过程中的半立方体绘制。通过标准的层次结构和各种节点管理场景。然后利用visitor pattern遍历场景。
这样做的初衷主要是使得半立方体的绘制过程能够独立的在模块内部完成，使得场景绘制不再依赖于目标系统的功能。于是模块的集成工作就只是场景数据的转换和新的纹理坐标的写回，使得集成过程更加稳定和容易。
另一方面，由于这套场景结构简单，需要的功能也很少，有效的避免了冗余的操作，性能比原先使用osg绘制半立方体反而有了提高。
这样的场景结构还可以用来做光线追踪等算法，同时也能够保持对外接口的稳定。
就是工作量和规模都大了不少。</description><category>Speed Radiosity</category><pubDate>Fri, 18 Apr 2008 23:14:06 +0800</pubDate><author>admin</author><comments>http://www.speedradiosity.com/chinese/?p=66#comments</comments><guid isPermaLink="false">http://www.speedradiosity.com/chinese/?p=66</guid><dc:creator>admin</dc:creator><fs:srclink>http://www.speedradiosity.com/chinese/?p=66</fs:srclink><fs:srcfeed>http://www.speedradiosity.com/chinese/?feed=rss2</fs:srcfeed><fs:itemid>feedsky/SpeedRadiosity/~6957147/109272580/5065041</fs:itemid></item><item><title>层次辐射度</title><link>http://item.feedsky.com/~feedsky/SpeedRadiosity/~6957147/109272581/5065041/1/item.html</link><content:encoded>&lt;p&gt;在辐射度计算前对mesh进行自适应细分并没有取得比线性插值更好的效果.&lt;/p&gt;
&lt;p&gt;经过细分的光照图.细分后实际需要计算的半立方体数仍然远高于4 space 50% threshold 的线性插值.&lt;/p&gt;
&lt;p&gt;下图为对场景进行层次化自适应细分的结果。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.speedradiosity.com/chinese/wp-content/uploads/2008/04/hiberarchy.bmp&quot; title=&quot;hiberarchy.bmp&quot;&gt;&lt;img width=&quot;287&quot; src=&quot;http://www.speedradiosity.com/chinese/wp-content/uploads/2008/04/hiberarchy.bmp&quot; alt=&quot;hiberarchy.bmp&quot; height=&quot;237&quot; style=&quot;width: 297px; height: 272px&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;主要原因是线性插值实际上已经在动态的过程中考虑到formfactor*radiosity的分布情况,在由粗到细&lt;/p&gt;
&lt;p&gt;的细分过程中逐渐的对光照图进行了细分。这种方法健壮、可靠、且适应面广。同时，为了能够更加&lt;/p&gt;
&lt;p&gt;好的为不同精度的光照图插值，需要根据space采用动态的threshold.这样的结果会远比层次化辐射度&lt;/p&gt;
&lt;p&gt;更好。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.speedradiosity.com/chinese/wp-content/uploads/2008/04/hiberarchy.bmp&quot; title=&quot;hiberarchy.bmp&quot;&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.speedradiosity.com/chinese/?feed=rss2&amp;p=61</wfw:commentRss><description>在辐射度计算前对mesh进行自适应细分并没有取得比线性插值更好的效果.
经过细分的光照图.细分后实际需要计算的半立方体数仍然远高于4 space 50% threshold 的线性插值.
下图为对场景进行层次化自适应细分的结果。

主要原因是线性插值实际上已经在动态的过程中考虑到formfactor*radiosity的分布情况,在由粗到细
的细分过程中逐渐的对光照图进行了细分。这种方法健壮、可靠、且适应面广。同时，为了能够更加
好的为不同精度的光照图插值，需要根据space采用动态的threshold.这样的结果会远比层次化辐射度
更好。</description><category>自适应细分</category><category>层次辐射度</category><category>Speed Radiosity</category><pubDate>Mon, 14 Apr 2008 11:21:26 +0800</pubDate><author>admin</author><comments>http://www.speedradiosity.com/chinese/?p=61#comments</comments><guid isPermaLink="false">http://www.speedradiosity.com/chinese/?p=61</guid><dc:creator>admin</dc:creator><fs:srclink>http://www.speedradiosity.com/chinese/?p=61</fs:srclink><fs:srcfeed>http://www.speedradiosity.com/chinese/?feed=rss2</fs:srcfeed><fs:itemid>feedsky/SpeedRadiosity/~6957147/109272581/5065041</fs:itemid></item><item><title>Speed Radiosity 渲染选项设置说明</title><link>http://item.feedsky.com/~feedsky/SpeedRadiosity/~6957147/109272582/5065041/1/item.html</link><content:encoded>&lt;p&gt;一.基本设置 &lt;/p&gt;
&lt;p&gt;光照图分辨率：场景光照的计算精度，精度越高效果越好，速度也越慢。&lt;/p&gt;
&lt;p&gt;采样精度：光照计算过程中，“捕获”场景光照信息时采用的精度。随着光照图分辨率的提高，这个值也需要跟着提高，否则场景中会有部分细节表现不佳。&lt;/p&gt;
&lt;p&gt;迭代次数：光能传递的次数。次数越多场景越接近光能平衡，也越接近真实。一般8-10个pass即可达到较好效果。&lt;/p&gt;
&lt;p&gt;多线程模式：针对多核处理器的优化方案。更好的挖掘多核处理器的潜力。一般情况下线程数设置为处理器核心数就可以了。&lt;/p&gt;
&lt;p&gt;二.环境设置&lt;/p&gt;
&lt;p&gt;基本环境色：没有任何光照时，物体表面的颜色。在迭带次数较低时可以用这个参数适当增加亮度，但是迭代次数足够是请将该值设置为全黑，否则将无法得到很好的结果。&lt;/p&gt;
&lt;p&gt;室外环境色和室外环境光强度：室外环境色是室外环境的主要颜色，可以用来表现不同时间的阳光照射效果。室外环境光强度则用来对整体亮度进行调整。&lt;/p&gt;
&lt;p&gt;三.高级设置&lt;/p&gt;
&lt;p&gt;纹理坐标自动生成：这个功能用来自动为场景模型生成一套纹理坐标，以获得较高的纹理利用率。高利用率就意味着能够以较小的光照图得到更好的效果，以达到节省显存和提高性能的目的。&lt;/p&gt;
&lt;p&gt;扩张性填充阈值：自动生成纹理坐标时可能会使得场景中的一些“细碎”面片无法获得足够的纹理空间，受无效像素影响出现“破碎”现象。适当的提高这个参数，可以解决这个问题。&lt;/p&gt;
&lt;p&gt;硬件加权平均：使用计算加权平均，要求显卡支持。对较低的采样精度（如32）而言没有必要使用这个选项，但是对于等较高精度，性能会有较大提升。不过和多线程同时使用并不会使性能得到进一步提升。&lt;/p&gt;
&lt;p&gt;线性插值区间和线性插值阈值：使用线性插值可以减少场景的采样次数，大大提高速度，但是可能丢失一些光照细节。使用较大的区间可以在更大的范围内进行插值，为了尽可能避免细节的丢失需要设置较高的阈值。&lt;/p&gt;
&lt;p&gt;半立方体采样和单平面模拟采样：前者较为精确，但是时间消耗是后者的5倍。后者虽然很快，在3-4个pass就可以收敛，但效果是不正确的，仅用于粗略观察光照情况。&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.speedradiosity.com/chinese/?feed=rss2&amp;p=60</wfw:commentRss><description>一.基本设置 
光照图分辨率：场景光照的计算精度，精度越高效果越好，速度也越慢。
采样精度：光照计算过程中，“捕获”场景光照信息时采用的精度。随着光照图分辨率的提高，这个值也需要跟着提高，否则场景中会有部分细节表现不佳。
迭代次数：光能传递的次数。次数越多场景越接近光能平衡，也越接近真实。一般8-10个pass即可达到较好效果。
多线程模式：针对多核处理器的优化方案。更好的挖掘多核处理器的潜力。一般情况下线程数设置为处理器核心数就可以了。
二.环境设置
基本环境色：没有任何光照时，物体表面的颜色。在迭带次数较低时可以用这个参数适当增加亮度，但是迭代次数足够是请将该值设置为全黑，否则将无法得到很好的结果。
室外环境色和室外环境光强度：室外环境色是室外环境的主要颜色，可以用来表现不同时间的阳光照射效果。室外环境光强度则用来对整体亮度进行调整。
三.高级设置
纹理坐标自动生成：这个功能用来自动为场景模型生成一套纹理坐标，以获得较高的纹理利用率。高利用率就意味着能够以较小的光照图得到更好的效果，以达到节省显存和提高性能的目的。
扩张性填充阈值：自动生成纹理坐标时可能会使得场景中的一些“细碎”面片无法获得足够的纹理空间，受无效像素影响出现“破碎”现象。适当的提高这个参数，可以解决这个问题。
硬件加权平均：使用计算加权平均，要求显卡支持。对较低的采样精度（如32）而言没有必要使用这个选项，但是对于等较高精度，性能会有较大提升。不过和多线程同时使用并不会使性能得到进一步提升。
线性插值区间和线性插值阈值：使用线性插值可以减少场景的采样次数，大大提高速度，但是可能丢失一些光照细节。使用较大的区间可以在更大的范围内进行插值，为了尽可能避免细节的丢失需要设置较高的阈值。
半立方体采样和单平面模拟采样：前者较为精确，但是时间消耗是后者的5倍。后者虽然很快，在3-4个pass就可以收敛，但效果是不正确的，仅用于粗略观察光照情况。</description><category>Speed Radiosity</category><category>光能传递</category><category>光照图</category><pubDate>Mon, 24 Mar 2008 20:18:30 +0800</pubDate><author>admin</author><comments>http://www.speedradiosity.com/chinese/?p=60#comments</comments><guid isPermaLink="false">http://www.speedradiosity.com/chinese/?p=60</guid><dc:creator>admin</dc:creator><fs:srclink>http://www.speedradiosity.com/chinese/?p=60</fs:srclink><fs:srcfeed>http://www.speedradiosity.com/chinese/?feed=rss2</fs:srcfeed><fs:itemid>feedsky/SpeedRadiosity/~6957147/109272582/5065041</fs:itemid></item></channel></rss>