【Unity】Shader

Mesh Renderer

The Mesh Renderer takes the geometry from the Mesh Filter and renders it at the position defined by the object’s Transform component.

网格渲染器从网格过滤器中获取几何图形,然后把它们渲染到这些物体transform组件中定义的位置上去。
(Mesh Filter 获取 geometry, transform 获取 position, 然后渲染)
通过Mesh Filter获取需要渲染的geometry,通过物体的Transform组件获取position

传入vertex shader中的数据从哪里来?

在Unity中由使用该材质的MeshRenderer组件提供。
在每帧调用DrawCall的时候,Mesh Render组件会把它负责渲染的模型数据发送给Unity Shader。

顶点着色器是逐顶点调用的,而片元着色器是逐片元调用的。片元着色器的输入实际上是把顶点着色器中的输出进行差值后得到的结果。

ShaderLab与Unity Shader

Unity Shader为控制渲染过程提供了一层抽象。如果没有使用Unity Shader,开发者需要与很多文件和设置打交道,才能呈现出想要的效果。
而在Unity Shader的帮助下,开发者只需要使用ShaderLab来编写Unity Shader文件就可以完成这些工作。ShaderLab是Unity提供的编写Unity Shader的一种说明性语言。

每个pass定义了一次完整的渲染流程,但是如果pass的数目过多,往往会造成渲染性能的下降。

顶点变换

1.将顶点坐标从模型空间变换到世界空间中(模型变换 model transform)

观察空间是三维空间,而屏幕空间是一个二维空间。从观察空间到屏幕空间的转换需要经过投影(projection)
在观察空间中,摄像机的前向是z轴的负方向。

2.将顶点坐标从世界空间变换到观察空间中(观察变换 view transform)

空间变换:
unity 空间变换
未完,精彩待续。(先测试一下写博客)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值