写在前面
看了许多Shader教程,也学到了一些常见的Shader效果,但还是有一些迷糊,不能灵活的运用。所以打算一步步从零开始,把Shader彻底搞明白。以此记录一下学习过程。
Shader效果
- 单个对象
- 正确渲染出对象
- 将对象设置成黄色(为啥是黄色,随便选的颜色:-))
思路
- 这里选择Quad作为渲染对象,顶点组成比较简单
- 要正确显示出Quad,需要将顶点位置告诉GPU
- 要正确显示黄色,则要告诉GPU一个黄色的色值
以下是具体细节实现的过程,我们一步步来:
先建一个新的项目
目录结构如下:

先从最简单的开始,后期可能会整理,Materials主要存放材质,Prefabs存放实验用的prefab,Textures主要是贴图资源,Loading是测试用的场景,Shaders里放实验用的Shader
新建测试对象
- 选择GameObject->3D Object->Quad,新建一个Quad对象
- 新建一个Material,替换掉默认的Material
- 新建一个Shader,替换掉默认的Shader
- 将Shader中自动生成的内容清空,然后一步步的添加需要的内容,清空后的Shader内容如下:
Shader "Unlit/first"{
}
这时的场景显示如下:
为什么会显示一个粉色呢?
选中Shader后,查看Inspector面板发现,原来有一个错误,Unity发现Shader是一个空的,所以不能编译,就给Quad对象一个默认的粉色来提醒(实际上是用了一个默认的Shader)
选中shader后在Inspector面板查看如下:
会出现一个Errors,提示没有subshaders或默认的fallbacks支持GPU,也没有生成编译后的Shader代码。
试试加上属性会是什么结果:
Shader

本文是Koo叔关于Shader学习的开篇,通过创建Unity项目,逐步构建一个基础Shader,实现对象的正确渲染和颜色设定。文章详细讲解了Shader的基本结构、错误处理、顶点坐标变换等概念,旨在帮助初学者掌握Shader的使用。
最低0.47元/天 解锁文章
353

被折叠的 条评论
为什么被折叠?



