找回密码
 立即注册
查看: 199|回复: 0

[简易教程] UNITY SHADER(一)

[复制链接]
发表于 2022-4-25 17:39 | 显示全部楼层 |阅读模式
整理一下书里的重点,顺便也算是督促一下自己。第一次写文章,见谅
开头的概念部分以及线代的知识这里就不在赘述(推荐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)后就会变成黄色。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-5-7 19:25 , Processed in 0.131024 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表