Unity学习起来(1)

Posted on 2018-03-07

流水线(概念层面)

应用阶段:

  • 场景数据搭建

  • 剔除不用显示的

  • 渲染状态设定(反射高光,shader,纹理)

几何阶段:

  • 决定绘制的图元,涉及顶点坐标变换。确定二维顶点坐标,深度值,着色

光栅化:

  • 决定每个渲染图元中的哪些像素会被绘制在屏幕上,涉及顶点数据插值

#GPU流水线(硬件层面)

  • 顶点着色器:坐标变换,颜色
  • 剪裁:
  • 屏幕映射:屏幕坐标系:(openGL原点在左下角,DX在左上)

光栅化:

  • 三角形设置:计算三角形边界。计算三角网格表示数据的过程
  • 三角形遍历:检查每个像素是否被一个三角网格覆盖,若覆盖,则生成一个片元。(扫描变换) ps:片源不是像素,而是状态集合

  • 片元着色器

  • 逐片元操作
    • 决定每个片元可见性,涉及深度测试,模板测试
    • 将通过测试的片元的颜色值和已经存在的颜色缓冲区的颜色混合

CPU和GPU

  • CPU:
  • GPU:

Shader是什么

  • GPU流水线的可编程阶段
  • 有特定类型的着色器(比如顶点,片元)
  • 依靠着色器可以控制渲染细节

shader架构

shader "MyShader"
{
	Properties
	{
	}
	SubShader
	{
		pass
		{
		}
	
	}
	
	SubShader
	{
		pass
		{
		}
	
	}
	FallBack"Diffuse"
}

shader分为2个部分,Properties和SubShader.

Properties中定义的是我们传入的数据 比如贴图,浮点数等。定义方式为:

_变量名(“监视面板名”,类型)=值

比如

_Color("Color",Color)=(1,1,1,1)

_MainTex("Texture",2D) = "White"{}

待跟新。。


蚊子再小也是肉~
本站总访问量 本站访客数