﻿<?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++博客-AstaTus-随笔分类-DIRECTX9</title><link>http://www.cppblog.com/AstaTus/category/8296.html</link><description>       -- 夏天不热。。</description><language>zh-cn</language><lastBuildDate>Sat, 11 Jul 2009 13:51:42 GMT</lastBuildDate><pubDate>Sat, 11 Jul 2009 13:51:42 GMT</pubDate><ttl>60</ttl><item><title>无限地形~</title><link>http://www.cppblog.com/AstaTus/archive/2009/02/16/73907.html</link><dc:creator>AstaTus</dc:creator><author>AstaTus</author><pubDate>Mon, 16 Feb 2009 01:59:00 GMT</pubDate><guid>http://www.cppblog.com/AstaTus/archive/2009/02/16/73907.html</guid><wfw:comment>http://www.cppblog.com/AstaTus/comments/73907.html</wfw:comment><comments>http://www.cppblog.com/AstaTus/archive/2009/02/16/73907.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/AstaTus/comments/commentRss/73907.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/AstaTus/services/trackbacks/73907.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;终于把无限地形调试好了，但纹理部分还没做。那个恼人的BUG总是把机器搞成蓝屏，微软的东西用起来就是不放心啊。-_-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;下一步要做鼠标拾取，但发现扩展比较乱，打算重构下，具体思路是：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.把四叉树拿出来单独做成一个类，节点是node，只标管理坐标等方位属性，然后再用entity类attach上去，貌似现在大多数引擎都是这样做的。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.node用composite 模式 可以自己create节点 四叉树的那个类就是把node 和entity封装成树，以后如果有其他的场景管理模式就不需要改动node和entity类了<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;暂且只想了这些，具体细节还有很多的考虑，只能慢慢来了<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.打算以后在编辑器里将场景直接导出成一个文件，然后在游戏里导入文件就行了~<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;额，貌似还有很多事情~<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;纹理没做 样子比较难看 不贴图了。
<img src ="http://www.cppblog.com/AstaTus/aggbug/73907.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/AstaTus/" target="_blank">AstaTus</a> 2009-02-16 09:59 <a href="http://www.cppblog.com/AstaTus/archive/2009/02/16/73907.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>dx 与 mfc 整合 成功！</title><link>http://www.cppblog.com/AstaTus/archive/2009/01/24/72552.html</link><dc:creator>AstaTus</dc:creator><author>AstaTus</author><pubDate>Sat, 24 Jan 2009 14:18:00 GMT</pubDate><guid>http://www.cppblog.com/AstaTus/archive/2009/01/24/72552.html</guid><wfw:comment>http://www.cppblog.com/AstaTus/comments/72552.html</wfw:comment><comments>http://www.cppblog.com/AstaTus/archive/2009/01/24/72552.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/AstaTus/comments/commentRss/72552.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/AstaTus/services/trackbacks/72552.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;整合成功已将近1个星期了，但并不是很开心。因为先前的那个LOD效率太低&nbsp; 潘永亮的pdf里说他有100~200+的帧率，而我的只是在30上下徘徊而且还是512 * 512的高度图，他说他的是1024* 1024的 ，所以无比的郁闷+ 仇视~后来感觉算法的瓶颈可能是在到最后分的节点太细了，导致在渲染时 渲染队列里的节点过多，（我的笔记cpu是1.66G的，虽然双核，但单线程的程序最多也不会超过1.8G吧）后来看到ogre里的terrain的那里例子里，LOD变化时是一大块一大块的，一个节点代表一大块的mesh ，后来看了下是65*65的网格 而我的最细只有3*3.&nbsp; -.-!<br>&nbsp;&nbsp;&nbsp; 所以这些日子都在弄那个地形&nbsp;，看到tonykee boss的博客里的那个无限地形非常的HAPPY，所以依据他的思路在写，后来发现这个地形代码非常的庞大，但可以想象，用起来将是非常的爽啊，因为tonykee boss只给了个大概的思路，细节方面有很多要考虑的，尤其是效率方面的(不知道是不是以前写过单片机的程序的原因，时间和空间的开销我都过分的关注-。-)，所以导致已将近写了1个星期，不过还差点，快的话明天估计可以展开全面的调试了。。。<br>&nbsp;&nbsp;&nbsp;明天年三十，希望能1次调试成功~~ </p>
<p>&nbsp;</p>
<img src ="http://www.cppblog.com/AstaTus/aggbug/72552.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/AstaTus/" target="_blank">AstaTus</a> 2009-01-24 22:18 <a href="http://www.cppblog.com/AstaTus/archive/2009/01/24/72552.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>LOD地形。。</title><link>http://www.cppblog.com/AstaTus/archive/2008/12/25/70360.html</link><dc:creator>AstaTus</dc:creator><author>AstaTus</author><pubDate>Thu, 25 Dec 2008 14:54:00 GMT</pubDate><guid>http://www.cppblog.com/AstaTus/archive/2008/12/25/70360.html</guid><wfw:comment>http://www.cppblog.com/AstaTus/comments/70360.html</wfw:comment><comments>http://www.cppblog.com/AstaTus/archive/2008/12/25/70360.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/AstaTus/comments/commentRss/70360.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/AstaTus/services/trackbacks/70360.html</trackback:ping><description><![CDATA[&nbsp;参考了潘永亮的lod的资料后，终于将LOD给实现了<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LOD地形的实现面临有2个问题<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1：网格的裂缝问题，我是用取消那条与低分辨块相邻的边来做的，这样的话有个缺点既每相邻的块分辨率做多只能相差1；<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2：生成网格时的遍历次数，用潘永亮的方法只需遍历一次<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;具体参见潘永亮的PDF：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.cppblog.com/Files/AstaTus/largeLOD.pdf">/Files/AstaTus/largeLOD.pdf</a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;我的效果图：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cppblog.com/images/cppblog_com/astatus/11.jpg" border=0><br>
<img src ="http://www.cppblog.com/AstaTus/aggbug/70360.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/AstaTus/" target="_blank">AstaTus</a> 2008-12-25 22:54 <a href="http://www.cppblog.com/AstaTus/archive/2008/12/25/70360.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DX.纠错本。</title><link>http://www.cppblog.com/AstaTus/archive/2008/12/22/70053.html</link><dc:creator>AstaTus</dc:creator><author>AstaTus</author><pubDate>Mon, 22 Dec 2008 05:06:00 GMT</pubDate><guid>http://www.cppblog.com/AstaTus/archive/2008/12/22/70053.html</guid><wfw:comment>http://www.cppblog.com/AstaTus/comments/70053.html</wfw:comment><comments>http://www.cppblog.com/AstaTus/archive/2008/12/22/70053.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/AstaTus/comments/commentRss/70053.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/AstaTus/services/trackbacks/70053.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;DX学习中总是在一些小问题上纠缠不清，所以特开一篇，记录下自己的错误。<br><br>1， 内存访问异常：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;遇到该问题时，可能错误并非在报错的那个语句上，而是在前面的运行语句中，数组越界访问，或其他关于内存的错误。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;我就是在用vector时 越界访问了（虽然vector可以自动开辟空间，但[]运算符貌似不能访问当前所占有的内存之后的内存，<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;我是先resiz&nbsp;&nbsp;&nbsp;e的，&nbsp;&nbsp;&nbsp;这&nbsp;&nbsp;样可以提高效率） 导致后面createtexturefromfile的函数无法创建纹理 。<br><br>2.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 创建的实体渲染后不显示<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这个问题至今遇到了2次，都是因为变量的类型原因<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(1).索引的类型默认是WORD类型,但是在创建Indexbuffer时可以将索引的类型设置为DWORD。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(2).自定义的顶点格式的xyz必定需要float型 <br><br>3.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;换了个dx的SDK(June 2008)&nbsp;发现原来的shader代码出了点问题，在用到全局变量的代码处报<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;global variables are implicitly constant, enable compatibility mode to allow modification 错误<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;也就是说全局变量是extern也是常量，在shader里面不能修改，但可以从宿主程序里改。
<img src ="http://www.cppblog.com/AstaTus/aggbug/70053.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/AstaTus/" target="_blank">AstaTus</a> 2008-12-22 13:06 <a href="http://www.cppblog.com/AstaTus/archive/2008/12/22/70053.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>重新封装DX。。。</title><link>http://www.cppblog.com/AstaTus/archive/2008/11/17/67148.html</link><dc:creator>AstaTus</dc:creator><author>AstaTus</author><pubDate>Mon, 17 Nov 2008 14:21:00 GMT</pubDate><guid>http://www.cppblog.com/AstaTus/archive/2008/11/17/67148.html</guid><wfw:comment>http://www.cppblog.com/AstaTus/comments/67148.html</wfw:comment><comments>http://www.cppblog.com/AstaTus/archive/2008/11/17/67148.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/AstaTus/comments/commentRss/67148.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/AstaTus/services/trackbacks/67148.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 好久没写了，前些日子去搞文件系统了，是单片机的文件系统，完全不能调试，累啊，现在用起2005 那一个爽字了得。。哈哈<br><br><br>现在已经完成相机，地形，框架三个类了，不过功能还不是很完善，还需待改进。。<br><br><br><img height=479 alt="" src="http://www.cppblog.com/images/cppblog_com/astatus/LL.jpg" width=601 border=0><br><br>贴张图<br>
<img src ="http://www.cppblog.com/AstaTus/aggbug/67148.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/AstaTus/" target="_blank">AstaTus</a> 2008-11-17 22:21 <a href="http://www.cppblog.com/AstaTus/archive/2008/11/17/67148.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>像素着色器的疑惑。。</title><link>http://www.cppblog.com/AstaTus/archive/2008/10/16/64212.html</link><dc:creator>AstaTus</dc:creator><author>AstaTus</author><pubDate>Thu, 16 Oct 2008 14:39:00 GMT</pubDate><guid>http://www.cppblog.com/AstaTus/archive/2008/10/16/64212.html</guid><wfw:comment>http://www.cppblog.com/AstaTus/comments/64212.html</wfw:comment><comments>http://www.cppblog.com/AstaTus/archive/2008/10/16/64212.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/AstaTus/comments/commentRss/64212.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/AstaTus/services/trackbacks/64212.html</trackback:ping><description><![CDATA[<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id=Codehighlighter1_0_18_Open_Image onclick="this.style.display='none'; Codehighlighter1_0_18_Open_Text.style.display='none'; Codehighlighter1_0_18_Closed_Image.style.display='inline'; Codehighlighter1_0_18_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_0_18_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_0_18_Closed_Text.style.display='none'; Codehighlighter1_0_18_Open_Image.style.display='inline'; Codehighlighter1_0_18_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top><span id=Codehighlighter1_0_18_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**/</span><span id=Codehighlighter1_0_18_Open_Text><span style="COLOR: #808080">///</span><span style="COLOR: #008000">//pixel&nbsp;shader：</span><span style="COLOR: #808080"></span></span><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">sampler&nbsp;BaseTex;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>sampler&nbsp;SpotLightTex;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>sampler&nbsp;StringTex;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">struct</span><span style="COLOR: #000000">&nbsp;PS_INPUT<br><img id=Codehighlighter1_96_183_Open_Image onclick="this.style.display='none'; Codehighlighter1_96_183_Open_Text.style.display='none'; Codehighlighter1_96_183_Closed_Image.style.display='inline'; Codehighlighter1_96_183_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top></span><span id=Codehighlighter1_96_183_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_96_183_Open_Text><span style="COLOR: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;float2&nbsp;</span><span style="COLOR: #0000ff">base</span><span style="COLOR: #000000">&nbsp;:&nbsp;TEXCOORD0;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;float2&nbsp;spotlight&nbsp;:&nbsp;TEXCOORD1;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;float2&nbsp;text&nbsp;:&nbsp;TEXCOORD2;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">struct</span><span style="COLOR: #000000">&nbsp;PS_OUTPUT<br><img id=Codehighlighter1_204_236_Open_Image onclick="this.style.display='none'; Codehighlighter1_204_236_Open_Text.style.display='none'; Codehighlighter1_204_236_Closed_Image.style.display='inline'; Codehighlighter1_204_236_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_204_236_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_204_236_Closed_Text.style.display='none'; Codehighlighter1_204_236_Open_Image.style.display='inline'; Codehighlighter1_204_236_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_204_236_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_204_236_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;vector&nbsp;finalcolor&nbsp;:&nbsp;COLOR;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>PS_OUTPUT&nbsp;Main(PS_INPUT&nbsp;input)<br><img id=Codehighlighter1_271_521_Open_Image style="DISPLAY: inline" onclick="this.style.display='none'; Codehighlighter1_271_521_Open_Text.style.display='none'; Codehighlighter1_271_521_Closed_Image.style.display='inline'; Codehighlighter1_271_521_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_271_521_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_271_521_Closed_Text.style.display='none'; Codehighlighter1_271_521_Open_Image.style.display='inline'; Codehighlighter1_271_521_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_271_521_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_271_521_Open_Text style="DISPLAY: inline"><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;PS_OUTPUT&nbsp;&nbsp;output&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(PS_OUTPUT)</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;vector&nbsp;b&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;tex2D(BaseTex,&nbsp;input.</span><span style="COLOR: #0000ff">base</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;vector&nbsp;s&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;tex2D(SpotLightTex,&nbsp;input.spotlight);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;vector&nbsp;t&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;tex2D(StringTex,&nbsp;input.text);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;vector&nbsp;c&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;b&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;s&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;t;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;c&nbsp;</span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0.1f</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;output.finalcolor&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;c;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;output;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img id=Codehighlighter1_525_551_Open_Image onclick="this.style.display='none'; Codehighlighter1_525_551_Open_Text.style.display='none'; Codehighlighter1_525_551_Closed_Image.style.display='inline'; Codehighlighter1_525_551_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_525_551_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_525_551_Closed_Text.style.display='none'; Codehighlighter1_525_551_Open_Image.style.display='inline'; Codehighlighter1_525_551_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_525_551_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**/</span><span id=Codehighlighter1_525_551_Open_Text><span style="COLOR: #808080">/////////////////////</span><span style="COLOR: #008000">//主程序</span><span style="COLOR: #808080"></span></span><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #008000">//</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/dot.gif">..</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>BT&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;PSConstantTable</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">GetConstantByName(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">BaseTex</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ST&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;PSConstantTable</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">GetConstantByName(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">SpotLightTex</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TT&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;PSConstantTable</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">GetConstantByName(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">StringTex</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/dot.gif">..</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>BT,&nbsp;ST,&nbsp;TT&nbsp;为D3DXHANDLE类型，调试到这里时<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>这三个都为错误指针，PSConstantTable为获取正常的静态数据表指针，pixel&nbsp;shader编译也没问题，到底是哪里错了，抓狂。。<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span></div>
为什么编译没出错，获取静态数据表也没出错，就是在获取着色器里的sampler句柄时出错。。。谜团至今未解。。<br><br>
<img src ="http://www.cppblog.com/AstaTus/aggbug/64212.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/AstaTus/" target="_blank">AstaTus</a> 2008-10-16 22:39 <a href="http://www.cppblog.com/AstaTus/archive/2008/10/16/64212.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DirectX9 的 SetTextureStageState &amp; SetRenderState</title><link>http://www.cppblog.com/AstaTus/archive/2008/10/08/62640.html</link><dc:creator>AstaTus</dc:creator><author>AstaTus</author><pubDate>Wed, 08 Oct 2008 15:12:00 GMT</pubDate><guid>http://www.cppblog.com/AstaTus/archive/2008/10/08/62640.html</guid><wfw:comment>http://www.cppblog.com/AstaTus/comments/62640.html</wfw:comment><comments>http://www.cppblog.com/AstaTus/archive/2008/10/08/62640.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/AstaTus/comments/commentRss/62640.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/AstaTus/services/trackbacks/62640.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp; 这个两个函数的参数一大堆，害我头都大了2，3倍。。今天整理下已经能够大概清晰明白的参数。。<br>缓存存的是一个屏幕像素的值。。<br>&nbsp;&nbsp; 先来SetTextureStageState：</p>
<p>&nbsp;&nbsp; HRESULT SetTextureStageState(<br>&nbsp;&nbsp; DWORD Stage,<br>&nbsp;&nbsp; D3DTEXTURESTAGESTATETYPE Type,<br>&nbsp;&nbsp; DWORD Value<br>&nbsp;&nbsp; );</p>
<p>&nbsp;&nbsp; stage这个参数是指第几层纹理，1.2.3...9,， 这个版本的dx最多支持9层纹理。<br>&nbsp;&nbsp; Type：Defines the type of operation that a texture stage will perform.//定义对该纹理的哪个属进行设置，值很多。。。<br>&nbsp;&nbsp; Value: 指的是前面所选属性的值</p>
<p>type：<br>&nbsp;&nbsp;&nbsp; D3DTSS_ALPHAOP = 4,&nbsp;&nbsp;&nbsp;&nbsp; //alpha通道的运算，<br>&nbsp;&nbsp;&nbsp; D3DTSS_COLOROP = 1,&nbsp;&nbsp;&nbsp;&nbsp; //颜色的运算<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //这里的op 是operations，指对前面设置的颜色进行运算<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //既后面的2个type：D3DTSS_COLORARG1,D3DTSS_COLORARG2<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //或D3DTSS_ALPHAARG1，D3DTSS_ALPHAARG2 = 6<br>value：<br>&nbsp;&nbsp;&nbsp; D3DTOP_DISABLE = 1,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//该纹理无效，既不显示<br>&nbsp;&nbsp;&nbsp; D3DTOP_SELECTARG1 = 2,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//选择第1个颜色值（既D3DTSS_COLORARG1的值）作为纹理颜色输出<br>&nbsp;&nbsp;&nbsp; D3DTOP_SELECTARG2 = 3,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //选择第2个颜色值（既D3DTSS_COLORARG2的值）作为纹理颜色输出<br>&nbsp;&nbsp;&nbsp; D3DTOP_MODULATE = 4,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//将颜色1和颜色2相乘作为纹理颜色输出<br>&nbsp;&nbsp;&nbsp; D3DTOP_MODULATE2X = 5,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //将颜色1和颜色2相乘后左移1bit（用于增亮）作为纹理颜色输出 ，<br>&nbsp;&nbsp;&nbsp; D3DTOP_MODULATE4X = 6,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //将颜色1和颜色2相乘后左移2bit（用于增亮）作为纹理颜色输出<br>&nbsp;&nbsp;&nbsp; D3DTOP_ADD = 7,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;//将颜色1和颜色2相加作为纹理颜色输出<br>&nbsp;&nbsp;&nbsp; D3DTOP_ADDSIGNED = 8,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;///////////后面的参见SDK 都是对2个颜色进行运算<br>&nbsp;&nbsp;&nbsp; D3DTOP_ADDSIGNED2X = 9,<br>&nbsp;&nbsp;&nbsp; D3DTOP_SUBTRACT = 10,<br>&nbsp;&nbsp;&nbsp; D3DTOP_ADDSMOOTH = 11,<br>&nbsp;&nbsp;&nbsp; D3DTOP_BLENDDIFFUSEALPHA = 12,<br>&nbsp;&nbsp;&nbsp; D3DTOP_BLENDTEXTUREALPHA = 13,<br>&nbsp;&nbsp;&nbsp; D3DTOP_BLENDFACTORALPHA = 14,<br>&nbsp;&nbsp;&nbsp; D3DTOP_BLENDTEXTUREALPHAPM = 15,<br>&nbsp;&nbsp;&nbsp; D3DTOP_BLENDCURRENTALPHA = 16,<br>&nbsp;&nbsp;&nbsp; D3DTOP_PREMODULATE = 17,<br>&nbsp;&nbsp;&nbsp; D3DTOP_MODULATEALPHA_ADDCOLOR = 18,<br>&nbsp;&nbsp;&nbsp; D3DTOP_MODULATECOLOR_ADDALPHA = 19,<br>&nbsp;&nbsp;&nbsp; D3DTOP_MODULATEINVALPHA_ADDCOLOR = 20,<br>&nbsp;&nbsp;&nbsp; D3DTOP_MODULATEINVCOLOR_ADDALPHA = 21,<br>&nbsp;&nbsp;&nbsp; D3DTOP_BUMPENVMAP = 22,<br>&nbsp;&nbsp;&nbsp; D3DTOP_BUMPENVMAPLUMINANCE = 23,<br>&nbsp;&nbsp;&nbsp; D3DTOP_DOTPRODUCT3 = 24,<br>&nbsp;&nbsp;&nbsp; D3DTOP_MULTIPLYADD = 25,<br>&nbsp;&nbsp;&nbsp; D3DTOP_LERP = 26,<br>&nbsp;&nbsp;&nbsp; D3DTOP_FORCE_DWORD = 0x7fffffff,</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>type：<br>&nbsp;&nbsp;&nbsp; D3DTSS_COLORARG1 = 2,&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; D3DTSS_COLORARG2 = 3, <br>&nbsp;&nbsp;&nbsp; D3DTSS_ALPHAARG1 = 5,<br>&nbsp;&nbsp;&nbsp; D3DTSS_ALPHAARG2 = 6,<br>&nbsp;&nbsp;&nbsp; D3DTSS_COLORARG0 = 26,<br>&nbsp;&nbsp;&nbsp; D3DTSS_ALPHAARG0 = 27,<br>&nbsp;&nbsp;&nbsp; D3DTSS_RESULTARG = 28,<br>value:<br>&nbsp;&nbsp;&nbsp;&nbsp; 这里的TA指的是texture arguments ，<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; D3DTA_CONSTANT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//给当前纹理一个固定的值；<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; D3DTA_DIFFUSE；&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//diffuse的值作为参数 diffuse 可能有多个来源。。比如材质，vertex<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; D3DTA_SELECTMASK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Mask value for all arguments; not used when setting texture arguments 这句话不理解啊，为什么要伪装呢&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; D3DTA_SPECULAR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//取spercular 的值作为参数&nbsp; 来源同diffuse<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; D3DTA_TEMP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//待定。。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; D3DTA_TEXTURE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//用纹理的颜色值作为参数<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; D3DTA_TFACTOR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//待定。。</p>
<p>&nbsp;</p>
<p>////////////////////////////////////////////////////////////////////////////////////<br>以下还没来得及研究。。貌似叫难懂，还请高人指点啊</p>
<p><br>D3DTSS_BUMPENVMAT00 = 7,<br>D3DTSS_BUMPENVMAT01 = 8,<br>D3DTSS_BUMPENVMAT10 = 9,<br>D3DTSS_BUMPENVMAT11 = 10,<br>D3DTSS_TEXCOORDINDEX = 11,<br>D3DTSS_BUMPENVLSCALE = 22,<br>D3DTSS_BUMPENVLOFFSET = 23,<br>D3DTSS_TEXTURETRANSFORMFLAGS = 24,<br>D3DTSS_CONSTANT = 32,<br>D3DTSS_FORCE_DWORD = 0x7fffffff,</p>
<p>&nbsp;</p>
<p>、<br>HRESULT SetRenderState(<br>D3DRENDERSTATETYPE State,&nbsp;&nbsp;&nbsp;&nbsp; //所要设置的状态<br>DWORD Value&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //该状态的值<br>);<br>&nbsp;<br>State 的取值<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;</p>
<p>&nbsp;</p>
<img src ="http://www.cppblog.com/AstaTus/aggbug/62640.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/AstaTus/" target="_blank">AstaTus</a> 2008-10-08 23:12 <a href="http://www.cppblog.com/AstaTus/archive/2008/10/08/62640.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在地形中获取高度</title><link>http://www.cppblog.com/AstaTus/archive/2008/10/08/63474.html</link><dc:creator>AstaTus</dc:creator><author>AstaTus</author><pubDate>Wed, 08 Oct 2008 07:45:00 GMT</pubDate><guid>http://www.cppblog.com/AstaTus/archive/2008/10/08/63474.html</guid><wfw:comment>http://www.cppblog.com/AstaTus/comments/63474.html</wfw:comment><comments>http://www.cppblog.com/AstaTus/archive/2008/10/08/63474.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/AstaTus/comments/commentRss/63474.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/AstaTus/services/trackbacks/63474.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在地形中获得高度，必须要知道该点所在三角形三个角的坐标和这三个点的高度，然后根据线性插值估算出该点的高度，判断该点在哪个正方形中，比较容易，只要根据定点之间的间距，和地形的开始坐标就可求出该正方形的左下角顶点，但要再进一步算是哪个三角形，就有一个技巧了，<br>比如：<br><img height=251 alt="" src="http://www.cppblog.com/images/cppblog_com/astatus/kk.JPG" width=310 border=0><br>当正方形的边长一样时，顶点V在哪个三角形中只要判断坐标点 X + Y是否大于 边长就可以了。一般地形应该都是直角边相等的三角型吧。<br>然后再根据所确定下来的三角形的三个点进行线性插值就可以了。。 
<img src ="http://www.cppblog.com/AstaTus/aggbug/63474.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/AstaTus/" target="_blank">AstaTus</a> 2008-10-08 15:45 <a href="http://www.cppblog.com/AstaTus/archive/2008/10/08/63474.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DirectX框架的封装（未完成版）</title><link>http://www.cppblog.com/AstaTus/archive/2008/09/20/62369.html</link><dc:creator>AstaTus</dc:creator><author>AstaTus</author><pubDate>Sat, 20 Sep 2008 14:10:00 GMT</pubDate><guid>http://www.cppblog.com/AstaTus/archive/2008/09/20/62369.html</guid><wfw:comment>http://www.cppblog.com/AstaTus/comments/62369.html</wfw:comment><comments>http://www.cppblog.com/AstaTus/archive/2008/09/20/62369.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/AstaTus/comments/commentRss/62369.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/AstaTus/services/trackbacks/62369.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 最近看的那本directx 的书的源码都是用函数，没用c++的类，用起来超不爽，所以自己来，封装了下，现在才看到《顶点的颜色》的那章，所以类还很不完整，以后慢慢改进。。//Base.h/**//////////////////////////////////////////////#ifndef&nbsp;BASE_H#define&nbsp;BASE_H#include&nbsp;&lt;d...&nbsp;&nbsp;<a href='http://www.cppblog.com/AstaTus/archive/2008/09/20/62369.html'>阅读全文</a><img src ="http://www.cppblog.com/AstaTus/aggbug/62369.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/AstaTus/" target="_blank">AstaTus</a> 2008-09-20 22:10 <a href="http://www.cppblog.com/AstaTus/archive/2008/09/20/62369.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一个三角型。。</title><link>http://www.cppblog.com/AstaTus/archive/2008/09/18/62220.html</link><dc:creator>AstaTus</dc:creator><author>AstaTus</author><pubDate>Thu, 18 Sep 2008 12:30:00 GMT</pubDate><guid>http://www.cppblog.com/AstaTus/archive/2008/09/18/62220.html</guid><wfw:comment>http://www.cppblog.com/AstaTus/comments/62220.html</wfw:comment><comments>http://www.cppblog.com/AstaTus/archive/2008/09/18/62220.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/AstaTus/comments/commentRss/62220.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/AstaTus/services/trackbacks/62220.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;开始看directx了，发现学ogre，还是现弄懂directx会比较好点。<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这个程序主要体现了directx的一个基本的框架。<br>&nbsp;&nbsp;1.&nbsp;在初始化D3D设备后，开始设置顶点缓存，将要显示的点输入，<br>&nbsp; 2.用函数D3DXMatrixPerspectiveFovLH 求投影矩阵,该函数根据视域体的属性求出投影矩阵<br>&nbsp; 3.设置顶点渲染的方法，
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">device</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">CreateVertexBuffer(</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">sizeof</span><span style="COLOR: #000000">(Vertex),&nbsp;D3DUSAGE_WRITEONLY,&nbsp;D3DFVF_XYZ,&nbsp;D3DPOOL_MANAGED,&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">Triangle,&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;Vertex</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;vertices;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;Triangle</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Lock(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,(</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">**</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">vertices,&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;vertices[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;Vertex(</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1.0f</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">0.0f</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">2.0f</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;vertices[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;Vertex(</span><span style="COLOR: #000000">0.0f</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">1.0f</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">2.0f</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;vertices[</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;Vertex(</span><span style="COLOR: #000000">1.0f</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">0.0f</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">2.0f</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;Triangle</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Unlock();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;D3DXMATRIX&nbsp;proj;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;D3DXMatrixPerspectiveFovLH(</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">proj,&nbsp;D3DX_PI&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0.5f</span><span style="COLOR: #000000">,&nbsp;(</span><span style="COLOR: #0000ff">float</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">800</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">float</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">600</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">1.0f</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">1000.0f</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;device</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">SetTransform(D3DTS_PROJECTION,&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">proj);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;device</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">SetRenderState(D3DRS_FILLMODE,&nbsp;D3DFILL_WIREFRAME);</span></div>
<br><br>&nbsp; 4.在消息循环函数中<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">(msg.message&nbsp;</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">&nbsp;WM_QUIT)<br><img id=Codehighlighter1_31_357_Open_Image onclick="this.style.display='none'; Codehighlighter1_31_357_Open_Text.style.display='none'; Codehighlighter1_31_357_Closed_Image.style.display='inline'; Codehighlighter1_31_357_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_31_357_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_31_357_Closed_Text.style.display='none'; Codehighlighter1_31_357_Open_Image.style.display='inline'; Codehighlighter1_31_357_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_31_357_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"></span><span id=Codehighlighter1_31_357_Open_Text><span style="COLOR: #000000">{<br><img id=Codehighlighter1_79_112_Open_Image onclick="this.style.display='none'; Codehighlighter1_79_112_Open_Text.style.display='none'; Codehighlighter1_79_112_Closed_Image.style.display='inline'; Codehighlighter1_79_112_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_79_112_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_79_112_Closed_Text.style.display='none'; Codehighlighter1_79_112_Open_Image.style.display='inline'; Codehighlighter1_79_112_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(::PeekMessage(</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">msg,&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,&nbsp;PM_REMOVE))&nbsp;</span><span id=Codehighlighter1_79_112_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**/</span><span id=Codehighlighter1_79_112_Open_Text><span style="COLOR: #808080">////////////</span><span style="COLOR: #008000">//这里有个疑惑，什么时候if语句不成立呢</span><span style="COLOR: #808080"></span></span><br><img id=Codehighlighter1_115_176_Open_Image onclick="this.style.display='none'; Codehighlighter1_115_176_Open_Text.style.display='none'; Codehighlighter1_115_176_Closed_Image.style.display='inline'; Codehighlighter1_115_176_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_115_176_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_115_176_Closed_Text.style.display='none'; Codehighlighter1_115_176_Open_Image.style.display='inline'; Codehighlighter1_115_176_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_115_176_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"></span><span id=Codehighlighter1_115_176_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;::TranslateMessage(</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">msg);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;::DispatchMessage(</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">msg);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"><br><img id=Codehighlighter1_193_351_Open_Image onclick="this.style.display='none'; Codehighlighter1_193_351_Open_Text.style.display='none'; Codehighlighter1_193_351_Closed_Image.style.display='inline'; Codehighlighter1_193_351_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_193_351_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_193_351_Closed_Text.style.display='none'; Codehighlighter1_193_351_Open_Image.style.display='inline'; Codehighlighter1_193_351_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_193_351_Open_Text><span style="COLOR: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">float</span><span style="COLOR: #000000">&nbsp;currTime&nbsp;&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">float</span><span style="COLOR: #000000">)timeGetTime();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">float</span><span style="COLOR: #000000">&nbsp;timeDelta&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(currTime&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;lastTime)</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">0.001f</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ptr_display(timeDelta);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lastTime&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;currTime;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
这里是场景的渲染<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">device</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Clear(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,&nbsp;D3DCLEAR_TARGET&nbsp;</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000">&nbsp;D3DCLEAR_ZBUFFER,&nbsp;</span><span style="COLOR: #000000">0xffffffff</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">1.0f</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;device</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">BeginScene();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;device</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">SetStreamSource(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,&nbsp;Triangle,&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #0000ff">sizeof</span><span style="COLOR: #000000">(Vertex));&nbsp;&nbsp; //将Vertexbuffer中的顶点倒入到流当中<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;device</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">SetFVF(Vertex::FVF); //设置顶点的格式&nbsp; FVF已被我赋值为 FVF_XYZ<br>&nbsp;<img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;device</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">DrawPrimitive(D3DPT_TRIANGLELIST,&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">); //图元类型 三角形 个数为一个<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;device</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">EndScene();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;Swap&nbsp;the&nbsp;back&nbsp;and&nbsp;front&nbsp;buffers.</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;device</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Present(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">);</span></div>
<img src ="http://www.cppblog.com/AstaTus/aggbug/62220.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/AstaTus/" target="_blank">AstaTus</a> 2008-09-18 20:30 <a href="http://www.cppblog.com/AstaTus/archive/2008/09/18/62220.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>