﻿<?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/shadow/</link><description>&lt;script src='http://s26.cnzz.com/stat.php?id=149868&amp;web_id=149868&amp;show=pic' language='JavaScript' charset='gb2312'&gt;&lt;/script&gt;
&lt;script src="http://www.xcinfo.ha.cn/jsq/default.asp?User=softshadow&amp;Length=6&amp;x=15&amp;y=20&amp;Mode=002"&gt;&lt;/script&gt;
&lt;script src="http://raptor.512j.com/count/c/qqcf.asp?user_name=shadow"&gt;&lt;/script&gt;
</description><language>zh-cn</language><lastBuildDate>Wed, 22 Apr 2026 13:42:31 GMT</lastBuildDate><pubDate>Wed, 22 Apr 2026 13:42:31 GMT</pubDate><ttl>60</ttl><item><title>BHRE Release 1.0</title><link>http://www.cppblog.com/shadow/archive/2006/08/02/10783.html</link><dc:creator>苦行僧</dc:creator><author>苦行僧</author><pubDate>Wed, 02 Aug 2006 13:05:00 GMT</pubDate><guid>http://www.cppblog.com/shadow/archive/2006/08/02/10783.html</guid><wfw:comment>http://www.cppblog.com/shadow/comments/10783.html</wfw:comment><comments>http://www.cppblog.com/shadow/archive/2006/08/02/10783.html#Feedback</comments><slash:comments>17</slash:comments><wfw:commentRss>http://www.cppblog.com/shadow/comments/commentRss/10783.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shadow/services/trackbacks/10783.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: BHRE是由北京航空航天大学计算机学院虚拟现实与可视化研究所自主研发的新一代图形绘制引擎。 <br><br>BHRE使用OpenGL作为底层图形API，采用CG作为Shader开发语言，在场景组织和状态管理的基本数据结构基础上，研发了包括一系列面向三维游戏、仿真模拟、漫游展示等实时三维图形应用的功能。<br><br>    * Features<br>          o 基本3DS模型载入<br>          o 视点运动<br>          o 对象运动<br>          o 裁减算法<br>          o 天空盒<br>          o 大规模地形 <br>          o 三维声音<br>          o 碰撞检测<br>          o 雾效果 <br>          o 多光源效果<br>          o 基于GPU的水波特效<br>          o Video纹理<br>          o LOD &nbsp;&nbsp;<a href='http://www.cppblog.com/shadow/archive/2006/08/02/10783.html'>阅读全文</a><img src ="http://www.cppblog.com/shadow/aggbug/10783.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shadow/" target="_blank">苦行僧</a> 2006-08-02 21:05 <a href="http://www.cppblog.com/shadow/archive/2006/08/02/10783.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>基于shadow map的软阴影生成过程祥解</title><link>http://www.cppblog.com/shadow/archive/2006/06/02/8083.html</link><dc:creator>苦行僧</dc:creator><author>苦行僧</author><pubDate>Fri, 02 Jun 2006 06:02:00 GMT</pubDate><guid>http://www.cppblog.com/shadow/archive/2006/06/02/8083.html</guid><wfw:comment>http://www.cppblog.com/shadow/comments/8083.html</wfw:comment><comments>http://www.cppblog.com/shadow/archive/2006/06/02/8083.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/shadow/comments/commentRss/8083.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shadow/services/trackbacks/8083.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.cppblog.com/shadow/archive/2006/06/02/8083.html'>阅读全文</a><img src ="http://www.cppblog.com/shadow/aggbug/8083.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shadow/" target="_blank">苦行僧</a> 2006-06-02 14:02 <a href="http://www.cppblog.com/shadow/archive/2006/06/02/8083.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>代码提交风暴</title><link>http://www.cppblog.com/shadow/archive/2006/05/29/7817.html</link><dc:creator>苦行僧</dc:creator><author>苦行僧</author><pubDate>Mon, 29 May 2006 07:25:00 GMT</pubDate><guid>http://www.cppblog.com/shadow/archive/2006/05/29/7817.html</guid><wfw:comment>http://www.cppblog.com/shadow/comments/7817.html</wfw:comment><comments>http://www.cppblog.com/shadow/archive/2006/05/29/7817.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/shadow/comments/commentRss/7817.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shadow/services/trackbacks/7817.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.cppblog.com/shadow/archive/2006/05/29/7817.html'>阅读全文</a><img src ="http://www.cppblog.com/shadow/aggbug/7817.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shadow/" target="_blank">苦行僧</a> 2006-05-29 15:25 <a href="http://www.cppblog.com/shadow/archive/2006/05/29/7817.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>link-2006-05-26-PPU专题</title><link>http://www.cppblog.com/shadow/archive/2006/05/25/7660.html</link><dc:creator>苦行僧</dc:creator><author>苦行僧</author><pubDate>Thu, 25 May 2006 14:28:00 GMT</pubDate><guid>http://www.cppblog.com/shadow/archive/2006/05/25/7660.html</guid><wfw:comment>http://www.cppblog.com/shadow/comments/7660.html</wfw:comment><comments>http://www.cppblog.com/shadow/archive/2006/05/25/7660.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/shadow/comments/commentRss/7660.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shadow/services/trackbacks/7660.html</trackback:ping><description><![CDATA[<p>
				<b>2006-5-25</b>
		</p>
		<ul class="365KeyListTable">
				<li>
						<a href="http://www.it.com.cn/f/diy/058/22/161901.htm" title=" [internet;Graphic] " target="_blank">
								<b>一切为了真实 物理加速卡之前世今生 技术,物理加速卡,PPU,PhysX [板卡应用技巧] IT.com.cn IT世界网-您身边的数字专家</b>
						</a>
						<a href="http://www.365key.com/item/1955830" title="查看详细网摘" target="_blank">#</a>
						<br />
						<i>PPU的一篇相对重量级的文章，涉及到了第一块PPU的一些技术细节和效果介绍，摘要一些：当AGEIA在GDC2005上提出了PPU的
