Giter Site home page Giter Site logo

risooonho / runtimemeshcomponent Goto Github PK

View Code? Open in Web Editor NEW

This project forked from georger/runtimemeshcomponent

0.0 1.0 0.0 10.29 MB

Unreal Engine 4 plugin component for rendering runtime generated content.

Home Page: http://ue4rmc.koderz.io

License: MIT License

C++ 99.48% C# 0.52%

runtimemeshcomponent's Introduction

UE4 Runtime Mesh Component

The RMC takes a lot of effort to build, extend, and maintain. Please consider supporting the project!

There's a Discord server for the RMC! https://discord.gg/KGvBBTv

Examples project can be found here https://github.com/Koderz/RuntimeMeshComponent-Examples


The RuntimeMeshComponent, or RMC for short, is a component designed specifically to support rendering and collision on meshes generated at runtime. This could be anything from voxel engines like Minecraft, to custom model viewers, or just supporting loading user models for things like modding. It has numerous different features to support most of the normal rendering needs of a game, as well as ability to support both static collision for things such as terrain, as well as dynamic collision for things that need to be able to move and bounce around!

Now, the RMC is very similar in purpose to the ProceduralMeshComponent or CustomMeshComponent currently found in UE4, but it far surpasses both in features, and efficiency! It on average uses 1/3 the memory of the ProceduralMeshComponent, while also being more efficient to render, and far faster to update mesh data. This is shown by the ability to update a 600k+ vertex mesh in real time! The RMC is also nearly 100% compatible with the ProceduralMeshComponent, while adding many features above what the PMC offers.

Current list of features

  • Full support for async collision cooking (See below for a known problem with UE4 regarding this)
  • Brand new normal/tangent calculation utility that is several orders of magnitude faster
  • Up to 8 UV channels
  • High precision normals support
  • Collision only mesh sections.
  • Tessellation support
  • Navigation mesh support
  • Fully configurable vertex structure
  • Ability to save individual sections or the entire RMC to disk
  • RMC <-> StaticMesHComponent conversions. SMC -> RMC at runtime or in editor. RMC -> SMC in editor.
  • Static render path for meshes that don't update frequently, this provides a slightly faster rendering performance.
  • 70%+ memory reduction over the ProceduralMeshComponent and CustomMeshComponent
  • Visibility and shadowing are configurable per section.
  • Separate vertex positions for cases of only needing to update the position.
  • Collision has lower overhead compared to ProceduralMeshComponent

The RMC fully supports the cooking speed improvements of UE4.14 and UE4.17 including async cooking. As of right now, the RMC is forced to always use async cooking in a shipping build due to an engine bug which I've submitted a fix to Epic for

For information on installation, usage and everything else, please read the Wiki

Some features that I'm looking into now that the core has been rewritten:

  • LOD (Probably with dithering support)
  • Dithered transitions for mesh updates
  • Instancing support (Probably ISMC style unless there's enough demand for HISMC style support)
  • Mesh replication

Supported Engine Versions: v1.2 supports engine versions 4.10+ v2.0 supports engine versions 4.12+ v3.0 supports engine versions 4.17+

The Runtime Mesh Component should support all UE4 platforms. Collision MAY NOT be available on some platforms (HTML5)

runtimemeshcomponent's People

Contributors

koderz avatar georger avatar rumbleballthereal avatar timdecode avatar jerryhyun avatar rpg3d avatar alleysark avatar benui-dev avatar caswal avatar michaeltchapman avatar raian avatar kuldaen avatar davenye avatar

Watchers

James Cloos avatar

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.