unity插件_试用_流体ObiFluid

2023-10-29 23:08

本文主要是介绍unity插件_试用_流体ObiFluid,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

unity插件_试用_流体ObiFluid

  • 原理分析(个人看法)
  • 基础组件说明(试用,只介绍关键参数)
    • ObiFluildRenderer(摄像机上实际渲染的组件)
    • Obi Solver(解决者,解算器)
    • Obi Emitter(发射器)
      • ObiParticleRenderer(液体的renderer)
      • EmitterShape(发射器类型)
    • Rig相关
    • 相关ScriptableObject
      • ObiEmitterMaterialFluid(液体材质)
      • ObiEmitterMaterialGranular(烟尘材质)
      • ObiCollisionMaterial(碰撞材质)
  • 使用步骤
    • 创建出水口
    • 创建一个与水交互的物体

原理分析(个人看法)

生成大量带物理效果的小球(点),通过类似鱼群的算法对小球进行约束(模拟水的压力,张力什么的),最后通过小球的点来算出液体的表现。算出边缘的小球绘制液体圆滑的边缘,中心部位根据小球的密度来加深颜色。(取消勾选ObiParticleRenderer上的Render变量可以看小球)

B站CodeMonkeyUnity制作的建议流体,原理跟我描述的类似.

基础组件说明(试用,只介绍关键参数)

大部分只要翻译单词就能懂的变量不会介绍

ObiFluildRenderer(摄像机上实际渲染的组件)

在这里插入图片描述
如果camera上没有这个组件,或者该组件未启用则实际运行看不到液体
属性:
(1)ParticleRenderers 该摄像机会拍摄的流体的renderer数组,未挂载的拍不到
动态更改后要重新关闭打开一次才会刷新
(2)BlurRadius 模糊半径,range(0f,0.1f)
BlurRadius为0时
BlurRadius为0时
BlurRadius为0.1时
BlurRadius为0.1时
(3)thickness cutoff 厚度截止,range(0.01f,2f)
thickness cutoff为0.01
thickness cutoff为0.01时
thickness cutoff为2时
thickness cutoff为2时
(4)ColorMaterial 颜色材质球,与ObiParticleRenderer的颜色乘法叠加(应该)
(5)FluidMaterial 流体材质球
最后两个材质球在添加该组件时有个默认的,没仔细研究

Obi Solver(解决者,解算器)

在这里插入图片描述
实际计算小球位置的处理器
公开属性:
(1)MaxPartices 该处理器的总小球数,每个Emitter在初始的时候会在Solver申请预算。Solver的usedPartices显示的是被申请预算的值(成功申请预算的Emitter的MaxPartices总和,没申请到的不起效),而不是当前每个Emitter的UsedPartices的总和
(2)Parameters 属性
1.Mode 2D还是3D

Obi Emitter(发射器)

在这里插入图片描述
公开属性:
(1)Solver 指定处理器
(2)CollisionMaterial 小球的碰撞材质,可以不加
(3)EmitterMaterial 小球的材质(液体材质或烟尘材质)
(4)NumParticles 小球数量限制(在Solver上面讲过)
(5)WorldVelocityScale 改了没感觉
(6)FluidPhase 没感觉
(7)Speed 发射器的初始速度,速度慢会有一滴一滴的感觉
(8)Lifespan 生命周期,单位秒
(9)RandomVelocity 随机速度的方法,调高了有出水口水花四溅的感觉

ObiParticleRenderer(液体的renderer)

公开属性
(1)Render 勾选时候显示小球,取消勾选显示液体(要在ObiFluildRenderer那边添加,上面说过)
(2)ParticleColor 显示液体时的颜色
(3)RadiusScale 每个小球在画大球时候的半径(原理分析说过),如果值太小,小于ParticleSize的话可能根本看不到液体(ParticleSize在后面会讲)

EmitterShape(发射器类型)

在这里插入图片描述
请按名称自行尝试

Rig相关

在这里插入图片描述
ObiRig要求已经添加过unity的Rig
ObiCol要求已经添加过unity的Col
ObiCol中的CollisionMaterial可以不管

注:ObiRig的KinematicForParticle勾选时会屏蔽液体的力,但是不会改变当前的运动状态。demo场景FluidMill可以试验

相关ScriptableObject

ObiEmitterMaterialFluid(液体材质)

在这里插入图片描述
在这里插入图片描述
简单说RestDensity(密度)越小Mass(质量)越小
Resolution越小,Mas跟Size都越小

ObiEmitterMaterialGranular(烟尘材质)

在这里插入图片描述

ObiCollisionMaterial(碰撞材质)

在这里插入图片描述

使用步骤

创建出水口

(1)创建处理器
右键/3DObject/Obi/ObiSolver
(2)创建发射器
右键/3DObject/Obi/Emitter
(3)创建液体材质
Assets/Create/Obi/Create ObiEmitterMaterialFluid
(4)配置Emitter
在Emitter上设置Solver跟EmitterMaterial
(5)摄像机配置
在camera上添加ObiFluildRenderer组件,并把刚生成的Emitter拖拽到ObiFluildRenderer的ParticleRenderers之中