概念，同时也是第一块物理加速卡展现在世人的面前。PhysX外型类似目前的显卡，采用PCI-E/PCI
接口，可兼容绝大部的主流平台。它采用TSMC
0.13微米制程，集成的晶体管数量为1亿2千万个，核心尺寸为182平方毫米，要大于目前主流的GPU规格。而在功率方面，AGEIA宣称PhysX的
功率非常低，大约只有25W左右。和显卡一样，由于要涉及到大规模的数据运算和处理，PhysX也搭配了128M的GDDR3显存，所以说物理加速除了没
有视频输出接口以外，外观上和显卡的区别并不大。 Novodex SDK软件开发包
，EPIC的Unreal3.0就采用了PPU技术，直接导致XBOX360对PPU的使用，PS3也宣布将采用这一先进技术。已经看到以及将要看到的使
用PPU的游戏包括：Rise of Nations：Rise of Legends（国家的崛起：崛起传奇）、Ghost Recon
3（幽灵行动 3）、City of Villians ，Bet on Soldier（赌命战士）
。目前PPU的价格大约是100－400美刀，略有点贵，但是相信随着技术的进步和市场竞争的加剧，比然会引起一轮革命。</i>
						<br />
				</li>
				<li>
						<a href="http://www.ageia.com/physx/" title=" [internet;Graphic] " target="_blank">
								<b>AGEIA</b>
						</a>
						<a href="http://www.365key.com/item/1955785" title="查看详细网摘" target="_blank">#</a>
						<br />
						<i>Ageia（奥加）的官方网站</i>
						<br />
				</li>
				<li>
						<a href="http://my.opera.com/cheng.guo/blog/show.dml/193004" title=" [internet;Graphic] " target="_blank">
								<b>Ageia PhysX Card - Cheng's Command Center - by Cheng</b>
						</a>
						<a href="http://www.365key.com/item/1955771" title="查看详细网摘" target="_blank">#</a>
						<br />
						<i>这一篇PPU的文章，可以加深一下印象，简单易于理解。</i>
						<br />
				</li>
				<li>
						<a href="http://family.chinaok.com/2006-04/17943.htm" title=" [internet;Graphic] " target="_blank">
								<b>真实游戏场景，PPU物理卡效果惊人!——家用电脑--&gt;硬件广场--&gt;硬件最前线</b>
						</a>
						<a href="http://www.365key.com/item/1955770" title="查看详细网摘" target="_blank">#</a>
						<br />
						<i>此文是另外一篇介绍PPU的文章，通过这篇文章我对PPU有了一个直观的了解，想来也算是虚拟现实领域的一种发展方向，所以有机会还是了解一下吧。</i>
						<br />
				</li>
				<li>
						<a href="http://news.mydrivers.com/pages/20060507225935_96930.htm" title=" [internet;Graphic] " target="_blank">
								<b>Havok公开指责PPU物理加速卡--Mydrivers.com驱动之家新闻中心</b>
						</a>
						<a href="http://www.365key.com/item/1955763" title="查看详细网摘" target="_blank">#</a>
						<br />
						<i>今天在BBS上看到Ageia在找人，看到PPU的字样，想到原来大牛师兄曾经提到过该名次，还玩了一款游戏，顺便查了一下，发现几篇文章。此文是其中一篇。</i>
				</li>
				<li>
						<center>
								<img src="http://www.it.com.cn/f/diy/058/22/050822_js_ljf_1452_04.jpg" />
						</center>
				</li>
		</ul><img src ="http://www.cppblog.com/shadow/aggbug/7660.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shadow/" target="_blank">苦行僧</a> 2006-05-25 22:28 <a href="http://www.cppblog.com/shadow/archive/2006/05/25/7660.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>link-2006-05-25</title><link>http://www.cppblog.com/shadow/archive/2006/05/25/7644.html</link><dc:creator>苦行僧</dc:creator><author>苦行僧</author><pubDate>Thu, 25 May 2006 06:42:00 GMT</pubDate><guid>http://www.cppblog.com/shadow/archive/2006/05/25/7644.html</guid><wfw:comment>http://www.cppblog.com/shadow/comments/7644.html</wfw:comment><comments>http://www.cppblog.com/shadow/archive/2006/05/25/7644.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/shadow/comments/commentRss/7644.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shadow/services/trackbacks/7644.html</trackback:ping><description><![CDATA[<p>
				<b>2006-5-24</b>
		</p>
		<ul class="365KeyListTable">
				<li>
						<a title=" [Graphic] " href="http://www.azure.com.cn/article.asp?id=199" target="_blank">
								<b>辐射度光照演示(cg) - Azure Product</b>
						</a>
						<a title="查看详细网摘" href="http://www.365key.com/item/1952144" target="_blank">#</a>
						<br />
				</li>
				<li>
						<a title=" [internet;Graphic] " href="http://szlongman.cnblogs.com/archive/2006/05/23/406927.html" target="_blank">
								<b>博客园 - 太傻 - WWW.GAMEDEV.NET的每日一图</b>
						</a>
						<a title="查看详细网摘" href="http://www.365key.com/item/1951985" target="_blank">#</a>
						<br />
						<i>向牛人学习，做原创技术，唉，难啊。</i>
						<br />
				</li>
				<li>
						<a title=" [Graphic] " href="http://geeningwang.googlepages.com/home" target="_blank">
								<b>geeningwang - geeningwang's Home Page</b>
						</a>
						<a title="查看详细网摘" href="http://www.365key.com/item/1951978" target="_blank">#</a>
						<br />
						<i>牛人有发文了，唉，牛人就是牛人，做事情严谨而有效率，叫你不得不敬仰。</i>
						<br />
				</li>
				<li>
						<a title=" [internet;Graphic] " href="http://www.ogre3d.org/phpBB2/viewtopic.php?p=150553#150553" target="_blank">
								<b>Ogre Forums :: View topic - Final (I think) projects announced</b>
						</a>
						<a title="查看详细网摘" href="http://www.365key.com/item/1951969" target="_blank">#</a>
						<br />
						<i>How Lucky They Are!Sponsored by google and do their interest,directed by the top graphic engine designer and coder.Wowo~~~</i>
						<br />
				</li>
		</ul>
		<p>
				<b>2006-5-22</b>
		</p>
		<ul class="365KeyListTable">
				<li>
						<a title=" [Graphic] " href="http://www.moon-soft.com/doc/49138.htm" target="_blank">
								<b>#pragma用法</b>
						</a>
						<a title="查看详细网摘" href="http://www.365key.com/item/1945437" target="_blank">#</a>
						<br />
						<i>#pragma是总体来说在程序里边而不是在IDE里边指定编译选项的做法</i>
				</li>
		</ul><img src ="http://www.cppblog.com/shadow/aggbug/7644.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shadow/" target="_blank">苦行僧</a> 2006-05-25 14:42 <a href="http://www.cppblog.com/shadow/archive/2006/05/25/7644.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>link-2006-05-19</title><link>http://www.cppblog.com/shadow/archive/2006/05/20/7433.html</link><dc:creator>苦行僧</dc:creator><author>苦行僧</author><pubDate>Fri, 19 May 2006 17:24:00 GMT</pubDate><guid>http://www.cppblog.com/shadow/archive/2006/05/20/7433.html</guid><wfw:comment>http://www.cppblog.com/shadow/comments/7433.html</wfw:comment><comments>http://www.cppblog.com/shadow/archive/2006/05/20/7433.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/shadow/comments/commentRss/7433.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shadow/services/trackbacks/7433.html</trackback:ping><description><![CDATA[<p>
				<b>2006-5-15</b>
		</p>
		<ul class="365KeyListTable">
				<li>
						<a href="http://www.86vr.com/game/tech/development/200508/6280.html" title=" [Graphic] " target="_blank">
								<b>影响未来游戏开发 Shader Model初探 - 底层开发 - 86VR | 虚拟无忌</b>
						</a>
						<a href="http://www.365key.com/item/1921853" title="查看详细网摘" target="_blank">#</a>
						<br />
						<i>原来我的卡上已经支持SM3.0了，不知道我的soft shadow 和 SM3.0有什么关系，抓紧时间研究一下。</i>
						<br />
				</li>
		</ul>
		<p>
				<b>2006-5-12</b>
		</p> <b>    </b><a href="http://www.humus.ca/" title=" [Graphic] " target="_blank"><b>Humus</b></a><a href="http://www.365key.com/item/1909537" title="查看详细网摘" target="_blank">#</a><br /><i>太人也女马白勺牛了，这个世界上这么多牛人聚集在图形里边，发誓毕业以后绝对不干这一行。</i><img src ="http://www.cppblog.com/shadow/aggbug/7433.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shadow/" target="_blank">苦行僧</a> 2006-05-20 01:24 <a href="http://www.cppblog.com/shadow/archive/2006/05/20/7433.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>又好几天没更新了</title><link>http://www.cppblog.com/shadow/archive/2006/05/19/7411.html</link><dc:creator>苦行僧</dc:creator><author>苦行僧</author><pubDate>Fri, 19 May 2006 08:09:00 GMT</pubDate><guid>http://www.cppblog.com/shadow/archive/2006/05/19/7411.html</guid><wfw:comment>http://www.cppblog.com/shadow/comments/7411.html</wfw:comment><comments>http://www.cppblog.com/shadow/archive/2006/05/19/7411.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/shadow/comments/commentRss/7411.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shadow/services/trackbacks/7411.html</trackback:ping><description><![CDATA[终于把基于CgFx的引擎调出来了，这周要重新规划一下了，又要考虑好多东西，还没有形成思路，就零零散散的记录一些吧。<br /><br />1，FragmentProgram不处理的东西，如fog,depth会自动流到处理他们的环节。<br />2, VertexProgram替代掉的就只是Tranform和Lighting，FragmentProgram替代掉的时Fragment的Color和纹理插值出来的Color按照纹理的颜色模式进行混合的部分。<br />3，openGL的高级版本中有，光照中glLightMode()中可以指定将Specular的部分带到光栅化以后起作用，就是说即便VertexProgram只是输出一个Color值，最后即便采用GL_REPLACE的方式也可以体现出Specular来。我想这一部分FS是不能控制的。<br /><br /><br />看到一个网址：http://tony3d.cnblogs.com/archive/2006/05/02/390753.html<br />本来我写这个是想保存一点资料，转载一点文章（现在也不转了，有时候涉及版权的问题），记录一点心得，没想到这家伙居然把我的blog也列进去了，真是丢人现眼，呵呵，还是找写真正高手的blog吧，比如http://www.humus.ca/。<br /><img src ="http://www.cppblog.com/shadow/aggbug/7411.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shadow/" target="_blank">苦行僧</a> 2006-05-19 16:09 <a href="http://www.cppblog.com/shadow/archive/2006/05/19/7411.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>c++使用笔记</title><link>http://www.cppblog.com/shadow/archive/2006/05/15/7197.html</link><dc:creator>苦行僧</dc:creator><author>苦行僧</author><pubDate>Mon, 15 May 2006 08:11:00 GMT</pubDate><guid>http://www.cppblog.com/shadow/archive/2006/05/15/7197.html</guid><wfw:comment>http://www.cppblog.com/shadow/comments/7197.html</wfw:comment><comments>http://www.cppblog.com/shadow/archive/2006/05/15/7197.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/shadow/comments/commentRss/7197.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shadow/services/trackbacks/7197.html</trackback:ping><description><![CDATA[1，当析构函数为protected时，不能delete掉该对象的指针，这样就可以用来实现智能指针，结果就是从来不会显式调用delete一个refptr的对象。<br />2，在vs.net环境中，要把working directory设置一下，才能找到bin目录。<br />3,LNK2019错误涉及到的往往是在定义class的时候没有在前边添加NSGDLL的标识，这样就不会被编译到lib里边，就会在另外一个工程使用该lib造成链接的时候出问题。<br />4，cgFx的初始化工作要在glutCreateWindows之后进行，因为没有windows窗口句柄产生的时候是不能createContext的。<br /><br />待续...<br /><img src ="http://www.cppblog.com/shadow/aggbug/7197.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shadow/" target="_blank">苦行僧</a> 2006-05-15 16:11 <a href="http://www.cppblog.com/shadow/archive/2006/05/15/7197.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>link-2006-05-12</title><link>http://www.cppblog.com/shadow/archive/2006/05/12/6980.html</link><dc:creator>苦行僧</dc:creator><author>苦行僧</author><pubDate>Thu, 11 May 2006 19:04:00 GMT</pubDate><guid>http://www.cppblog.com/shadow/archive/2006/05/12/6980.html</guid><wfw:comment>http://www.cppblog.com/shadow/comments/6980.html</wfw:comment><comments>http://www.cppblog.com/shadow/archive/2006/05/12/6980.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/shadow/comments/commentRss/6980.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shadow/services/trackbacks/6980.html</trackback:ping><description><![CDATA[<p>
				<b>2006-5-9</b>
		</p>
		<ul class="365KeyListTable">
				<li>
						<a href="http://game.chinaitlab.com/image/27992.html" title=" [Graphic] " target="_blank">
								<b>Half-Life2的图形系统研究心得|中国IT实验室</b>
						</a>
						<a href="http://www.365key.com/item/1899745" title="查看详细网摘" target="_blank">#</a>
						<br />
				</li>
				<li>
						<a href="http://www.gamedev.net/columns/events/coverage/feature.asp?feature_id=75" title=" [Graphic] " target="_blank">
								<b>Next Generation Rendering with OpenGL</b>
						</a>
						<a href="http://www.365key.com/item/1899428" title="查看详细网摘" target="_blank">#</a>
						<br />
				</li>
		</ul>
		<p>
				<b>2006-5-8</b>
		</p>
		<a href="http://drupal.org/node/59037" title=" [internet;Search Engine;Graphic;Java] " target="_blank">
				<b>HOWTO: Write a Summer of Code application | drupal.org</b>
		</a>
		<a href="http://www.365key.com/item/1894455" title="查看详细网摘" target="_blank">#</a>
		<br />
		<i>Tell us how to write a SOC application</i><img src ="http://www.cppblog.com/shadow/aggbug/6980.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shadow/" target="_blank">苦行僧</a> 2006-05-12 03:04 <a href="http://www.cppblog.com/shadow/archive/2006/05/12/6980.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>shader学习笔记（4）－关于cg1.2和cg1.4的发展历程</title><link>http://www.cppblog.com/shadow/archive/2006/04/25/6286.html</link><dc:creator>苦行僧</dc:creator><author>苦行僧</author><pubDate>Tue, 25 Apr 2006 15:41:00 GMT</pubDate><guid>http://www.cppblog.com/shadow/archive/2006/04/25/6286.html</guid><wfw:comment>http://www.cppblog.com/shadow/comments/6286.html</wfw:comment><comments>http://www.cppblog.com/shadow/archive/2006/04/25/6286.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/shadow/comments/commentRss/6286.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shadow/services/trackbacks/6286.html</trackback:ping><description><![CDATA[流水帐，随手记下：<br /><ul><li><span style="font-family: SimSun;" lang="ZH-CN">直到现在我才明白，</span><span style="font-family: Verdana;" lang="EN-US">CG</span><span style="font-family: SimSun;" lang="ZH-CN">是</span><span style="font-family: Verdana;" lang="EN-US">CG</span><span style="font-family: SimSun;" lang="ZH-CN">，</span><span style="font-family: Verdana;" lang="EN-US">CGFX</span><span style="font-family: SimSun;" lang="ZH-CN">是</span><span style="font-family: Verdana;" lang="EN-US">CGFX</span><span style="font-family: SimSun;" lang="ZH-CN">，</span><span style="font-family: Verdana;" lang="EN-US">CG</span><span style="font-family: SimSun;" lang="ZH-CN">是一种语言，</span><span style="font-family: Verdana;" lang="EN-US">CGFX</span><span style="font-family: SimSun;" lang="ZH-CN">是一套编程模型，而我们要做的是封装</span><span style="font-family: Verdana;" lang="EN-US">cgFX</span><span style="font-family: SimSun;" lang="ZH-CN">，有了</span><span style="font-family: Verdana;" lang="EN-US">CGFX</span><span style="font-family: SimSun;" lang="ZH-CN">就有更强的一种表达，可以对不同的</span><span style="font-family: Verdana;" lang="EN-US">Profile</span><span style="font-family: SimSun;" lang="ZH-CN">指定配置，可以设定</span><span style="font-family: Verdana;" lang="EN-US">openGL state</span><span style="font-family: SimSun;" lang="ZH-CN">。</span></li></ul><span style="font-family: SimSun;" lang="ZH-CN"></span><ul><li><span style="font-family: SimSun;" lang="ZH-CN">对于</span><span style="font-family: Verdana;" lang="EN-US">D3D</span><span style="font-family: SimSun;" lang="ZH-CN">的绘制方式而言，是根据名字得到</span><span style="font-family: Verdana;" lang="EN-US">Technique</span><span style="font-family: SimSun;" lang="ZH-CN">的句柄，然后每次绘制</span><span style="font-family: Verdana;" lang="EN-US">Mesh</span><span style="font-family: SimSun;" lang="ZH-CN">前设定生效的</span><span style="font-family: Verdana;" lang="EN-US">Technique</span><span style="font-family: SimSun;" lang="ZH-CN">，在遍历该</span><span style="font-family: Verdana;" lang="EN-US">Technique</span><span style="font-family: SimSun;" lang="ZH-CN">下的所有</span><span style="font-family: Verdana;" lang="EN-US">Pass</span><span style="font-family: SimSun;" lang="ZH-CN">，逐一进行绘制；</span></li><li><span style="font-family: SimSun;" lang="ZH-CN">那么对于</span><span style="font-family: Verdana;" lang="EN-US">OpenGL</span><span style="font-family: SimSun;" lang="ZH-CN">来说，我们只知道在</span><span style="font-family: Verdana;" lang="EN-US">CreateProgram</span><span style="font-family: SimSun;" lang="ZH-CN">的时候指定一个入口函数，那对于具有多个</span><span style="font-family: Verdana;" lang="EN-US">Technique</span><span style="font-family: SimSun;" lang="ZH-CN">的情况我们还不知道怎么进行切换，是用两个</span><span style="font-family: Verdana;" lang="EN-US">Program</span><span style="font-family: SimSun;" lang="ZH-CN">表示呢，还是调用什么参数可以切换？</span></li><li><span style="font-family: SimSun;" lang="ZH-CN">但是不管怎么表示，从概念上是应该允许像</span><span style="font-family: Verdana;" lang="EN-US">D3D</span><span style="font-family: SimSun;" lang="ZH-CN">那样指定的，即在某一个</span><span style="font-family: Verdana;" lang="EN-US">Mesh</span><span style="font-family: SimSun;" lang="ZH-CN">绘制前指定用某一个</span><span style="font-family: Verdana;" lang="EN-US">Effect</span><span style="font-family: SimSun;" lang="ZH-CN">的某一个</span><span style="font-family: Verdana;" lang="EN-US">Technique</span><span style="font-family: SimSun;" lang="ZH-CN">，甚至</span><span style="font-family: Verdana;" lang="EN-US">Pass</span><span style="font-family: SimSun;" lang="ZH-CN">。</span></li><li><span style="font-family: SimSun;" lang="ZH-CN">后来查到在cg1.2发布的cg_tookit里边提供了CgFx的很好的支持，能够想D3D Effect格式那样ICgFxEffect-&gt;setTechnique()，有pass-&gt;begin(),pass-&gt;end()这种方法，但是不知道为什么到cg1.4把这些东西去掉了。在cgReleaseNote里边写到：</span></li><ul><li><span style="font-family: SimSun;" lang="ZH-CN">Complete rewrite of CgFX, including an API integrated with the Cg runtime API, support for extensible, cross-platform graphics state management, and support for unsized arrays and interfaces.</span></li></ul></ul><span style="font-family: SimSun;" lang="ZH-CN">    就是说重写了，跟以前不一样儿了，后边给了对于使用CgFx库的说明：<br /></span><blockquote><ul><li><span style="font-family: SimSun;" lang="ZH-CN">Applications and effects that used previous versions of CgFX will require modification.Applications that use CgFX will have to be modified to use the new CgFX API. If the supplied OpenGL state manager for CgFX is used, the effect files themselves must be modified. The effects must be changed to use OpenGL state assignments, rather than the D3D state assignments supported in prior versions of CgFX. A subsequent release of Cg will provide D3D and cross-platform state managers for CgFX.</span></li><li><span style="font-family: SimSun;" lang="ZH-CN">CgFX has been redesigned and re-implemented. As noted above, existing applications that use CgFX must be modified if the new API is to be used. In addition, if you wish to use the supplied “native” OpenGL state manager, which assumes that OpenGL-style state names and vales are used in effects, existing effects must be modified to use OpenGL-style states. See the “Introduction to CgFX” chapter in the Cg Users Manual for more details. If you have questions or problems related to porting existing CgFX applications, please contact NVIDIA developer relations.<br /></span></li></ul><span style="font-family: SimSun;" lang="ZH-CN">太恶心了，就是说原来如果你用了很好实现的CgFx，现在对不起，不能用了。</span><span style="font-family: SimSun;" lang="ZH-CN">所以我看到</span><span style="font-family: SimSun;" lang="ZH-CN">的早期的使用cg1.2的</span><span style="font-family: Verdana;" lang="EN-US">nebula2</span><span style="font-family: SimSun;" lang="ZH-CN">都封装了</span><span style="font-family: Verdana;" lang="EN-US">CGFX</span><span style="font-family: SimSun;" lang="ZH-CN">，但是到了</span><span style="font-family: Verdana;" lang="EN-US">1.4</span><span style="font-family: SimSun;" lang="ZH-CN">不知道为什么，发布的</span><span style="font-family: Verdana;" lang="EN-US">CG_tookit</span><span style="font-family: SimSun;" lang="ZH-CN">里边却去掉了这个</span><span style="font-family: Verdana;" lang="EN-US">CGFX</span><span style="font-family: SimSun;" lang="ZH-CN">的运行库。</span><span style="font-family: Verdana;" lang="EN-US">nebula2</span><span style="font-family: SimSun;" lang="ZH-CN">新的版本也去掉了</span><span style="font-family: Verdana;" lang="EN-US">CGFX</span><span style="font-family: SimSun;" lang="ZH-CN">，只剩下</span><span style="font-family: Verdana;" lang="EN-US">D3DShader</span><span style="font-family: SimSun;" lang="ZH-CN">的支持。</span><br />上边这段话最后<span style="font-family: SimSun;" lang="ZH-CN">说如果有问题，联系Nvidia developer relations。我想一想也没有办法了，去问wj大牛都不知道怎么回事儿，那只好去问一下了，结果到了nvidia developer网站上也差不到可以直接问谁，还填了一张表注册了一个用户，现在还没有被批下来。最后实在等不及了，去论坛上问吧。下面几个地址，没准儿有熟知cg的人可以答复一下.<br /></span><p style="margin: 0in; font-family: SimSun; font-size: 10pt;"><a href="http://www.gamedev.net/community/forums/topic.asp?topic_id=389475">http://www.gamedev.net/community/forums/topic.asp?topic_id=389475</a></p><p style="margin: 0in; font-family: SimSun; font-size: 10pt;"> </p><p style="margin: 0in; font-family: SimSun; font-size: 10pt;"><a href="http://www.smth.org/bbscon.php?bid=50&amp;id=43518">http://www.smth.org/bbscon.php?bid=50&amp;id=43518</a></p><p style="margin: 0in; font-family: SimSun; font-size: 10pt;"> </p><p style="margin: 0in; font-family: SimSun; font-size: 10pt;"><a href="http://www.smth.org/bbscon.php?bid=197&amp;id=50169">http://www.smth.org/bbscon.php?bid=197&amp;id=50169</a></p><p style="margin: 0in; font-family: SimSun; font-size: 10pt;"> </p><p style="margin: 0in; font-family: SimSun; font-size: 10pt;"><a href="http://forums.nvidia.com/index.php?showtopic=13875">http://forums.nvidia.com/index.php?showtopic=13875</a></p><p style="margin: 0in; font-family: SimSun; font-size: 10pt;"><br /></p></blockquote>再看看Nvidia到底怎么说的：<br /><ul><li><span style="font-family: Verdana;" lang="EN-US">Cg1</span><span style="font-family: SimSun;" lang="EN-US">.1</span><span style="font-family: SimSun;" lang="ZH-CN">里边关于</span><span style="font-family: SimSun;" lang="EN-US">cgFX</span><span style="font-family: SimSun;" lang="ZH-CN">说：</span></li></ul><p style="margin: 0in 0in 0in 0.5in; font-family: SimSun; font-size: 10pt;">CgFX beta support for DirectX 8, DirectX 9, and OpenGL </p><ul><li><span style="font-family: Verdana;" lang="EN-US">Cg1</span><span style="font-family: SimSun;" lang="EN-US">.2</span><span style="font-family: SimSun;" lang="ZH-CN">里边关于</span><span style="font-family: SimSun;" lang="EN-US">cgFX</span><span style="font-family: SimSun;" lang="ZH-CN">说：</span></li></ul><p style="margin: 0in 0in 0in 0.5in; font-family: SimSun; font-size: 10pt;">Cg Effects Explained document  </p><p style="margin: 0in 0in 0in 0.5in; font-family: SimSun; font-size: 10pt;">CgFX beta support for DirectX 8, DirectX 9, and OpenGL</p><ul><li><span style="font-family: Verdana;" lang="EN-US">Cg</span><span style="font-family: SimSun;" lang="EN-US">1.4.1</span><span style="font-family: SimSun;" lang="ZH-CN">里边关于</span><span style="font-family: SimSun;" lang="EN-US">cgFX</span><span style="font-family: SimSun;" lang="ZH-CN">说：</span></li></ul><p style="margin: 0in 0in 0in 0.5in; font-family: SimSun; font-size: 10pt;">Complete rewrite of CgFX, including an API integrated with
