﻿<?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++博客-永远也不完美的程序-随笔分类-图形编程</title><link>http://www.cppblog.com/liangairan/category/6497.html</link><description>不断学习，不断实践，不断的重构……</description><language>zh-cn</language><lastBuildDate>Tue, 07 Nov 2017 10:52:58 GMT</lastBuildDate><pubDate>Tue, 07 Nov 2017 10:52:58 GMT</pubDate><ttl>60</ttl><item><title>FreeType使用的总结</title><link>http://www.cppblog.com/liangairan/archive/2016/09/11/214270.html</link><dc:creator>狂烂球</dc:creator><author>狂烂球</author><pubDate>Sun, 11 Sep 2016 09:14:00 GMT</pubDate><guid>http://www.cppblog.com/liangairan/archive/2016/09/11/214270.html</guid><wfw:comment>http://www.cppblog.com/liangairan/comments/214270.html</wfw:comment><comments>http://www.cppblog.com/liangairan/archive/2016/09/11/214270.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/liangairan/comments/commentRss/214270.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/liangairan/services/trackbacks/214270.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 这里说一下Freetype的关键点，比较基础的在很多文章已经有说明，这里就不详细说明了。<br>FreeType每个字符的加载，可以影响到后面对字符图像的处理。&nbsp;&nbsp;<a href='http://www.cppblog.com/liangairan/archive/2016/09/11/214270.html'>阅读全文</a><img src ="http://www.cppblog.com/liangairan/aggbug/214270.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/liangairan/" target="_blank">狂烂球</a> 2016-09-11 17:14 <a href="http://www.cppblog.com/liangairan/archive/2016/09/11/214270.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>正确理解shadowmap的实现方式</title><link>http://www.cppblog.com/liangairan/archive/2015/06/10/210873.html</link><dc:creator>狂烂球</dc:creator><author>狂烂球</author><pubDate>Wed, 10 Jun 2015 12:44:00 GMT</pubDate><guid>http://www.cppblog.com/liangairan/archive/2015/06/10/210873.html</guid><wfw:comment>http://www.cppblog.com/liangairan/comments/210873.html</wfw:comment><comments>http://www.cppblog.com/liangairan/archive/2015/06/10/210873.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/liangairan/comments/commentRss/210873.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/liangairan/services/trackbacks/210873.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 首先确定阴影的最基本原理：<br>阴影是以光源作为摄像机（叫作Camera_light），光照方向作为摄像机的look的方向，然后把这个摄像机看到的场景物渲染到纹理，这个纹理就叫shadowmap。&nbsp;&nbsp;<a href='http://www.cppblog.com/liangairan/archive/2015/06/10/210873.html'>阅读全文</a><img src ="http://www.cppblog.com/liangairan/aggbug/210873.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/liangairan/" target="_blank">狂烂球</a> 2015-06-10 20:44 <a href="http://www.cppblog.com/liangairan/archive/2015/06/10/210873.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>gles2开发中遇到的问题及解决方法</title><link>http://www.cppblog.com/liangairan/archive/2014/02/20/205871.html</link><dc:creator>狂烂球</dc:creator><author>狂烂球</author><pubDate>Thu, 20 Feb 2014 11:33:00 GMT</pubDate><guid>http://www.cppblog.com/liangairan/archive/2014/02/20/205871.html</guid><wfw:comment>http://www.cppblog.com/liangairan/comments/205871.html</wfw:comment><comments>http://www.cppblog.com/liangairan/archive/2014/02/20/205871.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/liangairan/comments/commentRss/205871.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/liangairan/services/trackbacks/205871.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1.纹理<br>在gles2中，纹理在glsl中定义的顺序，并不是按先后顺序来排列的。<br>&nbsp;&nbsp;<a href='http://www.cppblog.com/liangairan/archive/2014/02/20/205871.html'>阅读全文</a><img src ="http://www.cppblog.com/liangairan/aggbug/205871.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/liangairan/" target="_blank">狂烂球</a> 2014-02-20 19:33 <a href="http://www.cppblog.com/liangairan/archive/2014/02/20/205871.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>2012－2013年AIREngine开发总结及未来展望</title><link>http://www.cppblog.com/liangairan/archive/2014/02/01/205613.html</link><dc:creator>狂烂球</dc:creator><author>狂烂球</author><pubDate>Sat, 01 Feb 2014 10:29:00 GMT</pubDate><guid>http://www.cppblog.com/liangairan/archive/2014/02/01/205613.html</guid><wfw:comment>http://www.cppblog.com/liangairan/comments/205613.html</wfw:comment><comments>http://www.cppblog.com/liangairan/archive/2014/02/01/205613.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/liangairan/comments/commentRss/205613.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/liangairan/services/trackbacks/205613.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 2012－2013年AIREngine开发总结及未来展望&nbsp;&nbsp;<a href='http://www.cppblog.com/liangairan/archive/2014/02/01/205613.html'>阅读全文</a><img src ="http://www.cppblog.com/liangairan/aggbug/205613.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/liangairan/" target="_blank">狂烂球</a> 2014-02-01 18:29 <a href="http://www.cppblog.com/liangairan/archive/2014/02/01/205613.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>游戏中各种特效的实现方法。</title><link>http://www.cppblog.com/liangairan/archive/2013/08/17/198750.html</link><dc:creator>狂烂球</dc:creator><author>狂烂球</author><pubDate>Sat, 17 Aug 2013 05:22:00 GMT</pubDate><guid>http://www.cppblog.com/liangairan/archive/2013/08/17/198750.html</guid><wfw:comment>http://www.cppblog.com/liangairan/comments/198750.html</wfw:comment><comments>http://www.cppblog.com/liangairan/archive/2013/08/17/198750.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/liangairan/comments/commentRss/198750.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/liangairan/services/trackbacks/198750.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 这里说的是一些常规的人没考虑到的效果。<br><br>1、精确拾取的实现<br>一般普通的拾取就是AABB，再是OBB，或者是遍历一个模型的面。这三种方式都有缺陷。&nbsp;&nbsp;<a href='http://www.cppblog.com/liangairan/archive/2013/08/17/198750.html'>阅读全文</a><img src ="http://www.cppblog.com/liangairan/aggbug/198750.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/liangairan/" target="_blank">狂烂球</a> 2013-08-17 13:22 <a href="http://www.cppblog.com/liangairan/archive/2013/08/17/198750.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>游戏中各种性能优化方法（不断更新）</title><link>http://www.cppblog.com/liangairan/archive/2013/03/23/198749.html</link><dc:creator>狂烂球</dc:creator><author>狂烂球</author><pubDate>Sat, 23 Mar 2013 08:29:00 GMT</pubDate><guid>http://www.cppblog.com/liangairan/archive/2013/03/23/198749.html</guid><wfw:comment>http://www.cppblog.com/liangairan/comments/198749.html</wfw:comment><comments>http://www.cppblog.com/liangairan/archive/2013/03/23/198749.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/liangairan/comments/commentRss/198749.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/liangairan/services/trackbacks/198749.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 谈到游戏中的性能优化，说白了就是如何提高帧率和降低内存。<br>提高帧率的基本原则就是减少DP次数，还有是找出时间消耗高的程序代码加以修改。&nbsp;&nbsp;<a href='http://www.cppblog.com/liangairan/archive/2013/03/23/198749.html'>阅读全文</a><img src ="http://www.cppblog.com/liangairan/aggbug/198749.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/liangairan/" target="_blank">狂烂球</a> 2013-03-23 16:29 <a href="http://www.cppblog.com/liangairan/archive/2013/03/23/198749.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>为适应dx11，airengine所作出的修改。</title><link>http://www.cppblog.com/liangairan/archive/2012/10/03/192690.html</link><dc:creator>狂烂球</dc:creator><author>狂烂球</author><pubDate>Wed, 03 Oct 2012 00:19:00 GMT</pubDate><guid>http://www.cppblog.com/liangairan/archive/2012/10/03/192690.html</guid><wfw:comment>http://www.cppblog.com/liangairan/comments/192690.html</wfw:comment><comments>http://www.cppblog.com/liangairan/archive/2012/10/03/192690.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/liangairan/comments/commentRss/192690.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/liangairan/services/trackbacks/192690.html</trackback:ping><description><![CDATA[<div>1、渲染状态归类封装</div>
<div>DX9下的渲染状态比较乱，不像DX11那样把渲染状态归为几类。按DX11的归类，同样也适应DX9的API。</div>
<div></div>
<div>2、VertexDeclaration从VertexBuffer里改成封装在VertexShader里。</div>
<div>这里要说明一下，VertexDeclaration封装在VertexBuffer里本来就是不太合理的，因为VertexBuffer就是一个Buffer，实际上和顶点格式关系不太大。而且，dx11中的inputlayout的创建还依赖于shader的创建代码，因此，必须要把vertexdeclaration移到vertexshader里。而这种做法会引起DX9的一个问题，下面会说明到。</div>
<div></div>
<div>3、引擎所有渲染都用上shader，全面抛弃固定管线。</div>
<div>正如上面说到，如果vertexdecalaration的创建要依赖于shader，那么固定管线下就不能再自己创建vc（vertexdeclaration）了，而考虑到引擎要支持双渲染器，所以有些操作要统一，就不保留固定管线了。</div>
<div></div>
<div>4、GPU参数设置的调整</div>
<div>之前GPU的参数更新封装在一个类GPUParameter里，主要是负责GPU参数的值的设置，但随着DX11的加入，这里问题就出来了。DX9下面，没有constantbuffer的概念，只有一个一个参数设置到寄存器，而原来引擎的设计就是针对DX9的这套机制来实现的。所以，现在引擎作出调整，在dx9渲染系统下建一个类D3D9GPUParameters继承自GPUParameter，DX9下如何设置参数在这个类下实现。<br />5、RenderTarget的接口改变<br />DX11下是把所有RenderTarget放到一个数组中然后设置进去的，而DX9是一个一个设置进去，所以当要实现multirendertarget的时候，如果引擎要适应两种渲染器，那只能用DX11的设置方法了。</div><img src ="http://www.cppblog.com/liangairan/aggbug/192690.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/liangairan/" target="_blank">狂烂球</a> 2012-10-03 08:19 <a href="http://www.cppblog.com/liangairan/archive/2012/10/03/192690.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于VertexDeclaration的设计改进。</title><link>http://www.cppblog.com/liangairan/archive/2012/07/18/184133.html</link><dc:creator>狂烂球</dc:creator><author>狂烂球</author><pubDate>Wed, 18 Jul 2012 14:40:00 GMT</pubDate><guid>http://www.cppblog.com/liangairan/archive/2012/07/18/184133.html</guid><wfw:comment>http://www.cppblog.com/liangairan/comments/184133.html</wfw:comment><comments>http://www.cppblog.com/liangairan/archive/2012/07/18/184133.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/liangairan/comments/commentRss/184133.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/liangairan/services/trackbacks/184133.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: vertexdeclaration在引擎中，原来是直接放在vertexbuffer里面，当设置这个vertexbuffer的时候再设这个declaration，在DX9中看似没问题，因为每个vertexbuffer都有自己的顶点格式。&nbsp;&nbsp;<a href='http://www.cppblog.com/liangairan/archive/2012/07/18/184133.html'>阅读全文</a><img src ="http://www.cppblog.com/liangairan/aggbug/184133.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/liangairan/" target="_blank">狂烂球</a> 2012-07-18 22:40 <a href="http://www.cppblog.com/liangairan/archive/2012/07/18/184133.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>引擎关于插件模式开发的思考</title><link>http://www.cppblog.com/liangairan/archive/2012/05/06/173810.html</link><dc:creator>狂烂球</dc:creator><author>狂烂球</author><pubDate>Sun, 06 May 2012 03:17:00 GMT</pubDate><guid>http://www.cppblog.com/liangairan/archive/2012/05/06/173810.html</guid><wfw:comment>http://www.cppblog.com/liangairan/comments/173810.html</wfw:comment><comments>http://www.cppblog.com/liangairan/archive/2012/05/06/173810.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/liangairan/comments/commentRss/173810.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/liangairan/services/trackbacks/173810.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: AIREngine已经支持插件式的开发，即不需要开发人员在工程上连接某个DLL和lib，直接通过LoadLibrary的形式加载。&nbsp;&nbsp;<a href='http://www.cppblog.com/liangairan/archive/2012/05/06/173810.html'>阅读全文</a><img src ="http://www.cppblog.com/liangairan/aggbug/173810.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/liangairan/" target="_blank">狂烂球</a> 2012-05-06 11:17 <a href="http://www.cppblog.com/liangairan/archive/2012/05/06/173810.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>物体接触阴影(shadowmap)要注意的问题。</title><link>http://www.cppblog.com/liangairan/archive/2012/04/22/172376.html</link><dc:creator>狂烂球</dc:creator><author>狂烂球</author><pubDate>Sun, 22 Apr 2012 13:59:00 GMT</pubDate><guid>http://www.cppblog.com/liangairan/archive/2012/04/22/172376.html</guid><wfw:comment>http://www.cppblog.com/liangairan/comments/172376.html</wfw:comment><comments>http://www.cppblog.com/liangairan/archive/2012/04/22/172376.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/liangairan/comments/commentRss/172376.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/liangairan/services/trackbacks/172376.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 之前写的人物模型接收阴影突然出了问题，完全接收不到阴影，后来发现是自己写的一个矩阵引起阴影上的LightWorldViewProjmatrix出了问题。&nbsp;&nbsp;<a href='http://www.cppblog.com/liangairan/archive/2012/04/22/172376.html'>阅读全文</a><img src ="http://www.cppblog.com/liangairan/aggbug/172376.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/liangairan/" target="_blank">狂烂球</a> 2012-04-22 21:59 <a href="http://www.cppblog.com/liangairan/archive/2012/04/22/172376.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>多渲染器下的渲染状态的封装</title><link>http://www.cppblog.com/liangairan/archive/2012/04/19/171964.html</link><dc:creator>狂烂球</dc:creator><author>狂烂球</author><pubDate>Thu, 19 Apr 2012 04:25:00 GMT</pubDate><guid>http://www.cppblog.com/liangairan/archive/2012/04/19/171964.html</guid><wfw:comment>http://www.cppblog.com/liangairan/comments/171964.html</wfw:comment><comments>http://www.cppblog.com/liangairan/archive/2012/04/19/171964.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/liangairan/comments/commentRss/171964.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/liangairan/services/trackbacks/171964.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: DX9和DX11的API相差非常大，如果一个引擎要支持两种渲染器，在设计上还是要花点功夫。&nbsp;&nbsp;<a href='http://www.cppblog.com/liangairan/archive/2012/04/19/171964.html'>阅读全文</a><img src ="http://www.cppblog.com/liangairan/aggbug/171964.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/liangairan/" target="_blank">狂烂球</a> 2012-04-19 12:25 <a href="http://www.cppblog.com/liangairan/archive/2012/04/19/171964.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>AIR引擎开发总结（一）</title><link>http://www.cppblog.com/liangairan/archive/2011/11/26/161006.html</link><dc:creator>狂烂球</dc:creator><author>狂烂球</author><pubDate>Sat, 26 Nov 2011 13:01:00 GMT</pubDate><guid>http://www.cppblog.com/liangairan/archive/2011/11/26/161006.html</guid><wfw:comment>http://www.cppblog.com/liangairan/comments/161006.html</wfw:comment><comments>http://www.cppblog.com/liangairan/archive/2011/11/26/161006.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/liangairan/comments/commentRss/161006.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/liangairan/services/trackbacks/161006.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1、地形网格。<br>    AIR引擎的地形设计，是基于四叉树的管理，既然用了四叉树，就有相对应的地块数据，在AIR引擎里面是TerrainBlock。&nbsp;&nbsp;<a href='http://www.cppblog.com/liangairan/archive/2011/11/26/161006.html'>阅读全文</a><img src ="http://www.cppblog.com/liangairan/aggbug/161006.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/liangairan/" target="_blank">狂烂球</a> 2011-11-26 21:01 <a href="http://www.cppblog.com/liangairan/archive/2011/11/26/161006.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>骨骼动画平滑过渡的实现</title><link>http://www.cppblog.com/liangairan/archive/2011/05/13/146300.html</link><dc:creator>狂烂球</dc:creator><author>狂烂球</author><pubDate>Fri, 13 May 2011 02:41:00 GMT</pubDate><guid>http://www.cppblog.com/liangairan/archive/2011/05/13/146300.html</guid><wfw:comment>http://www.cppblog.com/liangairan/comments/146300.html</wfw:comment><comments>http://www.cppblog.com/liangairan/archive/2011/05/13/146300.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/liangairan/comments/commentRss/146300.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/liangairan/services/trackbacks/146300.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 很久没写技术文章，今天写一下骨骼动画的过渡，也当是复习一下。骨骼动画的过渡在游戏中很常见，由一个动作切换到另一个动作有个过渡时间，这个过程其实是动作混合的过程。&nbsp;&nbsp;<a href='http://www.cppblog.com/liangairan/archive/2011/05/13/146300.html'>阅读全文</a><img src ="http://www.cppblog.com/liangairan/aggbug/146300.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/liangairan/" target="_blank">狂烂球</a> 2011-05-13 10:41 <a href="http://www.cppblog.com/liangairan/archive/2011/05/13/146300.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>总结一下shadowmap的实现</title><link>http://www.cppblog.com/liangairan/archive/2010/07/23/shadowmap.html</link><dc:creator>狂烂球</dc:creator><author>狂烂球</author><pubDate>Fri, 23 Jul 2010 08:01:00 GMT</pubDate><guid>http://www.cppblog.com/liangairan/archive/2010/07/23/shadowmap.html</guid><wfw:comment>http://www.cppblog.com/liangairan/comments/121117.html</wfw:comment><comments>http://www.cppblog.com/liangairan/archive/2010/07/23/shadowmap.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cppblog.com/liangairan/comments/commentRss/121117.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/liangairan/services/trackbacks/121117.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 花了大概几周的时间实现了软阴影。总的来说难度还是比较大的，而且我也走了些弯路，不过也值得，单是写shader不是很难，但要放到引擎中还是有点难度。shadowmap的原理我就不讲了，网上有很多。&nbsp;&nbsp;<a href='http://www.cppblog.com/liangairan/archive/2010/07/23/shadowmap.html'>阅读全文</a><img src ="http://www.cppblog.com/liangairan/aggbug/121117.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/liangairan/" target="_blank">狂烂球</a> 2010-07-23 16:01 <a href="http://www.cppblog.com/liangairan/archive/2010/07/23/shadowmap.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>渲染流程要放到渲染物外面的地方</title><link>http://www.cppblog.com/liangairan/archive/2010/06/22/118294.html</link><dc:creator>狂烂球</dc:creator><author>狂烂球</author><pubDate>Tue, 22 Jun 2010 09:07:00 GMT</pubDate><guid>http://www.cppblog.com/liangairan/archive/2010/06/22/118294.html</guid><wfw:comment>http://www.cppblog.com/liangairan/comments/118294.html</wfw:comment><comments>http://www.cppblog.com/liangairan/archive/2010/06/22/118294.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/liangairan/comments/commentRss/118294.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/liangairan/services/trackbacks/118294.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 渲染流程讨论。&nbsp;&nbsp;<a href='http://www.cppblog.com/liangairan/archive/2010/06/22/118294.html'>阅读全文</a><img src ="http://www.cppblog.com/liangairan/aggbug/118294.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/liangairan/" target="_blank">狂烂球</a> 2010-06-22 17:07 <a href="http://www.cppblog.com/liangairan/archive/2010/06/22/118294.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>shader与雾处理</title><link>http://www.cppblog.com/liangairan/archive/2010/06/18/118202.html</link><dc:creator>狂烂球</dc:creator><author>狂烂球</author><pubDate>Fri, 18 Jun 2010 15:07:00 GMT</pubDate><guid>http://www.cppblog.com/liangairan/archive/2010/06/18/118202.html</guid><wfw:comment>http://www.cppblog.com/liangairan/comments/118202.html</wfw:comment><comments>http://www.cppblog.com/liangairan/archive/2010/06/18/118202.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/liangairan/comments/commentRss/118202.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/liangairan/services/trackbacks/118202.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 最近发现一个很特别的问题，可能是我水平未够，找不到原因。&nbsp;&nbsp;<a href='http://www.cppblog.com/liangairan/archive/2010/06/18/118202.html'>阅读全文</a><img src ="http://www.cppblog.com/liangairan/aggbug/118202.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/liangairan/" target="_blank">狂烂球</a> 2010-06-18 23:07 <a href="http://www.cppblog.com/liangairan/archive/2010/06/18/118202.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>D3D中clipplane使用的注意。</title><link>http://www.cppblog.com/liangairan/archive/2010/06/09/117470.html</link><dc:creator>狂烂球</dc:creator><author>狂烂球</author><pubDate>Wed, 09 Jun 2010 06:24:00 GMT</pubDate><guid>http://www.cppblog.com/liangairan/archive/2010/06/09/117470.html</guid><wfw:comment>http://www.cppblog.com/liangairan/comments/117470.html</wfw:comment><comments>http://www.cppblog.com/liangairan/archive/2010/06/09/117470.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cppblog.com/liangairan/comments/commentRss/117470.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/liangairan/services/trackbacks/117470.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 最近使用clipplane的时候，当渲染物在固定管线的时候，一切正常，但当渲染物用了vertexshader的时候，完全看不到了，找了很久也不知道问题的所在。&nbsp;&nbsp;<a href='http://www.cppblog.com/liangairan/archive/2010/06/09/117470.html'>阅读全文</a><img src ="http://www.cppblog.com/liangairan/aggbug/117470.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/liangairan/" target="_blank">狂烂球</a> 2010-06-09 14:24 <a href="http://www.cppblog.com/liangairan/archive/2010/06/09/117470.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>D3D9中SetXXXShaderConstantF用法要注意的地方。</title><link>http://www.cppblog.com/liangairan/archive/2010/03/23/110385.html</link><dc:creator>狂烂球</dc:creator><author>狂烂球</author><pubDate>Tue, 23 Mar 2010 14:22:00 GMT</pubDate><guid>http://www.cppblog.com/liangairan/archive/2010/03/23/110385.html</guid><wfw:comment>http://www.cppblog.com/liangairan/comments/110385.html</wfw:comment><comments>http://www.cppblog.com/liangairan/archive/2010/03/23/110385.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/liangairan/comments/commentRss/110385.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/liangairan/services/trackbacks/110385.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 最近把shader那部分从设置Constanttable转为SetXXXShaderContant，之前的用法有些问题，所以没显示正确，下面总结一下。<br>1、设置的寄存器变量必须每128位对齐，即使是一个float，也要设置成float[4]。<br>2、设置矩阵必须由行矩阵转为列矩阵，否则数据不正确。
<img src ="http://www.cppblog.com/liangairan/aggbug/110385.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/liangairan/" target="_blank">狂烂球</a> 2010-03-23 22:22 <a href="http://www.cppblog.com/liangairan/archive/2010/03/23/110385.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于材质与渲染状态的一些心得</title><link>http://www.cppblog.com/liangairan/archive/2009/06/16/87747.html</link><dc:creator>狂烂球</dc:creator><author>狂烂球</author><pubDate>Tue, 16 Jun 2009 08:46:00 GMT</pubDate><guid>http://www.cppblog.com/liangairan/archive/2009/06/16/87747.html</guid><wfw:comment>http://www.cppblog.com/liangairan/comments/87747.html</wfw:comment><comments>http://www.cppblog.com/liangairan/archive/2009/06/16/87747.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/liangairan/comments/commentRss/87747.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/liangairan/services/trackbacks/87747.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 写代码这么久，材质、渲染状态和shader的问题一直给我有很大的困拢，今天为了整理一下思路，决定写一下设计文档和序列图。经过这样一写，和对之前渲染状态管理的一些文章的理解，思路终于清楚了一点。&nbsp;&nbsp;<a href='http://www.cppblog.com/liangairan/archive/2009/06/16/87747.html'>阅读全文</a><img src ="http://www.cppblog.com/liangairan/aggbug/87747.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/liangairan/" target="_blank">狂烂球</a> 2009-06-16 16:46 <a href="http://www.cppblog.com/liangairan/archive/2009/06/16/87747.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>浅谈水体的实现</title><link>http://www.cppblog.com/liangairan/archive/2009/06/03/86588.html</link><dc:creator>狂烂球</dc:creator><author>狂烂球</author><pubDate>Wed, 03 Jun 2009 12:45:00 GMT</pubDate><guid>http://www.cppblog.com/liangairan/archive/2009/06/03/86588.html</guid><wfw:comment>http://www.cppblog.com/liangairan/comments/86588.html</wfw:comment><comments>http://www.cppblog.com/liangairan/archive/2009/06/03/86588.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cppblog.com/liangairan/comments/commentRss/86588.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/liangairan/services/trackbacks/86588.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 温故知新，水面很早就实现了，但没有在这里写过，今天总结一下。<br>    水的模拟要达到以下效果：水面的折射与反射，水的波动。<br>    要达到这种效果，需要以下四张纹理：折射纹理（RenderTarget），反射纹理（RenderTarget），Bumpmap，水自己的纹理。<br>    折射与反射的原理就不具体说了，下面只说实现步骤。&nbsp;&nbsp;<a href='http://www.cppblog.com/liangairan/archive/2009/06/03/86588.html'>阅读全文</a><img src ="http://www.cppblog.com/liangairan/aggbug/86588.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/liangairan/" target="_blank">狂烂球</a> 2009-06-03 20:45 <a href="http://www.cppblog.com/liangairan/archive/2009/06/03/86588.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Material与shader在设计上的难题！</title><link>http://www.cppblog.com/liangairan/archive/2009/05/15/83029.html</link><dc:creator>狂烂球</dc:creator><author>狂烂球</author><pubDate>Fri, 15 May 2009 02:30:00 GMT</pubDate><guid>http://www.cppblog.com/liangairan/archive/2009/05/15/83029.html</guid><wfw:comment>http://www.cppblog.com/liangairan/comments/83029.html</wfw:comment><comments>http://www.cppblog.com/liangairan/archive/2009/05/15/83029.html#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://www.cppblog.com/liangairan/comments/commentRss/83029.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/liangairan/services/trackbacks/83029.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要:     为了设计上的灵活，我把shader、纹理等都封装到材质（Material）里，以方便渲染对象在不同状态下材质的切换以达到不同的渲染效果。<br>&nbsp;&nbsp;<a href='http://www.cppblog.com/liangairan/archive/2009/05/15/83029.html'>阅读全文</a><img src ="http://www.cppblog.com/liangairan/aggbug/83029.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/liangairan/" target="_blank">狂烂球</a> 2009-05-15 10:30 <a href="http://www.cppblog.com/liangairan/archive/2009/05/15/83029.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>复习一下D3D渲染流程</title><link>http://www.cppblog.com/liangairan/archive/2009/05/11/82631.html</link><dc:creator>狂烂球</dc:creator><author>狂烂球</author><pubDate>Mon, 11 May 2009 14:21:00 GMT</pubDate><guid>http://www.cppblog.com/liangairan/archive/2009/05/11/82631.html</guid><wfw:comment>http://www.cppblog.com/liangairan/comments/82631.html</wfw:comment><comments>http://www.cppblog.com/liangairan/archive/2009/05/11/82631.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/liangairan/comments/commentRss/82631.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/liangairan/services/trackbacks/82631.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 摘自http://www.cnblogs.com/ixnehc/articles/1282350.html<br><br>我归纳一下就是：准备顶点和图元数据----》传到D3D渲染管线----》处理顶点数据（固定、shader）----》几何处理（裁剪、背面剔除、光栅化）----》像素处理（纹理采样）----》着色&nbsp;&nbsp;<a href='http://www.cppblog.com/liangairan/archive/2009/05/11/82631.html'>阅读全文</a><img src ="http://www.cppblog.com/liangairan/aggbug/82631.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/liangairan/" target="_blank">狂烂球</a> 2009-05-11 22:21 <a href="http://www.cppblog.com/liangairan/archive/2009/05/11/82631.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>3ds max appwizard的安装使用（转baidu并修正）</title><link>http://www.cppblog.com/liangairan/archive/2009/01/12/71808.html</link><dc:creator>狂烂球</dc:creator><author>狂烂球</author><pubDate>Mon, 12 Jan 2009 06:36:00 GMT</pubDate><guid>http://www.cppblog.com/liangairan/archive/2009/01/12/71808.html</guid><wfw:comment>http://www.cppblog.com/liangairan/comments/71808.html</wfw:comment><comments>http://www.cppblog.com/liangairan/archive/2009/01/12/71808.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/liangairan/comments/commentRss/71808.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/liangairan/services/trackbacks/71808.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 创建一个空的工程 <br><br>我们首先在3DS Max创建面板里面建立一个简单的几何物体，称之为”widget” 。可以通过视图窗口里三个参数去修改它的几何特性。Size表示轮廓尺寸，第二个参数left表示物体左翼的外延，第三个参数right表示右翼的外延。 <br>首先我们去了解一下怎样建立一个工程，可以通过以下两种方法：&nbsp;&nbsp;<a href='http://www.cppblog.com/liangairan/archive/2009/01/12/71808.html'>阅读全文</a><img src ="http://www.cppblog.com/liangairan/aggbug/71808.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/liangairan/" target="_blank">狂烂球</a> 2009-01-12 14:36 <a href="http://www.cppblog.com/liangairan/archive/2009/01/12/71808.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>最新-基于四叉树的LOD地形设计</title><link>http://www.cppblog.com/liangairan/archive/2009/01/10/71058.html</link><dc:creator>狂烂球</dc:creator><author>狂烂球</author><pubDate>Sat, 10 Jan 2009 08:19:00 GMT</pubDate><guid>http://www.cppblog.com/liangairan/archive/2009/01/10/71058.html</guid><wfw:comment>http://www.cppblog.com/liangairan/comments/71058.html</wfw:comment><comments>http://www.cppblog.com/liangairan/archive/2009/01/10/71058.html#Feedback</comments><slash:comments>73</slash:comments><wfw:commentRss>http://www.cppblog.com/liangairan/comments/commentRss/71058.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/liangairan/services/trackbacks/71058.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 上次说过要在这里把最新的地形设计写出来，不过一直没时间写，也想画些UML图，但没工具画，呵呵，只能通过手写了。希望大家看得明白吧。<br>&nbsp;&nbsp;<a href='http://www.cppblog.com/liangairan/archive/2009/01/10/71058.html'>阅读全文</a><img src ="http://www.cppblog.com/liangairan/aggbug/71058.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/liangairan/" target="_blank">狂烂球</a> 2009-01-10 16:19 <a href="http://www.cppblog.com/liangairan/archive/2009/01/10/71058.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>学习总结与下一阶段计划</title><link>http://www.cppblog.com/liangairan/archive/2008/12/13/LOD.html</link><dc:creator>狂烂球</dc:creator><author>狂烂球</author><pubDate>Sat, 13 Dec 2008 12:33:00 GMT</pubDate><guid>http://www.cppblog.com/liangairan/archive/2008/12/13/LOD.html</guid><wfw:comment>http://www.cppblog.com/liangairan/comments/69367.html</wfw:comment><comments>http://www.cppblog.com/liangairan/archive/2008/12/13/LOD.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/liangairan/comments/commentRss/69367.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/liangairan/services/trackbacks/69367.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要:  首先总结一下上一阶段的成果。<br>1、 LOD大规模地形已经进行了优化与重构，实现了1024x1024大规模地形，并实现了地形的光照模型，DEBUG版本平均帧数已经达到40，稍后会写上最新的LOD地形设计思想。&nbsp;&nbsp;<a href='http://www.cppblog.com/liangairan/archive/2008/12/13/LOD.html'>阅读全文</a><img src ="http://www.cppblog.com/liangairan/aggbug/69367.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/liangairan/" target="_blank">狂烂球</a> 2008-12-13 20:33 <a href="http://www.cppblog.com/liangairan/archive/2008/12/13/LOD.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Skybox边线消除的解决办法</title><link>http://www.cppblog.com/liangairan/archive/2008/08/25/59877.html</link><dc:creator>狂烂球</dc:creator><author>狂烂球</author><pubDate>Mon, 25 Aug 2008 02:44:00 GMT</pubDate><guid>http://www.cppblog.com/liangairan/archive/2008/08/25/59877.html</guid><wfw:comment>http://www.cppblog.com/liangairan/comments/59877.html</wfw:comment><comments>http://www.cppblog.com/liangairan/archive/2008/08/25/59877.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/liangairan/comments/commentRss/59877.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/liangairan/services/trackbacks/59877.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Skybox搞好后，发现在边线有很明显的裂缝，一开始时不知道如何解决，后来问了人，有人说把纹理采样改成Point，有人说纹理坐标改成0.001到0.999，这两样我都试过，发现改成Point裂缝是消除了，但看起来很不好看，改成0.001到0.999也有裂缝。&nbsp;&nbsp;<a href='http://www.cppblog.com/liangairan/archive/2008/08/25/59877.html'>阅读全文</a><img src ="http://www.cppblog.com/liangairan/aggbug/59877.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/liangairan/" target="_blank">狂烂球</a> 2008-08-25 10:44 <a href="http://www.cppblog.com/liangairan/archive/2008/08/25/59877.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>LOD地形设计与实现</title><link>http://www.cppblog.com/liangairan/archive/2008/08/18/59243.html</link><dc:creator>狂烂球</dc:creator><author>狂烂球</author><pubDate>Mon, 18 Aug 2008 09:08:00 GMT</pubDate><guid>http://www.cppblog.com/liangairan/archive/2008/08/18/59243.html</guid><wfw:comment>http://www.cppblog.com/liangairan/comments/59243.html</wfw:comment><comments>http://www.cppblog.com/liangairan/archive/2008/08/18/59243.html#Feedback</comments><slash:comments>11</slash:comments><wfw:commentRss>http://www.cppblog.com/liangairan/comments/commentRss/59243.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/liangairan/services/trackbacks/59243.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 地形从一开始研究，到实现，分了好多个版本，重构了好多次……主要问题在于对LOD数据结构的不熟悉和对索引用法的不熟悉。经过一系列的研究与学习，总结了如下实现LOD的方法&nbsp;&nbsp;<a href='http://www.cppblog.com/liangairan/archive/2008/08/18/59243.html'>阅读全文</a><img src ="http://www.cppblog.com/liangairan/aggbug/59243.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/liangairan/" target="_blank">狂烂球</a> 2008-08-18 17:08 <a href="http://www.cppblog.com/liangairan/archive/2008/08/18/59243.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用DirectX写的Skybox</title><link>http://www.cppblog.com/liangairan/archive/2008/03/24/45228.html</link><dc:creator>狂烂球</dc:creator><author>狂烂球</author><pubDate>Mon, 24 Mar 2008 01:27:00 GMT</pubDate><guid>http://www.cppblog.com/liangairan/archive/2008/03/24/45228.html</guid><wfw:comment>http://www.cppblog.com/liangairan/comments/45228.html</wfw:comment><comments>http://www.cppblog.com/liangairan/archive/2008/03/24/45228.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/liangairan/comments/commentRss/45228.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/liangairan/services/trackbacks/45228.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 用DX实现Skybox的原理与步骤。&nbsp;&nbsp;<a href='http://www.cppblog.com/liangairan/archive/2008/03/24/45228.html'>阅读全文</a><img src ="http://www.cppblog.com/liangairan/aggbug/45228.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/liangairan/" target="_blank">狂烂球</a> 2008-03-24 09:27 <a href="http://www.cppblog.com/liangairan/archive/2008/03/24/45228.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>