计算机图形学
文章平均质量分 65
eric_dma
这个作者很懒,什么都没留下…
展开
-
Utgard风格的平铺和Arm FrameBuffer Compression(AFBC)
Utgard风格的平铺和Arm FrameBuffer Compression(AFBC)是两种不同的纹理和帧缓冲区压缩技术,它们在性能上有显著差异。原创 2024-09-19 16:16:07 · 1190 阅读 · 0 评论 -
glsl中使用自定义的struct
opengl的glsl spec说可以使用自定义的struct,这里做下测试,验证下,整体来说,这个struct对uniform单独使用没有什么作用,是给shader程序中数据整理用的。glGetUniform的时候和数组一样,name要指定到最基本的类型中,unform没有给自定义的类型设置值的,这个要在高版本中用uniform block。和C中不一样,glsl的语法中的是不需要typedef,struct定义完了直接就是类型。原创 2024-08-28 10:19:59 · 167 阅读 · 0 评论 -
GPU性能相关的工具
一般常见的都是这种。android提供的一个工具GPU Debugger,可以分析GLES程序的GPU 性能:http://tools.android.com/tech-docs/gpu-profiler。GPU的性能测试工具比较多,已知的各个开发厂家是有自己开发的性能测试工具,一般市场上开源或通用的性能测试工具,主要是跑定制的渲染场景,统计平均帧率,经过包装得到跑分值。AMD的GPU性能呢个工具:https://gpuopen.com/radeon-gpu-profiler-1-4/原创 2024-06-18 14:02:31 · 756 阅读 · 0 评论 -
纹理压缩(二) ETC格式
ETC:每个子块中只存储一个基色,剩下的由亮度变换得到。先存一个基色和一个luma index值,通过luma index从亮度表中查出亮度四个亮度修改值,然后加到基色上得到四个基色,再按照后面的索引表中的索引进行填充即可。ETC1:两个ETC拼在一起,做一个4x4的像素块,分两中模式,individual模式中两个基色color0、color1都是444格式的,differential模式中,color0用555格式,color1用3bit的差值存储,R1=R0+dR0得到。剩下两个标志位:d原创 2022-05-06 17:09:33 · 2658 阅读 · 1 评论 -
纹理压缩(一)BC格式
BC系列:从BTC和CCC演变过来的BC1(S3TC、DXT1):是CCC中将索引改成两位表示,用64bit压缩16个像素,压缩比4bpp。两个32bit的数,第一个32bit中存了两个基色color0和color1,第二个32bit中存了一个4x4的索引表,每个索引是2bit。通过color0和color1算出另外两个基色,计算方法有两种,先比较两个基色大小,如果是color0<=color1,就表示图像中有alpha值,这个alpha只能表示1bit的值,即:全透明或不透明联众,blac原创 2022-05-06 09:56:49 · 1619 阅读 · 0 评论