the Cg runtime API, support for extensible, cross-platform graphics state
management, and support for unsized arrays and interfaces. </p><ul><li><span style="font-family: Verdana;" lang="EN-US">Cg1</span><span style="font-family: SimSun;" lang="EN-US">.5beta</span><span style="font-family: SimSun;" lang="ZH-CN">里边关于</span><span style="font-family: SimSun;" lang="EN-US">cgFX</span><span style="font-family: SimSun;" lang="ZH-CN">说：</span></li></ul><p style="margin: 0in 0in 0in 0.5in; font-family: SimSun; font-size: 10pt;">Cg 1.3 and 1.4 style Effects files supported</p><br /><br /><ul><li><span style="font-family: SimSun;" lang="ZH-CN">又考察了</span><span style="font-family: Verdana;" lang="EN-US">openGL2.0</span><span style="font-family: SimSun;" lang="ZH-CN">和</span><span style="font-family: Verdana;" lang="EN-US">GLSL</span><span style="font-family: SimSun;" lang="ZH-CN">，发现对于绘制的描述感觉跟</span><span style="font-family: Verdana;" lang="EN-US">CG1.4</span><span style="font-family: SimSun;" lang="ZH-CN">的</span><span style="font-family: Verdana;" lang="EN-US">FX</span><span style="font-family: SimSun;" lang="ZH-CN">的运行库也差不多，又因为不熟悉，还是回头看</span><span style="font-family: Verdana;" lang="EN-US">cgFX</span><span style="font-family: SimSun;" lang="ZH-CN">吧。</span></li><li><span style="font-family: SimSun;" lang="ZH-CN">装了</span><span style="font-family: Verdana;" lang="EN-US">cg</span><span style="font-family: SimSun;" lang="EN-US">1.2</span><span style="font-family: SimSun;" lang="ZH-CN">看原来的文档，学习笔记如下：</span></li></ul><ul style="margin-left: 0.5in; direction: ltr; unicode-bidi: embed; margin-top: 0in; margin-bottom: 0in;" type="circle"><li style="margin-top: 0pt; margin-bottom: 0pt; vertical-align: middle; font-size: 10pt;"><span style="font-family: Verdana;" lang="EN-US">cgFX</span><span style="font-family: SimSun;" lang="ZH-CN">主要提供了三点好处：</span></li><ul style="margin-left: 0.5in; direction: ltr; unicode-bidi: embed; margin-top: 0in; margin-bottom: 0in;" type="disc"><li style="margin-top: 0pt; margin-bottom: 0pt; vertical-align: middle; font-size: 10pt;"><span style="font-family: SimSun;" lang="ZH-CN">不同硬件得以配置</span><span style="font-family: Verdana;" lang="EN-US">(technique,profile)</span></li><li style="margin-top: 0pt; margin-bottom: 0pt; vertical-align: middle; font-size: 10pt;"><span style="font-family: SimSun;" lang="ZH-CN">多遍绘制的描述</span><span style="font-family: Verdana;" lang="EN-US">(pass)</span></li><li style="margin-top: 0pt; margin-bottom: 0pt; vertical-align: middle; font-size: 10pt;"><span style="font-family: SimSun;" lang="ZH-CN">表达了环境信息</span><span style="font-family: Verdana;" lang="EN-US">(state)</span></li></ul><li style="margin-top: 0pt; margin-bottom: 0pt; vertical-align: middle; font-size: 10pt;"><span style="font-family: Verdana;" lang="EN-US">cgFX</span><span style="font-family: SimSun;" lang="ZH-CN">同</span><span style="font-family: Verdana;" lang="EN-US">microsoft FX</span><span style="font-family: SimSun;" lang="EN-US">2.0</span><span style="font-family: SimSun;" lang="ZH-CN">和</span><span style="font-family: SimSun;" lang="EN-US">DirectX9.0</span><span style="font-family: SimSun;" lang="ZH-CN">的</span><span style="font-family: SimSun;" lang="EN-US">Effect</span><span style="font-family: SimSun;" lang="ZH-CN">格式相似</span></li><li style="margin-top: 0pt; margin-bottom: 0pt; vertical-align: middle; font-size: 10pt;"><span style="font-family: Verdana;" lang="EN-US">cgFX</span><span style="font-family: SimSun;" lang="ZH-CN">既可以在</span><span style="font-family: Verdana;" lang="EN-US">openGL</span><span style="font-family: SimSun;" lang="ZH-CN">又可以在</span><span style="font-family: Verdana;" lang="EN-US">D3D</span><span style="font-family: SimSun;" lang="ZH-CN">上运行，便于以后扩展</span></li><li style="margin-top: 0pt; margin-bottom: 0pt; vertical-align: middle; font-size: 10pt;"><span style="font-family: SimSun;">主要方法接口：</span></li></ul><blockquote><blockquote><ul><li><span style="font-family: SimSun;">CgFXCreateEffect，CgFXCreateEffectFromFileA，CgFXCreateEffectCompiler，CgFXCreateEffectCompilerFromFileA</span></li><li><span style="font-family: SimSun;">CgFXSetDevice，CgFXFreeDevice</span></li><li><span style="font-family: SimSun;">CGFXHANDLE
       GetTechnique(UINT index);CGFXHANDLE GetTechniqueByName(LPCSTR name);</span></li><li><span style="font-family: SimSun;">CGFXHANDLE
       GetPass(CGFXHANDLE technique, UINT index);CGFXHANDLE
       GetPassByName(CGFXHANDLE technique, LPCSTR name);</span></li><li><span style="font-family: SimSun;">CGFXHANDLE
       GetParameter(CGFXHANDLE parent, UINT index);</span></li></ul></blockquote></blockquote><blockquote><blockquote><ul><li>CGFXHANDLE GetParameterByName(CGFXHANDLE parent, LPCSTR
name);</li><li>CGFXHANDLE GetParameterBySemantic(CGFXHANDLE parent, LPCSTR
name);</li><li>CGFXHANDLE GetParameterElement(CGFXHANDLE parent, UINT
element);</li></ul></blockquote></blockquote><blockquote><blockquote><ul><li><span style="font-family: SimSun;">HRESULT
     FindNextValidTechnique(CGFXHANDLE hTechnique,CGFXHANDLE *pTechnique);</span></li><li><span style="font-family: SimSun;">HRESULT
     SetTechnique(CGFXHANDLE pTechnique);CGFXHANDLE GetCurrentTechnique();</span></li><li><span style="font-family: SimSun;">HRESULT
     Begin(UINT* pPasses, DWORD Flags);HRESULT Pass(UINT passNum);HRESULT
     End();</span></li><li><span style="font-family: SimSun;">HRESULT
     CloneEffect(ICgFXEffect** ppNewEffect);</span></li></ul></blockquote></blockquote><blockquote><blockquote><ul><li>HRESULT GetDevice(LPVOID* ppDevice);</li><li>HRESULT OnLostDevice();</li><li>HRESULT OnResetDevice();</li></ul></blockquote></blockquote><ul><li><span style="font-family: SimSun;">主要接口：</span></li></ul><ul style="margin-left: 0.5in; direction: ltr; unicode-bidi: embed; margin-top: 0in; margin-bottom: 0in;" type="disc"><li style="margin-top: 0pt; margin-bottom: 0pt; vertical-align: middle; font-size: 10pt;"><span style="font-family: SimSun;">ICgFXBaseEffect</span></li><li style="margin-top: 0pt; margin-bottom: 0pt; vertical-align: middle; font-size: 10pt;"><span style="font-family: SimSun;">ICgFXEffect</span></li><li style="margin-top: 0pt; margin-bottom: 0pt; vertical-align: middle; font-size: 10pt;"><span style="font-family: SimSun;">ICgFXEffectCompiler</span></li></ul><img src ="http://www.cppblog.com/shadow/aggbug/6286.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shadow/" target="_blank">苦行僧</a> 2006-04-25 23:41 <a href="http://www.cppblog.com/shadow/archive/2006/04/25/6286.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>shader学习笔记（3）－cg  openGL runtime library</title><link>http://www.cppblog.com/shadow/archive/2006/04/22/6070.html</link><dc:creator>苦行僧</dc:creator><author>苦行僧</author><pubDate>Fri, 21 Apr 2006 22:37:00 GMT</pubDate><guid>http://www.cppblog.com/shadow/archive/2006/04/22/6070.html</guid><wfw:comment>http://www.cppblog.com/shadow/comments/6070.html</wfw:comment><comments>http://www.cppblog.com/shadow/archive/2006/04/22/6070.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/shadow/comments/commentRss/6070.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shadow/services/trackbacks/6070.html</trackback:ping><description><![CDATA[<p style="margin: 0in; font-size: 10pt;">
				<span style="font-family: Verdana;" lang="EN-US">shade</span>
				<span style="font-family: SimSun;" lang="ZH-CN">学习笔记（</span>
				<span style="font-family: Verdana;" lang="EN-US">3</span>
				<span style="font-family: SimSun;" lang="ZH-CN">）－</span>
				<span style="font-family: Verdana;" lang="EN-US">cg openGL runtime</span>
				<span style="font-family: SimSun;" lang="EN-US">
