|
整理一下书里的重点,顺便也算是督促一下自己。第一次写文章,见谅
开头的概念部分以及线代的知识这里就不在赘述(推荐games101的教程闫老师讲的真的很好)。毕竟学习这种东西能够看到成果才会更有动力嘛。所以这里就直接进入代码部分。
一、UNITY SHADER概述
常见的shader使用流程如下:
- 创建一个材质(Material)
- 创建一个shader,并将它赋给上一步创建的材质
- 将材质再赋给物体(Object)
- 调整参数达到自己想要的效果
我们可以自己在UNITY尝试着完成这些流程。
首先在Assets中创建Material和Shader两个文件夹(整理好工程中的资源是一个好习惯)
点击进入Shader文件夹创建一个最基本的shader,右键->Create->Shader->Standar Surface Shader。接着再去Materail中创建一个材质,在属性面板中选择自己创建的shader(默认应该是在Custom下)。
然后将下面的代码复制到shader中,代码的含义会在之后解释
Shader "Custom/Myshader"
{
SubShader
{
pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
float4 vert(float4 v : POSITION) : SV_POSITION
{
return UnityObjectToClipPos(v);
}
fixed4 frag() : SV_TARGET
return fixed4(1,1,1,1)//改变这里
}
ENDCG
}
}
}
接着在Hierarchy中随意创建一个3D物件,右键->3D Object。然后将之前创建好的材质拖拽到物体上,你会发现物体没有发生任何变化
改变最后的返回值就能够改变物体的颜色,这样就实现了最简单的一个着色器。例如将其改为(1,1,0,1)后就会变成黄色。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|