百人计划
文章平均质量分 94
杳戢
咸鱼
展开
-
技术美术百人计划 | 《3.6 纹理压缩》笔记
纹理压缩是为了解决内存、带宽问题,专为在计算机图形渲染系统中存储纹理而使用的图像压缩技术。原创 2024-08-28 09:14:41 · 633 阅读 · 0 评论 -
技术美术百人计划 | 《3.7 移动端GPU的TB(D)R架构》笔记
核心目的为了降低带宽,减少功耗,但渲染帧率上并不比IMR快优点给消除OverDraw提供了机会:PowerVR有HSR技术,Mali有Forward Pixel Killing技术,都有为了最大限度减少被遮挡的pixel的texturing和shading缓存友好(Cache friendly),在cache的读写速度要比全局内存中快得多(以降低帧率为代价,降低带宽、功耗)缺点这个操作需要在vertex阶段之后,将输出的几何数据写入到DDR,然后才被fragment shader读取。原创 2024-08-26 14:46:04 · 671 阅读 · 0 评论 -
技术美术百人计划 | 《3.5 Early Z与Pre Z》笔记
其中的逐片元操作详细流程:在传统的渲染管线中,ZTest是在逐片元操作的Blending阶段进行的。其中的一部分像素不会通过ZTest,它们仍然在进行深度测试之前还需要执行前面的一系列操作,这会造成性能的浪费,而Over Draw也是这么产生的。应用阶段(CPU)->几何阶段(顶点着色器)->early-z(提前深度测试)->光栅化阶段的片元着色器->各种测试(深度测试,透明度测试,模板测试等)->颜色缓冲区(buffer)原创 2024-08-23 14:31:46 · 852 阅读 · 0 评论 -
《3.4 渲染路径》笔记补充-GPU架构
具体的执行过程类似于Z Test,如下图所示,对于不透明物件,只保留最近的像素,对于透明的物件而言,其对应的像素数据都会被保留。在PC上,显存是GPU直接访问的内存,是独立的,而在Mobile的AP SOC芯片中CPU和GPU使用的内存其实是在同一个物理内存颗粒上的,但GPU有逻辑上独立的内存区间。这种渲染架构下信息传出的特点:对于每一个具体的绘制,渲染管线里的读写操作都是直接在显存和GPU中传输数据的,比如说上图中灰色和蓝色之间交互的箭头,向上的箭头表示读取,向下的箭头表示写回。原创 2024-08-21 16:08:31 · 661 阅读 · 0 评论 -
技术美术百人计划 | 《3.4 渲染路径》笔记
MSAA是一种抗锯齿技术,即多重采样抗锯齿(MultiSampling Anti-Aliasing,简称MSAA),这是一种在OpenGL中的特殊的超级采样抗锯齿(SSAA),MSAA主要是对 Z-Buffer 和 Stencil Buffer(模板缓冲)进行SSAA处理,其原理是通过提取像素界面周围的颜色信息,通过混合颜色信息来消除高对比界面所产生的锯齿。和延迟渲染的区别:用更少的buffer信息,着色计算的时候用的是forward,所以第三步开始都是前向渲染(可以对不同的物体进行不同的光照模型)。原创 2024-08-21 16:02:26 · 743 阅读 · 0 评论 -
技术美术百人计划 | 《3.2 混合与剔除》笔记
混合Blend 就是把两种颜色混在一起。具体就是把某一像素位置原来颜色和将要会上去的颜色,通过某种方式或者算法混在一起,从而实现新的效果。例如:PS内的正片叠底,叠加都属于混合模式的一种。ShaderLab 命令:Blend - Unity 手册虽然所有图形 API 和硬件都支持混合功能,但对某些混合操作的支持较为有限。启用混合会禁用 GPU 上的一些优化(主要是删除隐藏的表面/Early-Z),这些优化会增加 GPU 帧时间。混合Blend 就是把两种颜色混在一起。原创 2024-08-21 11:42:44 · 921 阅读 · 0 评论 -
技术美术百人计划 | 《3.3曲面细分着色器TESS与几何着色器GS 》笔记
基于三角形构建一个草地,从简单的生成三角形开始,涉及Triangle Stream的使用,基于切线空间的顶点操作以及与曲面细分shader的联合使用, 同时可以说一下曲面细分参数的确定方式(基于distance, edge)体现具体的使用方法,通过一个quad可以看出不同数值对细分的影响(之后可以使用在草地中),基于shader再回顾一遍各个参数的作用。②草地等效果(与曲面细分结合):可以自定义草的画法,再和曲面细分着色器结合,就可以得到一个可以动态调整草密度的一个草地效果。将立方体逐渐细分为球体;原创 2024-08-20 13:35:47 · 1073 阅读 · 0 评论 -
技术美术百人计划 | 《3.1深度测试与模板测试 》笔记
模板缓冲区-FrameBuffer模板缓冲区可以为屏幕上的每一个像素点保存一个无符号整数值(通常为8位int 0-255)。这个值的意义根据程序的具体应用而定。模板测试渲染过程中,可以用这个值与预先设定好的参考值作(ReferenceValue)比较,根据结果来决定是否更新相应的像素点的颜色值。这个比较的过程就称为模板测试。执行顺序:透明度测试->模板测试->深度测试。如果模板测试通过,相应的像素点更新,否则不更新。原创 2024-08-13 17:23:33 · 500 阅读 · 0 评论