Shader
文章平均质量分 73
努力奋斗才是真理
一个坚持写 bug的码畜
展开
-
Shader入门学习记录⑤——平台差异及语法规范
1. 渲染平台差异考虑到Unity 其极强的跨平台性,大多时候Unity为我们隐藏实现了很多细节,但是有时候还是需要我们自己处理他们。因为OpenGL 和DirectX 的屏幕空间坐标的差异。在水平方向上,两者的数值变化方向是相同的,但是在竖直方向上,两者是相反的。在OpenGL 中,原点(0,0)对应了屏幕的左下角,而在DirectX 中,原点(0,0)对应了屏幕的左上角。需要注意的是,我们不仅可以吧渲染结果输出到屏幕上,还可以输出到不同的渲染目标中。这时,我们需要使用渲染纹理来保存这些渲染结原创 2021-08-04 17:58:53 · 593 阅读 · 0 评论 -
Shader入门学习记录④——Unity提供的CG/HLSL的语义
1.什么是语义 我们可以在unity创建的默认Shader中经常看到,SV_POSITION、POSITION、COLOR0等,这些大写的字母就是CG/HLSL提供的语义。 通俗来讲,这些语义可以让Shader知道从哪里读取数据,并吧数据输出到哪里,在CG/HLSL的shader流水线中是不可或缺的。需要注意的是,Unity并没有支持所有的语义。通常情况下,输入输出这些变量并不需要特别的意义,也就是说,我们可以自行解决这些变量的用途。顶点着色器的输出结构中我们用COLOR0语义去描述color变量原创 2021-08-04 11:24:34 · 628 阅读 · 0 评论 -
Shader入门学习记录③——GPU流水线
上一章:CPU与GPU之间的通讯什么是GPU流水线:对于GPU流水线就是上篇中所讲述的概念阶段的后两个阶段——几何阶段和光栅化阶段,开发者无法拥有绝对的控制权,其实现的载体是GPU。GPU通过实现流水线话,大大加快了渲染的速度。虽然我们无法控制这两个阶段的实体细节,但GPU向开发者开发了很都控制权。几何阶段和光栅化阶段可以分成若干更小的流水线阶段,这些流水线阶段有GPU来实现,每个阶段GPU提供了不同的可配置性或者可编程性。顶点数据: 是由应用阶段加载到显存中,再由Draw Call 指定的。.原创 2020-09-09 14:22:16 · 359 阅读 · 0 评论 -
Shader入门学习记录②——CPU与GPU之间的通讯
上一章Shader入门学习记录——渲染流程1.把数据加载到显存中所有渲染需要的数据都需要从硬盘(Hard Disk Drive,HDD)中加载到系统内存(Random Access Memory ,RAM)中。然后,网格和纹理等数据有被加载到显卡上的存储空间——显存(VRAM)中。这就是因为,显卡对于显存的访问速度更快,而且大多数显卡对于RAM没有直接的访问权利。需要注意的是,真实渲染中需要加载到显存中的数据往往比上图所显示的情况要复杂许多。例如,顶点的位置信息、法线方向、顶点颜色、纹理坐标等。.原创 2020-09-07 19:37:39 · 605 阅读 · 0 评论 -
Shader入门学习记录①——渲染流程
此系列仅为学习Shader入门学习进行的笔记记录。专业知识内容大多引用与《Unity Shader入门精要》.什么是渲染流水线? 渲染流水线的工作任务在于有一个三维场景出发、生成(或者说渲染)一张二维图像。换句话说,计算机需要从一系列的顶点数据、纹理等信息出发,吧这些数据转换成一张人眼可见的图像。而这个工作通常是CPU和GPU共同完成的。在这里我们将这个流程分为3个阶段:应用阶段(Aplication Stage)、几何阶段(Geometry Stage)和光栅化阶段(Rasterizer Stra原创 2020-09-07 10:56:32 · 352 阅读 · 0 评论