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,则使用这个
}

       通过代码可以看到,Unity的Shader代码可以分为两块:Properties(变量块)、SubShader(代码块)在变量块中定义的变量就相当于Unity脚本中的一个Public变量,可以直接在编辑器中看到。 
       而代码块则是设置渲染的参数,直接给显卡用的,而程序肯定不能只支持一张显卡,所以这个subshader不止一个的,Unity在执行渲染的时候会选择当前显卡支持的subshader。代码很简单,就不再解释了。 

       要看效果的话,在Unity中创建一个Material,然后把写好的shader拖给他,最后把Material拖给一个可见的对象就可以了,看下效果图:


 

2_21203_2c071d698d98e25.png (170.42 KB, 下载次数: 0)

下载附件  保存到相册

前天 12:09 上传



0 0
原创粉丝点击