Unity -Shader精讲(一)OpenGL,DirectX,CG选择 着色器选择

转载自:https://blog.csdn.net/qq_33537945/article/details/79242089

Unity 渲染需要两个组件 Mesh Filter 和 Mesh Renderer

Mesh Filter : 存储一个Mesh(网格,模型的网格,就是模型的由哪些三角面组成,组成一个什么样子的模型,三角面的一些顶点信息)

Mesh Renderer:用来渲染一个模型的外观,就是样子, 按照 mesh给它皮肤,给它颜色

通过Material(材质)控制模型渲染的样子

Material(材质)简单的理解为 是由 贴图+Shader组成的(贴图可以没有也可以是单纯的颜色 但是Shader必须要有)

shader可以认为是一种渲染命令 ,由opengl 或者dx进行解析,来控制渲染

CPU   <===应用程序(C#代码由CPU计算   Shader调用opengl 或者DX)===> opengl 或者dx==>GPU 

DX 和OPengl 是敌对关系 两者实现功能一样都是用来进行图像编程 其中DX在PC平台用的多OPengl在移动平台用的多

OpenGL 使用GLSL 编写shader
DirectX 使用HSSL 编写shader
英伟达 CG 编写shader(跨平台

CG语言教程官网(初学者不推荐看)
http://http.developer.nvidia.com/CgTutorial/cg_tutorial_frontmatter.html

这里推荐使用CG编写shader 因为他是跨平台的 可以用OpenGL解析也可以使用DX解析

使用Unity也不会直接使用CG语言编写 而是使用了Unity封装好的 叫ShaderLab

ShaderLab 对这三种语言都做了封装 通常使用CG来编写Shader

Unity Shader的分类
使用的是ShaderLab编写Unity中的Shader
1,表面着色器 Surface Shader(Unity独有的 是对,顶点/片元着色器的一种封装 封装的还不全面肯会有一些功能无法实现 编写起来或许会简单点   运行时会被解析成顶点/片元着色器 )
2,顶点/片元着色器 Vertex/Fragment Shader(最基本的 编写起来代码可能会多一点 因为是最基本的所以可以实现所有的效果 比如 表面着色器 无法实现的  顶点/片元着色器可以实现 )
3,固定函数着色器 Fixed Function Shader(现在已经被启用了 在旧设备上使用)

总结:

如果游戏场景灯光较多(比如三四个以上的时候)的话推荐使用 表面着色器 因为它 帮我们处理好了许多光照的细节 我们不用挨个去处理每个光源了 反之 使用顶点/片元着色器 固定函数着色器在老设备上使用


  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值