D3D11:从 6 个图像创建立方体贴图

2024-01-11

如何在 D3D11 中从 6 个图像创建立方体贴图?我发现的所有示例仅使用一个 .dds。具体来说,如何上传立方体纹理的各个面?


它的工作原理如下:

D3D11_TEXTURE2D_DESC texDesc;
texDesc.Width = description.width;
texDesc.Height = description.height;
texDesc.MipLevels = 1;
texDesc.ArraySize = 6;
texDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
texDesc.CPUAccessFlags = 0;
texDesc.SampleDesc.Count = 1;
texDesc.SampleDesc.Quality = 0;
texDesc.Usage = D3D11_USAGE_DEFAULT;
texDesc.BindFlags = D3D11_BIND_SHADER_RESOURCE;
texDesc.CPUAccessFlags = 0;
texDesc.MiscFlags = D3D11_RESOURCE_MISC_TEXTURECUBE;

D3D11_SHADER_RESOURCE_VIEW_DESC SMViewDesc;
SMViewDesc.Format = texDesc.Format;
SMViewDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURECUBE;
SMViewDesc.TextureCube.MipLevels =  texDesc.MipLevels;
SMViewDesc.TextureCube.MostDetailedMip = 0;

D3D11_SUBRESOURCE_DATA pData[6];
std::vector<vector4b> d[6]; // 6 images of type vector4b = 4 * unsigned char

for (int cubeMapFaceIndex = 0; cubeMapFaceIndex < 6; cubeMapFaceIndex++)
{   
    d[cubeMapFaceIndex].resize(description.width * description.height);

    // fill with red color  
    std::fill(
        d[cubeMapFaceIndex].begin(), 
        d[cubeMapFaceIndex].end(), 
        vector4b(255,0,0,255));

    pData[cubeMapFaceIndex].pSysMem = &d[cubeMapFaceIndex][0];// description.data;
    pData[cubeMapFaceIndex].SysMemPitch = description.width * 4;
    pData[cubeMapFaceIndex].SysMemSlicePitch = 0;
}

HRESULT hr = renderer->getDevice()->CreateTexture2D(&texDesc, 
    description.data[0] ? &pData[0] : nullptr, &m_pCubeTexture);
assert(hr == S_OK);

hr = renderer->getDevice()->CreateShaderResourceView(
    m_pCubeTexture, &SMViewDesc, &m_pShaderResourceView);
assert(hr == S_OK);

这将为 CubeMap 创建六个“红色”图像。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

