从有限元到Unity——Unity网格编程

从有限元到Unity

一、从有限元到Unity——有限元网格信息导出及分析
二、从有限元到Unity——Unity网格编程
三、从有限元到Unity——从abaqus网格模型文件到Unity模型数据
四、从有限元到Unity——有限元分析结果导出
五、从有限元到Unity——渲染管线与着色器



前言

上回说到了怎么将abaqus的网格数据进行导出以及对导出内容进行分析,这次来讲一下Unity中的网格编程,为有限元网格在Unity中进行复现做准备。


一、网格编程是什么?

网格编程是Unity中进行三维模型可视化的手段,通过Unity内置的类、属性、方法等对模型网格的关键属性(顶点、面片、法线等)进行定义,从而在Unity中展现出需要的模型效果(相当于自定义网格以满足显示、交互、渲染等需求)。

二、网格及Unity中相关类(组件)

1.网格

模型网格主要由顶点和三角面组成,因此,要确定模型网格的外形,首先要确定网格有哪些顶点组成、这些顶点的空间位置是什么,即网格顶点位置。顶点位置通过笛卡尔坐标系的坐标进行描述。
另外,还需确定的是模型中有哪些三角面片以及每个三角面片是由哪些顶点以何种顺序构成,即面片构造序列。在Unity中,根据三角面片的三个顶点排序利用左手法则确定三角面片的正反面。如下图所示,三角面片由顶点编号为43、56、29三个顶点构成,若定义其顶点排序(面片构造序列)为43、29、56,则屏幕向外的这一面为正面而能被渲染,其背面被剔除。
在这里插入图片描述

2.Unity中的Mesh Filter与Mesh Renderer

2.1.Mesh Filter(网格过滤器)

Mesh Filter用于定义网格或从资源中获取网格,而Mesh Filter中的mesh属性用于定义和保存网格相关属性,包括用于保存网格顶点坐标的Vector3[]类型的vertices、用于保存网格三角面片构造序列的int[]类型的triangles。

2.2.Mesh Renderer(网格渲染器)

Mesh Renderer用于网格模型的渲染,可以定义贴图、材料等信息,后续在unity中复现有限元分析结果的云图分布再阐述和使用。

三、网格编程实例

这里以简单的边长为1m的正方体模型,来阐述如何在Unity中使用Mesh Renderer的mesh属性,相应定义并可视化一个正方体网格。
step1.创建一个空物体,自定义并挂载一个名为TestMesh的脚本
step2.打开TestMesh脚本,动态添加一个Mesh Filter组件

using System.Collections;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine;
public class TestMesh : MonoBehavior
{
   
	private MeshFilter mf;
	private void Start()
	{
   
		mf = this.AddComponent<MeshFilter>();//动态添加Mesh Filter组件
	}
}

step3.定义网格顶点位置

using System.Collections;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine;
public class TestMesh : MonoBehaviour
{
   
    private MeshFilter mf;
    private 
  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值