实例介绍
OpenFracture是一个用于在Unity中进行网格切割和破碎的软件包。它支持凸面和非凸面网格,以及带有空洞的网格。这意味着任何任意几何体都可以被切割/破碎(只要几何体是闭合的且不相交的)。
切割
- 运行时和编辑器支持 - 在编辑器中预先切割网格,以获得最佳性能。
- 任意网格几何 - 支持凸面和非凸面网格,以及带有多个空洞的网格。注意:网格必须是闭合的,且不能具有自相交的几何体。
- 2D/3D切割 - 能够指定网格将在哪些平面上进行切割。当网格实际上是2D的(例如玻璃)并且只需要在两个平面上进行切割时,这非常有用。
- UV重新映射 - 在网格切割/破碎处保留纹理坐标沿边缘。
【实例截图】

【核心代码】
文件清单
└── OpenFracture-6d0ddff64173193f024638c2de2dbeb8a2525965
├── CHANGELOG.md
├── CHANGELOG.md.meta
├── Documentation~
│ ├── Fracture.md
│ ├── GettingStarted.md
│ ├── Prefracture.md
│ └── Slice.md
├── Editor
│ ├── CallbackOptionsPropertyDrawer.cs
│ ├── CallbackOptionsPropertyDrawer.cs.meta
│ ├── FractureEditor.cs
│ ├── FractureEditor.cs.meta
│ ├── FractureOptionsPropertyDrawer.cs
│ ├── FractureOptionsPropertyDrawer.cs.meta
│ ├── OpenFracture.Editor.asmdef
│ ├── OpenFracture.Editor.asmdef.meta
│ ├── PrefractureEditor.cs
│ ├── PrefractureEditor.cs.meta
│ ├── PrefractureOptionsPropertyDrawer.cs
│ ├── PrefractureOptionsPropertyDrawer.cs.meta
│ ├── RefractureOptionsPropertyDrawer.cs
│ ├── RefractureOptionsPropertyDrawer.cs.meta
│ ├── SliceEditor.cs
│ ├── SliceEditor.cs.meta
│ ├── TriggerOptionsPropertyDrawer.cs
│ ├── TriggerOptionsPropertyDrawer.cs.meta
│ ├── UnfreezeFragmentEditor.cs
│ └── UnfreezeFragmentEditor.cs.meta
├── Editor.meta
├── LICENSE.md
├── LICENSE.md.meta
├── package.json
├── package.json.meta
├── README.md
├── README.md.meta
├── Runtime
│ ├── Audio
│ │ ├── AudioMixer.mixer
│ │ ├── AudioMixer.mixer.meta
│ │ ├── GlassBreaking.mp3
│ │ ├── GlassBreaking.mp3.meta
│ │ ├── Slicing.mp3
│ │ ├── Slicing.mp3.meta
│ │ ├── StoneBreaking.mp3
│ │ └── StoneBreaking.mp3.meta
│ ├── Audio.meta
│ ├── Materials
│ │ ├── DefaultLowFriction.physicMaterial
│ │ ├── DefaultLowFriction.physicMaterial.meta
│ │ ├── Default.physicMaterial
│ │ ├── Default.physicMaterial.meta
│ │ ├── Floor.mat
│ │ ├── Floor.mat.meta
│ │ ├── Floor.physicMaterial
│ │ ├── Floor.physicMaterial.meta
│ │ ├── GlassEdge.mat
│ │ ├── GlassEdge.mat.meta
│ │ ├── Glass.mat
│ │ ├── Glass.mat.meta
│ │ ├── HighlightSlice.mat
│ │ ├── HighlightSlice.mat.meta
│ │ ├── HighlightSlice.shadergraph
│ │ ├── HighlightSlice.shadergraph.meta
│ │ ├── Inside.mat
│ │ ├── Inside.mat.meta
│ │ ├── LionStatue.mat
│ │ ├── LionStatue.mat.meta
│ │ ├── Projectile.physicMaterial
│ │ ├── Projectile.physicMaterial.meta
│ │ ├── RoughStone.mat
│ │ ├── RoughStone.mat.meta
│ │ ├── Text.mat
│ │ └── Text.mat.meta
│ ├── Materials.meta
│ ├── Meshes
│ │ ├── GlassPanel.obj
│ │ ├── GlassPanel.obj.meta
│ │ ├── LetterA.obj
│ │ ├── LetterA.obj.meta
│ │ ├── LetterC.obj
│ │ ├── LetterC.obj.meta
│ │ ├── LetterE.obj
│ │ ├── LetterE.obj.meta
│ │ ├── LetterF.obj
│ │ ├── LetterF.obj.meta
│ │ ├── LetterN.obj
│ │ ├── LetterN.obj.meta
│ │ ├── LetterO.obj
│ │ ├── LetterO.obj.meta
│ │ ├── LetterP.obj
│ │ ├── LetterP.obj.meta
│ │ ├── LetterR.obj
│ │ ├── LetterR.obj.meta
│ │ ├── LetterT.obj
│ │ ├── LetterT.obj.meta
│ │ ├── LetterU.obj
│ │ ├── LetterU.obj.meta
│ │ ├── LionStatue.obj
│ │ └── LionStatue.obj.meta
│ ├── Meshes.meta
│ ├── Prefabs
│ │ ├── Cylinder.prefab
│ │ ├── Cylinder.prefab.meta
│ │ ├── OpenFractureText.prefab
│ │ ├── OpenFractureText.prefab.meta
│ │ ├── Projectile.prefab
│ │ └── Projectile.prefab.meta
│ ├── Prefabs.meta
│ ├── Scripts
│ │ ├── AssemblyInfo.cs
│ │ ├── AssemblyInfo.cs.meta
│ │ ├── Fracture.cs
│ │ ├── Fracture.cs.meta
│ │ ├── Fragment
│ │ │ ├── ConstrainedTriangulator.cs
│ │ │ ├── ConstrainedTriangulator.cs.meta
│ │ │ ├── EdgeConstraint.cs
│ │ │ ├── EdgeConstraint.cs.meta
│ │ │ ├── FragmentData.cs
│ │ │ ├── FragmentData.cs.meta
│ │ │ ├── Fragmenter.cs
│ │ │ ├── Fragmenter.cs.meta
│ │ │ ├── MeshSlicer.cs
│ │ │ ├── MeshSlicer.cs.meta
│ │ │ ├── MeshVertex.cs
│ │ │ ├── MeshVertex.cs.meta
│ │ │ ├── Quad.cs
│ │ │ ├── Quad.cs.meta
│ │ │ ├── TriangulationPoint.cs
│ │ │ ├── TriangulationPoint.cs.meta
│ │ │ ├── Triangulator.cs
│ │ │ ├── Triangulator.cs.meta
│ │ │ ├── UnfreezeFragment.cs
│ │ │ └── UnfreezeFragment.cs.meta
│ │ ├── Fragment.meta
│ │ ├── OpenFracture.Runtime.asmdef
│ │ ├── OpenFracture.Runtime.asmdef.meta
│ │ ├── Options
│ │ │ ├── CallbackOptions.cs
│ │ │ ├── CallbackOptions.cs.meta
│ │ │ ├── FractureOptions.cs
│ │ │ ├── FractureOptions.cs.meta
│ │ │ ├── PrefractureOptions.cs
│ │ │ ├── PrefractureOptions.cs.meta
│ │ │ ├── RefractureOptions.cs
│ │ │ ├── RefractureOptions.cs.meta
│ │ │ ├── SliceOptions.cs
│ │ │ ├── SliceOptions.cs.meta
│ │ │ ├── TriggerOptions.cs
│ │ │ └── TriggerOptions.cs.meta
│ │ ├── Options.meta
│ │ ├── Prefracture.cs
│ │ ├── Prefracture.cs.meta
│ │ ├── Slice.cs
│ │ ├── Slice.cs.meta
│ │ ├── Slicers
│ │ │ ├── PlaneSlicer.cs
│ │ │ └── PlaneSlicer.cs.meta
│ │ ├── Slicers.meta
│ │ ├── Support
│ │ │ ├── CameraController.cs
│ │ │ ├── CameraController.cs.meta
│ │ │ ├── Projectile.cs
│ │ │ ├── Projectile.cs.meta
│ │ │ ├── ToggleText.cs
│ │ │ ├── ToggleText.cs.meta
│ │ │ ├── UniqueMaterial.cs
│ │ │ └── UniqueMaterial.cs.meta
│ │ ├── Support.meta
│ │ ├── Utilities
│ │ │ ├── BinSort.cs
│ │ │ ├── BinSort.cs.meta
│ │ │ ├── MathUtils.cs
│ │ │ ├── MathUtils.cs.meta
│ │ │ ├── MeshUtils.cs
│ │ │ ├── MeshUtils.cs.meta
│ │ │ ├── Vector3Extensions.cs
│ │ │ └── Vector3Extensions.cs.meta
│ │ └── Utilities.meta
│ ├── Scripts.meta
│ ├── Textures
│ │ ├── LionStatue_BaseColor.png
│ │ ├── LionStatue_BaseColor.png.meta
│ │ ├── LionStatue_Normal.png
│ │ ├── LionStatue_Normal.png.meta
│ │ ├── Rock003_1K_AmbientOcclusion.png
│ │ ├── Rock003_1K_AmbientOcclusion.png.meta
│ │ ├── Rock003_1K_Color.png
│ │ ├── Rock003_1K_Color.png.meta
│ │ ├── Rock003_1K_Displacement.png
│ │ ├── Rock003_1K_Displacement.png.meta
│ │ ├── Rock003_1K_NormalDX.png
│ │ ├── Rock003_1K_NormalDX.png.meta
│ │ ├── Rock003_1K_NormalGL.png
│ │ ├── Rock003_1K_NormalGL.png.meta
│ │ ├── Rock003_1K_Roughness.png
│ │ └── Rock003_1K_Roughness.png.meta
│ └── Textures.meta
├── Runtime.meta
├── Samples~
│ ├── FractureDemo
│ │ ├── FractureDemo.unity
│ │ ├── FractureDemo.unity.meta
│ │ ├── GlassPanel.obj
│ │ └── GlassPanel.obj.meta
│ ├── FractureDemo.meta
│ ├── PrefractureDemo
│ │ ├── LionStatue.obj
│ │ ├── LionStatue.obj.meta
│ │ ├── PrefractureDemo.unity
│ │ └── PrefractureDemo.unity.meta
│ ├── PrefractureDemo.meta
│ ├── SliceDemo
│ │ ├── SliceDemo.unity
│ │ └── SliceDemo.unity.meta
│ └── SliceDemo.meta
├── Samples.meta
├── Tests
│ ├── Runtime
│ │ ├── BinSortTests.cs
│ │ ├── BinSortTests.cs.meta
│ │ ├── ConstrainedTriangulatorTests.cs
│ │ ├── ConstrainedTriangulatorTests.cs.meta
│ │ ├── EdgeTests.cs
│ │ ├── EdgeTests.cs.meta
│ │ ├── MathUtilsTests.cs
│ │ ├── MathUtilsTests.cs.meta
│ │ ├── MeshVertexTests.cs
│ │ ├── MeshVertexTests.cs.meta
│ │ ├── OpenFracture.Tests.asmdef
│ │ ├── OpenFracture.Tests.asmdef.meta
│ │ ├── QuadTests.cs
│ │ ├── QuadTests.cs.meta
│ │ ├── SlicedMeshDataTests.cs
│ │ ├── SlicedMeshDataTests.cs.meta
│ │ ├── TriangulationPointTests.cs
│ │ ├── TriangulationPointTests.cs.meta
│ │ ├── TriangulatorTests.cs
│ │ ├── TriangulatorTests.cs.meta
│ │ ├── Vector3Tests.cs
│ │ └── Vector3Tests.cs.meta
│ └── Runtime.meta
└── Tests.meta
21 directories, 223 files
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论