library</span>
		</p>
		<ol>
				<li>
						<span style="font-family: SimSun;" lang="ZH-CN">当</span>
						<span style="font-family: Verdana;" lang="EN-US">uniform</span>
						<span style="font-family: SimSun;" lang="ZH-CN">参数设置到</span>
						<span style="font-family: Verdana;" lang="EN-US">openGL</span>
						<span style="font-family: SimSun;" lang="ZH-CN">以后是保存在</span>
						<span style="font-family: Verdana;" lang="EN-US">CG
     openGL runtime</span>
						<span style="font-family: SimSun;" lang="ZH-CN">里边或者</span>
						<span style="font-family: Verdana;" lang="EN-US">cg core runtime</span>
						<span style="font-family: SimSun;" lang="ZH-CN">里边，而</span>
						<span style="font-family: Verdana;" lang="EN-US">d</span>
						<span style="font-family: SimSun;" lang="EN-US">3d</span>
						<span style="font-family: SimSun;" lang="ZH-CN">是直接保存到</span>
						<span style="font-family: SimSun;" lang="EN-US">GPU</span>
						<span style="font-family: SimSun;" lang="ZH-CN">的</span>
						<span style="font-family: SimSun;" lang="EN-US">constant memory</span>
						<span style="font-family: SimSun;" lang="ZH-CN">里边。</span>
						<span style="font-family: Verdana;" lang="EN-US">
						</span>
				</li>
				<li>
						<span style="font-family: Verdana;" lang="EN-US">openGL</span>
						<span style="font-family: SimSun;" lang="ZH-CN">在使用</span>
						<span style="font-family: Verdana;" lang="EN-US">CG</span>
						<span style="font-family: SimSun;" lang="ZH-CN">的时候必须首先使用wglCreateContext()
     or glXCreateContext()来创建</span>
						<span style="font-family: Verdana;" lang="EN-US">openGL Context</span>
						<span style="font-family: SimSun;" lang="ZH-CN">。</span>
						<span style="font-family: SimSun;" lang="ZH-CN">
						</span>
				</li>
				<li>
						<span style="font-family: SimSun;" lang="ZH-CN">设置</span>
						<span style="font-family: Verdana;" lang="EN-US">Uniform</span>参数：</li>
		</ol>
		<span style="font-family: SimSun;" lang="ZH-CN">
		</span>
		<ul style="margin-left: 0.5in; direction: ltr; unicode-bidi: embed; margin-top: 0in; margin-bottom: 0in;" type="circle">
				<li style="margin-top: 0pt; margin-bottom: 0pt; vertical-align: middle; font-size: 10pt;">
						<span style="font-family: SimSun;" lang="ZH-CN">cgGLSetParameter，两种类型</span>
						<span style="font-family: Verdana;" lang="EN-US">float</span>
						<span style="font-family: SimSun;" lang="EN-US">(f),double(d).</span>
				</li>
				<li style="margin-top: 0pt; margin-bottom: 0pt; vertical-align: middle; font-size: 10pt;">
						<span style="font-family: SimSun;" lang="ZH-CN">cgGLSetMatrixParameterfr</span>
						<span style="font-family: Verdana;" lang="EN-US">,</span>
						<span style="font-family: SimSun;" lang="ZH-CN">cgGLSetMatrixParameter</span>
						<span style="font-family: Verdana;" lang="EN-US">dc,</span>
						<span style="font-family: SimSun;" lang="ZH-CN">四种，</span>
						<span style="font-family: Verdana;" lang="EN-US">c</span>
						<span style="font-family: SimSun;" lang="ZH-CN">表示列向量为主，</span>
						<span style="font-family: Verdana;" lang="EN-US">r</span>
						<span style="font-family: SimSun;" lang="ZH-CN">表示</span>
						<span style="font-family: Verdana;" lang="EN-US">row</span>
						<span style="font-family: SimSun;" lang="ZH-CN">向量为主。</span>
				</li>
				<li style="margin-top: 0pt; margin-bottom: 0pt; vertical-align: middle; font-size: 10pt;">
						<span style="font-family: SimSun;" lang="ZH-CN">cgGLSetStateMatrixParameter()可以用来设置状态矩阵，包括</span>
						<span style="font-family: Verdana;" lang="EN-US">ModelView</span>
						<span style="font-family: SimSun;" lang="ZH-CN">矩阵，</span>
						<span style="font-family: Verdana;" lang="EN-US">Projection</span>
						<span style="font-family: SimSun;" lang="ZH-CN">矩阵，纹理矩阵。</span>
				</li>
				<li style="margin-top: 0pt; margin-bottom: 0pt; vertical-align: middle; font-size: 10pt;">
						<span style="font-family: SimSun;" lang="ZH-CN">cgGLSetParameterArray（）用来设置</span>
						<span style="font-family: Verdana;" lang="EN-US">Uniform</span>
						<span style="font-family: SimSun;" lang="ZH-CN">的数组参数；cgGLSetMatrixParameterArrayfr用来设置矩阵数组</span>
				</li>
		</ul>    设置变量参数：<br /><span style="font-family: SimSun;"></span><ul style="margin-left: 0.5in; direction: ltr; unicode-bidi: embed; margin-top: 0in; margin-bottom: 0in;" type="circle"><li style="margin-top: 0pt; margin-bottom: 0pt; vertical-align: middle; font-size: 10pt;"><span style="font-family: SimSun;" lang="ZH-CN">因为</span><span style="font-family: Verdana;" lang="EN-US">FP</span><span style="font-family: SimSun;" lang="ZH-CN">的变量参数是按照光栅化插值后的结果来设置的，所以只有</span><span style="font-family: Verdana;" lang="EN-US">VS</span><span style="font-family: SimSun;" lang="ZH-CN">程序有变量参数。</span></li><li style="margin-top: 0pt; margin-bottom: 0pt; vertical-align: middle; font-size: 10pt;"><span style="font-family: SimSun;">设置变量参数两步：</span></li><ol style="margin-left: 0.5in; direction: ltr; unicode-bidi: embed; margin-top: 0in; margin-bottom: 0in;" type="i"><li value="1" style="margin-top: 0pt; margin-bottom: 0pt; vertical-align: middle; font-family: SimSun; font-size: 10pt;">cgGLSetParameterPointer()：设置变量数组，我理解就是顶点数组</li><li value="2" style="margin-top: 0pt; margin-bottom: 0pt; vertical-align: middle; font-family: SimSun; font-size: 10pt;">void
       cgGLEnableClientState(CGparameter parameter);和void
       cgGLDisableClientState(CGparameter parameter);使得该参数有效。</li></ol><ul style="margin-left: 0.5in; direction: ltr; unicode-bidi: embed; margin-top: 0in; margin-bottom: 0in;" type="disc"><li style="margin-top: 0pt; margin-bottom: 0pt; vertical-align: middle; font-size: 10pt;"><span style="font-family: SimSun;" lang="ZH-CN">注意：cgGLSetParameter也可以用来设置变量参数，这时采用的是</span><span style="font-family: Verdana;" lang="EN-US">openGL</span><span style="font-family: SimSun;" lang="ZH-CN">立即模式，也就相当于</span><span style="font-family: Verdana;" lang="EN-US">glVertex,glNormal</span><span style="font-family: SimSun;" lang="ZH-CN">，</span><span style="font-family: Verdana;" lang="EN-US">glColor</span><span style="font-family: SimSun;" lang="ZH-CN">这样的做法吧，但是我想这显然是一种效率不高的做法。且cgGLGetParameter不能用来取变量参数。</span></li></ul></ul><span style="font-family: SimSun;" lang="ZH-CN">    设置</span><span style="font-family: Verdana;" lang="EN-US">Sampler</span><span style="font-family: SimSun;" lang="ZH-CN">参数：</span><span style="font-family: Verdana;" lang="EN-US">Sampler</span><span style="font-family: SimSun;" lang="ZH-CN">和纹理是一一对应的，所以实际就是对一段顶点绘制指定一个纹理。</span><ul style="margin-left: 0.5in; direction: ltr; unicode-bidi: embed; margin-top: 0in; margin-bottom: 0in;" type="circle"><li style="margin-top: 0pt; margin-bottom: 0pt; vertical-align: middle; font-size: 10pt;"><span style="font-family: SimSun;" lang="ZH-CN">cgGLSetTextureParameter(CGparameter
      parameter,GLuint textureName);来指定一个纹理给</span><span style="font-family: Verdana;" lang="EN-US">CGParameter</span><span style="font-family: SimSun;" lang="ZH-CN">。</span></li><li style="margin-top: 0pt; margin-bottom: 0pt; vertical-align: middle; font-size: 10pt;"><span style="font-family: SimSun;" lang="ZH-CN">void
      cgGLEnableTextureParameter(CGparameter parameter);来使纹理生效。void
      cgGLDisableTextureParameter(CGparameter parameter);使其失效，相当于</span><span style="font-family: Verdana;" lang="EN-US">glBindTexture</span><span style="font-family: SimSun;" lang="ZH-CN">命令。</span><span style="font-family: SimSun;" lang="ZH-CN"></span></li></ul><span style="font-family: SimSun;" lang="ZH-CN">void
     cgGLSetOptimalOptions(CGprofile profile);来使用最优的</span><span style="font-family: Verdana;" lang="EN-US">Profile</span><span style="font-family: SimSun;" lang="ZH-CN">。而CGbool
     cgGLIsProfileSupported(CGprofile profile);可以用来判断硬件是否支持该</span><span style="font-family: Verdana;" lang="EN-US">Profile</span>。<br /><br />经过这几天的学习，终于大概明白了shader是怎么work的了，但是对于用programmable pipeline替换掉fixed function还是一头雾水。<br /><span style="font-family: SimSun;" lang="ZH-CN"></span><p style="margin: 0in; font-family: SimSun; font-size: 10pt;"> </p><img src ="http://www.cppblog.com/shadow/aggbug/6070.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shadow/" target="_blank">苦行僧</a> 2006-04-22 06:37 <a href="http://www.cppblog.com/shadow/archive/2006/04/22/6070.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>link-2006-04-21</title><link>http://www.cppblog.com/shadow/archive/2006/04/22/6068.html</link><dc:creator>苦行僧</dc:creator><author>苦行僧</author><pubDate>Fri, 21 Apr 2006 21:53:00 GMT</pubDate><guid>http://www.cppblog.com/shadow/archive/2006/04/22/6068.html</guid><wfw:comment>http://www.cppblog.com/shadow/comments/6068.html</wfw:comment><comments>http://www.cppblog.com/shadow/archive/2006/04/22/6068.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/shadow/comments/commentRss/6068.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shadow/services/trackbacks/6068.html</trackback:ping><description><![CDATA[<div class="365KeyListMain">
				<p>
						<b>2006-4-22</b>
				</p>
				<ul class="365KeyListTable">
						<li>
								<a href="http://oiramario.cnblogs.com/archive/2006/04/21/380947.html" title=" [Graphic] " target="_blank">
										<b>博客园 - oiramario - Irrlicht 1.0 released</b>
								</a>
								<a href="http://www.365key.com/item/1847979" title="查看详细网摘" target="_blank">#</a>
								<br />
								<i>还见过有人用Irrlicht写过游戏参加学校的科技大赛，没想到代码如此的简明，排名还这么高，厉害。</i>
								<br />
						</li>
						<li>
								<a href="http://oiramario.cnblogs.com/archive/2006/04/20/380714.html" title=" [Graphic] " target="_blank">
										<b>博客园 - oiramario - 在游戏中使用CEGUI —— 第一章（底层）</b>
								</a>
								<a href="http://www.365key.com/item/1847977" title="查看详细网摘" target="_blank">#</a>
								<br />
								<i>能有这般更新速度的也算是牛人了</i>
								<br />
						</li>
						<li>
								<a href="http://spaces.msn.com/geeningwang/Blog/cns%21EC152EED38A5F25D%21161.entry" title=" [Graphic] " target="_blank">
										<b>福蛙京京: SSS: 子面散射</b>
								</a>
								<a href="http://www.365key.com/item/1847975" title="查看详细网摘" target="_blank">#</a>
								<br />
								<i>大牛就是大牛啊</i>
								<br />
						</li>
				</ul>
				<p>
						<em>
								<a href="http://www.365key.com/" title="保存并分享你在网上找到的任何东西" target="_blank">365Key-天天网摘生成</a>
						</em>
				</p>
		</div><img src ="http://www.cppblog.com/shadow/aggbug/6068.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shadow/" target="_blank">苦行僧</a> 2006-04-22 05:53 <a href="http://www.cppblog.com/shadow/archive/2006/04/22/6068.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>shader学习笔记（2）- Using Cg Runtime Library整理</title><link>http://www.cppblog.com/shadow/archive/2006/04/21/5989.html</link><dc:creator>苦行僧</dc:creator><author>苦行僧</author><pubDate>Thu, 20 Apr 2006 17:29:00 GMT</pubDate><guid>http://www.cppblog.com/shadow/archive/2006/04/21/5989.html</guid><wfw:comment>http://www.cppblog.com/shadow/comments/5989.html</wfw:comment><comments>http://www.cppblog.com/shadow/archive/2006/04/21/5989.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/shadow/comments/commentRss/5989.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shadow/services/trackbacks/5989.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.cppblog.com/shadow/archive/2006/04/21/5989.html'>阅读全文</a><img src ="http://www.cppblog.com/shadow/aggbug/5989.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shadow/" target="_blank">苦行僧</a> 2006-04-21 01:29 <a href="http://www.cppblog.com/shadow/archive/2006/04/21/5989.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>shader学习笔记（1）－basic cg in openGL </title><link>http://www.cppblog.com/shadow/archive/2006/04/20/5916.html</link><dc:creator>苦行僧</dc:creator><author>苦行僧</author><pubDate>Wed, 19 Apr 2006 17:43:00 GMT</pubDate><guid>http://www.cppblog.com/shadow/archive/2006/04/20/5916.html</guid><wfw:comment>http://www.cppblog.com/shadow/comments/5916.html</wfw:comment><comments>http://www.cppblog.com/shadow/archive/2006/04/20/5916.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/shadow/comments/commentRss/5916.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shadow/services/trackbacks/5916.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.cppblog.com/shadow/archive/2006/04/20/5916.html'>阅读全文</a><img src ="http://www.cppblog.com/shadow/aggbug/5916.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shadow/" target="_blank">苦行僧</a> 2006-04-20 01:43 <a href="http://www.cppblog.com/shadow/archive/2006/04/20/5916.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>link-20060419</title><link>http://www.cppblog.com/shadow/archive/2006/04/20/5915.html</link><dc:creator>苦行僧</dc:creator><author>苦行僧</author><pubDate>Wed, 19 Apr 2006 17:33:00 GMT</pubDate><guid>http://www.cppblog.com/shadow/archive/2006/04/20/5915.html</guid><wfw:comment>http://www.cppblog.com/shadow/comments/5915.html</wfw:comment><comments>http://www.cppblog.com/shadow/archive/2006/04/20/5915.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/shadow/comments/commentRss/5915.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shadow/services/trackbacks/5915.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.cppblog.com/shadow/archive/2006/04/20/5915.html'>阅读全文</a><img src ="http://www.cppblog.com/shadow/aggbug/5915.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shadow/" target="_blank">苦行僧</a> 2006-04-20 01:33 <a href="http://www.cppblog.com/shadow/archive/2006/04/20/5915.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>link-20040418</title><link>http://www.cppblog.com/shadow/archive/2006/04/19/5851.html</link><dc:creator>苦行僧</dc:creator><author>苦行僧</author><pubDate>Tue, 18 Apr 2006 16:42:00 GMT</pubDate><guid>http://www.cppblog.com/shadow/archive/2006/04/19/5851.html</guid><wfw:comment>http://www.cppblog.com/shadow/comments/5851.html</wfw:comment><comments>http://www.cppblog.com/shadow/archive/2006/04/19/5851.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/shadow/comments/commentRss/5851.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shadow/services/trackbacks/5851.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.cppblog.com/shadow/archive/2006/04/19/5851.html'>阅读全文</a><img src ="http://www.cppblog.com/shadow/aggbug/5851.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shadow/" target="_blank">苦行僧</a> 2006-04-19 00:42 <a href="http://www.cppblog.com/shadow/archive/2006/04/19/5851.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>link-20060416</title><link>http://www.cppblog.com/shadow/archive/2006/04/16/5636.html</link><dc:creator>苦行僧</dc:creator><author>苦行僧</author><pubDate>Sat, 15 Apr 2006 21:19:00 GMT</pubDate><guid>http://www.cppblog.com/shadow/archive/2006/04/16/5636.html</guid><wfw:comment>http://www.cppblog.com/shadow/comments/5636.html</wfw:comment><comments>http://www.cppblog.com/shadow/archive/2006/04/16/5636.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/shadow/comments/commentRss/5636.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shadow/services/trackbacks/5636.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.cppblog.com/shadow/archive/2006/04/16/5636.html'>阅读全文</a><img src ="http://www.cppblog.com/shadow/aggbug/5636.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shadow/" target="_blank">苦行僧</a> 2006-04-16 05:19 <a href="http://www.cppblog.com/shadow/archive/2006/04/16/5636.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> C++ 中的Singleton 类的实现讨论</title><link>http://www.cppblog.com/shadow/archive/2006/03/27/4643.html</link><dc:creator>苦行僧</dc:creator><author>苦行僧</author><pubDate>Mon, 27 Mar 2006 05:57:00 GMT</pubDate><guid>http://www.cppblog.com/shadow/archive/2006/03/27/4643.html</guid><wfw:comment>http://www.cppblog.com/shadow/comments/4643.html</wfw:comment><comments>http://www.cppblog.com/shadow/archive/2006/03/27/4643.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/shadow/comments/commentRss/4643.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shadow/services/trackbacks/4643.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.cppblog.com/shadow/archive/2006/03/27/4643.html'>阅读全文</a><img src ="http://www.cppblog.com/shadow/aggbug/4643.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shadow/" target="_blank">苦行僧</a> 2006-03-27 13:57 <a href="http://www.cppblog.com/shadow/archive/2006/03/27/4643.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>我的个人知识管理更新</title><link>http://www.cppblog.com/shadow/archive/2006/03/24/4523.html</link><dc:creator>苦行僧</dc:creator><author>苦行僧</author><pubDate>Fri, 24 Mar 2006 04:28:00 GMT</pubDate><guid>http://www.cppblog.com/shadow/archive/2006/03/24/4523.html</guid><wfw:comment>http://www.cppblog.com/shadow/comments/4523.html</wfw:comment><comments>http://www.cppblog.com/shadow/archive/2006/03/24/4523.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/shadow/comments/commentRss/4523.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shadow/services/trackbacks/4523.html</trackback:ping><description><![CDATA[<p>我的个人知识管理更新</p>
		<script src="http://feeds.feedburner.com/yyh?format=sigpro" type="text/javascript">
		</script>
		<noscript>
				<p>Subscribe to RSS headline updates from: <a href="http://feeds.feedburner.com/yyh"></a><br />Powered by FeedBurner</p>
		</noscript><img src ="http://www.cppblog.com/shadow/aggbug/4523.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shadow/" target="_blank">苦行僧</a> 2006-03-24 12:28 <a href="http://www.cppblog.com/shadow/archive/2006/03/24/4523.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C++ 代码优化</title><link>http://www.cppblog.com/shadow/archive/2006/03/18/4305.html</link><dc:creator>苦行僧</dc:creator><author>苦行僧</author><pubDate>Fri, 17 Mar 2006 16:03:00 GMT</pubDate><guid>http://www.cppblog.com/shadow/archive/2006/03/18/4305.html</guid><wfw:comment>http://www.cppblog.com/shadow/comments/4305.html</wfw:comment><comments>http://www.cppblog.com/shadow/archive/2006/03/18/4305.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/shadow/comments/commentRss/4305.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shadow/services/trackbacks/4305.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 一般而言，比起C程序来说，C++游戏程序是可重用和可维护的。可这真的有价值吗？复杂的C++可以在速度上与传统的C程序相提并论吗？<br>&nbsp;&nbsp;<a href='http://www.cppblog.com/shadow/archive/2006/03/18/4305.html'>阅读全文</a><img src ="http://www.cppblog.com/shadow/aggbug/4305.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shadow/" target="_blank">苦行僧</a> 2006-03-18 00:03 <a href="http://www.cppblog.com/shadow/archive/2006/03/18/4305.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>