D3D11:从 6 个图像创建立方体贴图 的相关文章

  • 基于FBX SDK的FBX模型解析与加载 -(一)

    1 简介 FBX是Autodesk的一个用于跨平台的免费三维数据交换的格式 最早不是由Autodesk开发 但后来被其收购 目前被 众多的标准建模软件所支持 在游戏开发领域也常用来作为各种建模工具的标准导出格式 Autodesk提供了基于C
  • WJ的Direct3D简明教程2:Render-To-Texture

    转载请注明 来自http blog csdn net skyman 2001 Rendering to a texture is one of the advanced techniques in Direct3D On the one h
  • cuda学习笔记之异步并行执行

    异步函数使得主机端与设备端并行执行 控制在设备还没有完成前就被返回给主机线程 包括 kernel启动 以Async为后缀的内存拷贝函数 device到device内存拷贝函数 存储器初始化函数 比如cudaMemset cudaMemset
  • 关于Directly Mapping Texels to Pixels的例子

    原文 http msdn microsoft com en us library bb219690 28v vs 85 29 aspx 是关于在direct3d9中 对于屏幕空间中 将贴图映射到像素的问题 以下是pixel shader源代
  • 如何使用纹理贴图绘制曲面

    我想绘制一个带有纹理贴图的表面 但条件不是 理想 的 首先让我们解释一下我所拥有的 我在网格中有一组点 7000 它们是图像坐标 这一点并不能定义完美的平方 它不是网格 为了回答这个问题 我们假设我们有 9 分 让我们用图像来说明一下 X
  • 使用三角形网格纹理,无需读/写图像文件

    这是上一个问题的后续 请参阅在javafx上为三角形网格中的各个三角形着色 我认为这本身就是另一个话题 有没有一种方法 使用javafx 可以让我不必实际将图像文件写入磁盘 或外部设备 来使用纹理 换句话说 我可以使用特定的纹理而不必使用图
  • 如何在openGL中纹理随机凸四边形

    好吧 为了制作一个 我的世界 模组 我开始查找 openGL 教程 我对此仍然不太了解 因为我认为在进行我想要的小修改时我真的不应该这样做 但这让我很头疼 我想要做的就是能够将纹理正确映射到不规则的凹四边形 像这样 在尝试在游戏中运行代码之
  • 在 OpenGL 上映射 Wavefront .obj 纹理顶点

    一位艺术家给了我所有 3D 模型 让我导出为 obj 和 mtl 以便我可以使用 OpenGL 渲染它 但我不明白为什么纹理顶点大于 1 有时甚至是负值 看一下这个例子 vn 0 000717425 0 00106739 0 0099169
  • 在 DirectX 中显示视频

    在使用 XAudio2 和 Direct3D9 10 的应用程序中显示视频 带声音 的最佳 最简单方法是什么 至少它需要能够传输可能更大的视频 并考虑到窗口宽高比可能与视频不同的事实 例如通过添加信箱 尽管理想情况下我希望能够将视频嵌入到3
  • 插值纹理坐标

    我正在开发 OpenGL ES流体模拟 http www dgp toronto edu people stam reality Research pdf GDC03 pdf它使用纹理贴图来保存网格值 我需要迭代模拟以下循环的网格 for
  • 用 GDI 绘制 opengl/D3D 吗?

    我想知道是否可以使用 GDI 在 opengl direct3D 表面上进行绘制 如果是的话 该怎么做 我问的原因是因为我正在编写一个简单的应用程序来在游戏中绘制一些东西 这些东西都是 2D 或文本 例如帧速率信息 自定义十字准线 时钟等
  • CUDA Direct3D 互操作性已弃用?

    我一直在查看 CUDA 文档 并且直接 3D 11 互操作性 http docs nvidia com cuda cuda driver api group CUDA D3D11 DEPRECATED html group CUDA D3D
  • D3D11坐标系

    我的一些旧代码最终出现了一堆令人讨厌的黑客行为 以使事情 正确 工作 在移动物体和相机方面 例如必须采用 std sin yaw 而不是 std sin yaw 在实现在线其他地方找到的方程时 通常会让一切变得混乱 在许多情况下都达到了追踪
  • 当我每帧向单个顶点缓冲区写入数千次时,如何提高 Direct3D 的性能?

    我正在尝试编写一个 OpenGL 包装器 它允许我使用所有现有的图形代码 为 OpenGL 编写 并将 OpenGL 调用路由到 Direct3D 等效项 到目前为止 这种方法的效果出人意料地好 只是性能被证明是一个很大的问题 现在 我承认
  • C++ d3d hooking - COM vtable

    尝试制作一个 Fraps 类型的程序 请参阅评论以了解失败的地方 include precompiled h typedef IDirect3D9 STDMETHODCALLTYPE Direct3DCreate9 t UINT SDKVe
  • OpenGL4.5 - 绑定多个纹理和采样器

    我试图了解 OpenGL 4 5 中的纹理 纹理单元和采样器 我附上一张我想弄清楚的图片 我认为在我的示例中一切都是正确的 但我不太确定右侧带有问号的 1D 采样器 所以 我知道 OpenGL 提供了许多纹理单元 绑定点 可以在其中绑定纹理
  • 将按钮控件嵌入到现有 Direct3D 应用程序中

    我想将自己的内容覆盖在 Direct3D v9 游戏 由第三方制作 之上 叠加互动按钮 具体来说 我想覆盖一个可点击的按钮控件 就像 Steam 所做的那样 尽管我正在尝试一个更简单的界面 理想情况下 我能够覆盖 WPF 按钮或 Windo
  • 当 OpenGL 中同时绑定 1D 和 2D 纹理时,正确的行为是什么?

    假设你有这样的东西 glBindTexture GL TEXTURE 2D my2dTex glBindTexture GL TEXTURE 1D my1dTex glBegin 正确的 OpenGL 行为是什么 要绘制一维纹理 二维纹理还
  • 2D 网格的纹理贴图

    我有一组点 x y meshgrid 1 N 1 M 在常规二维上定义 N x M网格 我还有另一组要点 u v 这是原始网格的一些变形 即 u v f x y 但是我没有实际的f导致变形 如何将纹理映射到由定义的 变形 网格u v 即 给
  • 纹理映射 C++ OpenGL

    我已经阅读了相关内容 包括 Nehe 和此处的解决方案 但我找不到具体的答案 我正在尝试加载一张名为stars jpg 的照片 我想通过使用 uv 坐标映射它来使其成为场景的背景 方法是 glBegin GL QUADS glTexCoor

