0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

3D 管道是如何流动的?

图扑-数字孪生 ? 来源:图扑-数字孪生 ? 作者:图扑-数字孪生 ? 2025-08-01 15:29 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在 3D 场景中,管道是一种极为常见且重要的元素。它不仅能用于呈现工厂、发电站、地下设施等工业环境中的输送系统,还可用来模拟数据的流动或处理过程,从而向用户直观展示数据的流向。

wKgZPGiMbLaAfFJsAAmnJ1xXknM674.png

在 HT 中,ht.Polyline 是一个强大的工具,可以用来在 3D 场景中表示管道。它不仅支持贴图,还能通过调整贴图的 UV 偏移等属性,生动地展示数据流的方向。ht.Polyline 不仅限于简单的管道表现,还可以使用它实现如流动、漫游等的功能。

管道流动

动画的核心在于控制节点属性的变化,而管道流动动画则是通过在动画过程中调节贴图的 UV 偏移属性来实现的。因此,这种动画形式也被称之为 UV 偏移动画。通过不断更新 UV 偏移属性,使得贴图在节点表面产生流动的效果。

管道中控制贴图偏移的属性是 shape3d.uv.offset,在代码中不断递增/递减这个属性值就可实现流动效果。

具体代码如下:

varconfig = { 
    duration:1000, 
    easing:t=>t, 
    action:(v, t) =>{    
        polyline.s('shape3d.uv.offset', [v,0]);  
    }, 
    finishFunc:() =>{    
        ht.Default.startAnim(config);  
    }
}
ht.Default.startAnim(config);

管道流动动画最终呈现的效果如下:

wKgZO2iMbLeAVCO5AAkgwMxjEVM931.gif

管道的 UV 偏移动画是一种常用于表现物质流动方向的技术,图示案例便是典型示例,它极具表现力地呈现出了流动效果。

wKgZPGiMbLeAFENfAAnuoRdbLcA476.gif

鱼道效果

开发者可以借此发挥创造力,利用管道流动动画实现更多创新的视觉效果。

例如,使用管道流动来模拟鱼道效果。通过绘制多条鱼的游动路径,并在管道上应用鱼的贴图,然后通过动画展现出鱼儿在水中游动的逼真场景。这个方法不仅生动形象,还为视觉呈现增添了动态趣味。

wKgZO2iMbLiANJtWAAv5htOZkS4338.gif

UV 裁切

管道不仅可以通过贴图实现流动动画效果,还能结合裁切属性打造更多丰富多样的视觉效果。例如管道的生长动画、管道显示过渡的效果。

管道裁切主要包括两个属性:

■裁切方向:3d.clip.direction

■裁切比例:3d.clip.percentage

从裁切方向属性上可将裁切分为普通裁切特殊裁切

普通裁切时,可从六个方向对管道进行裁切:

■从右到左裁切:设置属性值为 left

■从左到右裁切:设置属性值为 right

■从上到下裁切:设置属性值为 top

■从下到上裁切:设置属性值为 bottom

■从前到后裁切:设置属性值为 back

■从后到前裁切:设置属性值为 front

除以上提到的六种常规的裁切方向,为了使得管道沿着 UV 的方向裁切,HT 还提供了 uv.right 或者 uv.left 的裁切方向。使用这两种裁切方向,场景需要确保开启 UV 裁切使能:g3d.setUvClipEnabled(true)。

具体的实现代码如下:

g3d.setUvClipEnabled(true);// 开启 UV 裁切使能polyline.s('3d.clip.direction','uv.right')// 设置管道裁切方向属性

ht.Default.startAnim({ 
     duration:1000, 
     easing:t=>t, 
     action:(v, t) =>{    
     polyline.s('3d.clip.percentage', v);  
     }, 
     finishFunc:() =>{}
});
wKgZPGiMbLmAYMOKADME56M8pEg040.gifwKgZO2iMbLuAZvv7ACbaGBPGSuE348.gif

管道漫游

HT 提供了可获取管道长度 g3d.getLineLength()、根据百分比获取管道位置 g3d.getLineOffset() 的 API 。借助这两个 API,能够实现漫游动画等效果。

场景漫游

在 HT 在中,开发者可以通过 eye 和 center 属性来控制视角。那么漫游就是通过不断调整 eye 和 center 实现。由此可见,我们就可以利用上述提到的 API 来使得场景视角的沿着管道不断变化的效果。也就是场景漫游的效果。

具体实现的代码可以参考如下:

constlength = g3d.getLineLength(polyline);
constroamConfig = { 
    duration:20e3, 
    easing:t=>t, 
    action:(v, t) =>{   
        constoffset = g3d.getLineOffset(polyline, length * v),      
            point = offset.point,      
            px = point.x,      
            py = point.y,      
            pz = point.z,      
            tangent = offset.tangent,      
            tx = tangent.x,      
            ty = tangent.y,      
            tz = tangent.z;    
        g3d.setEye([px, py, pz]);    
        g3d.setCenter([px + tx, py + ty, pz + tz]);  
    }, 
    finishFunc:() =>{}
};
roamAnim = ht.Default.startAnim(roamConfig);
wKgZPGiMbLyAXBgjADIiwzhbA0E728.gif

模型漫游动画

通过上面的示例,我们了解到,可以使用 g3d.getLineOffset() 获取管道上指定百分比的位置。如果将这一功能用于模型的坐标变化,那么就能实现模型沿着预设的管道路径进行位移的动画效果。也就是模型漫游效果。

具体实现代码如下:

const params = {
    duration: 60000,
    easing: function (t) {
        return t;
},
action: function (v, t) {
        const lineLength = g3d.getLineLength(polyline);
        const offset = g3d.getLineOffset(polyline, lineLength * v),
            point = offset.point,
            px = point.x,
            py = point.y,
            pz = point.z,
            tangent = offset.tangent,
            tx = tangent.x,
            ty = tangent.y,
            tz = tangent.z;
        plane.p3(px, py, pz);
        plane.lookAt([px + tx, py + ty, pz + tz], 'front');
    },
    finishFunc: function () {}
};
animation = ht.Default.startAnim(params);
wKgZO2iMbL6AQg3wAC3leitNRik813.gif

在 HT 中,管道作为一种重要的工具,不仅用于模型的静态展示,在动态表现上也同样发挥着关键作用。在工业领域,它被广泛应用于展示复杂的管线布控和输送系统;同时,开发者也能充分发挥创意,借助管道实现丰富多样的动画效果。

如果您在管道的使用或创意实现上有更多想法,或是遇到了相关问题,欢迎随时与我们交流探讨,期待能与您一同挖掘管道在 3D 场景中的更多可能性~

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 可视化
    +关注

    关注

    1

    文章

    1266

    浏览量

    21927
  • 数字孪生
    +关注

    关注

    4

    文章

    1497

    浏览量

    12897
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    3D打印能用哪些材质?

    3D打印的材质有哪些?不同材料决定了打印效果、强度、用途乃至安全性,本文将介绍目前主流的3D打印材质,帮助你找到最适合自己需求的材料。
    的头像 发表于 07-28 10:58 ?182次阅读
    <b class='flag-5'>3D</b>打印能用哪些材质?

    3D AD库文件

    3D库文件
    发表于 05-28 13:57 ?5次下载

    2025年3D工业相机选型及推荐

    3D工业相机的选型
    的头像 发表于 05-21 16:49 ?436次阅读
    2025年<b class='flag-5'>3D</b>工业相机选型及推荐

    3D闪存的制造工艺与挑战

    3D闪存有着更大容量、更低成本和更高性能的优势,本文介绍了3D闪存的制造工艺与挑战。
    的头像 发表于 04-08 14:38 ?1143次阅读
    <b class='flag-5'>3D</b>闪存的制造工艺与挑战

    EPLAN 2.6 3D宏制作与使用

    电子发烧友网站提供《EPLAN 2.6 3D宏制作与使用.pdf》资料免费下载
    发表于 03-11 15:53 ?1次下载

    3D打印中XPR技术对于打印效果的影响?

    我是3D打印设备的制造商,我想具体了解下3D打印中XPR技术对于打印效果的影响? 或者是否能提供对应的专利信息以备查阅
    发表于 02-18 07:59

    英伦科技裸眼3D便携屏有哪些特点?

    英伦科技裸眼3D便携屏采用了领先的光场裸眼3D技术,无需佩戴3D眼镜即可观看,给用户带来裸眼看3D视频的体验,为用户带来更加便捷和自由的视觉享受。
    的头像 发表于 02-06 14:20 ?542次阅读
    英伦科技裸眼<b class='flag-5'>3D</b>便携屏有哪些特点?

    SciChart 3D for WPF图表库

    SciChart 3D for WPF 是一个实时、高性能的 WPF 3D 图表库,专为金融、医疗和科学应用程序而设计。非常适合需要极致性能和丰富的交互式 3D 图表的项目。 使用我们
    的头像 发表于 01-23 13:49 ?691次阅读
    SciChart <b class='flag-5'>3D</b> for WPF图表库

    腾讯混元3D AI创作引擎正式发布

    近日,腾讯公司宣布其自主研发的混元3D AI创作引擎已正式上线。这一创新性的创作工具将为用户带来前所未有的3D内容创作体验,标志着腾讯在AI技术领域的又一重大突破。 混元3D AI创作引擎凭借其强大
    的头像 发表于 01-23 10:33 ?642次阅读

    腾讯混元3D AI创作引擎正式上线

    近日,腾讯公司宣布其自主研发的混元3D AI创作引擎已正式上线。这一创新性的创作工具,标志着腾讯在3D内容生成领域迈出了重要一步。 混元3D AI创作引擎的核心功能极为强大,用户只需通过简单的提示词
    的头像 发表于 01-22 10:26 ?629次阅读

    uvled光固化3d打印技术

    说到UVLED光固化3D打印技术,那可是当下3D打印领域的一股清流啊!这项技术利用紫外线和光固化树脂来制造3D打印模型,原理简单又高效。UVLED光固化3D打印,采用的是逐层固化的方式
    的头像 发表于 12-24 13:13 ?815次阅读
    uvled光固化<b class='flag-5'>3d</b>打印技术

    3D超高压电动试压泵

    3D
    jiaoyumeng
    发布于 :2024年12月03日 16:38:42

    湖南三维扫描仪3D扫描管道零部件全尺寸检测形位公差测量设备-CASAIM

    3D扫描
    中科院广州电子
    发布于 :2024年09月26日 09:42:00

    透明塑料件喷粉3D扫描CAV全尺寸检测逆向3D建模设计服务-CASAIM

    3D建模
    中科院广州电子
    发布于 :2024年08月30日 10:04:53

    安宝特产品 安宝特3D Analyzer:智能的3D CAD高级分析工具

    安宝特3D Analyzer包含多种实用的3D CAD高级分析工具,包括自动比对模型、碰撞检测、间隙检查、壁厚检查,以及拔模和底切分析,能够有效提升3D CAD模型检测分析的效率,让模型分析变得更简单。
    的头像 发表于 08-07 10:13 ?828次阅读
    安宝特产品  安宝特<b class='flag-5'>3D</b> Analyzer:智能的<b class='flag-5'>3D</b> CAD高级分析工具