登录 注册
当前位置:主页 > 资源下载 > 19 > 运用ECC p256曲线规范实现渲染带纹理的立方体算法

运用ECC p256曲线规范实现渲染带纹理的立方体算法

  • 更新:2024-09-09 22:36:26
  • 大小:6.56MB
  • 推荐:★★★★★
  • 来源:网友上传分享
  • 类别:其他 - 游戏开发
  • 格式:PDF

资源介绍

4.4 渲染带纹理的立方体 4.4.1 着色器资源视图 纹理与顶点缓存、索引缓存一样需要绑定到 GPU 上才能使用,所以先要再 HLSL 代码中 (参看 Tutorial07.fx)定义一个纹理类型资源,代码如下所示: Texture2D txDiffuse : register( t0 ); 纹理资源的语义用 register(tN), 其中 t 表示纹理,N 为寄存器的编号,由于只使用一 张纹理,所以 N 为 0。 在 C++代码中定义一个着色器资源视图 ID3D11ShaderResourceView 类型的变量,用 它来存储被加载到内存的 dds 图片。变量声明方式如下所示: ID3D11ShaderResourceView* g_pTextureRV = nullptr; 从硬盘加载一个 dds 图片到内存可以通过调用 CreateDDSTextureFromFile 函数来实 现,它有 4 个参数。第一个参数 ID3D11Device 类型,它是创建资源和枚举一个显卡性能的 DirectX3D 渲染设备指针;第二个参数字符串类型,它是要加载的 dds 图片文件路径;第三 个参数本例不使用,所有为空(nullptr);第四个参数是 ID3D11ShaderResourceView 类 型的引用,传入前面定义的着色器资源视图变量 g_pTextureRV 的应用即可。加载一个 dds 图片的代码如下所示: HRESULT hr = CreateDDSTextureFromFile(pd3dDevice, L"ship.dds", nullptr, &g_pTextureRV); if (FAILED(hr)) return hr; dds 图片加载到了内存以后,还需要在程序运行期间,每一帧渲染前,通过调用函数 ID3D11DeviceContext:: PSSetShaderResources 将这个着色器视图资源绑定到 GPU 上。 该函数有 3 个参数,第一个参数为图像处理器(GPU)的资源视图寄存器输入槽,本例只有 一个资源视图,只需要一个输入槽,因此这个参数设为 0;第二个参数为资源视图的个数, 本列只有一个资源视图,设为 1;第三个参数为所有资源视图的指针地址。绑定着色器视图 资源的具体代码如下所示: pd3dImmediateContext->PSSetShaderResources(0, 1, &g_pTextureRV); 程序退出前,要记得释放这个着色器视图资源,释放太资源的代码如下所示: SAFE_RELEASE(g_pTextureRV);