一款基于帧捕捉的开源图形调试器应用设计

描述

作者:Dev Tech

如果你是一名图形开发者,那么你很可能在某个项目中遇到过RenderDoC,它是一款图形调试器,帮助很多开发者节省了大量的时间,现在,RenderDoC在PowerVR上获得了支持,并且也支持 PVRTC压缩格式。

RenderDoC是什么?

RenderDoc是一款基于帧捕捉的开源图形调试器,它遵从MIT协议,涵盖了一系列的图形API和开发平台:Vulkan、D3D11、D3D12、OpenGL、OpenGL ES以及Windows 7/10、Linux和安卓等操作系统。

RenderDoc起初是一个业余项目,仅支持Windows和D3D11,对于游戏开发者来说,RenderDoc天生就是一款可靠的调试器,它一直关注于实际的应用案例、直观的工作流程并且不断满足开发人员的要求。随着时间的推移,它逐渐扩展到支持更多的API和平台上,目前该软件的作者与Valve Software公司达成合约全职开发这个项目。

最新推出的V1.0版本增加了很多新的特性,因为三星和谷歌提供的帮助,安卓平台也实现了对OpenGL ES和Vulkan的支持。

RenderDoc的操作与PVRTrace非常的相似,它们都是采集每帧数据用于调试,PVRTrace适合调试多帧数据,RenderDoc则非常适合检查每一帧的细节。因此这些工具在使用时无疑是互补的。

imagination

纹理查看器选项:在这个视图中你可以查看所有输入和输出纹理,同时也包括了PVRTC。现在还提供了叠加层,支持所有的mip层、纹理分片和表面。

具体特性都包括哪些?

RenderDoc包括非常多有用的特性,尤其在分析图形应用时起到了非常大的帮助。

•  灵活的纹理查看器,包括不同可见范围、通道以及子资源的查看。同时支持复杂的自定义着色器实现可视化的纹理打包或解码。
 •  网格查看器展示了顶点流的输入和输出,通过可视化选项来查找选择具体要检查的顶点资源。
 •  有组织的管道状态视图,能够监测不同类型的资源。
 •  着色器编辑,可以替换不同的着色来查看对于数据帧的影响。
 •  统一资源查看器,链接资源到UI,以及查看所涉及到的API调用。
 •  运行调试特性,比如书签、资源重命名,使项目案例能够自动保存,通过注释能够定位到具体的问题。
 •  为渲染对象调试不同的图层,可以显示哪些像素通过或失败,比如深度、模板或背面消除等,以便能够快速的诊断问题。
 •  导出缓存、网格和纹理数据到文件,可借助外部工具进一步检查。
 •  深度Python脚本能够访问所有UI上提供的数据,控制整个分析过程。

关于RenderDoC的完整使用说明可以详细查看应用文档。

Imagination科技与RenderDoc

如上文所述,PVRTC是PowerVR和iOS设备上的实际格式,目前RenderDoc也开始支持这种格式。

PVRTC已经获得虚幻4、Unity、CryEngine和Lumberyard等游戏引擎的支持。Imagination已经与RenderDoc的开发者展开合作增加Vulkan对PVRTC纹理支持、选择PowerVR设备来测试RenderDoc,确保可靠的使用体验,一些用于测试的设备包括:

 •  魅族 Pro 7 Plus
 •  宏碁 Iconia One 10 B3-A40
 •  宏碁 Chromebook R13

你可以查看我们的网站获取更多关于我们平台的信息。

imagination

管道流查看选项:你可以看到所有已绑定到图形应用的资源

PVRTC

PVRTC是PowerVR系列专有的纹理压缩方案,提供每个像素4或2比特的颜色数据压缩(4/2bpp)。它使用插值和调制方案来压缩纹理数据,纹理数据被编码为两幅低分辨率的图像,以及全分辨率、低比特精度的调制信号。更多关于这个压缩技术的具体信息可以查看白皮书:使用低频信号调制实现纹理压缩。

目前PVRTC已经分为两代,PVRTC1和PVRTC2都支持4bpp和2bpp压缩比,它们大体上相似,但是PVRTC2有其他的优势:

 •  图像质量:一般来说,相比PVRTC1,PVRTC2将提供更好的图像质量,在色彩大面积不连续的图像中,不需要纹理处理技术比如边界扩展,图像质量将显著提高。在skybox中的图像边界也不再需要了,而且非贴片的纹理也会有很大的改善。这主要是因为添加了专门的模式来处理纹理部分之间的高对比区域。

 •  无二次幂限制维度:PVRTC2为开发者提供了任意大小的NPOT(无二次幂限制)纹理,它是一个没有维度的纹理,不需要限制在二次幂范围内。

 •  子纹理(Sub-texturing):与PVRTC1不同,sub-texturing仅在PVRTC2中支持,提供数据字边界(分别适用于PVRTC2 4bpp或2bpp的4x4或8x4)。这将会进一步支持应用程序的纹理映射等技术,应该注意的是,这需要在要替换纹理的各部分启动硬转换标志模式。

PVRTC在相同的数据内存中支持不透明(RGB)和半透明(RGBA)纹理(不像其他格式比如S3TC等需要额外的数据来支持一个完整的alpha通道)。PVRTC具备竞争力的压缩比率(4bpp或2bpp)同时提供非常高的图像质量,与未压缩的32位像素纹理相比这表示节省内存空间比达到8:1或16:1。Alpha通道数据是在每个数据字基础上编码的,因此完全不透明的纹理部分就不需要对Alpha通道信息进行不必要的编码了。

在PVRTC中,数据范围可达到64位的字,每个数据都包括低分辨率图像和4x4或8x4调制数据中的某一个像素。与传统基于块的格式不同,PVRTC使用相邻的数据字来重建原始图像,而前者使用单个块的内容来重建纹理上的像素点(texel),因此,与基于块的压缩技术相比,这将会带来相当可观的视觉增强。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分