【Amplify_自己写的shadr遇到没有阴影的解决方案】

Amplify 自己写的shadr遇到没有阴影的解决方案

2020-01-21 16:04

本来我有个百试很灵的投射阴影脚本。
图片

这次不灵光了!地形内建材质,这个不支持投射的阴影~~奇了怪了。
图片

可以采用引用的方式UsePass加入阴影部分代码,具体操作如下:
1,点击左侧的EditTemplate,编辑模板,打开Unlit.Shader.发现这里有unlit模式的模板替换机制。在subshader的tags里添加
usePass “**”这里需要引用shadowcollector和caster。在以前的官方shader里是这两条:

UsePass “VertexLit/SHADOWCOLLECTOR”
UsePass “VertexLit/SHADOWCASTER”
被写在vertexLit里,而这个shader已经被收入在Legacy Shaders里了。于是我们替换成。
UsePass “Legacy Shaders/VertexLit/SHADOWCOLLECTOR”
UsePass “Legacy Shaders/VertexLit/SHADOWCASTER”
发现也不对,材质报紫色~~~
然后我就ctrl+f在vs里查找“SHADOWCOLLECTOR”

图片

这一下就看人品了,竟然发现!找到了一个在glow11里的
图片

不错!这有一个!
图片

赶紧拿来替换一下!
图片

保存文件,保存ase材质!
场景人物又有实时阴影了。
图片

我还是把这两段计算阴影的pass贴出来下,万一哪天找不到了,还可以贴出来用。