随机推荐

  • OpenXML 替换所有文档中的文本

    我有下面的一段代码 我想用 NewText 替换文本 Text1 这样就可以了 但是 当我将文本 Text1 放入表格中时 该表格不再适用于表格内的 Text1 我想在所有文档中进行此替换 using WordprocessingDocum
  • initWithFrame 未调用,但 awakeFromNib 已调用

    我正在尝试对 NSOutlineView 进行子类化 这是我的代码 OutlineViewSublcas h import
  • 什么是uWSGI主模式?

    如果我只运行一个应用程序 在主模式下运行 uWSGI 有什么好处 主模式是否提供进程管理优势 使其比通过 Upstart 运行更可靠 upstart只是一个进程管理器 uWSGI master可以访问worker的很多内存区域 事实上恰恰相
  • 实体框架 - SaveChanges() 未获取生成的身份密钥

    我在我的项目中使用实体框架 这真是一场噩梦 我有一个 SQL 数据库 有一个名为 Form 的表 Form有一个ID 它是PK和Identity 它是自动增加的 这次我这样做 Dim form as int32 Dim dbform As
  • 如何使用 Altair 按日期时间值突出显示条形

    如同 https altair viz github io gallery bar chart with highlighted bar html https altair viz github io gallery bar chart w
  • 调用模板函数时出现意外输出

    下面的代码是我正在经历的 cpp 测验的一部分 include
  • pandas concat 列ignore_index 不起作用

    我正在尝试列绑定数据框 例如 R 的cbind 确实 并且与熊猫有问题concat as ignore index True似乎不起作用 df1 pd DataFrame A A0 A1 A2 A3 B B0 B1 B2 B3 D D0 D
  • 使用剪贴板的 C# 多线程应用程序

    我正在开发一个多线程应用程序 我面临着必须使用剪贴板的问题 我正在使用 Qlikview API 并且我需要将表格复制到 Excel 中 问题是我认为会发生什么是这样的 在线程 1 上 我打开 QW 文档并复制表格 在将其粘贴到 Excel
  • 我应该在我的应用程序中使用 iOS 4 新功能吗?为什么?

    我正在更新我的一个应用程序 但我遇到了一个困境 在我想添加 iOS 4 独特功能的地方 我别无选择 只能仅针对支持的设备实现它们 这里没有困境 困境是当我有两种方法可以达到相同的效果时 一种是 旧方式 另一种是 新方式 一个很好的例子是使用
  • 在 Git Bash 中显示 SSH 密钥文件

    如何查看 Git Bash 中使用了哪个 SSH 密钥文件 我尝试了 git config get all 但收到错误消息 错误 参数数量错误 用法 git config 选项 使用哪个 SSH 密钥不是由 Git 决定的 而是由 SSH
  • psql: FATAL: 用户 Windows 8 密码验证失败

    我在 Windows 上安装了 postgresql 安装时它要求为该帐户创建一个用户 这在我的计算机上创建了一个名为 postgres 的新 Windows 用户 我也为其创建了一个密码 现在我想在 Windows 命令行上运行 psql
  • fork 的 Maven 项目使用什么版本标签?

    我经常不得不 fork 一个使用 Maven 的 Java 项目 通常在 github 上 当我分叉项目并进行更改时 我通常希望将版本剪切到我自己的私有 但在互联网上 maven 存储库 因此 我的自定义版本的版本标签应该是什么的问题 我做
  • 动态加载多个 JS 文件并在所有文件准备就绪时触发回调

    我有几个 JS 和 CSS 文件 需要使用 JavaScript 动态附加到 DOM 所描述的方法here https www nczonline net blog 2009 07 28 the best way to load exter
  • C# 中的私有静态变量和线程安全

    我的一位同事在多线程 C 应用程序中编写了以下代码 public class1 private static partialClass var1 new partialNonStaticClass public static method1
  • java.lang.SecurityException:发送短信:uid 10282 没有 android.permission.SEND_SMS

    我的应用程序不断崩溃并出现以下错误代码 java lang SecurityException Sending SMS message uid 10282 does not have android permission SEND SMS
  • 内核死亡并退出代码 1(VS 代码)

    这是我在 vs code 的交互窗口中运行代码时显示的错误消息 C Users rohit AppData Roaming Python Python38 site packages traitlets traitlets py 2195
  • NSTextFinder + 以编程方式更改 NSTextView 中的文本

    我有一个 NSTextView 我想使用查找栏 文本可以选择 但不可编辑 我以编程方式更改文本视图中的文本 当 NSTextFinder 在文本更改后尝试选择下一个匹配项时 此设置可能会崩溃 NSTextFinder 似乎保留了增量匹配的过
  • 当我改变页面时cookie消失

    PHP 我在我的login php页面中以这种方式设置cookie setcookie cookie id id 我打印 cookie 并且看到正确的值 但是当我使用以下命令更改页面时 header login url 我丢失了所有 coo
  • Oracle - 功能不起作用

    Oracle 功能不起作用 所以我不知道我做错了什么 我已经花了几个小时了 非常感谢一些帮助 所以基本上我有两张桌子 一张叫做student这是一个学生名单student no是主键 另一个表称为enrol其中基本上包含了学生注册的课程列表
  • D3D11:从 6 个图像创建立方体贴图

    如何在 D3D11 中从 6 个图像创建立方体贴图 我发现的所有示例仅使用一个 dds 具体来说 如何上传立方体纹理的各个面 它的工作原理如下 D3D11 TEXTURE2D DESC texDesc texDesc Width descr