问题标签 [dds-format]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2247 浏览

file - 将 .3DC + .DDS 文件转换为 .OBJ + .MTL + .TGA

我将如何将 .3DC + .DDS 文件转换为 .OBJ + .MTL + .TGA?

0 投票
1 回答
1677 浏览

three.js - 我的 .obj 模型是白色的,即使我附加了一个 .mtl 文件到它

我正在研究three.js,并且正在尝试导入一个带有相应mtl 文件的.obj 文件。mtl 文件引用的纹理是 .bmp,所以我调整了 mtl 文件以指向所有 .dds 文件并将我的所有资产转换为 dds。问题是它只是渲染白色纹理。我不确定它是否相关,但它说不支持 PVRTC 压缩纹理。这是我用于 obj/mtl 加载器的代码:

这是我调整的 .mtl 文件的示例:

0 投票
1 回答
1044 浏览

opengl - 加载 DDS 纹理?

我正在阅读有关加载 DDS 纹理的信息。我读了这篇文章,看到了这个帖子。(我还阅读了关于 S3TC 的 wiki

我理解了大部分代码,但有两行我不太明白。

和:

和:

  1. 是什么blockSize?为什么我们8DXT116其他人使用?

  2. 当我们计算时到底发生了什么size?更具体地说,为什么我们要加3,除4然后乘blockSize

  3. 为什么我们要乘以2if mipMapCount > 1
0 投票
2 回答
669 浏览

unity3d - Unity中非白色dds纹理的白色预览?

我将纹理导入 Unity,但预览显示它是全白的,而显然不是。当我用它创建材质时,它保持白色。我能做什么,为什么会这样?:D 感谢您的进一步帮助。在此处输入图像描述

0 投票
1 回答
278 浏览

c++ - 无法在 C++(directx 应用程序)中打开文件访问被拒绝

我正在尝试使用我的 DirectX 11 项目打开 DDS 文件,但是,在大多数情况下,它拒绝打开它。每次失败时,我都会收到 E_ACCESSDENIED 错误。使其工作的唯一方法是将相对路径放入当前目录或子目录。如果它是父目录的相对路径,或者是绝对路径,则函数将失败。

问题是我希望使用 FileOpenPicker 打开图像,所以在每种情况下,我都会得到一个绝对路径......

我将分享我的功能:

然后,我调用函数来加载纹理......

好吧,既然我不知道为什么,这就是为什么我来这里请求你的帮助。

非常感谢你!

0 投票
2 回答
952 浏览

c# - 在 UWP 应用中加载和显示 DDS (DXT1) 文件

我想加载几个特别是 DXT1 的 directdraw 表面文件,并将它们显示在我非常简单的 UWP(主要是 C#)应用程序中。

我读过 DirectXTex,但我不知道这是否是最简单的方法,如果是,如何在 UWP 应用程序中使用它。

0 投票
1 回答
463 浏览

python - PyQt5 Python 3.5.0:将 DDS 文件转换为 QImage

我已经为此苦苦挣扎了一段时间,我觉得我已经用尽了所有的选择,所以我希望有人可以帮助我;

我正在尝试加载一堆 DDS 文件,将它们转换为 QImage 对象并将它们显示在 QGraphicsView 中。到目前为止,我一直在取得进步,但现在我遇到了我似乎无法通过的墙。到目前为止,我已经查阅了这些资源,但没有解决我的问题:

技术艺术家的帖子

github 位置

pyqt4 参考

QT论坛帖子,这才是真正开始的地方

和一堆旧的 Google Groups 讨论基本上都在做同样的事情(这一切似乎都是从最后一个链接开始的)

我目前在 PyQt5,Python 版本 3.5.0

问题是这样的:在 PyaQt5 中,似乎不支持 QGLPixelBuffer (无论如何我似乎都无法导入它,无论我尝试从哪个模块导入它,所以我认为它是)所以我仅限于使用QGLWidget 作为我的渲染平台。但是,上面的代码似乎没有正确调整我的纹理大小。无论我做什么,它们总是被渲染得太小。

我从技术艺术家线程中获取了这段代码(无论如何都是大部分),不幸的是,由于drawTexture rect设置为(-1,-1,2,2)的原因,从未给出解释,所以虽然我不是真的了解那里发生了什么,我认为这可能是问题所在。

如果有人对此有任何想法,我将不胜感激......

干杯

0 投票
2 回答
612 浏览

c++ - 如何在没有 CPU 副本的情况下上传 GPU 操作生成的 DXT5 压缩像素数据?

所以我想做的是:

  1. 将使用任何算法(在我的情况下为 AES-256)加密的文件加载到 GPU 内存(使用 CUDA)中。

  2. 使用我们现在拥有的所有 GPU 并行功能解密文件,并让它保留在 GPU 内存中。

  3. 现在告诉 OpenGL (4.3) 内存中有一个纹理需要从 DDS DXT5 中读取和解压缩。

第 3 点是我怀疑的地方。由于要在 OpenGL 中加载压缩的 DDS DXT5,因此必须使用压缩类型 (GL_COMPRESSED_RGBA_S3TC_DXT5_EXT) 和指向图像数据缓冲区的指针调用 openGL::glCompressedTexImage[+ 2D|3D|2DARB...]。

那么,简而言之->有没有办法将GPU内存中已经存在的纹理缓冲区地址传递给OpenGL(DDS格式)?如果没有这个选项,我需要将 AES 解密文件传输回 CPU 并告诉 OpenGL 将其再次加载到 GPU 中......

非常感谢您提供任何帮助或简短示例;)

0 投票
1 回答
240 浏览

c++ - DXT3 (BC2) 压缩格式 alpha 数据

我正在尝试从 dds 文件中读取图像信息。我设法让 DXT1 和 DXT5 格式正常工作,但是我对 DXT3 格式(也称为BC2)的 alpha 数据有疑问。查看压缩BC2 块的布局时,它显示 16 像素块的 alpha 数据存储在数据的前 8 个字节中,每个值占用 4 位。

这是否意味着,由于存储的 alpha 值只能是 0-15,所以实际的 alpha 数据计算如下:

这是正确的,还是我看错了?

0 投票
1 回答
1172 浏览

opengl - 本地 Imagemagick 未正确转换为 DDS (DXT5)

我在使用 ImageMagick 命令行实用程序使用 DXT5 压缩算法将 png 正确转换为 DDS 文件时遇到了一些困难。

这是使用Version: ImageMagick 6.8.9-10 Q16 x86_64 2016-09-14. 我可以在本地查看文件,所以它看起来是正确的。然而,当我将它加载到 OpenGL 中时,我只看到到处都是伪影(随机颜色像素)。要确认生成的文件是 DDS 文件:

这产生了:

您可以看到包含DDS标题的标题的第一部分。

所以对于咯咯笑,我决定,嘿,也许我应该尝试使用单独的实用程序转换此图像,以确保文件没有任何问题。然后当我将此文件加载到 OpenGL 时,它工作正常。

文件下载后,我也再次检查了标题并看到:

  1. 看来在线工具正在使用 ImageMagick,和我一样。
  2. 如果您查看第一个结果,八进制 20-23 是:120 014 000 000与在线结果:300 012 011 000。根据这个索引 20-23 指向“字节数”

所以基本上,我的基本问题是:如何使用 ImageMagick 将 png 文件正确转换为 dds 纹理?

更新:

在线 imagemagick 生成的图像头是:

我的本地版本的 imagemagick 生成了图像标题:

所以我想知道我是否在某处遗漏了一个标志以使其正确写入在线版本可能正在使用的标题?