// Pass to render object as a shadow casterPass {Name “ShadowCaster”Tags { “LightMode” = “ShadowCaster” }Offset 1, 1Fog {Mode Off}ZWrite On ZTest LEqual Cull OffCGPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma multi_compile_shadowcaster
#pragma fragmentoption ARB_precision_hint_fastest
#include “UnityCG.cginc”struct v2f {V2F_SHADOW_CASTER;float2  uv : TEXCOORD1;
};uniform float4 _MainTex_ST;v2f vert( appdata_base v )
{v2f o;TRANSFER_SHADOW_CASTER(o)o.uv = TRANSFORM_TEX(v.texcoord, _MainTex);return o;
}uniform sampler2D _MainTex;
uniform fixed _Cutoff;
uniform fixed4 _Color;float4 frag( v2f i ) : COLOR
{fixed4 texcol = tex2D( _MainTex, i.uv );clip( texcol.a*_Color.a - _Cutoff );SHADOW_CASTER_FRAGMENT(i)
}
ENDCG}// Pass to render object as a shadow collectorPass {Name “ShadowCollector”Tags { “LightMode” = “ShadowCollector” }Fog {Mode Off}ZWrite On ZTest LEqualCGPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma fragmentoption ARB_precision_hint_fastest
#pragma multi_compile_shadowcollector#define SHADOW_COLLECTOR_PASS
#include “UnityCG.cginc”struct v2f {V2F_SHADOW_COLLECTOR;float2  uv : TEXCOORD5;
};uniform float4 _MainTex_ST;v2f vert (appdata_base v)
{v2f o;TRANSFER_SHADOW_COLLECTOR(o)o.uv = TRANSFORM_TEX(v.texcoord, _MainTex);return o;
}uniform sampler2D _MainTex;
uniform fixed _Cutoff;
uniform fixed4 _Color;fixed4 frag (v2f i) : COLOR
{fixed4 texcol = tex2D( _MainTex, i.uv );clip( texcol.a*_Color.a - _Cutoff );SHADOW_COLLECTOR_FRAGMENT(i)
}
ENDCG}
}
其他shader文件里引用的方法如下:
subshader{
tag{  }
LOD 100UsePass “保存的shader路径/SHADOWCOLLECTOR”  UsePass “保存的shader路径/SHADOWCASTER”
PASS
{CGPROGRAM
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/328933.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.NET 4.8和.NET 8.0的区别和联系、以及查看本地计算机的.NET版本

文章目录 .NET 4.8和.NET 8.0的区别查看本地计算机的.NET版本 .NET 4.8和.NET 8.0的区别 .NET 8.0 和 .NET 4.8 之间的区别主要体现在它们的发展背景、目标平台、架构设计和功能特性上。下面是它们之间的一些主要区别: 发展背景: .NET 4.8 是.NET Fram…

WSL2-Ubuntu(深度学习环境搭建)

1.在Windows的WSL2上安装Ubuntu 流程可参考:https://www.bilibili.com/video/BV1mX4y177dJ 注意:中间可能需要使用命令wsl --update更新一下wsl。 2.WSL数据迁移 按照下面流程:开始菜单->设置->应用->安装的应用->搜索“ubun…

LAMP与动静态网站介绍

黄金架构LAMP Httpd PHP MySQL 三这如何工作 为什么说LAMP是黄金架构呢? 在互联网刚刚新起时,很多门户网站第一代架构都是采用LAMP,比如新浪,一些电商的互联网公司的站点,他们在网站第一代架构出行,用的都…

JETBRAINS IDES 分享一个2099通用试用码!DataGrip 2024 版 ,支持一键升级

文章目录 废话不多说上教程:(动画教程 图文教程)一、动画教程激活 与 升级(至最新版本) 二、图文教程 (推荐)Stage 1.下载安装 toolbox-app(全家桶管理工具)Stage 2 : 下…

VUE 滚动到指定区域scrollIntoView

背景&#xff1a;当前 VUE 页面数据量很大&#xff0c;右侧出现滚动条, 进入该页面&#xff0c;页面定位到指定区域&#xff1b; 项目要求&#xff1a; 进入页面&#xff0c;定位到指定行&#xff08;红色标记&#xff09; 直接看效果&#xff1a; 代码demo&#xff1a; <…

Unity设计模式之工厂模式

什么是工厂模式&#xff1f; 工厂是一种创建型设计模式。通俗来讲就是提供一种封装对象创建的方式&#xff0c;将对象的创建和使用区分开。就是Unity里面通常用到的创建和管理对象。 工厂模式有什么优点&#xff1f; 1、封装对象的创建方式&#xff0c;使其更加灵活、易于管理…

中美在AI大模型的商业化和产业化的优势和面临的挑战有哪些?

中美在AI大模型的商业化和产业化的优势和面临的挑战有哪些&#xff1f; 中美在AI大模型的商业化和产业化方面各有优势&#xff0c;但也面临不少挑战。 一、优势 1、技术领先 美国在AI大模型领域拥有深厚的技术储备和布局&#xff0c;如OpenAI的GPT系列、谷歌的BERT等&#…

【前段】开发五子棋小游戏全流程

使用前端技术开发五子棋小游戏 在这篇博文中,我们将详细介绍如何使用HTML、CSS和JavaScript开发一个简单的五子棋小游戏。我们将展示如何初始化棋盘、处理用户交互以及实现胜负判定。特别是,我们将着重介绍胜负判定的逻辑实现。 完整代码我放在了这里:github 项目结构 项…

EE trade:现货黄金交易有哪些优势

现货黄金交易具有多种优势&#xff0c;使其成为许多投资者青睐的投资选择&#xff1a; 流动性高&#xff1a;黄金市场是全球最大的金融交易市场之一&#xff0c;确保了黄金拥有极高的流动性。这意味着投资者可以随时买入或卖出黄金&#xff0c;几乎不必担心大额交易会对市场价…

锁策略详解:互斥锁、读写锁、乐观锁与悲观锁、轻量级锁与重量级锁、自旋锁、偏向锁、可重入锁与不可重入锁、公平锁与非公平锁

目录 一.锁策略 二.互斥锁 三.读写锁 四.乐观锁与悲观锁 五.重量级锁与轻量级锁 六.自旋锁 七.偏向锁 八.公平锁与非公平锁 九.可重入锁与不可重入锁 一.锁策略 锁策略指的是在多线程编程中用于管理共享资源访问的规则和技术。它们确保在任何给定时间只有一个线程可以…

自然资源-国土空间体系下详细规划转型建设-学习安徽模式

自然资源-国土空间体系下详细规划转型建设-学习安徽模式 为了全面贯彻落实党的二十大精神&#xff0c;深化“多规合一”改革成果&#xff0c;提高城市规划、建设、治理水平&#xff0c;促进城乡高质量发展&#xff0c;2023年3月&#xff0c;自然资源部印发《关于加强国土空间详…

IntelliJ IDEA 配置JDK

IntelliJ IDEA-之配置JDK 我们的开发神器IDEA安装好了之后&#xff0c;在实际开发中&#xff0c;我们如何去配置好JDK的版本呢&#xff1f; 注意&#xff1a;需要保证JDK在已经成功安装的情况下&#xff0c;再进行IDEA的配置 现在就行动&#xff0c;让IntelliJ IDEA成为你征…

【工具】macOS、window11访问limux共享目录\共享磁盘,samba服务安装使用

一、samba服务安装 Samba是一个免费的开源软件实现&#xff0c;使得非Windows操作系统能够与Windows系统进行文件和打印服务共享。它实现了SMB/CIFS协议&#xff0c;并且能够在Linux、Unix、BSD等多种系统上运行。 安装 samba&#xff1a; sudo yum install samba配置 samba…

后端之路第一站——Maven

前提&#xff1a;得会基础java 前言&#xff1a;不知道出于什么原因&#xff0c;可能是喜欢犯贱吧&#xff0c;本人从大一到大二都一直在专研前端开发&#xff0c;一点也没接触过后端&#xff0c;但是突然抽风想学后端了&#xff0c;想试着自己全栈搞一下项目&#xff0c;于是在…

机器人工具箱学习(三)

一、动力学方程 机器人的动力学公式描述如下&#xff1a; 式中&#xff0c; τ \boldsymbol{\tau} τ表示关节驱动力矩矢量&#xff1b; q , q ˙ , q \boldsymbol{q} ,\; \dot{\boldsymbol { q }} ,\; \ddot{\boldsymbol { q }} q,q˙​,q​分别为广义的关节位置、速度和加速…

【Python】图形用户界面设计

1、设计并编写一个窗口程序,该窗口只有一个按钮,当用户单击时可在后台输出hello world. import tkinter as tk def on_button_click():print("hello world") # 创建主窗口 root tk.Tk() root.title("Hello World Button") # 设置窗口大小 root.geometry…

Android手动下载Gradle的使用方法

导入新项目通常会自动下载gradle版本&#xff0c;这种方式很慢而且经常下载失败&#xff0c;按照提示手动下载的gradle应该放在那里&#xff0c;如何使用&#xff0c;本篇文章为你提供一种亲测有效的方法&#xff1a; 在Android Studio打开Setting搜索Gradle找到Gradle的存放目…

每日一练 2024.5.16(补 2024.5.14)

题目&#xff1b; 我们定义 arr 是 山形数组 当且仅当它满足&#xff1a; arr.length > 3存在某个下标 i &#xff08;从 0 开始&#xff09; 满足 0 < i < arr.length - 1 且&#xff1a; arr[0] < arr[1] < ... < arr[i - 1] < arr[i]arr[i] > arr…

【大模型微调】一文掌握7种大模型微调的方法

本篇文章深入分析了大型模型微调的基本理念和多样化技术&#xff0c;细致介绍了LoRA、适配器调整(Adapter Tuning)、前缀调整(Prefix Tuning)等多个微调方法。详细讨论了每一种策略的基本原则、主要优点以及适宜应用场景&#xff0c;使得读者可以依据特定的应用要求和计算资源限…

Vue的学习 —— <vue组件>

目录 前言 正文 一、选项式API与组合式API 二、生命周期函数 1、onBeforeMount() 2、onMounted() 3、onBeforeUpdate() 4、onUpdated() 5、onBeforeUnmount() 6、onUnmounted() 三、组件之间的样式冲突 四、父组件向子组件传递数据 1、定义props 2、静态绑定props…