从有限元到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组件文章来源:https://www.toymoban.com/news/detail-764907.html
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.定义网格顶点位置文章来源地址https://www.toymoban.com/news/detail-764907.html
using System.Collections;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine;
public class TestMesh : MonoBehaviour
{
private MeshFilter mf;
private
到了这里,关于从有限元到Unity——Unity网格编程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!