美文网首页
学习Shader前的准备

学习Shader前的准备

作者: JervieQin | 来源:发表于2017-10-13 20:44 被阅读0次

众所周知,图形渲染都是由GPU来完成的。

GPU优势

  1. GPU具有高并发结构,因此在处理图形数据和复杂算法得效率上要高于
    CPU。

2.GPU采用流式并行计算模式,可对每个数据进行独立得并行计算,所谓“对数据进行独立计算”,即,流内任意元素得计算不依赖于其它同类型数据。在顶点处理程序中,可以同时处理N个顶点数据。

GPU的缺陷
由于“任意一个元素的计算不依赖于其他同类型数据”,导致“需要知道数据之间相关性”的算法。GPU中的控制器少于CPU,导致控制能力有限。

什么是渲染管线

渲染管线也称渲染流水线,是显示芯片内部处理图形信号相互独立的并行处理单元。一个流水线是一序列可以并行和按照固定顺序执行的阶段。每个阶段都从它的全一阶段接受输入,然后把输出发给随后的阶段。

渲染流水线

3D应用接口会调用OpenGL,Dx的API接口是硬件和图形处理程序的中间层。

光栅化就是把计算机显卡中计算的数据进行细分

片段着色器最终的目的是编程屏幕上显示的像素

UnityShader工作流程

导入素材到unity >调用图形API进行GPU运算 >顶点运算结果交给像素处理器 >交给帧缓冲。
帧缓冲容纳计算机屏幕依次显示的信息,但不止包含颜色信息。

流程细分

1.渲染管道线首先进行各种Transform(顶点坐标变化),TexGen(纹理生成),Lighting(光照)
(不利于用户扩展)->被Vertex Shader替代

2.裁剪、深度测试:不去渲染看不见的面,以及相机最远看到哪里(超过即剔除)

3.纹理采样:光栅化阶段。从纹理中找到对应点数据,雾化就是需不需要将远处朦胧话(片段着色器能力范围)

4.Alpha测试: 绘制透明物体,
5.Blending:混合最终图像。

CPU通过图形接口调用GPU来渲染,这个调度过程是昂贵的(即DrawCall
),这就会产生性能瓶颈。

Shader和材质、贴图的关系

Shader负责将输入的顶点数据以指定的方式和输入的贴图或颜色组合起来,然后输出。

一句话总结:材质是最终商品,Shader是加工方法,贴图是材料

主流的shader编程语言
HLSL (DirectX) , GLSL(OpenGL), CG(Nvida)

1.OpenGL是一个功能强大,调用方便的底层图形库。它的特点是与硬件无关的软件接口,可以在不同的平台之间移植。

2.DirectX它只运用与微软的平台。

3.CG 由于 HLSL移植性较差但在游戏领域深入人心;GLSL移植性好但语法独成一家。他们不能互相支持,CG却可以被OpenGL和DirectX广泛支持的图形处理器编程语言。但是CG语言并不是和前两者是同一层次上的语言,而是他们的上层,即CG程序是运行在OpenGL和DX标准顶点和像素着色的基础上的。

怎么选?
如果我们使用unity开发多平台游戏,我们最好选择CG语言。

相关文章

  • 学习Shader前的准备

    众所周知,图形渲染都是由GPU来完成的。 GPU优势 GPU具有高并发结构,因此在处理图形数据和复杂算法得效率上要...

  • 【UnityShader_Ojors的脚印】 UnityShad

    在学习 Unity Shader 前,最好是对 CG Shader 有一定的了解,起码要知道 Shader 数据类...

  • Unity Shader初识--基本结构

    学习Shader第0步 :) Unity Shader不是真正的Shader,Unity Shader是使用Sha...

  • 学习前的准备

    今天学习了超级个体的发刊词和”车日路“模型,就将我学到的东西,在这里做一个记录。 发刊词中,古典就超级个体专栏的来...

  • 学习前的准备

    俗话说磨刀不误砍柴工,你在学习前提前了解了一些关于学习的知识,会让你事半功倍。 首先你要坚定学习前的基本信念:拥有...

  • Unity Shader 入门(一)简介

    此系列为本人学习Unity Shader的随笔记录: Shader和Material Shader(着色器)实际上...

  • Unity Shader 基础入门

    阅前提示 记录Unity Shader 学习笔记,拿起这块砖,砸开Shader的门。适合人群:Shader 初学者...

  • 读《学习天性》——学习前准备

    读《学习天性》——学习前准备 我们学习前应该准备些什么才能让学习事半功倍?有效学习前准备的步骤是什么? ①学习的三...

  • Shader学习日常(14/12/28)

    Shader学习,以及工具Strumpy Shader Editor的使用。 (部分参考前辈阿赵的博客) Stru...

  • Unity高级开发-Shader开发(1)-渲染管线

    学习Shader(着色器)必须先要了解渲染管线。如果不了解,那么就不能说你了解Shader Shader分类 顶点...

网友评论

      本文标题:学习Shader前的准备

      本文链接:https://www.haomeiwen.com/subject/scdtuxtx.html