Unity中的GameObject(游戏物体)由Compent(组件)组成。
**
**
**
GameObject(游戏物体)一般有两大Compent组件:
- ** Mesh Filter(网格过滤器)**: 存储一个Mesh(网格,模型的网格,就是模型由哪些三角面组成,组成一个什么样子的模型,三角面的一些顶点信息。)
- ** Mesh Renderer(网格渲染器)**: 用来渲染一个模型的外观,按照mesh给皮肤,颜色。
- Mesh Renderer 是通过 Material(材质)控制模型渲染的样子。** Material(材质)= Shader(着色器)+ Map(贴图)**
- shader:材质特性,反光/光滑。Map:表面颜色/纹理。
- Mesh Renderer 是通过 Material(材质)控制模型渲染的样子。** Material(材质)= Shader(着色器)+ Map(贴图)**
**
本课程目的可达到:了解基本使用Shader。
1、什么是OpenGL、DirectX 以及 GLSL、HLSL、CG?
一般大型游戏都需要DirctX。
** 图像应用编程接口。都是用于图形渲染的。**
**
**
** **CPU (处理器) 、GPU(显卡)、应用程序(C#)、图形接口(OpenGL、DirectX)
Shader可以认为是一种渲染命令,有OpenGL或 Direct进行解析,来控制渲染丰富多彩的图形。
移动使用OpenGL,桌面端一般使用Direct。
GLSL shader语言用于OpenGL。(Khronos)
HLSL shader语言用于DirectX。(微软)
CG(Nvidia英伟达语言)跨平台
2、Unity Shader的分类
Unity使用的是 **ShaderLab **(对CG封装了一层)来编写Unity中的Shader。
编程语言和脚本语言的区别?
** 1、 Surface Shader(表面作色器) **Unity独有的着色器,封装了顶点/片元着色器(光源多的情况下使用较好)
** 2、Vertex/Fragment Shader(顶点/片元 着色器) **基本的着色器,控制实现效果更多
** 3、Fixed Function Shader(固定函数着色器) **
1 | shader "LJK/01 FirstShader"//这里不需要文件名保持一致 |
1 | Shader "LJK/02 testRunShader" |
1 | Shader "LJK/03 testUseStructShader" |
语义总结:
在顶点函数和片元函数之间传递值
从应用程序传递到顶点函数(a2v)使用的语义
- POSITION 顶点坐标(模型空间下的)
- NORMAL 法线( 模型空间下)
- TANGENT 切线(模型空间)
- TEXCOORD0 ~n 纹理坐标 (0-1)
- COLOR 顶点颜色
从顶点函数传递到片元函数使用的语义
- SV_POSITION 剪裁空间中的顶点坐标 (一般是系统直接使用)
- COLOR0 可以传递一组值 4个
- COLOR1 可以传递一组值 4个
- TEXCOORD0~7 传递纹理坐标
从片元函数传递给系统****使用的语义
- SV_Target 颜色值,显示到屏幕上的颜色
参考书籍
unity shader 入门精要(乐乐程序猿)
unity 3d shaderlab开发实战详解(第二版)
unity 5.x shaders and effects cookbook(中文版 unity着色器和屏幕特效开发秘籍)
CG语言教程官网
http://http.developer.nvidia.com/CgTutorial/cg\_tutorial\_frontmatter.html
一些网站
http://blog.csdn.net/poem\_qianmo?viewmode=contents
数学函数在线演示
http://zh.numberempire.com/graphingcalculator.php
****
- 本文作者: 梁俊可
- 本文链接: http://ljk3d.com/2021/10/19/unityNote/UnityBasic/Shader着色器开发——01基础入门/
- 版权声明: 梁俊可工作室