[进击吧shader]初识shader
来源:互联网 发布:上海php培训机构 编辑:程序博客网 时间:2024/06/08 05:38
Material:你是谁;
shader:我是着色器,也许还是一段代码;
Material:你在我身上干啥;
shader:帮你渲染模型的颜色,贴图等等啊;
那么,如何去创建一个可以看出来的shader呢。
- 在视图中创建一个Cube或者其他什么奇怪的东西
- 创建一个Material作为shader的载体
- 将Material拖拽到创建的物体身上
- 再创建一个shader,这里命名为testshader
- 在Material的属性面板可以把shader绑定到Material上
这时候,我们可以打开我们创建的testshader文件
Shader "Custom/textshader" { Properties { _Color ("Color", Color) = (0,1,1,1) _MainTex ("Albedo (RGB)", 2D) = "black" {} _Glossiness ("Smoothness", Range(0,1)) = 0.5 _Metallic ("Metallic", Range(0,1)) = 0.0 } SubShader { Tags { "RenderType"="Opaque" } LOD 200 CGPROGRAM #pragma surface surf Standard fullforwardshadows #pragma target 3.0 sampler2D _MainTex; struct Input { float2 uv_MainTex; }; half _Glossiness; half _Metallic; fixed4 _Color; UNITY_INSTANCING_CBUFFER_START(Props) UNITY_INSTANCING_CBUFFER_END void surf (Input IN, inout SurfaceOutputStandard o) { fixed4 c = tex2D (_MainTex, IN.uv_MainTex) * _Color; o.Albedo = c.rgb; o.Metallic = _Metallic; o.Smoothness = _Glossiness; o.Alpha = c.a; } ENDCG } FallBack "Diffuse"}
会发现我们根本看不懂,hhhh
但是从整体上,我们可以看到shader的整体框架
shader "Custom/textshader"{ //shader shader的路径 Properties{} //shader的一些基本设置,将会显示在以UI的形式显示在面板上 SubShader{} //主要的内容,一个shader里可以有很多个subshader,会选择一个合适的来使用,如果都可以,将会从上到下选择 FallBack "Diffuse" //如果都不行,则会执行这个,类似default语句的作用}
在Properties模块里
_Color ("Color", Color) = (0,1,1,1)=》变量名 (面板显示的名字,类型)=默认值
总的来说Properties里共有如下属性
Properties { _MainTex ("Base (RGB)", 2D) = "white" {}//2D贴图纹理 _Color("Color Type", Color) = (1, 1, 1, 1)//颜色 _Float("Float Value", Float) = 0.5//浮点数 _Range("Range Value", Range(0.1, 10)) = 1.0//带范围的浮点数 _Cube("Cube Map", Cube) = ""{}//立方体贴图纹理,可用做天空盒 _Rect("Rect Type", Rect) = ""{}//非2的幂次方的纹理 _Vector("Vector Value", Vector) = (1, 2, 3, 4)//四维向量}
1.对于范围 (Range) 和 浮点 (Float) 属性,默认值只是一个数字。
2.对于颜色 (Color) 和向量 (Vector) 属性来说,默认值为圆括号中的四个数字。
3.对纹理(二维 (2D)、矩形 (Rect)、立方体 (Cube))来说,默认值可以是一个空字符串或者是以下内置默认纹理中的一种:”白色”、“黑色”、“灰色”或“凹凸贴图”。
随后在着色器中,通过使用方括号内的属性名称访问属性值:[name],例如[_Color]
当shader里的属性写完后,我们后续就可以来写subshader里的内容了.
结束语:
我在刚学shader看了不少的教程,感觉如果没有一些了解的话,看起来会有些费劲,就结合一些不错的书籍与博客试着写一下shader的入门教程,希望可以给初学者带来帮助
阅读全文
0 0
- [进击吧shader]初识shader
- [进击吧shader]深入一点的shader之Tag
- [进击吧shader]写一个自己的shader
- 初识Shader着色器
- 【Unity3D自学记录】进击的Shader
- 进击的Unity特效------Shader目录
- shader
- shader
- shader
- Shader
- Shader
- shader
- shader
- shader
- Shader
- shader
- Shader
- shader
- Postfix后缀表达式实验报告
- TensorFlow学习_(3)深层神经网络
- 连续第十一天总结
- linux如何快速安装svn服务器?
- Machine Learning 学习之神经网络(1)
- [进击吧shader]初识shader
- 各种音视频编解码学习详解
- JAVA-4-Static笔记
- 软考嵌入式系统设计师2010年上午试题总结
- crontab 执行定时任务如何控制前一个任务执行完后再启动下一个任务?
- LeetCode-448. Find All Numbers Disappeared in an Array
- 会话追踪技术及状态跟踪,持久化的状态
- Android Studio 离线开发(offline)
- Color conversions