﻿<?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++博客-lucky420-文章分类-DirectX 10 学习与研究</title><link>http://www.cppblog.com/lucky420/category/5054.html</link><description /><language>zh-cn</language><lastBuildDate>Tue, 20 May 2008 23:08:38 GMT</lastBuildDate><pubDate>Tue, 20 May 2008 23:08:38 GMT</pubDate><ttl>60</ttl><item><title>1.1 输入装配器阶段</title><link>http://www.cppblog.com/lucky420/articles/31461.html</link><dc:creator>随便写写</dc:creator><author>随便写写</author><pubDate>Mon, 03 Sep 2007 05:44:00 GMT</pubDate><guid>http://www.cppblog.com/lucky420/articles/31461.html</guid><wfw:comment>http://www.cppblog.com/lucky420/comments/31461.html</wfw:comment><comments>http://www.cppblog.com/lucky420/articles/31461.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/lucky420/comments/commentRss/31461.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/lucky420/services/trackbacks/31461.html</trackback:ping><description><![CDATA[输入装配器阶段的目的是：<br>1 读取用户填充的数据缓存，将它们装配成图元，然后传送到管线中。<br>2 附加系统生成信息<br><br><strong>该阶段的使用步骤：<br></strong>1 创建输入缓存，包括顶点和索引缓存<br>2 创建输入布局对象<br>&nbsp;&nbsp;&nbsp;输入布局对象的创建基于着色器签名（signature），所以如果几个着色器的签名相同，就可以共享输入布局对象。<br>&nbsp;&nbsp;&nbsp;多个输入流现在称为多个输入槽（input slot）<br>3 绑定输入布局对象到AI阶段（还包括绑定顶点和索引缓存）<br>4 指定图元类型<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;与D3D9的图元类型相比，只是多出来2种带邻接顶点的线和2种带邻接顶点的三角形<br>5 绘制 将输出推入管线<br>&nbsp;&nbsp;&nbsp;加入了对实例化（instancing）技术的支持<br><br><strong>系统生成值：<br></strong>系统生成值由IA阶段生成<br>顶点ID&nbsp;&nbsp;&nbsp;VS<br>图元ID&nbsp;&nbsp;&nbsp;GS/PS<br>实例ID&nbsp;&nbsp;&nbsp;VS
<img src ="http://www.cppblog.com/lucky420/aggbug/31461.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/lucky420/" target="_blank">随便写写</a> 2007-09-03 13:44 <a href="http://www.cppblog.com/lucky420/articles/31461.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>1.0 渲染管道阶段简介</title><link>http://www.cppblog.com/lucky420/articles/31315.html</link><dc:creator>随便写写</dc:creator><author>随便写写</author><pubDate>Mon, 03 Sep 2007 04:34:00 GMT</pubDate><guid>http://www.cppblog.com/lucky420/articles/31315.html</guid><wfw:comment>http://www.cppblog.com/lucky420/comments/31315.html</wfw:comment><comments>http://www.cppblog.com/lucky420/articles/31315.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/lucky420/comments/commentRss/31315.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/lucky420/services/trackbacks/31315.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;D3D10 可编程渲染管道是为实时应用设计的。它被分成7个阶段，其中3个阶段是可编程的。数据流图如下：<br>
<div align=center src_cetemp="/images/cppblog_com/lucky420/d3d10pipeline.jpg"><img height=464 alt="" src="http://www.cppblog.com/images/cppblog_com/lucky420/d3d10pipeline.jpg" width=306 border=0></div>
<br>所有阶段都可以通过D3D10API进行配置。三个可编程阶段都建立在通用着色器内核（common shader core）之上，都使用HLSL编写。各部分功能简述如下：<br>
<p><span><br>1 .&nbsp;&nbsp;&nbsp;输入装配器阶段</span><span>(IA)&nbsp;<br>&nbsp;&nbsp;&nbsp;为管线提供数据（三角面，线或点）<br><br></span><span>2 .&nbsp;&nbsp;&nbsp;顶点着色器阶段(VS)<br>&nbsp;&nbsp;&nbsp;输入一个顶点，执行坐标变换、蒙皮（Skinning）和光照计算，输出一个顶点。<br></span></p>
<p><span>3.&nbsp;&nbsp;&nbsp;&nbsp;几何着色器阶段(GS)<br></span></p>
<p>&nbsp;&nbsp;&nbsp;处理整个图元（对于三角形是三个顶点，对于线是两个顶点，对于点是一个顶点），还包括相邻图元的顶点数据（对于三角形有三个相邻三角形，即额外的三个顶点，对于线则有额外两个顶点）。支持有限的几何放大和缩小。输入一个图元，GS可能丢弃该图元或输出一个至多个图元。<br><span>4.&nbsp;&nbsp;&nbsp; 流输出阶段(SO)<br>&nbsp;&nbsp;&nbsp;在图元数据传输到光栅器的过程中，将图元数据从管线中输出至内存。可以将图元数据同时输出至光栅器和内存，或者只输出到内存。输出到内存的数据可以作为输入返回到管线，也可以被CPU访问。</span></p>
<p><span>5.&nbsp;&nbsp;&nbsp; 光栅器阶段(RS)<br></span></p>
<p><span>&nbsp;&nbsp;&nbsp;光栅器执行裁剪，为PS准备数据，并决定如何调用PS。<br>6.&nbsp;&nbsp;&nbsp; 象素着色器阶段(PS)<br></span></p>
<p><span>&nbsp;&nbsp;&nbsp;接收经RS插值过的数据，计算逐顶点的数据&nbsp;&nbsp;&nbsp;&nbsp;<br>7.&nbsp;&nbsp;&nbsp; 输出合并阶段(OM)<br>&nbsp;&nbsp;&nbsp;&nbsp;将输出数据（PS输出值，深度及模板数据）与渲染目标和深度模板缓存中的数据进行合并来生成最终的管线结果。</span></p>
<img src ="http://www.cppblog.com/lucky420/aggbug/31315.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/lucky420/" target="_blank">随便写写</a> 2007-09-03 12:34 <a href="http://www.cppblog.com/lucky420/articles/31315.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>0.3 引用计数 </title><link>http://www.cppblog.com/lucky420/articles/31305.html</link><dc:creator>随便写写</dc:creator><author>随便写写</author><pubDate>Fri, 31 Aug 2007 06:43:00 GMT</pubDate><guid>http://www.cppblog.com/lucky420/articles/31305.html</guid><wfw:comment>http://www.cppblog.com/lucky420/comments/31305.html</wfw:comment><comments>http://www.cppblog.com/lucky420/articles/31305.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/lucky420/comments/commentRss/31305.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/lucky420/services/trackbacks/31305.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Direct3D10&nbsp;管线的设置函数（SetXXX）不会保存DeviceChild对象的引用。所以DeviceChild对象要自己保证在被管线使用的过程中不会被销毁。否则管线对该对象的访问会出错。Direct3D10&nbsp;管线拥有的是DeviceChild的弱引用。因此会在DeviceChild对象被销毁后置为空。作为对照，D3D9管线会保存一个对设备对象的引用。<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DeviceChild的子对象包括着色器，状态对象以及输入布局对象。 
<img src ="http://www.cppblog.com/lucky420/aggbug/31305.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/lucky420/" target="_blank">随便写写</a> 2007-08-31 14:43 <a href="http://www.cppblog.com/lucky420/articles/31305.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>0.2 API层次</title><link>http://www.cppblog.com/lucky420/articles/31304.html</link><dc:creator>随便写写</dc:creator><author>随便写写</author><pubDate>Fri, 31 Aug 2007 06:24:00 GMT</pubDate><guid>http://www.cppblog.com/lucky420/articles/31304.html</guid><wfw:comment>http://www.cppblog.com/lucky420/comments/31304.html</wfw:comment><comments>http://www.cppblog.com/lucky420/articles/31304.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/lucky420/comments/commentRss/31304.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/lucky420/services/trackbacks/31304.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;D3D10 的运行时是分层次的。首先是处于核心的基本功能层，然后再是处于外围的可选功能层次，如辅助开发层等。<br><br><strong>核心层</strong><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;核心层是默认存在的，它提供了API函数和驱动程序之间的直接映射，尽量减少高频度调用时的开销。核心层最注重的是性能，所以它只做最关键的验证。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;除核心层外的所有层都是可选的。基本规则是，每个层次添加新的功能，但不改变已有的功能。当调用D3D10CreateDevice创建设备时，核心层总会被创建。可选层通过设置<a href="mk:@MSITStore:E:\Program%20Files\Microsoft%20DirectX%20SDK%20(August%202007)\Documentation\DirectX9\directx_sdk.chm::/D3D10_CREATE_DEVICE_FLAG.htm"><u><font color=#800080>D3D10_CREATE_DEVICE_FLAG</font></u></a> 标记来选择。<br><br><strong>调试层<br></strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;调试层提供大量的参数和一致性验证。可以通过 <strong style="COLOR: #008000">ID3D10InfoQueue</strong> 接口来获取调试层返回的字符串队列。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;为使用调试层，必须安装DirectX SDK（来获得D3D10SDKLayers.DLL），并在D3D10CreateDevice时提供D3D10_CREATE_DEVICE_DEBUG 标记。使用调试层会使程序帧率变慢。<br><br><strong>切换到参考（Switch-to-Reference）层</strong></p>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;为程序提供在硬件抽象设备（HAL）和参考软件设备（REF）之间切换的功能。在D3D10CreateDevice时选择D3D10_DRIVER_TYPE_REFERENCE设备类型来创建参考设备。或者提供D3D10_CREATE_DEVICE_SWITCH_TO_REF 标记来同时创建硬件抽象设备参考设备。使用 <a href="mk:@MSITStore:E:\Program%20Files\Microsoft%20DirectX%20SDK%20(August%202007)\Documentation\DirectX9\directx_sdk.chm::/ID3D10SwitchToRef_SetUseRef.htm"><u><font color=#0000ff>ID3D10SwitchToRef::SetUseRef</font></u></a>.函数来进行HAL和REF之间的切换。<br><br><strong>线程安全层<br></strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;线程安全层使得程序的多个线程可以安全地使用一个设备。线程安全层默认开启，所以D3D10默认就是线程安全的，而D3D9不是。 
<img src ="http://www.cppblog.com/lucky420/aggbug/31304.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/lucky420/" target="_blank">随便写写</a> 2007-08-31 14:24 <a href="http://www.cppblog.com/lucky420/articles/31304.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>0.1 状态对象介绍</title><link>http://www.cppblog.com/lucky420/articles/31290.html</link><dc:creator>随便写写</dc:creator><author>随便写写</author><pubDate>Fri, 31 Aug 2007 05:33:00 GMT</pubDate><guid>http://www.cppblog.com/lucky420/articles/31290.html</guid><wfw:comment>http://www.cppblog.com/lucky420/comments/31290.html</wfw:comment><comments>http://www.cppblog.com/lucky420/articles/31290.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/lucky420/comments/commentRss/31290.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/lucky420/services/trackbacks/31290.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;D3D10的渲染管线被分成5个阶段（stage），每个阶段都有许多的状态（state），不同的状态决定了阶段的不同特征。当渲染不同的物体时，通常需要切换某些个阶段的某些状态。在D3D9中，没有明显的阶段划分，所有的状态设置都是直接针对渲染管线的设置，比如顶点格式、渲染状态、纹理阶段状态等，程序可以单独修改每一个状态。D3D10 用阶段状态对象来包装一组相关的状态。对渲染管线的修改只能通过状态对象来进行，而不能直接修改单个状态。最多可以创建4096个状态对象，切换状态对象而不是直接修改状态能大大减少渲染管线的状态切换开销。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;状态对象通过几个途径来提升性能：在状态对象创建时进行状态的验证，可以在硬件中缓存状态对象，减少状态切换函数调用时的参数传递。状态对象是不可以修改的，应该在程序初始化时创建所有可能用到的状态对象。或者将状态写入到Effect中，Effect系统会自动高效地管理状态对象的创建和销毁。<br><br>输入布局（Input-Layout）状态<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;输入布局状态决定了输入集成器（Input Assembler）阶段如何解析输入缓冲中的数据。这组状态由输入布局状态对象来包装，输入布局状态对象用 <strong>ID3D10InputLayout </strong>接口来表示，使用 <a href="mk:@MSITStore:E:\Program%20Files\Microsoft%20DirectX%20SDK%20(August%202007)\Documentation\DirectX9\directx_sdk.chm::/ID3D10Device_CreateInputLayout.htm"><u><font color=#800080>ID3D10Device::CreateInputLayout</font></u></a>来创建，使用<a href="mk:@MSITStore:E:\Program%20Files\Microsoft%20DirectX%20SDK%20(August%202007)\Documentation\DirectX9\directx_sdk.chm::/ID3D10Device_IASetInputLayout.htm"><u><font color=#800080>ID3D10Device::IASetInputLayout</font></u></a>来应用到管线中。<br>D3D9中使用FVF或者顶点声明结构来定义输入的顶点缓冲格式，D3D10中则使用输入元素结构（D3D10_INPUT_ELEMENT_DESC）来定义。这个结构和顶点声明结构很类似。<br><br>光栅器（Rasterizer）状态<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;光栅器状态包括填充（fill）模式，精选（cull）模式，裁剪（clipping），多重采样状态等，决定光栅化阶段的特征。完整的状态列表在D3D10_RASTERIZER_DESC结构中描述。光栅器状态对象用 <strong>ID3D10RasterizerState</strong> 接口来表示。使用<a href="mk:@MSITStore:E:\Program%20Files\Microsoft%20DirectX%20SDK%20(August%202007)\Documentation\DirectX9\directx_sdk.chm::/ID3D10Device_CreateRasterizerState.htm"><u><font color=#800080>ID3D10Device::CreateRasterizerState</font></u></a>来创建，使用<a href="mk:@MSITStore:E:\Program%20Files\Microsoft%20DirectX%20SDK%20(August%202007)\Documentation\DirectX9\directx_sdk.chm::/ID3D10Device_RSSetState.htm"><u><font color=#800080>ID3D10Device::RSSetState</font></u></a>来应用到管线中。<br><br>深度模版状态<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;深度模版状态设定输出合并阶段是进行的深度模版测试状态。这组状态用D3D10_DEPTH_STENCIL_DESC结构来描述。深度模版状态对象用 <strong>ID3D10DepthStencilState</strong> 接口来表示。使用<a href="mk:@MSITStore:E:\Program%20Files\Microsoft%20DirectX%20SDK%20(August%202007)\Documentation\DirectX9\directx_sdk.chm::/ID3D10Device_CreateDepthStencilState.htm"><u><font color=#800080>ID3D10Device::CreateDepthStencilState</font></u></a>来创建，使用<a href="mk:@MSITStore:E:\Program%20Files\Microsoft%20DirectX%20SDK%20(August%202007)\Documentation\DirectX9\directx_sdk.chm::/ID3D10Device_OMSetDepthStencilState.htm"><u><font color=#800080>ID3D10Device::OMSetDepthStencilState</font></u></a>来应用到管线中。<br><br>混合状态<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;设定输出合并阶段的混合特性。用<strong>ID3D10BlendState</strong>接口来表示，用<a href="mk:@MSITStore:E:\Program%20Files\Microsoft%20DirectX%20SDK%20(August%202007)\Documentation\DirectX9\directx_sdk.chm::/ID3D10Device_CreateBlendState.htm"><u><font color=#800080>ID3D10Device::CreateBlendState</font></u></a>.来创建，用<a href="mk:@MSITStore:E:\Program%20Files\Microsoft%20DirectX%20SDK%20(August%202007)\Documentation\DirectX9\directx_sdk.chm::/ID3D10Device_OMSetBlendState.htm"><u><font color=#0000ff>ID3D10Device::OMSetBlendState</font></u></a>来应用。<br><br>取样器状态<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;取样器对象用来在着色器阶段对纹理内存进行取样，用D3D10_BLEND_DESC结构来描述。在D3D10中，取样器不再和一个具体的纹理绑定在一起，而是可以对任意给的纹理进行取样。用<strong>ID3D10SamplerState</strong>接口来表示。用<a href="mk:@MSITStore:E:\Program%20Files\Microsoft%20DirectX%20SDK%20(August%202007)\Documentation\DirectX9\directx_sdk.chm::/ID3D10Device_CreateSamplerState.htm"><u><font color=#800080>ID3D10Device::CreateSamplerState</font></u></a>.来创建。用 <a href="mk:@MSITStore:E:\Program%20Files\Microsoft%20DirectX%20SDK%20(August%202007)\Documentation\DirectX9\directx_sdk.chm::/ID3D10Device_VSSetSamplers.htm"><u><font color=#0000ff>ID3D10Device::VSSetSamplers</font></u></a>, <a href="mk:@MSITStore:E:\Program%20Files\Microsoft%20DirectX%20SDK%20(August%202007)\Documentation\DirectX9\directx_sdk.chm::/ID3D10Device_GSSetSamplers.htm"><u><font color=#0000ff>ID3D10Device::GSSetSamplers</font></u></a>,&nbsp;或 <a href="mk:@MSITStore:E:\Program%20Files\Microsoft%20DirectX%20SDK%20(August%202007)\Documentation\DirectX9\directx_sdk.chm::/ID3D10Device_PSSetSamplers.htm"><u><font color=#0000ff>ID3D10Device::PSSetSamplers</font></u></a>.来设定到某个着色器阶段。<br><br><br></p>
<img src ="http://www.cppblog.com/lucky420/aggbug/31290.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/lucky420/" target="_blank">随便写写</a> 2007-08-31 13:33 <a href="http://www.cppblog.com/lucky420/articles/31290.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>0.0 D3D 10 简介及新特性</title><link>http://www.cppblog.com/lucky420/articles/31270.html</link><dc:creator>随便写写</dc:creator><author>随便写写</author><pubDate>Fri, 31 Aug 2007 04:02:00 GMT</pubDate><guid>http://www.cppblog.com/lucky420/articles/31270.html</guid><wfw:comment>http://www.cppblog.com/lucky420/comments/31270.html</wfw:comment><comments>http://www.cppblog.com/lucky420/articles/31270.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/lucky420/comments/commentRss/31270.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/lucky420/services/trackbacks/31270.html</trackback:ping><description><![CDATA[<p><span style="FONT-SIZE: 12pt; COLOR: #008000">说明：本系列是我在学习DX10 过程中的一些翻译和总结，主要内容来自DXSDK（Aug2007） 及NVIDIA，ATI等技术文档。</span><br><br>与其前代 D3D 9 相比，D3D10 的渲染管线有着革命性的变化，它基于全新一代的软件、硬件平台，为下一代的游戏和3D多媒体应用开发提供强大的支持。<br>软件平台上，D3D10基于Windows Vista 操作系统的Windows Vista Display Driver Model (WDDM)，因此只能在Windows Vista系统下运行。如果要考虑跨平台性的问题，参考一下OpenGL3吧。<br>硬件平台上，目前硬件支持D3D10的显卡只有NVIDIA 公司的GeForce 8系列（包括从高端到低端的8800，8600，8500，8400）和AMD.ATI公司的Radeon HD 2000(2900,2600,2400)系列。<br>参考链接：<br>NVIDIA <a href="http://www.nvidia.com/object/geforce_family.html">http://www.nvidia.com/object/geforce_family.html</a><br>ATI <a href="http://ati.amd.com/products/hdseries.html">http://ati.amd.com/products/hdseries.html<br></a><br>D3D10在D3D9上增加的新特性主要有：<br><br>1.&nbsp;&nbsp;&nbsp;&nbsp;渲染管线中新增加了几何着色器阶段，几何着色器可以处理整个图元及邻接信息<br>2.&nbsp;&nbsp;&nbsp;&nbsp;流输出阶段可以将渲染管线生成的顶点数据输出到内存中。<br>3.&nbsp;&nbsp;&nbsp;&nbsp;定义了一些新的对象和样式来减少运行时及驱动程序在验证和处理时的CPU开销。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;将管线状态封装成不可变的状态对象<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;将着色器常数变量（constant variable）封装成常数缓存。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;在几何着色器中支持逐图元的材质设置和切换<br>4.&nbsp;&nbsp;&nbsp;&nbsp;新的资源类型和格式（如在着色器中可以索引访问的纹理数组）<br>5.&nbsp;&nbsp;&nbsp;&nbsp;使用资源视图来分隔资源在内存中的格式和资源的使用、存取方式。也就是使用了Model-View 模式<br>6.&nbsp;&nbsp;&nbsp;&nbsp;定义了一套完整的功能集。不再保留对遗留硬件功能的支持，即完全放弃了向下的兼容性。D3D10API只针对D3D10及以上级别的显示硬件。<br>7.&nbsp;&nbsp;&nbsp;&nbsp;分层的运行时。在核心层提供基础的功能，而在外网层次提供可选的、拥有辅助开发的功能<br>8.&nbsp;&nbsp;&nbsp;完全的HLSL集成，HLSL位于核心层中。所有的着色器程序都使用HLSL编写，都在通用着色器内核中实现。<br>9.&nbsp;&nbsp;&nbsp;&nbsp;增加了支持的渲染目标、纹理和采样器的数量。对着色器代码的长度不再有限制。<br>10.&nbsp;&nbsp;&nbsp;&nbsp;完整支持：&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* 着色器中的整数和位操作<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;在着色器中对深度/模板缓存和对多重采样资源的读回（访问）<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;多重采样 <span style="COLOR: #ff0000">Alpha-to-Coverage</span>(<span style="COLOR: #ff0000">???</span>不懂)<br>&nbsp;</p>
<img src ="http://www.cppblog.com/lucky420/aggbug/31270.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/lucky420/" target="_blank">随便写写</a> 2007-08-31 12:02 <a href="http://www.cppblog.com/lucky420/articles/31270.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>