GithubHelp home page GithubHelp logo

gradientspace / unrealmeshprocessingtools Goto Github PK

View Code? Open in Web Editor NEW
234.0 10.0 70.0 19.7 MB

Sample Projects/Plugins for Mesh Processing in Unreal Engine

License: MIT License

C# 2.64% C++ 97.27% C 0.09%

unrealmeshprocessingtools's Introduction

UnrealMeshProcessingTools

Sample projects/plugins for Unreal Engine (https://unrealengine.com) that demonstrate various mesh processing libraries/tools/etc.

The code provided here is provided under the MIT License, except for various subdirectories which are copies of external projects that have different licenses (a LICENSE file exists in the respective top-level folders). These are embedded in the Unreal projects for ease of compiling

This is sample code, please do not expect support. You can try @rms80 on twitter, though.

IGLMeshProcessingProject

This project demonstrates use of libigl inside "Interactive Tools" in the Unreal Editor. This code accompanies a quite detailed tutorial available here: http://www.gradientspace.com/tutorials/2020/1/2/libigl-in-unreal-engine

Versions are provided for UE 4.24 and 4.26 (may work with other versions, but only tested with those)

CommandLineGeometryTest

This project demonstrates use of the GeometryProcessing plugin included in UE 4.26. The code accompanies a tutorial available here: http://www.gradientspace.com/tutorials/2020/9/21/command-line-geometry-processing-with-unreal-engine

Provided for UE 4.26 (should work with later versions)

unrealmeshprocessingtools's People

Contributors

rms80 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

unrealmeshprocessingtools's Issues

New Project Fails to load /Script/RuntimeGeometryUtils.DynamicSDMCActor

Hello, I created a new project with the RuntimeGeometryUtils plugin included, and used the same settings in the uproject file (RuntimeGeometryUtils, ModelingToolsEditorMode, MeshModelingToolset) and Build.cs file. Everything appears to work normally until I reference a DynamicSDMCActor (as a projectile like in your project) and get the following load errors in the editor:

image

I completely cleaned and rebuilt the project, but same issue. I tried using some of your CoreRedirects in DefaultEngine.ini, but those don't seem to help. Do you remember any special configuration in your project needed to use the DynamicSDMCActor's within the project?

Thanks for this repository, the code is very nice to work with, and your blog is fantastic.

Error when i try to load obj file

image

Assertion failed: false [File:D:/Build/++UE4/Sync/Engine/Plugins/Experimental/GeometryProcessing/Source/DynamicMesh/Private/DynamicMeshOverlay.cpp] [Line: 367]

UE4Editor_Core
UE4Editor_Core
UE4Editor_DynamicMesh
UE4Editor_RuntimeGeometryUtils!RTGUtils::ReadOBJMesh() [C:\UnrealMeshProcessingTools-master\UnrealMeshProcessingTools-master\UE4.26\RuntimeGeometryDemo\Plugins\RuntimeGeometryUtils\Source\RuntimeGeometryUtils\Private\DynamicMeshOBJReader.cpp:115]
UE4Editor_RuntimeGeometryUtils!ADynamicMeshBaseActor::RegenerateSourceMesh() [C:\UnrealMeshProcessingTools-master\UnrealMeshProcessingTools-master\UE4.26\RuntimeGeometryDemo\Plugins\RuntimeGeometryUtils\Source\RuntimeGeometryUtils\Private\DynamicMeshBaseActor.cpp:150]
UE4Editor_RuntimeGeometryUtils!ADynamicMeshBaseActor::EditMesh() [C:\UnrealMeshProcessingTools-master\UnrealMeshProcessingTools-master\UE4.26\RuntimeGeometryDemo\Plugins\RuntimeGeometryUtils\Source\RuntimeGeometryUtils\Private\DynamicMeshBaseActor.cpp:77]
UE4Editor_RuntimeGeometryUtils!ADynamicMeshBaseActor::OnMeshGenerationSettingsModified() [C:\UnrealMeshProcessingTools-master\UnrealMeshProcessingTools-master\UE4.26\RuntimeGeometryDemo\Plugins\RuntimeGeometryUtils\Source\RuntimeGeometryUtils\Private\DynamicMeshBaseActor.cpp:111]
UE4Editor_CoreUObject
UE4Editor_PropertyEditor
UE4Editor_PropertyEditor
UE4Editor_PropertyEditor
UE4Editor_PropertyEditor
UE4Editor_PropertyEditor
UE4Editor_PropertyEditor
UE4Editor_Slate
UE4Editor_Slate
UE4Editor_Slate
UE4Editor_Slate
UE4Editor_Slate
UE4Editor_Slate
UE4Editor_Slate
UE4Editor_Slate
UE4Editor_ApplicationCore
UE4Editor_ApplicationCore
UE4Editor_ApplicationCore
UE4Editor_ApplicationCore
user32
user32
InkObj
atlthunk
user32
user32
UE4Editor_ApplicationCore
UE4Editor
UE4Editor
UE4Editor
UE4Editor
UE4Editor
kernel32
ntdll

Missing Eigen/Core!

Looks like the Eigen's .gitignore excludes core
https://gitlab.com/libeigen/eigen/-/blob/master/.gitignore#L11
So, probably due to case sensitivity differences, these files/directories didn't get added to the version of Eigen included here (which in turn resulted in a few plugin build failures until moving them over locally)
https://gitlab.com/libeigen/eigen/-/blob/master/Eigen/Core
https://gitlab.com/libeigen/eigen/-/tree/master/Eigen/src/Core

Smoothing mesehs in editor seems to be working well once those files were added!

Wondering if you'd be open to a PR to add the files?
(Or, unrelated, perhaps open to PR's in general for exposing additional libigl functions as editor tools?)

The project cannot run without HoleyBunny.obj model.

There is no HoleyBunny.obj file in directory "..\..\Source\Programs\CommandLineGeometryTest\HoleyBunny.obj". When this program runs to line 70, this program crashes. Can you add HoleyBunny.obj file to this repository?
Snipaste_2021-01-14_11-29-03

Trying to Simplify/Solidify a DynamicPMCActor Crashes Engine

After applying a number of boolean operations to a DynamicPMCActor, it may be desirable to simplify the mesh for performance. However, while the SMC and SDMC actors both work fine, using Simplify or Solidify on a PMC immediately crashes the editor. The simplify option says that it is valid on any kind of Dynamic Mesh Actor, but that is clearly not the case for PMCs. Is this a fundamental limitation of the mesh type, or just a bug that could potentially be fixed?

Error output, after using the 'Solidify' button-box on a PMC sphere:

Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x0000000000001ff4

UE4Editor_RuntimeGeometryUtils!TDynamicMeshVectorOverlay<float,3,FVector3 >::GetTriElements() [E:\Epic Games\UE_4.27-Bin\Engine\Plugins\Experimental\GeometryProcessing\Source\DynamicMesh\Public\DynamicMeshOverlay.h:531]
UE4Editor_RuntimeGeometryUtils!RTGUtils::UpdatePMCFromDynamicMesh_SplitTriangles() [E:\Epic Games\UnrealMeshProcessingTools\UE4.26\RuntimeGeometryDemo 4.27 - 2\Plugins\RuntimeGeometryUtils\Source\RuntimeGeometryUtils\Private\MeshComponentRuntimeUtils.cpp:115]
UE4Editor_RuntimeGeometryUtils!ADynamicPMCActor::UpdatePMCMesh() [E:\Epic Games\UnrealMeshProcessingTools\UE4.26\RuntimeGeometryDemo 4.27 - 2\Plugins\RuntimeGeometryUtils\Source\RuntimeGeometryUtils\Private\DynamicPMCActor.cpp:52]
UE4Editor_RuntimeGeometryUtils!ADynamicPMCActor::OnMeshEditedInternal() [E:\Epic Games\UnrealMeshProcessingTools\UE4.26\RuntimeGeometryDemo 4.27 - 2\Plugins\RuntimeGeometryUtils\Source\RuntimeGeometryUtils\Private\DynamicPMCActor.cpp:29]
UE4Editor_RuntimeGeometryUtils!ADynamicMeshBaseActor::EditMesh() [E:\Epic Games\UnrealMeshProcessingTools\UE4.26\RuntimeGeometryDemo 4.27 - 2\Plugins\RuntimeGeometryUtils\Source\RuntimeGeometryUtils\Private\DynamicMeshBaseActor.cpp:86]
UE4Editor_RuntimeGeometryUtils!ADynamicMeshBaseActor::SolidifyMesh() [E:\Epic Games\UnrealMeshProcessingTools\UE4.26\RuntimeGeometryDemo 4.27 - 2\Plugins\RuntimeGeometryUtils\Source\RuntimeGeometryUtils\Private\DynamicMeshBaseActor.cpp:426]
UE4Editor_RuntimeGeometryUtils!ADynamicMeshBaseActor::execSolidifyMesh() [E:\Epic Games\UnrealMeshProcessingTools\UE4.26\RuntimeGeometryDemo 4.27 - 2\Plugins\RuntimeGeometryUtils\Intermediate\Build\Win64\UE4Editor\Inc\RuntimeGeometryUtils\DynamicMeshBaseActor.gen.cpp:332]
UE4Editor_CoreUObject
UE4Editor_CoreUObject
UE4Editor_CoreUObject
UE4Editor_CoreUObject
UE4Editor_CoreUObject
UE4Editor_CoreUObject
UE4Editor_CoreUObject
UE4Editor_CoreUObject
UE4Editor_CoreUObject
UE4Editor_CoreUObject
UE4Editor_Engine
UE4Editor_Engine
UE4Editor_Engine
UE4Editor_Engine
UE4Editor_Engine
UE4Editor_Engine
UE4Editor_Engine
UE4Editor_Engine
UE4Editor_Engine
UE4Editor_Engine
UE4Editor_Engine
UE4Editor_Engine
UE4Editor_Engine
UE4Editor_Core
UE4Editor_Core
UE4Editor_Core
UE4Editor_Engine
UE4Editor_Engine
UE4Editor_Engine
UE4Editor_Engine
UE4Editor_UnrealEd
UE4Editor_UnrealEd
UE4Editor
UE4Editor
UE4Editor
UE4Editor
UE4Editor
UE4Editor
kernel32
ntdll

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.