创建一个与水交互的物体

(1)创建模型
(2)添加刚体,碰撞器
(3)添加Obi的rig跟col
(4)如果修改过Solver的CollisionLayers,要检查一下物体的layer
Mess值低(质量轻)的物体可以浮在水面

unity应用商店地址

这篇关于unity插件_试用_流体ObiFluid的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/303979

相关文章

Maven(插件配置和生命周期的绑定)

1.这篇文章很好,介绍的maven插件的。 2.maven的source插件为例,可以把源代码打成包。 Goals Overview就可以查看该插件下面所有的目标。 这里我们要使用的是source:jar-no-fork。 3.查看source插件的example,然后配置到riil-collect.xml中。  <build>   <plugins>    <pl

jenkins 插件执行shell命令时,提示“Command not found”处理方法

首先提示找不到“Command not found,可能我们第一反应是查看目标机器是否已支持该命令,不过如果相信能找到这里来的朋友估计遇到的跟我一样,其实目标机器是没有问题的通过一些远程工具执行shell命令是可以执行。奇怪的就是通过jenkinsSSH插件无法执行,经一番折腾各种搜索发现是jenkins没有加载/etc/profile导致。 【解决办法】: 需要在jenkins调用shell脚

Jenkins 插件 地址证书报错问题解决思路

问题提示摘要: SunCertPathBuilderException: unable to find valid certification path to requested target...... 网上很多的解决方式是更新站点的地址,我这里修改了一个日本的地址(清华镜像也好),其实发现是解决不了上述的报错问题的,其实,最终拉去插件的时候,会提示证书的问题,几经周折找到了其中一遍博文

eclipse安装subversion(SVN)版本控制插件

陈科肇 查看插件更新站点 网址:http://subclipse.tigris.org/servlets/ProjectProcess?pageID=p4wYuA 网站截图: 根据自己的eclipse版本,选择需要的更新站点. 使用eclipse集成subservion插件 Help > Install New Software…> 等待下载安装插件…

Weex入门教程之2,Android Studio安装Weex插件

插件位置及描述 https://plugins.jetbrains.com/idea/plugin/8460-weex 貌似对windows还不是很支持,先放着吧。 安装 插件功能 先预览下都有什么功能 安装完成Weex插件后,如果在main toolbar找不到这些功能图标,那么就需要手动添加到main toolbar 添加到main toolbar 红框内就是

mybatis框架基础以及自定义插件开发

文章目录 框架概览框架预览MyBatis框架的核心组件MyBatis框架的工作原理MyBatis框架的配置MyBatis框架的最佳实践 自定义插件开发1. 添加依赖2. 创建插件类3. 配置插件4. 启动类中注册插件5. 测试插件 参考文献 框架概览 MyBatis是一个优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射,为开发者提供了极大的灵活性和便利性。以下是关于M

Unity Post Process Unity后处理学习日志

Unity Post Process Unity后处理学习日志 在现代游戏开发中,后处理(Post Processing)技术已经成为提升游戏画面质量的关键工具。Unity的后处理栈(Post Processing Stack)是一个强大的插件,它允许开发者为游戏场景添加各种视觉效果,如景深、色彩校正、辉光、模糊等。这些效果不仅能够增强游戏的视觉吸引力,还能帮助传达特定的情感和氛围。 文档

PrestaShop免费模块/插件/扩展/工具下载

PrestaShop免费模块/插件/扩展/工具下载 PrestaShop免费模块 适用于您的电子商务网站的PrestaShop模块 现有超过3,000个PrestaShop模块可帮助您自定义在线商店,增加流量,提高转化率并建立客户忠诚度。 使您的电子商务网站成功! 下载(超过142+之多的PrestaShop官网认证的免费模块) 标签PrestaShop免费, PrestaShop免费工

zblog自定义关键词和描述,zblog做seo优化必备插件

zblog自定义关键词和描述,zblog做seo优化必备插件     首先说下用到的一款插件:CustomMeta自定义数据字段 ,我们这里用到的版本是1.1,1.1+版增加了列表页标签支持!     插件介绍:文章,分类等添加自定义数据字段。1.1+版适用于 Z-Blog 2.0 B2以上版本。     在zblog2.0beta1里面,这个插件是集成到了程序里面,beta2里面默认没有了

Unity协程搭配队列开发Tips弹窗模块

概述 在Unity游戏开发过程中,提示系统是提升用户体验的重要组成部分。一个设计良好的提示窗口不仅能及时传达信息给玩家,还应当做到不干扰游戏流程。本文将探讨如何使用Unity的协程(Coroutine)配合队列(Queue)数据结构来构建一个高效且可扩展的Tips弹窗模块。 技术模块介绍 1. Unity协程(Coroutines) 协程是Unity中的一种特殊函数类型,允许异步操作的实现