shader学习笔记(一)

什么是shader?

Shader中文翻译 着色器,是一种较为短小的程序片段,用于高速图形硬件如何计算和输出图像,过去由汇编语言来编写,现在也可以使用高级语言来编写,

一句话概括:shader 是可编程图形管线的算法片段。

它主要分为两类,Vertex Shader和 Frament Shader

Vertex Shader顶点处理shader(计算机中图形都是无数个顶点组成的)

Frament Shader片段Shader(也可以说是顶点颜色填充处理)


什么是渲染管线?

渲染管线也称为染流水线,是显示芯片内部处理图形信号相互独立的并行处理单元。一个流水线是一个序列可以并行和按照固定顺序进行的阶段。每个阶段都从它的前一个阶段结束接收输入,然后把输出发给随后的阶段,就像一个在同一时间内,不同阶段不同汽车一起制造的装配线,传统的图形硬件流水线以流水的方式处理大量的顶点,几何图元和片段。

Vertex处理完后 Frament 处理

如果一次渲染有100顶点要处理,一次就会同时执行100次VertexShader的调用,类似上面说的汽车装配流水线,一次有100个车同时装配左车门,下一步骤就是同时装配右车门


下面是几个流程图


图1应用到展现的大概过程,GPU CPU分割线就是 调用GPUAPI 阶段的一次入口


图2和图1 意思大致一样


图3 GPU内的流程图,顺序从左到右。

第一步

Transform是指模型的空间变换也就是模型位置,

texGen(Texture coordinate generation) 纹理坐标生成

本来模型的纹理坐标是在做模型的时候赋予各个顶点的。

但是有时模型表面非常复杂,或者要做一些特效时,就需要其他方法来生成纹理坐标。

Lighting光照

这三部是一些GPU集成好的计算过程,无法修改。

VertexShader可以代替上面这些步骤,来自己编写这一步骤


第二步(不是很懂为什么不是之前先裁剪再进行顶点计算)

Culling裁剪(机的剥离不需要渲染的位置,减少GPU数据处理数量进行裁剪)

Depth Test深度测试(摄像机最近和最远的渲染区域)


第三步

Textuing纹理采样,就是一个顶点上应该渲染什么颜色值

Fog雾化,颜色值进行二次处理,做出雾的效果

上面这两点也是一些GPU集成的效果 这一步可以用FragmentShader来替代


第四部

Alpha Test进行透明测试,绘制变透明和全透明信息(不是很懂为什么这一步单独进行)

 

第五步

(教学上没讲,我查了下,渲染透明时需要做混合,也就是几次渲染颜色混合,尤其是透明渲染需要混合才能出来效果,类似调色板肯定需要 这个吧)

Blending就是控制透明的。处于光栅化的最后阶段。

这里例如我们给一个模型贴一个材质,那么在某个点计算出来颜色值称为源,而该点之前累积的颜色值。


渲染流程一次就是一次DC,

DrawCall是指CPU收集数据,传输给GPU调用GPU一次渲染命令,合理的控制DC可以增加你的渲染性能。

总结,渲染管线就是一次渲染流程,也是经常说的Draw Call一次DC。

Shader和材质,贴图的关系

Shader(着色器) 实际上就是一段脚本,它负责将输入的顶点数据以指定的方式和输入的贴图或者颜色算法,组合起来,然后输出,绘制图形单元可以依据这个输出来将图像绘制到屏幕上。输入的贴图或者颜色等,加上对应的shader,以及对 Shader的特定的参数,将这些内容打包存储在一起,就得到一个Material 所谓的材质球,之后我们可以将材质赋予有带有顶点信息的三维物体进行渲染输出了。

材质好比引擎最终使用的商品,Shader好比生产这种商品的加工方法,而贴图就是原材料。



�>����

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,558评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,002评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,036评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,024评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,144评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,255评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,295评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,068评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,478评论 1 305
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,789评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,965评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,649评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,267评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,982评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,223评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,800评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,847评论 2 351

推荐阅读更多精彩内容