前言

添加阴影是中提高画面质感有效的方式。

之前在自己的2D游戏里面添加阴影有时候遇到这样的问题,半透明的阴影重叠起来之后透明度也叠加了。

这并不是我想到要的效果。

我希望的重叠的阴影透明度保持统一。

第一种方法

专门创建一个照场景物体的相机,把照相机的画面渲染到一个render texture中,然后把rendertexture变成黑色边投影作为阴影。

这样的操作过程有点麻烦但是好处是可以对阴影添加各种效果。

因为它就是个图片。

shadowcamera参数:

需要注意的是shadowcamera的位置最好和游戏的主摄像机位置一致,这样方便对齐阴影。

rendertexture参数

rendertexture的size需要和屏幕高宽比一致,这样阴影的比例才是正确的。

Plane参数

在主场景中我使用了Plane做为阴影的图片显示,并且做了一个简单shader来调整阴影的颜色和透明度。

shader的代码如下:

Shader "Custom/Shadow"

{

Properties

{

_MainTex ("Albedo (RGB)", 2D) = "white" {}

_Color ("Color", Color) = (1,1,1,1)

}

SubShader

{

Tags

{ "Quene" = "Transparent"

"IgnoreProjector" = "True"

"RenderType" = "TransparentCutout"

}

Pass{

Tags{ "LightMode" = "ForwardBase" }

ZWrite Off

Cull Off

Blend SrcAlpha OneMinusSrcAlpha

CGPROGRAM

#include "UnityCG.cginc"

#pragma vertex vert_img

#pragma fragment frag

fixed4 _Color;

sampler2D _MainTex;

float4 _MainTex_ST;

fixed _AlphaScale;

fixed4 frag(v2f_img i) : COLOR

{

fixed4 color = tex2D(_MainTex, i.uv);

_Color.a *= color.a;

return (_Color);

}

ENDCG

}

}

}

最终效果如下:

unity2d 投影_unity2D解决阴影透明度叠加的问题相关推荐

  1. OpenGL.Shader:12-阴影实现 - 解决阴影失真

    OpenGL.Shader:12-阴影实现 - 解决阴影失真 紧接上文的内容,那么怎么解决阴影失真的问题呢?这些问题其实都是不可回避的存在,现代技术只能尽量优化效果已达以假乱真的效果. 首先回到深度纹 ...

  2. 用opencv实现两张半透明png图片以一定透明度叠加

    例如我有如下两张透明.半透明图: 在photoshop中打开如下: 前景:一张四通道的png图,BGR通道的值全为[0,0,200],透明度完全靠alpha通道的不同值来体现. 后景:一张四通道的pn ...

  3. 解决gif 透明度问题

    解决gif 透明度问题 背景: 高清gif本身小影已经可以正常导出,随着app需求的迭代,需要支持导出带透明度的gif,支持gif导出透明度过程遇到了一些问题,本文档就详细介绍解决的过程. 实现过程: ...

  4. css阴影设置透明度,css3圆角 阴影 透明度

    css3圆角 阴影 透明度 .box{ width: 200px; height: 200px; border: 2px solid #000; background-color: gold; mar ...

  5. 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现)

    本文介绍透明度叠加算法(Alpha Blending Algorithm),并用 C#/WPF 的代码,以及像素着色器的代码 HLSL 来实现它. 本文内容 算法 在 C# 代码中实现 在像素着色器中 ...

  6. css3圆角360度转动画,target,框架集,css3过渡动画,css3圆角-阴影-透明度,运动曲线,图片文字遮罩,变形...

    target 模拟后台服务器 框架集 frameset和body不合,所以如果用frameset就不能有body标签 利用框架可以把浏览器窗口划分为若干个区域,每个区域就是一个框架,在其中分别显 示不 ...

  7. Unity Shader - URP ShadowCast ShadowRecieve - 投影 和 接受阴影

    文章目录 Shadow Caster Using URP Shadow Caster Pass Using Custom Shadow Caster Pass 先来看看 [没有] apply shad ...

  8. Directx11进阶教程之CascadeShadowMap(层级阴影)(下)---解决阴影丢失和阴影抖动问题

    承接上一篇博客,我们探讨下阴影丢失和阴影抖动的原因和提出相应的解决办法. CSM算法的阴影丢失或者显示错乱问题: 再次看看试验场景的阴影丢失或者阴影显示错乱的现象: 错误的显示:(上个教程不完善的CS ...

  9. OpenGL glBlendFunc() 设置颜色混合 透明度叠加计算

    glBlendFunc();–混合 OpenGL 会把源颜色和目标颜色各自取出,并乘以一个系数(源颜色乘以的系数称为"源因子",目标颜色乘以的系数称为"目标因子" ...

最新文章

  1. PrintWriter用法简析
  2. pynvml 查看GPU已使用的显存
  3. cassandra框架模型之一——Colum排序,分区策略 Token,Partitioner bloom-filter,HASH
  4. 局部钩子能防全局钩子吗_Vue你真的熟吗?来回答这几个问题试试
  5. 【STM32】RTC程序示例
  6. php bind_param,php – 在mysqli bind_param中绑定动态变量
  7. Google Maps API 调用实例
  8. android10无法获取ssid,解决Android 8.0和9.0无法获取SSID (unknow ssid)
  9. 保存网站快捷方式到桌面的php代码,转的一个朋友的了,加了点判断
  10. 如何使用命令强制DC的复制
  11. 【NLP入门】手把手带你CNN文本分类(附代码)
  12. python传递list给前端并在前端成功显示图片·可以显示多张后台传过来的图片
  13. 物联网边缘-物联网准入或接入安全防护产品及解决方案
  14. 桌面便签软件哪个比较好 好用的手机桌面便签软件推荐
  15. Zotero | 文献关联
  16. 43套高质量PPT模板—创意风格主题
  17. 在线语音转文字如何进行在线转换的
  18. win10下安装MySQL8
  19. 计算机与信息科学书刊,第五届信息科学、计算机技术与交通运输国际学术会议(ISCTT 2020)...
  20. java 抽象类 Shape

热门文章

  1. 序列号加密中的数学算法
  2. PR婚礼标题模板 梦幻浪漫植物生长动态婚礼全屏标题pr视频模板
  3. 【jiasuba】分享:USBoot软件 实现从优盘引导系统
  4. 老板键2.0一键隐藏 桌面摸鱼 用于快速隐藏游戏或其他无关工作的程式
  5. [NOIP1996 提高组] 挖地雷 (动态规划)
  6. Java语言程序设计-Eclipse入门之HelloWorld程序
  7. 如何使用python自动识别验证码?
  8. 读懂大数据,这篇文章一定要细细品读!
  9. kb931125—rootsupd_Windows XP 您的时钟快了,无法建立私密连接
  10. 欢聚时代成功上市将激发互联网“第二春”?