Unity Shader 2 一个简单的示例

下面是一段简单的Shader代码(创建一个Shader时的默认代码),下面对照代码逐行分析。

 1 Shader "LearnShaders/BasicDiffuse" {
 2     Properties {
 3         _MainTex ("Base (RGB)", 2D) = "white" {
 4             }
 5     }
 6     SubShader {
 7         Tags {
 8             "RenderType"="Opaque" }
 9         LOD 200
10
11         CGPROGRAM
12         #pragma surface surf Lambert
13
14         sampler2D _MainTex;
15         struct Input {
16             float2 uv_MainTex;
17         };
18
19         void surf (Input IN, inout SurfaceOutput o) {
20             half4 c = tex2D (_MainTex, IN.uv_MainTex);
21             o.Albedo = c.rgb;
22             o.Alpha = c.a;
23         }
24
25         ENDCG
26     }
27     FallBack "Diffuse"
28 }

1. Shader "LearnShaders/BasicDiffuse" { ... }

2. Properties { ... }

  2.1 Surface Shader property type

    Float Range: Range(min, max)
    Defines a float property, represented as a slider from min to max in the inspector.
    name ("display name", Range (min, max)) = number

    Color: Color
    Defines a color property.
    name ("display name", Color) = (number,number,number,number)

    Texture 2D: 2D
    Defines a 2D texture property.
    name ("display name", 2D) = "name" { options }

    Rectangle: Rect
    Defines a rectangle (non power of 2) texture property.
    name ("display name", Rect) = "name" { options }

    Cubemap: Cube
    Defines a cubemap texture property.
    name ("display name", Cube) = "name" { options }

    Float: Float
    Defines a float property.
    name ("display name", Float) = number

    Vector: Vector
    Defines a four-component vector property.
    name ("display name", Vector) = (number,number,number,number)

时间: 2024-07-30 20:26:59

Unity Shader 2 一个简单的示例的相关文章

使用Express创建一个简单的示例

1.安装Express 使用npm包安装工具来安装Express安装包,打开npm命令行,输入: npm install -g express 2.创建一个工程 本示例是在windows下创建的,项目所在目录为D:\workSpace\mxk. 在D盘新建project-Express文件夹,打开命令行进入D盘,输入: express -e project-Express (“project-Express”是项目名) 安装完成后输入: cd project-Express & npm inst

mxnet:基础知识和一个简单的示例

NDArray与NumPy的多维数组类似,但NDArray提供了更多的功能:GPU和CPU的异步计算:自动求导.这使得NDArray能更好地支持机器学习. 初始化 from mxnet import ndarray as nd nd.zeros((3,4)) nd.ones((3,4)) nd.array([[1,2],[3,4]]) out: [[1. 2.][3. 4.]] <NDArray 2x2 @cpu(0)> nd.random_normal(0,1,shape=(3,4)) #标

初学WCF,一个简单的示例(增删改查,实体类)

1.契约(接口):定义用户实体类User.需要实现的服务 using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.ServiceModel; using System.ServiceModel.Web; using System.Text; using System.Data; namespace WcfService {

使用 JointCode.Shuttle 进行跨 AppDomain 通信的一个简单示例

JointCode.Shuttle 是一个用于进程内 AppDomain 间通信的服务架构(不支持跨进程). 本文通过一个简单的示例来演示如何使用 JointCode.Shuttle. JointCode.Shuttle 的发行包 在 JointCode.Shuttle 的发行包中,包含两个文件:JointCode.Shuttle.dll 和 JointCode.Shuttle.Library.dll,其中 JointCode.Shuttle.dll 是使用托管语言编写的库文件,JointCod

IDDD 实现领域驱动设计-一个简单的 CQRS 示例

上一篇:<IDDD 实现领域驱动设计-CQRS(命令查询职责分离)和 EDA(事件驱动架构)> 学习架构知识,需要有一些功底和经验,要不然你会和我一样吃力,CQRS.EDA.ES.Saga 等等,这些是实践 DDD 所必不可少的架构,所以,如果你不懂这些,是很难看懂上篇所提到的 CQRS Journey 和 ENode 项目,那怎么办呢?我们可以从简单的 Demo 一点一滴开始. 代码地址:https://github.com/yuezhongxin/CQRS.Sample 说明:一张很丑陋的

Unity Shader 学习之旅-初探

Unity Shader 学习之旅-初探 unity shader 图形图像 美丽的梦和美丽的诗一样 都是可遇而不可求的--席慕蓉 最简单的顶点片元着色器 顶点片元着色器基本结构 Unity Shader基本结构:Shader ,Properties,SubShder,Fallback等. 结构 Shader "ShaderName"{  Properties{  //属性,暴露在inspector面板上  }  SubShader{  //针对显卡A的SubShader  Pass{

unity shader笔记

clip函数可以用来切割mesh clip(var); var 的值小于0时就会被切割 表面着色器 其实就是生成了定点片元着色器,相当于一种包装和简化吧 标准的填充结构 struct SurfaceOutput { fixed3 Albedo; // diffuse color fixed3 Normal; // tangent space normal, if written fixed3 Emission; half Specular; // specular power in 0..1 r

Salesforce用Apex判断Role Hierarchy的简单代码示例

由于role不同于Profile,带有阶层性质,所以有一些自定义功能要依赖于这种阶层的设定.这样就涉及到role hierarchy的判断问题. 我是一个绝懒之人,所以去网上搜了一下,能找到的方案都或多或少有些缺陷 . 我所提供的方案也是如此,但是想比于浪费太多SOQL查询次数来讲,role的数量不超过50000条已经是足够好了.// 这里Update一下,其实根本不会有那么多的Role,因为默认500,向Salesforce技术支持提票才能达到10000. Talk is cheap, sho

一个简单好用的日志框架NLog

之前我介绍过如何使用log4net来记录日志,但最近喜欢上了另一个简单好用的日志框架NLog. 关于NLog和log4net的比较这里就不多讨论了,感兴趣的朋友可以参看.NET日志工具介绍和log4net vs. Nlog这两篇文章.本文主要介绍一下如何在项目中使用NLog. 在Nuget中安装NLog NLog可以直接使用Nuget安装: PM > Install-Package Nlog 使用NLog NLog的使用方式基本上和其它的Log库差不多,分为Trace.Debug.Info.Er