永远相信美好的事情即将发生 😊!

闪亮的灯球效果实现(URP)-有坑待填

作品 Mavis 19℃ 0评论

效果:

昨天写了个球,晚上睡觉前就想今天要做什么,突然想起了那首洗脑的歌,所以决定在昨天的基础上做个闪亮的灯球

先用plane搭个小屋子(平行光我关掉了):

然后把昨天做的球放进去,昨天是给相机加了bloom的后处理,今天不加了,用一个点光源放在球体中心

接下来要做一下灯的绳子,让它可以在空中荡起来(旋转的脚本可以不删,我觉得效果可能会更酷,不过还没做出来,到时候再决定删不删吧)

查了一下unity手册,用Hinge Joint 应该就可以达到我想要的效果,来试一下吧

相关属性介绍-https://www.cnblogs.com/hangzhe/p/7214731.html

学习了一会儿这个关节的用法,现在开始实现一下

创建一个空物体作为关节,然后为这个物体加上组件Hinge Joint(会自动添加rigidbody如果之前没有这个组件的话)

把关节移动到屋顶,然后将灯球作为该关节的子物体,调整一下相对位置

然后调整关节的相关信息,比如旋转的轴之类的,不同参数对关节的影响可以顺手随便试试

层次结构:

关节信息,刚体组件中如果不选中重力,关节就会绕着锚点一直旋转,没有荡的效果,所以需要加上,然后我需要它左右晃,所以轴向也改了一下(直接改关节的旋转应该也是可以的),这里没有添加连接的物体,所以该关节是在世界坐标下的:

再对该关节加上一个脚本用来施加初始力

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Hinge_Joint : MonoBehaviour
{
    public float forceX = 200;
    void Start()
    {
        Rigidbody body = this.GetComponent<Rigidbody>();
        body.AddForce(new Vector3(forceX, 0, 0));
    }
}

现在得到的效果就是这样的:

本来想实现一个绳子比较软一点的效果,但觉得貌似有点麻烦,看了网上的(https://bbs.huaweicloud.com/blogs/201672)打算就简单一点用一个物体意思一下。因为还要做镂空的光影效果,所以后面有时间再来实现这个绳索的效果

接下来要做光影效果了,墙壁使用的是内置的lit.shader,能够接收点光源,我们需要做的是,把镂空的部分写入阴影图中,有一个pass是专门用来做这个的,将pass的tag中加上”LightMode” = “ShadowCaster”就可以,该Pass渲染光源空间的物体深度到阴影图中,用于投射阴影,然后把clip的部分加入这个pass中。

啊哦……是我想的太简单了,在URP10.3.2里点光源还是不支持实时阴影,那就放弃这个效果吧……

有关阴影和光源的内容可以看大佬的文章(https://www.bilibili.com/read/cv6446451/),坑就先留下吧,据说2021就可以支持了,到时候想得起来再来填吧!

最后的效果就是这样了:

虽然没有达到自己想要的效果,不过学了一个关节,,也不是啥也没学到嘛……

M·M明天要继续加油!!!!冲冲冲


Mavis , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:闪亮的灯球效果实现(URP)-有坑待填
喜欢 (3)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址