Unity shader编写教程(一)
来源:互联网 发布:java 状态机 编辑:程序博客网 时间:2024/06/06 03:13
最近项目要用到shader,所以最近通过官网资料研究了下,顺便记录下:
该文章出自【狗刨学习网】
Unity中的shader可以分为三类:
1:表面着色器(surface shaders)
2:可编程着色器( vertex and fragment shaders )
3:固定着色器(fixed function shaders)
先写最简单的fixed function shaders,先看下代码
Shader
"FixedShader/Test"
//shader名字
{
Properties
//变量块
{
MainColor(
"Main_Color"
, Color ) = (1,0.5,0.5,1)
//定义一个名字为MainColor的变量,类型为Color(RGBA格式),同时给一个默认值
}
SubShader
//代码块
{
pass
{
Color[MainColor]
//使用上面定义的变量,将对象颜色设置为变量的值
}
}
FallBack
"Diffuse"
//如果当前显卡不支持上面的SubShader,则使用这个
}
"FixedShader/Test"
//shader名字
{
Properties
//变量块
{
MainColor(
"Main_Color"
, Color ) = (1,0.5,0.5,1)
//定义一个名字为MainColor的变量,类型为Color(RGBA格式),同时给一个默认值
}
SubShader
//代码块
{
pass
{
Color[MainColor]
//使用上面定义的变量,将对象颜色设置为变量的值
}
}
FallBack
"Diffuse"
//如果当前显卡不支持上面的SubShader,则使用这个
}
通过代码可以看到,Unity的Shader代码可以分为两块:Properties(变量块)、SubShader(代码块)在变量块中定义的变量就相当于Unity脚本中的一个Public变量,可以直接在编辑器中看到。
而代码块则是设置渲染的参数,直接给显卡用的,而程序肯定不能只支持一张显卡,所以这个subshader不止一个的,Unity在执行渲染的时候会选择当前显卡支持的subshader。代码很简单,就不再解释了。
要看效果的话,在Unity中创建一个Material,然后把写好的shader拖给他,最后把Material拖给一个可见的对象就可以了,看下效果图:
0 0
- Unity shader编写教程(一)
- unity shader编写(一),漫反射shader实现
- Unity Shader 基础知识(一)
- 【Unity Shader】剖析Unity Surface Shader背后机制(一)
- 解读Unity中的CG编写Shader系列一
- Unity Shader简单Shader一
- 【Unity Shader实战】卡通风格的Shader(一)
- 【Unity-Shader】Unity60个内置Shader代码浅析(一)
- Unity Shader学习笔记(一) shader的基础结构
- Shader学习笔记(一)认识Unity Shader,Unity Shader的基本结构
- Unity shader随笔记(一)SurfaceShader
- unity shader案例分析(一)
- unity 边缘检测shader简介(一)
- unity shader 学习一
- Unity Shader 一 激光特效Shader
- 【Unity】Unity自带卡通shader(toon shader)分析(一)
- Unity shader教程-第四课:自定义光照模型(方程)
- Unity之Shader初识 - 一
- 西药治疗癫痫病 01gkcuvh
- NGUI之为什么Scene视图中不显示Polygon Collider2D
- 2015年1月23日
- 如何在Android平台上使用JS直接调用Java方法
- Unity3d中制作Loading场景
- Unity shader编写教程(一)
- 五大常用算法:分治、动态规划、贪心、回溯和分支界定
- 南京到汊河 01iqh3lf
- Unity3D学习之_AI人工智能(坦克模型自动寻怪_自动追击)
- 癫痫病怎样诊断 01ir3wlq
- zmq以及c/cpp for zmq
- [3D理论] 【Unity Shaders】Transparency —— 使用alpha通道创建透
- 视频格式详解
- 图解Android - Zygote, System Server 启动分析 .