问题标签 [pvrtc]
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.
opengl-es - 是否可以部分更新 pvrtc 纹理
我创建了一个 1024*1024 纹理
然后像这样更新它的第一个 512*512 部分
此更新生成glerror 1282(invalid operation)
,如果我更新整个 1024*1024 区域都可以,似乎 pvrtc 纹理无法部分更新。
是否可以部分更新 pvrtc 纹理,如果它是怎么样的?
ios - 在 iOS 中加载 pvr.ccz 纹理时出错
我正在使用 TexturePacker 为我的 iOS 游戏创建精灵表。使用生成的 PNG 纹理(RGBA 4444)一切正常,纹理在我的代码中正确加载并正确显示在 iPad 屏幕上,但是一旦我用 PVRTCI 4bpp RGBA 像素格式将这些纹理替换为 PVRC 格式(pvr.ccz) ,我从控制台收到每个纹理的以下消息:
“SKTexture:加载图像资源时出错:”/var/containers/Bundle/Application/657D8692-594C-4180-AA8B-6CE35962C8D5/FurryLight Puzzles.app/Puzzle0.atlasc/Puzzle0.2.pvr.ccz”
TexturePacker 生成的纹理都是 POT 和 SQUARE 格式(最大 2048x2048),plist 文件位于我的目录 .atlasc 和 pvr.ccz 文件中。事实上,我只是用带有 pvr.ccz 文件的新 .atlasc 目录将 Xcode 中的树着色器中的先前 .atlasc 目录替换为 PNG 文件。我所有的代码都在 Swift 3.0 中
我错过了什么,有什么地方可以调音吗?当我在树内单击 pvr.ccz 纹理时,Xcode 会正确显示它们。
ios - PVR 压缩与 PNG
我正在为 iOS 上的游戏测试我的精灵表的不同压缩。令人惊讶的是,我得到了更重要的内存 (RAM) 使用 PVR 2 位 alpha 而不是 PNG 32 (RGBA 4444)。一旦精灵表加载到内存中,我会说使用 PVR 2 位而不是 PNG 32 的消耗要高出 25%。我正在使用带有 xCode 的 Instruments 来验证物理设备(iPad Air 2)上的内存使用情况
我正在使用 TexturePacker 来生成我的精灵表。
我在任何地方都读过 PVR 2 或 4 的内存消耗比 PNG 32 少得多。这怎么可能?
编辑:
这很奇怪,因为根据我的观察,PVRTC 4 位 RGBA 使用的内存 (RAM) 比 PNG 32 多得多,根据 XCode 的 Instruments 几乎是 3 倍。PVRTC 2 位 RGBA 比 PNG 32 RGBA 4444 高 25%。我说的是实时 RAM 消耗,而不是磁盘大小,这无关紧要,也不是问题。似乎 iOS 管理 PVR 的方式与它应该做的不同,尤其是在将它们加载到 RAM 时。
编辑2:
我的纹理是 2048x2048,有 POT 并且有正方形格式。一切工作正常,除了 RAM 消耗比它应该的高得多。我使用通过 USB 电缆连接到我的 Mac 的物理 iPad Air 2 设备进行所有测试。我在 xcode 中使用 Instruments 来实时验证和跟踪 RAM 消耗。我通过切换到纹理除以 2 (1024x1024) 的 PNG 8 位(索引)格式解决了 RAM 消耗问题。我在代码中制作了一个比例 x2 来恢复正常大小的纹理。RAM 消耗下降到 240 MB(PNG 8 位索引)而不是 950 MB(PVR 2 位 RGBA)。我的游戏是一个视频拼图(15 fps 的 8 秒视频循环)并使用了很多精灵。(TexturePacker 生成的每个拼图中有 43 个精灵表,每个精灵表中大约有 130 个精灵)
ios - 统一减少 iOS 上的资产大小
我的 android 构建大小是 30mb,但我的 iOS 构建大小(appstore 大小)是 400mb。经过一番研究,我发现这可能是因为资产压缩。但是,我在论坛上找到了非常旧的答案,我不知道该怎么做。
我有几个尺寸为 8192x1080 的 PNG 图像,由于质量原因我无法缩小(我知道这很大,但假设没有办法缩小或分割它):
我应该怎么办 ?
- 使用插件?哪一个 ?
- 创建一个资产包?我从来没有用过它。
- 使我的图像 8192x8192 ?当我这样做时,大小增加到 85mb。
- 不使用 Sprite 类型而是使用 Advanced 类型?
另一个问题; 当我的图像不是 ARGB 而是 RGB 时,第二条警告消息从 PVRTC 变为 ETC1。它的原因和后果是什么?
谢谢您的帮助。
ios - 解压缩 PVRTC 压缩图像格式?
我正在尝试从我认为使用 PVRTC 格式的 iPhone 游戏中打开一些纹理(如下图所示)
然而,我在打开它方面所做的一切尝试都失败了。PVRTexTool 不会解压它,程序只打开扩展名为 .PVR 的文件并且无法识别它。我也尝试过使用 TexturePacker,但它也无法识别。这几天让我感到困惑,任何对解压缩文件的帮助将不胜感激。
opengl-es - 使用 alpha 通道将 ktx 转换为 png
我从 Android 游戏中提取了 KTX 纹理,并尝试使用 PVRTexToolCLI 转换它们,但是 PNG 不包含任何 alpha 通道信息。此外,一些 KTX 图像不是 2 倍的大小,并且 PVRTexToolCLI 不支持它们。这个问题有什么解决方案吗?
swift - SKTexture 错误地识别与 SceneKit 一起使用的 .pvrtc 纹理大小
我已经尝试使用texturetool
GUIPVRTexTool
生成每像素 4 位格式的 .pvrtc 纹理,通过 Swift 通过 SceneKit 加载SKTexture
,然后最终提供用作漫反射纹理,SCNSphere
如下代码
我
CGRect
在上面指定要指定里面的子纹理。我在要生成的源纹理中包含了 2 个纹理。上面是云纹理,下面是漫反射纹理。
因为texturetool
我使用了以下命令
因为PVRTexTool
我确实尝试了两种格式 => PVRTC 4bpp 和 PVRTCII 4bpp 都适用于 OpenGL 2.0。
一个显着的区别是该工具生成为 .pvr,但前者生成为 .pvrtc。因此,我在代码中使用相应的后缀,具体取决于用于生成此类纹理的工具。
不管我做什么,都是空洞透明的。球体没有纹理。从调试日志中,我通过
它显示
为什么它只能识别 128x128 的大小。相反,我的尺寸为 4096x4096。
另外,如果使用以下代码
它显示了如下奇怪的结果。
它应该是正常的地球纹理。
可能是什么问题?以及如何通过 SKTexture 使用 .pvrtc 纹理和 SceneKit?
编辑
(寻找解决方案仍在开发中)
- 首先感谢评论中看到的@KnightOfDragon。加载的奇怪纹理是默认的 X 图像,当它找不到要加载的纹理时。现在我明白了
SKTexture: Error loading image resource: "dc_4096.pvrtc"
。因此 128x128 分辨率的纹理应该是 X 默认图像。 - 这是正确的。似乎
SKTexture
不支持 .pvr 类型,因为@KnightOfDragon 在评论中指出了我。所以我只是尝试使用MTLTexture
viaMTKTextureLoader
并且现在能够将纹理渲染到球体上。我接下来面临的问题是如何以与SKTexture
via相同的方式抓取完整纹理的一部分SKTexture(rect: ...<rect to grab>, in: ...<SKTexture>...)
。我知道MTLTexture
支持 .pvr 的线索是查看它支持的像素格式列表。
converters - (PVRTexTool) 如何在 GUI 中选择多个图像?
(重做这个问题,因为我需要更多“细节”)图像可以一张一张选择。可以选择它们并使用“沿轴翻转”工具来适应模型的 UV。问题是,大量的纹理使 GUI 混乱,选择每个纹理可能需要很长时间。顺便说一句,我正在获取 Real Racing 3 的纹理。etc.dds 纹理是使用 RR3 bms 脚本从 .z 文件中解压缩的。然后我使用这个名为“dds2.bms”的 bms 脚本将其转换为 pvr。然后我可以在 PVRTexTool 中打开它们。问题是它们都是垂直翻转的。如上所述,它们可以使用工具翻转。当我有一辆车有一堆涂装/纹理时,选择每一个并翻转它需要很长时间。有没有办法在不使用 CLI 工具的情况下批量翻转它们?
three.js - 如何在three.js中加载带有cubemap的ktx文件?
我ktx
用cubemap
. 它编码为pvrtc
. 然后加载到这个文件中three.js
。我可以看到这个控制台警告。
我看不到应用此文件的材料。
我正在使用three.js
版本0.107.0
我怎样才能使用这个ktx
文件?