精华内容
下载资源
问答
  • CFD动网格教程

    2013-05-28 19:16:49
    CFD动网格教程
  • 用Gambit画网格,Fluent做动网格,计算域含自由液面VOF,每步设置均有截图
  • 1 模拟简介计划用到Fluent动网格,以及两相流的VOF模型,模拟导弹出水的整个过程。2 导弹模型三维建模因为没有导弹的具体尺寸,凭我想象及平时映像随便画了一个。3 流体计算域模型构建本次计划,导弹从潜艇发射井...

    3739ee89f08cdeef9a03f16496343005.gif

    1 模拟简介

    计划用到Fluent动网格,以及两相流的VOF模型,模拟导弹出水的整个过程。

    2 导弹模型三维建模

    因为没有导弹的具体尺寸,凭我想象及平时映像随便画了一个。

    63b05858bc73f36d83b6ee19f2faedd1.png

    3 流体计算域模型构建

    本次计划,导弹从潜艇发射井发射,然后导弹海域,随后再上升一段到达空气中的一个运动过程。

    288cd020b8a4a90cbe77a7e94f64c398.png

    由于用到动网格,还得将导弹运动路径上的这部分流体计算域单独切出来。如下图所示:

    1efd895d1a4112dc6faa109a67f296dc.png

    4 网格划分

    4.1 around部分网格划分

    把切分好的around部分导入ICEM中进行结构化网格划分,设置不同的part面

    2a3e69c78ff5eb912b7417894fb16c46.png

    创建block块,并进行切分

    9ca322ea1f5a40753f57990d42052854.png

    删除多余的block

    af0920a90c534a91e3c318b480f77f22.png

    设置网格尺寸,然后预览网格,并检查质量,0.95以上了,没问题,最后输出就行。

    e53d5f3b1d1e6ee98806e17a3dacb792.png

    其中导弹上部和下部的块都是长方形,也比较简单,采用结构化网格划分。整个画分步骤差不多,不过时间有点长,略微麻烦一点,在这里就不具体写了,只展示一下block和画好的网格。

    433604990b03673ec5b505aa13957c6c.png

    72a78b509009f3f769656f0b72a30d3a.png

    5 Fluent中设置

    下面指定导弹的运动速度随时间变化的prof文件如下:

    ((move transient 2 1)

    (time 0 80)

    (v_z 20 20)

    )

    本次网格为六面体网格,运动也为单向运动,故采用铺层方法重构网格(基于高度),然后选取需要参与动网格的面,然后设置理想网格高度如下所示:

    0753416d902d900c177066cca7e67add.png

    af19ea709f4f1d222aed3de45d19f2bb.png

    af19ea709f4f1d222aed3de45d19f2bb.png

    计算域离散方式基本默认就行

    e56dd9741afff3a4a626502eccdfd956.png

    由于计算并不复杂,所以松弛因子默认就行

    999e45ceb7f9c234e6fa65fd5af60dcb.png

    接下来也是很重要的一步就是初始化,然后petch整个域都是水

    3bb568231a99c0395d79bc5620a77a92.png

    后面就是要创建水平面,首先根据水平面高度测量好要标记的坐标范围,然后点击Mark就行。

    a93d8cb551b15ee1d72681b7bd6011cb.png

    这时在刚才的Patch界面就会出现刚刚标记的那个区域,然后就可以吧刚才标记的区域patch成空气域,这样就形成了一个水平面。

    a07ba5537780bcecc2b27ad470e7cc8a.png

    30ab72f91dd3a19b7fbccd3113dda5a4.png

    最后设置时间步及内迭代步数就可以进行计算了

    b00fa38d2fb1a36831c6462b14bc349b.png

    6 后处理结果

    这是提取整个过程中间截面速度云图

    23a8799424288559aec8167613112a2d.gif

    整个过程中间截面液相分布云图

    4cf6442a5384c2ad09c799e6ccaeb239.gif

    这是用Q方法提取的涡量等值面图

    aac4111ea17ea7c68c2551ca0bac4116.gif

    b49b3fd92d2fcf151ad7fcd522ccd281.gif

    若有需要可以搜索微信号:YN1045837504 咨询各种计算流体动力学流CFD模拟知识,也提供一对一指导,录制教程等。

    展开全文
  • Comsol动网格使用

    2021-03-29 13:57:07
    知乎达灵的动网格设置教程 一个教程是常规的: 一个教程是边界滑移的: 前几天发现我设置的动网格问题:相应的域会自己动,但是,它和附近的域并没有一起重新划分网格。类似贴吧里面某位用户一样的问题: ...

    动网格的例程,网上资源很少。推荐这个大佬的动网格设置方法,基本使用是足够了的。

     

    参考以下链接:

    知乎达灵的动网格设置教程

    一个教程是常规的:

    一个教程是边界滑移的:

    再补充一个链接,大家也可以参考:动网格案例参考2

    前几天发现我自己设置的动网格问题:相应的域会自己动,但是,它和附近的域并没有一起重新划分网格。类似贴吧里面某位用户一样的问题:

    问题困扰了我好几天,一直因为这个点没有搞通,很多事情进度都延后了。

    上步骤:

    1.

    教程里面,改变物体的位移使用的是速度。而我自己的模型中,我希望通过自己的函数来移动,于是,这一步略有不同。

    2.下面就是我出问题的重点:

    下面就是我出问题的重点:

    move(t),函数定义必须要连续。否则,就会出现各种各样奇葩的问题。

     

    之前一直没有关心函数的问题。

    在查找问题的时候我就用了一个正弦函数:0.01*sin(t[1/s]) ---》输入到位移框中,发现,网格能够自动划分,一旦用我的函数move(t)就会出问题。于是就发现move(t)的问题所在了。

    另外提一点:这里过渡区的意思:如果是绝对大小,按照图中的设置:0s-5s ==  0、5s-10s == 0.01m,则函数值在5s突变的位置只需0.1s,就能从0m突变到0.01m。。

    如果是相对大小0.1:系统则按比例计算,这里5s拐点突变需要的时间就是  (10s-5s)*0.1 = 0.5s。如果你后面这个区间给的越大,突变的时间也会增加。

    感觉没说太清楚,如果还有人不懂可以提问。

     

    自由变形1/2就不用截图了,就是把两个域选进来就OK了。

    最后还要把自动重新划分网格选上,链接里面有教程。

    只希望后面有类似的问题的同学不要走弯路,特此记录。

    展开全文
  • 本文是《Unreal Engine 4 渲染目标(Render Target)教程 之 动态网格绘制(Dynamic Mesh Painting)》的下半部分,上半部分请见《Unreal Engine 4 渲染目标(Render Target)教程 之 动态网格绘制(Dynamic Mesh ...

    本文是《Unreal Engine 4 渲染目标(Render Target)教程 之 动态网格绘制(Dynamic Mesh Painting)》的下半部分,上半部分请见《Unreal Engine 4 渲染目标(Render Target)教程 之 动态网格绘制(Dynamic Mesh Painting)(上)》
    作者|Tommy Tran Sep 7 2018 | 翻译 开发游戏的老王

    本教程的方法

    Ryan的方法是可行的,但它的实现方法略繁琐:

    • 需要两次对渲染目标的绘制。第一次用于捕获展开的网格,第二次用于累加球形遮罩。
    • 一个渲染目标存储世界位置。
    • 一个渲染目标累加球形遮罩,而且我们需要为每一个要绘制的角色配一个独立的渲染目标。

    本教程的方法舍弃了第二次绘制和用于存储世界位置的渲染目标。其实现原理是将展开和球形遮罩图组合存储到一个展开材质中(unwrap material)。然后在叠加合成模式(additive composite mode)中捕获展开并将球形遮罩累加上去。

    需要注意的是,两种方法都是在模型的UV没有重叠的时候效果最好。因为重叠的UV意味着一些像素会共用UV空间,并且也会共用遮罩。例如,我们让角色的双手的UV重叠在一起,如果一只手被遮罩了,那么另一只手也会被遮罩。

    大致了解了这个方法,我们来创建展开材质。

    创建展开材质(Unwrap Material)

    Materials文件夹中创建新的材质并命名为M_Unwrap,然后打开它。

    接下来,修改如下设置:

    • Shading Model: Unlit,确保scene capture不捕获任何光照信息。
    • Two Sided: Enabled,有些时候展开的UV面会反向,所以开启Two Sided以后,就能够确保即使有面反转了也能被看到。
    • Usage\Used with Skeletal Mesh: Enabled,编译用于骨骼网格材质的必要着色器。

    在这里插入图片描述
    接下来,对网格展UV。创建如下节点。笔者在MPC_Global资源中已经创建了CaptureSizeUnwrapLocation变量。

    在这里插入图片描述

    上述代码将为网格以指定的位置和大小来展UV。注意,如果你的网格UV在另外的通道,你需要修改TextureCoordinate节点的Coordinate Index。比如,UV在通道1,则将Coordinate Index设为1

    接下来,创建球形遮罩。我们需要2个参数:碰撞位置(hit location)和球的半径(sphere radius):

    在这里插入图片描述

    上述代码将为球形遮罩范围内的像素返回白色,为其范围之外的像素返回黑色。先不用设置参数的值,我们会在后续的蓝图中做这件事。

    一定要将Absolute World Position node节点设为Absolute World Position (Excluding Material Shader Offsets)。因为像素的世界位置会因展UV而发生改变。排除材质的偏移量会给我们展UV之前的原始世界位置。

    以上就是创建展开材质的全部工作。点击Apply然后关闭材质。接下来我们将材质应用到角色上,并将其展UV。

    为角色展UV

    本教程中scene capture蓝图将负责展UV和捕捉。首先,我们需要一个展开材质的动态实例。在Blueprints 文件夹中打开BP_Capture。然后为Event BeginPlay事件添加如下高亮节点。确保将Parent设为M_Unwrap

    在这里插入图片描述

    接下来,我们需要一个函数实施展UV和捕获。创建一个名为PaintActor的函数。然后为其添加如下参数输入:

    • ActorToPaint: 类型是Actor,被展UV和捕捉的角色。
    • HitLocation: 类型是Vector,球形遮罩的中心。
    • BrushRadius: 类型是Float,球形遮罩的半径(世界单位)。

    在这里插入图片描述

    尽管该方法适用于任何actor,但是我们还是要检查一下输入的actor是否为Character。简单起见,我们把角色的骨骼网格存储到一个变量中,因为我们要访问它很多次:

    在这里插入图片描述
    接下来,实现展UV和球形遮罩。在节点链的最后添加如下高亮节点:

    在这里插入图片描述

    解释以下上述代码:

    1. 先保存网格的原始材质(后续我们会将它重新应用到网格上),然后应用展开材质。
    2. 第二行会把碰撞位置和笔刷半径传给展开材质。

    在测试展UV之前,我们需要从玩家角度做一次射线检测以获取碰撞位置。

    获取碰撞位置

    点击Compile并回到主编辑器,打开BP_Player,找到Shoot函数并添加如下高亮节点。本教程中,将Brush Radius设为10

    在这里插入图片描述
    点击Compile并关闭BP_Player。点击Play然后在角色上单击左键,就可以展UV并进行遮罩了。

    在这里插入图片描述

    你可能很奇怪,为什么遮罩总在动,因为角色的身体相对于球形遮罩,总是进进出出的。但这不算是问题,因为我们仅会在碰撞的瞬间捕获展开。

    现在我们已经展开了网格,接下来该捕获它了。

    捕获展开

    首先,在被展开网格前面添加一个unlit的黑色平面以挡住UV壳边缘上的接缝。打开BP_Capture添加一个Plane并命名为BackgroundPlane。为节省时间,笔者已经创建好了黑色材质。将材质设为M_Background

    在这里插入图片描述

    本教程中,展开和捕捉大小为500×500个单位,这也是背景平面的最小尺寸。将背景平面的Scale 设为 (5.0, 5.0, 1.0)

    在这里插入图片描述

    因为平面的位置和展开的位置是相同的,所以最好将平面的位置下移一些,以防止它们在Z轴上冲突(z-fighting),将BackgroundPlaneLocation设为 (0.0, 0.0, -1.0)

    接下来,执行捕捉。回到PaintActor函数,并添加如下高亮节点:

    在这里插入图片描述

    上述代码会捕捉展开的网格。然后重新应用网格的原始材质。

    我们需要确保scene capture向渲染目标“添加”内容,而非覆盖掉先前的内容。因此,选择SceneCapture组件,然后将Scene Capture\Composite Mode设置为Additive
    在这里插入图片描述
    点击Compile并关闭蓝图。接下来,我们要在角色材质中使用渲染目标。

    使用遮罩

    Characters\Mannequin\Materials中打开M_Mannequin。然后添加如下高亮节点,并确保
    Texture Sample设为RT_Capture

    在这里插入图片描述

    实现的结果就是,遮罩为白色的地方显示为红;遮罩为黑色的地方显示为橘黄。如果你愿意,还可以使用这个遮罩把纹理或材质层混合起来。

    点击Apply并关闭材质。点击Play然后用左键在角色身上点击,就开始绘制了。

    在这里插入图片描述

    展开全文
  • 在本教程中,您将学会如何在任意类型的网格上绘制颜色 文章目录 网格绘制指的是游戏运行时玩家在物体上绘制的能力。比较经典的例子:《超级马力阳光》中的粘性物质,《传送门》中的凝胶剂,《喷射战士》中的染料。...

    原文|《Unreal Engine 4 Tutorial: Dynamic Mesh Painting in Unreal Engine 4》
    作者|Tommy Tran Sep 7 2018 | 翻译 开发游戏的老王
    阅读时长|15分钟 内容难度|中级
    在本教程中,您将学会如何在任意类型的网格上绘制颜色

    网格绘制指的是游戏运行时玩家在物体上绘制的能力。比较经典的例子:《超级马力阳光》中的粘性物质,《传送门》中的凝胶剂,《喷射战士》中的染料。网格绘制可用于游戏性元素也可纯粹用于视觉效果。无论如何,它都给游戏设计师和艺术家提供了大量的可能性。

    尽管上述经典案例的效果相似,你依然可以使用网格绘制实现喷溅物体、渲染角色的伤口甚至允许玩家为他们的角色画脸谱!

    本教程内容重点是在骨骼网格(skeletal mesh)上绘制。我们会介绍:

    • 为一个网格展UV
    • 使用射线追踪的撞击位置为网格进行球形遮罩
    • 使用scene capture将展过UV的网格和球形遮罩渲染到渲染目标
    • 使用遮罩将纹理和角色材质进行混合

    本教程并非顶点绘制教程。顶点绘制依赖于网格的分辨率并且无法在运行时改变。而本教程中的方法不依赖于网格分辨率并且可以在运行时执行。

    注意:本教程假定读者已经掌握了Unreal Engine的基本用法。

    注意:本教程渲染目标系列教程四部曲之一:

    开始吧

    译者注: 本教程提供了范例工程,如果需要可以到原文网站免费注册并下载。

    MeshPainterStarter文件夹中打开MeshPainter.uproject,点击Play的话,你会看到一个小人儿,这就是我们要绘制对象。

    在这里插入图片描述

    和前面雪地足迹教程和可交互草地教程一样,本教程也需要scene capture,为了节省时间,笔者已经创建好了scene capture蓝图。如果想了解scene capture设置,请参阅前面的教程。

    首先,咱们看一下如何在网格上绘制。

    网格绘制

    大多数情况下,我们使用的网格都已经展好UV了,这时我们只需要使用渲染目标创建遮罩并将其应用到网格上就可以了。然而,直接在渲染目标上绘制遮罩会使UV壳(UV shell)出现一些不连续的问题。

    以下为一个立方体UV和一个球形遮罩的例子:

    在这里插入图片描述
    当我们把遮罩应用到立方体上:

    在这里插入图片描述

    如你所见,一个2D球形遮罩无法包裹那些拐角。如果要生成正确的遮罩,球形遮罩需要在网格的世界坐标系中采样。然而,我们绘制渲染目标时如何才能访问到世界坐标呢?

    在油管上一个名为Ryan Bruck的UP主做了一个关于使用渲染目标实现角色伤害效果的视频(本教程中的方法就基于Ryan Bruck的方法)。在他的视频中,他成功地生成了3D球体遮罩,并把它应用到了渲染目标上。之所以能够实现,是因为Ryan Bruck创建了一个渲染目标来存储网格的世界坐标,这样他就可以用球形遮罩来采样了。下面,咱们深入聊一聊这事儿。

    Ryan的方法

    Ryan的方法一共有4个步骤。第1步就是对网格“展UV”。例如,下图就是角色的UV:

    在这里插入图片描述

    下面是角色在虚幻中展完UV的样子:

    在这里插入图片描述

    我们可以在给网格展UV的时候使用点简单的世界位置偏移量计算(后面会解释这个)。

    展完UV,第2步就是要把网格的世界位置编码到渲染目标中。我们可以将展开材质(unwrap material)的颜色设为绝对世界位置(Absolute World Position),然后使用scene capture来捕获展开。

    在这里插入图片描述

    注意:之所以渲染目标的颜色会改变,因为角色是带动画的,因此世界位置也是持续改变的。

    第3步就是创建球形遮罩。现在我们就可以访问网格的世界位置,并使用球形遮罩对其采样。我们可以将球形遮罩直接渲染到第二个渲染目标上。

    第4步就是在角色的材质中使用遮罩来混合颜色、纹理以及材质。以下是第3、4步的可视化表示:

    在这里插入图片描述

    接下来我们来看一下笔者提出的方法。

    展开全文
  • 教程将向您展示如何创建具有动态加载特性的树网格。 jQuery EasyUI最新试用版下载请猛戳>> 点击查看示例 创建树网格 1 2 3 4 5 6 7 8 9 10 ...
  • 使用'columns'属性可以很容易地定义数据网格列。如果您想要动态地改变列,这也非常容易。为了更改列,您可以重新调用datagrid方法并传递一个新的column属性。 创建数据网格 1 2 table...
  • 虚幻UE4中Matinee基础:骨架网格教程

    千次阅读 2017-05-09 17:39:52
    教程的目标是教你在如何在Matinee中使用骨架网格的一些基础知识。 您将学习如何连接和操纵骨架网格并使骨架网格物体播放动画。
  • ZBrush雕刻大师是一款数字雕刻和绘画软件... 本套ZBrush 4R6教程从零开始学习ZBrush,是一部ZBrush的快速入门教程,内容丰富、结构清晰、实例由浅入深、覆盖面广。非常适合初学者学习ZBrush。 教程带领初学者从ZBrush...
  • 网格和参考线是设计过程中帮我们找准位置、距离、更好排版的极佳辅助工具。在Focusky(以下简称为“FS软件”)演示文稿中利用网格和参考线可以让演示更专业规范。 一、网格:虚线,等距平均分布,不可移动 1.启用...
  • 在文档中使用网格也是我们经常会用到的,使用网格能够准确地定位图片或图形对象,也能够精确地改变图形对象的大小,具体怎么操作呢?就让Word联盟为大家带来分享! 动画演示: ①单击“文件”—“页面设置...
  • 在之前的自己写的NavMesh网格寻路功能的基础上,做了个寻路网格动态自动生成的功能,突破了Unity的自带寻路不能动态生成寻路网格,一定要先break再用的缺点。 用法很简单,把可以走的地形设置成一个叫做...
  • 这里使用的网格为第一篇教程 (创建立方体) . 如果我们想要从网格中删除顶点、面或者边,就必须先打开网格的状态属性 OpenMesh::Attributes::Status 用来保存元素是否删除。一般用动态方式定义状态变量,代码如下 ...
  • 教程将向您展示如何在主网格上创建一个子网格。 jQuery EasyUI最新试用版下载请猛戳>> 查看jQuery EasyUI演示 Step 1:创建主数据网格 1 2 3 4 5 6 7
  • In this tutorial, we’ll learn how to create animation for a RecyclerView in which elements ... 在本教程中,我们将学习如何为RecyclerView创建动画,其中的元素以Grid形式显示。 We’ve already discussed ...
  • 书接上文《Blender图解教程:马里奥食人花三部曲(一)建模和贴图》,本文将完成食人花的骨骼绑定和动画工作。
  • 动网格是另一种可选方法,它能够处理没有发生拓扑变化的自由液面。本文中我们将展示如何使用动网格方法为自由液面建模,并将结果与基于场的方法进行对比。自由液面问题为了演示动网格功能,我们继续以介绍相场和水平...
  • Surfer动画教程

    2008-12-23 10:34:02
    难得找到的Surfer动画教程,文件列表: 00如何使用Surfer.swf 01新建文档.swf 02打开文档.swf 03页面布局.swf 04如何网格化.swf 05创建等值面图.swf 06创建等值面图2.swf 07改变等值线等级.swf 08改变等值线属性....
  • Adobe Illustrator的教程:使用渐变网格工具创建矢量插图 将学习如何创建基本的形状和应用渐变网格上他们创造网格和如何给不同的颜色,以网格以及 如何各个顶点使用混合选项来创建逼真的矢量插图。 它是为您带来...
  • 教程将向您展示如何创建带有动态加载特性的树形网格(TreeGrid)。 创建树形网格(TreeGrid) <table title="Products" class="easyui-treegrid" style="width:700px;height:300px" url="t...
  • 原文:Unreal Engine 4 Animation Tutorial作者:Tommy Tran译者:Shuchang Liu 在本篇教程中,你将学习导入,使用动画资源。 你会发现,现在基本没有游戏是不... 导入带有骨骼的网格资源 导入动画资源 ...
  • 用ideal gas模拟爆炸气泡。 赋予初始的压力来使气泡压力高于水的压力,因而气泡产生膨胀和收缩...此为教程的第二部分,ansys fluent设置! 所需的网格文件需在第一部分gambit建模过程中建立! 此部分为屏幕录像的动画
  • 示例本教程展示如何向带有动态加载特性的树形网格(TreeGrid)添加分页。 创建树形网格(TreeGrid)启用树形网格(TreeGrid)的分页特性,必须添加 'pagination:true' 属性,这样页面加载时就会向服务器发送 'page' 和 '...
  • 用ideal gas模拟爆炸气泡。 赋予初始的压力来使气泡压力高于水的压力,因而气泡产生膨胀和收缩运动。...此为教程的第二部分,ansys fluent设置! 所需的网格文件需在第一部分gambit建模过程中建立!
  • Cocos2d-x 2.0 网格动画深入分析

    万次阅读 热门讨论 2012-12-28 01:20:39
    [Cocos2d-x相关教程来源于红孩儿的游戏编程之路CSDN博客地址:http://blog.csdn.net/honghaier] 红孩儿Cocos2d-X学习园地QQ2群:44208467 加群写:Cocos...本章为我的Cocos2d-x教程一书初稿。望各位看官多提建议!
  • 使用网格属性和特性 翻译,原文链接 **注:**原文标题为 Using mesh attributes and traits. Attribute 中文意思是属性,前面几篇文章中提到的 Property 中文翻译也是属性,我也不知道怎么翻译才能体现两个词的区别...

空空如也

空空如也

1 2 3 4 5 ... 15
收藏数 288
精华内容 115
关键字:

动网格教程