﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-vibilin</title><link>http://www.cppblog.com/vibilin/</link><description /><language>zh-cn</language><lastBuildDate>Wed, 08 Apr 2026 01:41:52 GMT</lastBuildDate><pubDate>Wed, 08 Apr 2026 01:41:52 GMT</pubDate><ttl>60</ttl><item><title>实现Subsurface Scattering效果(Subsurface Scattering shader by InvalidPointer : Half-Lambert + Fresnel Term)</title><link>http://www.cppblog.com/vibilin/archive/2009/12/11/102977.html</link><dc:creator>vibilin</dc:creator><author>vibilin</author><pubDate>Fri, 11 Dec 2009 06:56:00 GMT</pubDate><guid>http://www.cppblog.com/vibilin/archive/2009/12/11/102977.html</guid><description><![CDATA[&nbsp; <br>&nbsp; 经过几天的努力, 找了很多资料, 也看了很多论文, 终于实现了SSS效果. 本来想采用Translucent Shadow Maps, 最后还是使用了另外的方法实现.<br><br>&nbsp; 截图: (按F1 激活/禁用 diffuse color)<br><br>&nbsp; 1.) 没有使用diffuse color的效果:<br><br>&nbsp;&nbsp;<img border=0 alt="" src="http://www.cppblog.com/images/cppblog_com/vibilin/sss_ip1.png" width=653 height=516><br><br>&nbsp; 2.) 使用diffuse color后的效果:<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;<img border=0 alt="" src="http://www.cppblog.com/images/cppblog_com/vibilin/sss_ip2.png" width=652 height=515><br>&nbsp;&nbsp;<br>&nbsp;&nbsp; 注: 如果应用在人物皮肤上, 效果会更好看些 ^_^!<br><br>&nbsp;&nbsp; 程序代码:<font color=#002c99> <a href="http://www.cppblog.com/Files/vibilin/SubsurfaceScattering.rar">/Files/vibilin/SubsurfaceScattering.rar</a></font> 
<img src ="http://www.cppblog.com/vibilin/aggbug/102977.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/vibilin/" target="_blank">vibilin</a> 2009-12-11 14:56 <a href="http://www.cppblog.com/vibilin/archive/2009/12/11/102977.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>实现HDR效果 (HDR Rendering using with ToneMap)</title><link>http://www.cppblog.com/vibilin/archive/2009/12/02/102390.html</link><dc:creator>vibilin</dc:creator><author>vibilin</author><pubDate>Wed, 02 Dec 2009 07:30:00 GMT</pubDate><guid>http://www.cppblog.com/vibilin/archive/2009/12/02/102390.html</guid><description><![CDATA[<p>根据如下公式, 实现了一个HDR(<span class=title>High Dynamic Range</span>)效果.<br><br>Tone Map = (HDR Scene) + (Blur Scene) ;&nbsp;<br><br>Blur Scene = ( (HDR Scene) =&gt; (1/4 Size Frame) =&gt; (Vertical&nbsp;Gaussian Filter) =&gt; (Horizontal Gaussian Filter) ); <br><br>截图:<br>Exposure Level(曝光度) = 0.1<br><br><img border=0 alt="" src="http://www.cppblog.com/images/cppblog_com/vibilin/hdr01.png" width=654 height=516><br><br>Exposure Level(曝光度) = 5<br><br><img border=0 alt="" src="http://www.cppblog.com/images/cppblog_com/vibilin/hdr5.png" width=653 height=516><br><br>程序代码: <a href="http://www.cppblog.com/Files/vibilin/HDRRendering.rar">/Files/vibilin/HDRRendering.rar</a></p>
<img src ="http://www.cppblog.com/vibilin/aggbug/102390.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/vibilin/" target="_blank">vibilin</a> 2009-12-02 15:30 <a href="http://www.cppblog.com/vibilin/archive/2009/12/02/102390.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>实现阴影 Percentage Closer Filtering &amp; Gaussian Blur Base on Shadow Map</title><link>http://www.cppblog.com/vibilin/archive/2009/11/27/102122.html</link><dc:creator>vibilin</dc:creator><author>vibilin</author><pubDate>Fri, 27 Nov 2009 14:32:00 GMT</pubDate><guid>http://www.cppblog.com/vibilin/archive/2009/11/27/102122.html</guid><description><![CDATA[<p>分别采用 (PCF)Percentage Closer Filtering 和 Gaussian Blur 方式实现了阴影效果. (开始由于坐标问题, 困惑了很久, 不过最后还是出效果了)<br><br>注: 按 S 键切换阴影类型, W键显示/关闭线框模式.<br><br>PCF效果:<br><img border=0 alt="" src="http://www.cppblog.com/images/cppblog_com/vibilin/PCFShadow.png" width=659 height=521><br></p>
<br>Gaussian Blur效果:<br><img border=0 alt="" src="http://www.cppblog.com/images/cppblog_com/vibilin/softedgeshadow.png" width=660 height=520><br><br><br>程序代码: <a href="http://www.cppblog.com/Files/vibilin/SoftShadowMap.rar">/Files/vibilin/SoftShadowMap.rar</a><br>
<img src ="http://www.cppblog.com/vibilin/aggbug/102122.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/vibilin/" target="_blank">vibilin</a> 2009-11-27 22:32 <a href="http://www.cppblog.com/vibilin/archive/2009/11/27/102122.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Simple Viewing Frustum Culling(Frustum裁剪)</title><link>http://www.cppblog.com/vibilin/archive/2009/11/24/101846.html</link><dc:creator>vibilin</dc:creator><author>vibilin</author><pubDate>Tue, 24 Nov 2009 12:10:00 GMT</pubDate><guid>http://www.cppblog.com/vibilin/archive/2009/11/24/101846.html</guid><description><![CDATA[<p>采用了World-View-Projection Matrix&nbsp;实现快速裁剪, 比较简单, 不过非常有效.<br><br>裁剪前, 一共有200个Sphere(包括可见的和不可见的):<br><br><img border=0 alt="" src="http://www.cppblog.com/images/cppblog_com/vibilin/FrustumCull200.png" width=653 height=522><br><br>裁剪后:<br><br><img border=0 alt="" src="http://www.cppblog.com/images/cppblog_com/vibilin/FrustumCull33.png" width=653 height=515><br><br>程序代码: <a href="http://www.cppblog.com/Files/vibilin/FrustumCuller.rar">/Files/vibilin/FrustumCuller.rar</a></p>
<img src ="http://www.cppblog.com/vibilin/aggbug/101846.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/vibilin/" target="_blank">vibilin</a> 2009-11-24 20:10 <a href="http://www.cppblog.com/vibilin/archive/2009/11/24/101846.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Fix Pipeline Simulate (固定管道模拟)</title><link>http://www.cppblog.com/vibilin/archive/2009/11/17/101211.html</link><dc:creator>vibilin</dc:creator><author>vibilin</author><pubDate>Tue, 17 Nov 2009 09:23:00 GMT</pubDate><guid>http://www.cppblog.com/vibilin/archive/2009/11/17/101211.html</guid><description><![CDATA[经过近一个月的努力,&nbsp; 终于实现了一些基本的功能, 不过由于时间原因, 剩下的Z-Buffer和D3DFILLMODE渲染模式等功能, 将等以后有时间后再补上. 非常感谢&nbsp;<a href="http://www.cppblog.com/zzxhang/archive/2009/09/30/97607.html"><strong>流失的时光</strong></a>&nbsp; 的代码分享以及<a href="http://hi.baidu.com/chuckhao/blog"><strong>ChunkHao</strong></a> 的经验交流.&nbsp; 写这个模拟程序目的也是为了总结一些以前学过的很基础的知识,&nbsp; 欢迎大家互相学习交流.<br><br><img border=0 alt="" src="http://www.cppblog.com/images/cppblog_com/vibilin/SoftRender.png" width=836 height=675><br><br>程序代码: <a href="http://www.cppblog.com/Files/vibilin/SoftRender.rar">/Files/vibilin/SoftRender.rar</a>
<img src ="http://www.cppblog.com/vibilin/aggbug/101211.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/vibilin/" target="_blank">vibilin</a> 2009-11-17 17:23 <a href="http://www.cppblog.com/vibilin/archive/2009/11/17/101211.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>实现Skeletal Animation</title><link>http://www.cppblog.com/vibilin/archive/2009/11/15/101003.html</link><dc:creator>vibilin</dc:creator><author>vibilin</author><pubDate>Sun, 15 Nov 2009 11:16:00 GMT</pubDate><guid>http://www.cppblog.com/vibilin/archive/2009/11/15/101003.html</guid><description><![CDATA[<p><font color=#000000><span>根据Skinned Mesh的基本原理, 实现骨骼动画. 程序中并没有使用<strong>D3DXLoadSkinMeshFromXof, ID3DXSkinInfo::UpdateSkinnedMesh</strong>等辅助函数, &nbsp;完全是手动编码读取和处理<font face=宋体>蒙皮信息.并将蒙皮信息应用到骨骼和Mesh上.<br><br>程序截图:<br></font></span></font></p>
<img border=0 alt="" src="http://www.cppblog.com/images/cppblog_com/vibilin/SkeletalAnim.png" width=520 height=405><br><br>程序代码: <a href="http://www.cppblog.com/Files/vibilin/SkeletalAnimation.rar">/Files/vibilin/SkeletalAnimation.rar</a> <br><br>相关文章参考:&nbsp;<font color=#000000><span><a href="http://blog.csdn.net/n5/archive/2008/10/20/3105872.aspx"><font color=#000000><span>Skinned Mesh原理解析和一个最简单的实现示例</span></font><br></a></span></font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://download.csdn.net/source/885469">Advanced Animation With DirectX.pdf</a> 
<img src ="http://www.cppblog.com/vibilin/aggbug/101003.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/vibilin/" target="_blank">vibilin</a> 2009-11-15 19:16 <a href="http://www.cppblog.com/vibilin/archive/2009/11/15/101003.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>实现 Spherical Harmonic Lighting</title><link>http://www.cppblog.com/vibilin/archive/2009/10/26/99494.html</link><dc:creator>vibilin</dc:creator><author>vibilin</author><pubDate>Mon, 26 Oct 2009 07:53:00 GMT</pubDate><guid>http://www.cppblog.com/vibilin/archive/2009/10/26/99494.html</guid><description><![CDATA[&nbsp;参考 Spherical Harmonic Lighting, the Gritty Details, by Robin Green. <a href="http://www.research.scea.com/gdc2003/spherical-harmonic-lighting.html"><u><font color=#800080>http://www.research.scea.com/gdc2003/spherical-harmonic-lighting.html&nbsp;</font></u></a>&nbsp;文档,&nbsp; 实现了使用SH渲染由D3DXCreateBox和D3DXCreateTorus建造的模型的阴影效果.<br><br><img border=0 alt="" src="http://www.cppblog.com/images/cppblog_com/vibilin/SH.jpg" width=646 height=507><br><br><br>(注) 在代码中文件 "sphere.mesh"和&nbsp;"torus.mesh"&nbsp; 存储的数据是分别由 D3DXCreateSphere(m_pd3dDevice, 1.0f, 32, 16, pObject-&gt;m_pMesh, NULL),D3DXCreateTorus(m_pd3dDevice,1.0f, 16, 32, pObject-&gt;m_pMesh, NULL)&nbsp;函数生成后导出的. <br><br>程序代码和采样数据: <a href="http://www.cppblog.com/Files/vibilin/SHProject.rar">/Files/vibilin/SHProject.rar</a> <br>
<img src ="http://www.cppblog.com/vibilin/aggbug/99494.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/vibilin/" target="_blank">vibilin</a> 2009-10-26 15:53 <a href="http://www.cppblog.com/vibilin/archive/2009/10/26/99494.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ID3DXMesh的数据导出和导入</title><link>http://www.cppblog.com/vibilin/archive/2009/10/23/99314.html</link><dc:creator>vibilin</dc:creator><author>vibilin</author><pubDate>Fri, 23 Oct 2009 09:13:00 GMT</pubDate><guid>http://www.cppblog.com/vibilin/archive/2009/10/23/99314.html</guid><description><![CDATA[<br>&nbsp;&nbsp; 将由D3DXCREATE* 函数创建的模型数据导出到文件后, 再导入文件的数据重构模型.<br><br>&nbsp;&nbsp;&nbsp;以下分别是程序截图和代码片断:<br><br><br>&nbsp;&nbsp;&nbsp;&nbsp;<img height=477 alt="" src="http://www.cppblog.com/images/cppblog_com/vibilin/d3dmeshsnap.jpg" width=636 border=0><a href="http://www.cppblog.com/Files/vibilin/MeshIO.rar"><br></a><br>&nbsp;&nbsp;&nbsp;<img height=275 alt="" src="http://www.cppblog.com/images/cppblog_com/vibilin/d3dmeshpitch.jpg" width=415 border=0><br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;最后附上可执行程序和CMeshIO的实现代码:&nbsp;<a href="http://www.cppblog.com/Files/vibilin/MeshIO.rar">/Files/vibilin/MeshIO.rar</a><br>&nbsp;&nbsp;&nbsp;&nbsp; 
<img src ="http://www.cppblog.com/vibilin/aggbug/99314.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/vibilin/" target="_blank">vibilin</a> 2009-10-23 17:13 <a href="http://www.cppblog.com/vibilin/archive/2009/10/23/99314.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>编译openBrf</title><link>http://www.cppblog.com/vibilin/archive/2009/09/18/96680.html</link><dc:creator>vibilin</dc:creator><author>vibilin</author><pubDate>Fri, 18 Sep 2009 13:34:00 GMT</pubDate><guid>http://www.cppblog.com/vibilin/archive/2009/09/18/96680.html</guid><description><![CDATA[1. openBrf是BRF文件编辑器. (游戏&lt;骑马与砍杀&gt;的模型导出导入工具.)<br><br>&nbsp;&nbsp;&nbsp; 执行程序和源代码下载地址:<br>&nbsp;&nbsp;&nbsp; <a href="http://www.mbrepository.com/download.php?id=1466&amp;f=openBrf.zip">http://www.mbrepository.com/download.php?id=1466&amp;f=openBrf.zip</a><br>&nbsp;&nbsp;&nbsp; <a href="http://vcg.isti.cnr.it/~tarini/files/mab/openBrf_source.zip">http://vcg.isti.cnr.it/~tarini/files/mab/openBrf_source.zip</a><br><br>2.&nbsp;编译前,还需要额外的工具QT以及VCG<br><br>&nbsp;&nbsp;&nbsp;下载地址:<br>&nbsp;&nbsp;&nbsp; <a href="http://get.qt.nokia.com/qtsdk/qt-sdk-win-opensource-2009.03.1.exe">http://get.qt.nokia.com/qtsdk/qt-sdk-win-opensource-2009.03.1.exe</a><br>&nbsp;&nbsp;&nbsp; (SVN) https://vcg.svn.sourceforge.net/svnroot/vcg/trunk/vcglib<br><br>3.&nbsp;安装qt<br><br>4. 将openBrf源代码的解压文件夹(openBrf_source)拷贝到Qt\2009.03\qt\demos目录下<br><br>5.&nbsp;将VCG目录下的apps, docs, img, vcg, wrap五个文件夹复制到Qt\2009.03qt\demos\openBrf_source下<br><br>6.&nbsp;在Qt\2009.03\qt\demos\openBrf_source目录下新建release和debug目录<br><br>7. 在Qt\2009.03\qt目录下新建vcglib目录, 并将wrap拷贝一份到这里<br><br>8. 使用QT打开openBrf_source目录下的openBrf.pr工程文件<br><br>&nbsp;&nbsp;&nbsp; 
<img src ="http://www.cppblog.com/vibilin/aggbug/96680.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/vibilin/" target="_blank">vibilin</a> 2009-09-18 21:34 <a href="http://www.cppblog.com/vibilin/archive/2009/09/18/96680.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Gamebryo2.5 和 stackless Python的联合调试配置</title><link>http://www.cppblog.com/vibilin/archive/2009/08/29/94714.html</link><dc:creator>vibilin</dc:creator><author>vibilin</author><pubDate>Sat, 29 Aug 2009 01:32:00 GMT</pubDate><guid>http://www.cppblog.com/vibilin/archive/2009/08/29/94714.html</guid><description><![CDATA[1. 安装stackless Python2.5<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;地址:&nbsp; <a href="http://www.stackless.com/binaries/python-2.5.2-stackless.msi">http://www.stackless.com/binaries/python-2.5.2-stackless.msi</a><br><br>&nbsp;&nbsp;&nbsp;&nbsp; 注意: 如果需要在Vista系统安装, 必须使用2.6版本, 不然将会出现ntdll.dll运行错误.<br><br>2. 下载stackless Python2.5依赖包,&nbsp;解压到stackless Python2.5的安装目录下. 将解压后目录下的<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;地址:&nbsp; <a href="http://www.stackless.com/binaries/stackless-252-export.tar.bz2">http://www.stackless.com/binaries/stackless-252-export.tar.bz2</a><br><br>3. 下载msvcr71d.dll, 解压到stackless Python2.5的安装目录下(2.6.2版本忽略此步).<br><br>&nbsp;&nbsp;&nbsp;&nbsp; 地址:&nbsp; <a href="http://www.dll-files.com/dllindex/msvcr71d.zip?0VHdRFZLlX">http://www.dll-files.com/dllindex/msvcr71d.zip?0VHdRFZLlX</a><br><br>4.&nbsp; 将stackless Python2.5的include, lib目录添加到VC++&nbsp;Directories的include files和Library files中(Tools/Options../Projects and Solutions/VC++ Directories)<br><br>&nbsp;&nbsp;&nbsp;&nbsp; 注: 如果你安装的是stackless Python2.6, 则还需要下载VC2008的运行库(Microsoft Visual C++ 2008 Redistributable Package)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;地址: <a href="http://www.microsoft.com/downloads/details.aspx?familyid=9B2DA534-3E03-4391-8A4D-074B9F2BC1BF&amp;displaylang=zh-cn">http://www.microsoft.com/downloads/details.aspx?familyid=9B2DA534-3E03-4391-8A4D-074B9F2BC1BF&amp;displaylang=zh-cn</a><br><br>5.&nbsp; 打开控制台, 输入c:\Python26\Lib\idlelib\idle.py(假设Python安装在C盘下), 如果IDLE (Python GUI)没有启动.并且在控制台中输出以下信息&nbsp;就需要将Python26\tcl文件夹下的<br>&nbsp;&nbsp;&nbsp;&nbsp; tcl8.5和tk8.5复制到Python26\Lib文件夹下.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.tk = _tkinter.create(screenName, baseName, className, interactive, want<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;objects, useTk, sync, use)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _tkinter.TclError: Can't find a usable init.tcl in the following directories:<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 或者<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.tk = _tkinter.create(screenName, baseName, className, interactive, want<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;objects, useTk, sync, use)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_tkinter.TclError: Can't find a usable tk.tcl in the following directories:<br><br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><a href="http://www.cppblog.com/vibilin/archive/2009/08/26/94487.html" target=_blank><br></a><br><br>
<img src ="http://www.cppblog.com/vibilin/aggbug/94714.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/vibilin/" target="_blank">vibilin</a> 2009-08-29 09:32 <a href="http://www.cppblog.com/vibilin/archive/2009/08/29/94714.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>