Shader 学习之路-简述Shader常用语言(六)

1、Shader

Shader(着色器)实际上就是一小段程序,它负责将输入的Mesh(网格)以指定的方式和输入的贴图或者颜色等组合作用,然后输出。

Unity Shader 不等于真正的Shader,Unity Shader 实际上是指Shaderlab 文件,在硬盘上以.shader 为后缀的一种文件。

2、传统 Shader 与 Unity Shader相比

传统Shader:

仅可以编写特定类型的Shader,如顶点着色器颜色、片元着色器等

无法设一些渲染设置,如是否开启混合、深度测试

需要设置着色器输入和输出,并注意对应关系

Unity Shader:

可以在同一文件内同时包含着色器和片元着色器的代码

通过一行特定指令就可以完成设置

需要在特定语句块中声明一些属性,也可以依靠材质修改这些属性,数据(顶点位置、 uv坐标、法线),也可以直接访问的方法

3、Shader Lab

Shader Lab 作为一种专门Unity Shader 服务语言,我们可以编写Shader Lab  来生成Unity Shader。


4、着色器语言,作为中间语言(Intermediate Language),即交给CPU 可以理解的语言。

Cg(C for Graphic)

HLSL(High Level Shading Language)

GLSL(OpenGL Shading Language)

Cg/HLSL 实际是同一种语言(Microsoft 和NVIDIA合作)

ShaderLab 内部可以嵌套 Cg/HLSL 语言编写着色器代码,需要嵌套在命令CGPROGRAM 和ENDCG 之间,代码如下:

Pass

{

//Pass 的标签和状态设置

CGPROGRAM

//编译指令

#pragma vertex vert

#pragma fragment frag

//CG 代码

ENDCG

//其他设置

}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • <转>我也忘了转自哪里,抱歉,感谢原作者 什么是Shader Shader(着色器)是一段能够针对3D对象进行操作...
    星易乾川阅读 10,998评论 1 16
  • Unity shader 官网文档全方位学习(一)What?? Shader,看起来好高级的样子,是的,这是Uni...
    狼之独步阅读 11,305评论 0 12
  • 转载注明出处:点击打开链接 Shader(着色器)是一段能够针对3D对象进行操作、并被GPU所执行的程序。Shad...
    游戏开发小Y阅读 8,908评论 0 4
  • 观《寂静之地》想到的。 我想说的不是聋哑人的世界,是今天看了一部美国2018年出的一部号称惊悚恐怖片《寂静之地》。...
    巳岚阅读 1,675评论 0 1
  • 今年八月底,趁着女儿军训,请了一周年假去双溪学习油画。 知道双溪,是在去年参加好报画画班的时候,群里请了林正禄老师...
    花开花落北京阅读 4,902评论 28 23

友情链接更多精彩内容