zoukankan      html  css  js  c++  java
  • D3D10中的Resource 01

    Resource即完成绘制需要的和显示内容相关的数据。顶点坐标,法线,颜色,贴图坐标,纹理坐标和纹理数据都属此列。

    1. 

    Resource分为两类:buffer和textures。可以简单粗暴的认为前者用于存放非像素数据,后者存放像素数据。

    所有的Resource根据创建时有没有定义其数据类型又分为typed和typeless两种。

    typed,即,resource的空间内的数据已经规定好是某类型,比如32位整数。

    typeless,即resource空间固定,但数据类型是不一定的,由运行时决定。

    2. 

    buffer分为Vertex buffer,index buffer和constant buffer。

    constant buffer是shader使用的。constant buffer可以是由应用程序定义,也可以由effect文件定义,应用程序使用ID3D10Effect::GetVariableByName访问,用Set*方法操作。

    3.

    texture分为1D,2D和3D。

    与texture相关的另有 TextureArray, ArraySlice,MipSlice 和 Subresources。

    4.

    资源视图 resource view,主要是为了将同一资源用于不同渲染阶段stage而出现的概念。

    --------------------------------------------------------------------------------------------- 

    D3D的渲染管线分为如下阶段

     

    每个阶段使用到的Resource是不一样的,D3D提供API用于绑定Resource和Stage。见表。

     

    比较奇怪的是OM阶段,输出Resource里面的Buffer。完全理解不能。!!!(6/19 2012, 大概是支持矢量显示设备。)

    Resource除了需要确定它被使用在哪个渲染阶段stage,还需要确定它将如何被使用。

    以上是D3D10_USAGE的可选值。

    前俩都容易理解。

    Staging用于从别的Resource复制数据的Resource。此时第一个Resource是CPU不可访问的Default,第二个Resource是Staging,CPU可访问。

    Immutable是不变的Resource。

    下表列举了你想如何使用Resource,与此对应的恰当的Usage设置值。

     

    如果不确定肿么个用法,defau也是个选择。Shader的Constant Buffer总是设置为Default的。


    ---------------------------------------------------------------------------------------------  

    创建Buffer和Texture的方法,详见

    http://msdn.microsoft.com/en-us/library/windows/desktop/bb205130(v=vs.85).aspx 
    http://msdn.microsoft.com/en-us/library/windows/desktop/bb205131(v=vs.85).aspx 

    ---------------------------------------------------------------------------------------------  
  • 相关阅读:
    ASP.NET常见命名空间及其功能描述
    C#中的里氏替换原则
    Java中的split函数的用法
    shader之旅-7-平面阴影(planar shadow)
    OpenGL三角形的双面不同颜色的绘制
    MATLAB squeeze 函数
    matlab 常用函数汇总
    第一个OpenGL程序
    Github 留言系统
    Paging 简单自由的分页生成器
  • 原文地址:https://www.cnblogs.com/mumuliang/p/2549930.html
Copyright © 2011-2022 走看看