All Projects → daniel-amthauer → BMeshUnreal

daniel-amthauer / BMeshUnreal

Licence: other
Based on BMesh for Unity (https://github.com/eliemichel/BMeshUnity). It provides a half-edge data structure inspired by Blender's BMesh, which makes many mesh manipulation operations simpler. Especially useful when using mesh data for logical instead of visual purposes (e.g. irregular grids)

Programming Languages

C++
36643 projects - #6 most used programming language
C#
18002 projects
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to BMeshUnreal

Unreal Polygonal Map Gen
An Unreal Engine 4 implementation of the Polygonal Map Generator for generating islands found at http://www-cs-students.stanford.edu/~amitp/game-programming/polygon-map-generation/
Stars: ✭ 229 (+408.89%)
Mutual labels:  unreal, unreal-engine, ue4, unreal-engine-4
ue5-style-guide
An attempt to make Unreal Engine 4 projects more consistent
Stars: ✭ 2,892 (+6326.67%)
Mutual labels:  unreal, unreal-engine, ue4, unreal-engine-4
Unreal-Binary-Builder
An application designed to create installed Unreal Engine builds (aka Rocket builds) from Unreal Engine GitHub source.
Stars: ✭ 554 (+1131.11%)
Mutual labels:  unreal, unreal-engine, ue4, unreal-engine-4
Ue4 Gitignore
A git setup example with git-lfs for Unreal Engine 4 projects.
Stars: ✭ 150 (+233.33%)
Mutual labels:  unreal, unreal-engine, ue4, unreal-engine-4
ue4-uitween
Unreal 4 UMG UI tweening plugin in C++
Stars: ✭ 178 (+295.56%)
Mutual labels:  unreal, unreal-engine, ue4, unreal-engine-4
Ueviewer
Viewer and exporter for Unreal Engine 1-4 assets (UE Viewer).
Stars: ✭ 1,083 (+2306.67%)
Mutual labels:  unreal, unreal-engine, ue4, unreal-engine-4
ProceduralDungeon
This is an Unreal Engine 4/5 plugin to generate procedural dungeon.
Stars: ✭ 95 (+111.11%)
Mutual labels:  unreal, unreal-engine, ue4, unreal-engine-4
gamedevguide
Game Development & Unreal Engine Programming Guide
Stars: ✭ 314 (+597.78%)
Mutual labels:  unreal, unreal-engine, ue4, unreal-engine-4
Pbcharactermovement
HL2-style, classic FPS movement for Unreal Engine 4 implemented in C++
Stars: ✭ 582 (+1193.33%)
Mutual labels:  unreal, unreal-engine, ue4, unreal-engine-4
UT GameEventSystem
A flexible event system in Unreal Engine 4
Stars: ✭ 33 (-26.67%)
Mutual labels:  unreal, unreal-engine, ue4, unreal-engine-4
Gascontent
Repo to gather all Gameplay Ability System content for UE4
Stars: ✭ 398 (+784.44%)
Mutual labels:  unreal, unreal-engine, ue4, unreal-engine-4
Unrealcpp
Unreal Engine 4 C++ examples
Stars: ✭ 490 (+988.89%)
Mutual labels:  unreal, unreal-engine, ue4, unreal-engine-4
RuntimeBPs
This project allows for visual scripting in UE4 similar to Blueprints, but at runtime. The way this is set up does not make use of any UE4 boilerplate and could with a few adjustments be used in another engine.
Stars: ✭ 77 (+71.11%)
Mutual labels:  unreal, unreal-engine, ue4, unreal-engine-4
Ue4 Binary Builder
An application designed to create installed Unreal Engine builds (aka Rocket builds) from Unreal Engine GitHub source.
Stars: ✭ 292 (+548.89%)
Mutual labels:  unreal, unreal-engine, ue4, unreal-engine-4
Ue4 Style Guide
An attempt to make Unreal Engine 4 projects more consistent
Stars: ✭ 2,656 (+5802.22%)
Mutual labels:  unreal, unreal-engine, ue4, unreal-engine-4
Ue4linuxlauncher
Stars: ✭ 79 (+75.56%)
Mutual labels:  unreal, ue4, unreal-engine-4
Ue4voxelterrain
[WIP] Unreal Engine 4: Smooth voxel terrian example
Stars: ✭ 415 (+822.22%)
Mutual labels:  unreal, unreal-engine, unreal-engine-4
TwitchAuth
Unreal Engine 4 Plugin for In-Game Twitch Authentication.
Stars: ✭ 21 (-53.33%)
Mutual labels:  unreal, ue4, unreal-engine-4
TransMat
Blender Python - Instantly Recreate Blender Shader Node Trees as Unreal Materials
Stars: ✭ 30 (-33.33%)
Mutual labels:  unreal, unreal-engine, ue4
QTM-Connect-For-Unreal
Unreal plugin for real-time streaming from Qualisys Track Manager
Stars: ✭ 18 (-60%)
Mutual labels:  unreal, unreal-engine, unreal-engine-4

BMeshUnreal

Based on BMesh for Unity (https://github.com/eliemichel/BMeshUnity) It provides a half-edge data structure inspired by Blender's BMesh, which makes many mesh manipulation operations simpler.

It's useful when using mesh data for logical instead of visual purposes (e.g. irregular grids). It might also be used as a more flexible intermediate representation for certain mesh operators, but this use case is currently missing a conversion operator to regular Unreal Engine mesh structures.

It is accessible from Blueprints and each of the mesh elements can be customized to carry more information, which will be automatically interpolated by operations such as subdivisions as long as it's of one of the following types:

  • Int
  • Float/Double
  • FVector, FVector2D, FVector4
  • FLinearColor

This can be extended by the user with other types, but it must be done from C++ (See 'here' and 'here' for an example of how this is done with the FBMeshOperators::RegisterDefaultTypeInterpolators function.

Usage

See UBMeshTestComponent in the BMeshTests module for examples of how to create meshes with it from C++ and how to visualize them in the editor.

To use from Blueprints simply create a BMesh object, and select your preferred class for each mesh element. The default classes include only a location for vertices, and no extra attributes for any other elements, aside from an Id integer which can be used as a temporary attribute in many mesh operators.

Here's an example that produces a hexagonal face that's then subdivided into a triangle fan Blueprint code that creates a BMesh object with a hexagonal face which is subdivided into a triangle fan

This is the result

Result of the previous code visualized with debug lines

There are several operators included to subdivide the mesh in different ways, as well as a few others.

Requirements

Requires Unreal Engine 4.25.x or greater

Installation

Copy the BMesh folder to your project's Plugins folder. The editor should prompt you to compile the plugin when opening your project. If you're using Git as your source control, you can also add the repo (or a fork of it) directly as a submodule to your Plugins folder.

Future work

- Conversion to RuntimeMeshComponent

  • In-editor conversion to StaticMesh, and/or DynamicMesh
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].