简单说就是在meta pass计算

albedo,emission,specular

3个值

光照烘焙,gi计算间接光照时都会用到这些值

Shader "MyShader/SampleLightmap"
{
SubShader
{
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma multi_compile _ LIGHTMAP_ON
#include"Lighting.cginc" struct VertexData
{
float4 pos:POSITION;
float2 uv:TEXCOORD0;
float2 uv1:TEXCOORD1;
}; struct V2F
{
float4 pos:SV_POSITION;
float2 uv:TEXCOORD0;
#if defined(LIGHTMAP_ON)
float2 uv1:TEXCOORD1;
#endif
}; V2F vert(VertexData v)
{
V2F res;
res.pos = UnityObjectToClipPos(v.pos);
res.uv = v.uv;
#if defined(LIGHTMAP_ON)
res.uv1 = v.uv1 * unity_LightmapST.xy + unity_LightmapST.zw;
#endif
return res;
} fixed4 frag(V2F i) :SV_TARGET
{
fixed4 col = fixed4(1,0,0,1);
#if defined(LIGHTMAP_ON)
col.rgb = DecodeLightmap(UNITY_SAMPLE_TEX2D(unity_Lightmap, i.uv1));
#endif
return col;
}
ENDCG
} Pass
{
Tags{ "LightMode" = "Meta" } CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityStandardInput.cginc"
#include "UnityMetaPass.cginc" struct V2F
{
float4 pos:SV_POSITION;
float4 uv:TEXCOORD0;
}; V2F vert(VertexInput v)
{
V2F o;
o.pos = UnityMetaVertexPosition(v.vertex, v.uv1.xy, v.uv2.xy, unity_LightmapST, unity_DynamicLightmapST);
o.uv = TexCoords(v);
return o;
} fixed4 frag(V2F i) :SV_TARGET
{
UnityMetaInput o;
UNITY_INITIALIZE_OUTPUT(UnityMetaInput, o);
o.Albedo = fixed3(1, 1, 0); //这里只是将漫反射添加到烘焙贴图中去
                    o.Emission = xxxx;
                    o.SpecularColor = xxxx;

return UnityMetaFragment(o);
}
ENDCG
}
}
}

  

meta pass

https://blog.csdn.net/wodownload2/article/details/94554057

https://blog.csdn.net/cgy56191948/article/details/100766303

unity meta pass的更多相关文章

  1. unity, multi pass shader中的surface pass

    今天尝试写一个multi pass shader,但其中有一个Pass是surface pass,总是莫名奇妙地报错.后来看到下面帖子: http://forum.unity3d.com/thread ...

  2. Unity Shader入门精要学习笔记 - 第9章 更复杂的光照

    转载自 冯乐乐的<Unity Shader入门精要> Unity 的渲染路径 在Unity里,渲染路径决定了光照是如何应该到Unity Shader 中的.因此,如果要和光源打交道,我们需 ...

  3. 聊聊如何正确向Compute Shader传递数组

    0x00 前言 前一段时间去英国出差,发现Unity Brighton 办公室的手绘地图墙很漂亮,在这里分享给大家. 在这篇文章中,我们选择了过去几周Unity官方社区交流群以及UUG社区群中比较有代 ...

  4. surface shader相关参数,命令

    https://docs.unity3d.com/Manual/SL-SurfaceShaders.html 说明: 注意下surfaceshader相关开关选项,input结构体全部可用参数 goo ...

  5. Understanding Python metaclasses

    转载:https://blog.ionelmc.ro/2015/02/09/understanding-python-metaclasses/ None of the existing article ...

  6. 理解Python元类(转)

    add by zhj:先收藏了,有时间看,图倒是不少,可以配合stackover flow上那篇文章一起看 原文:http://blog.ionelmc.ro/2015/02/09/understan ...

  7. Python的元类

    1.用元类验证子类 每当我们定义新类的时候,元类就会运行雅正代码,以确保这个新类符合规定的规范. Python系统把子类的class语句处理完毕,就会调用元类的 __new__ 方法.元类可以通过 _ ...

  8. 类和对象的创建过程(元类,__new__,__init__,__call__)

    一. type() 1.创建类的两种方式 方式一 class MyClass(object): def func(self,name): print(name) myc = MyClass() pri ...

  9. django用户认证系统——拓展 User 模型

    Django 用户认证系统提供了一个内置的 User 对象,用于记录用户的用户名,密码等个人信息.对于 Django 内置的 User 模型, 仅包含以下一些主要的属性: username,即用户名 ...

  10. python 开发练习之 监控

    本节内容 为什么要做监控? 常用监控系统设计讨论 监控系统架构设计 监控表结构设计 为什么要做监控? –熟悉IT监控系统的设计原理 –开发一个简版的类Zabbix监控系统 –掌握自动化开发项目的程序设 ...

随机推荐

  1. Redis系列目录

    第一章 Redis系列之-redis初识 第二章 Redis系列之-常用命令及API的使用 第三章 Redis系列之-高级用法 第四章 Redis系列之-持久化 第五章 Redis系列之-使用常见问题 ...

  2. 启动项目报错org.yaml.snakeyaml.scanner.ScannerException: while scanning for the next token found character ‘@‘

    报错信息:org.yaml.snakeyaml.scanner.ScannerException: while scanning for the next token found character ...

  3. Java面向对象之接口的定义与实现

    接口 普通类:只有具体实现 抽象类:具体实现和规范(抽象方法)都有! 接口:只有规范!自己无法写方法.专业的约束!约束和实现分离:面向接口编程 接口就是规范,定义的是一组规则,体现了现实世界中&quo ...

  4. CSS主要整理

    css主要整理 // 右侧悬浮导航 /* 侧栏开始 */ #home { position: relative } // 悬浮 #home .xf { width: 67.6923076923077p ...

  5. Jest - Configuring Jest

    Jest is a delightful JavaScript Testing Framework with a focus on simplicity. It works with projects ...

  6. Lua文件夹及文件操作

    转载于:CSDN-刘长栋 -[[ @引用:require("FileLib") @调用:fileLib.createFolder(path) @功能: 1.创建文件夹 2.连续创建 ...

  7. 通过parameters用python造数据

    1.先通过命令安装allpairs库.allpairspy,命令为:pip install allpairs.pip install parameters,安装成功 2.通过python去写出来,如图 ...

  8. java学习一:java介绍及第一个helloword程序

    1.java语言介绍 java是一门后台开发语言 大型web语言系统开发,app后台服务首选开发语言 java这门语言大特点:跨平台,安全性高,有丰富的类库 核心思想:面向对象 2.Jdk介绍 3.为 ...

  9. 1、docker 安装

    1 准备三台linux服务器 2 docker安装 三台机器全部执行docker安装操作 2.1 移除以前docker相关包 sudo yum remove docker \ docker-clien ...

  10. [3] ScanRefer论文精读 3DVisual Grounding开山之作

    论文名称:ScanRefer: 3D Object Localization in RGB-D Scans using Natural Language 这篇文章最主要的工作,我觉得是两个,第一,提出 ...