Giter Club home page Giter Club logo

realtimemeshcomponent's People

Contributors

2nafish117 avatar alleysark avatar connorjak avatar craftedcart avatar davenye avatar doubledeez avatar eddieataberk avatar glassbeaver avatar gribuser avatar iblackcat avatar janiscircenis avatar jerryhyun avatar jwindgassen avatar k0kz avatar koderz avatar kuldaen avatar laursen44 avatar laykun avatar manlok876 avatar michaeltchapman avatar moddingear avatar obiwahn89 avatar raian avatar rpg3d avatar rubenmoor avatar rumbleballthereal avatar siggig avatar timdecode avatar vmartsynovskyy avatar wavelet-noise 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  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

realtimemeshcomponent's Issues

UE 4.13 compile error

Hi Koderz,

Build succeeds in UE 4.12 but fails in UE 4.13.
It looks like UPOERTY and UENUM cannot be used inside preprocessor in the latest version.

Severity Code Description Project File Line Suppression State
Error UPROPERTY inside this preprocessor block will be skipped iBlock C:\Users\burp\Documents\GitLab\work_iblock\iBlock\Plugins\RuntimeMeshComponent\Source\Public\RuntimeMeshComponent.h 1133

Severity Code Description Project File Line Suppression State
Error UENUM inside this preprocessor block will be skipped iBlock C:\Users\burp\Documents\GitLab\work_iblock\iBlock\Plugins\RuntimeMeshComponent\Source\Public\RuntimeMeshCore.h 125

Use proceedural mesh as collision mesh without baking?

Is it possible to use the generated mesh as the collision mesh without baking? I tried to set bUseComplexAsSimple to true but I still needed to have the RMC bake the collision mesh. Can it be set similar to convex collision?

Help wanted: Curious on best approach to update normals

Hi, sorry, bad form to leave a help request as an issue like this: just a quick question if you don't mind?

Currently building a DualBuffer mesh with positions, DualUV vertex data and the EUpdateFrequency::Frequent flag set.

Then updating in the loop with BeginMeshSectionPositionUpdate for speed.

This works fine, though very quickly the normal info is completely wrong.

Question is, what is the most efficient way to update the Normals? It seems to update normals I would call CalculateTangentsForMesh then revert to UpdateMeshSection which seems a backwards step from the efficient BeginMeshSectionPositionUpdate approach?

Thanks!
Ally

BeginMeshSectionPositionUpdate returns NULL?

Hey Koderz, I'm having an issue with BeginMeshSectionPositionUpdate: TArray<FVector>& Vertices = *CSGMesh->RMC->BeginMeshSectionPositionUpdate(0); and Vertices is NULL.

The code that creates the vertices is below:

TArray<FVector> Positions;
TArray<FRuntimeMeshVertexNoPosition> VertexData;

FBox BoundingBox = FBox(FVector(1000.f, 1000.f, 1000.f), FVector(-1000.f, -1000.f, -1000.f));
	
URuntimeMeshLibrary::CreateBoxMesh(FVector(Size, Size, Size), Positions, Triangles, Normals, TextureCoordinates, Tangents);

for(int32 i = 0; i < Normals.Num(); i++)
	VertexData.Add(FRuntimeMeshVertexNoPosition(Normals[i], Tangents[i], TextureCoordinates[i]));

RMC->CreateMeshSectionDualBuffer(0, Positions, VertexData, Triangles, BoundingBox, false, EUpdateFrequency::Frequent);

I would like to create a cube that I can then move the faces/create new ones during a runtime level editor I am working on.

BodySetup access

Hi,
In the PMC, a function GetBodySetup allow us to access to the bodySetup of a PMC . I saw that in the RMC you made the bodySetup directly accessible via a pointer but it is always empty for me(Not containing any convex).

Best,

Methods for updating collision

I am looking for the fastest way to update the collision mesh for a voxel-based cube mesh. Ideally, the collision mesh would be the exact same as the regular mesh, and I would be able to edit the vertices for both using the position-only vertex array. Is this possible?

Alternatively, is it possible to tell the mesh to update collision after using EndMeshSectionPositionUpdate?

Or do I need to feed the vertex array back into one of the UpdateMeshSection functions with bCreateCollision set to true?

Thanks!

Async Collision Cooking missing file

So I downloaded the async collision cooking branch and installed it to my project. I used the 4.15 source build of UE4. When I try to build the project I get an error saying this header, "PhysicsEngine/PhysXCookData.h" could not be found. Is this because it was made on an older version of UE4? or do I have to add this header myself and if so then where do I get it from? Does the header come from integrating PhysX to the project?

Compile error on Unreal 4.15.0

I get these errors:

1>------ Build started: Project: UE4, Configuration: BuiltWithUnrealBuildTool Win32 ------
2>------ Build started: Project: SandBox, Configuration: Development_Editor x64 ------
2>  Performing 6 actions (12 in parallel)
2>  RuntimeMeshComponent.generated.cpp
2>  Module.RuntimeMeshComponentEditor.cpp
2>d:\program files\epic games\ue_4.15\engine\source\runtime\coreuobject\public\UObject/Class.h(662): error C2280: 'FRuntimeMeshComponentPrePhysicsTickFunction &FRuntimeMeshComponentPrePhysicsTickFunction::operator =(const FRuntimeMeshComponentPrePhysicsTickFunction &)': attempting to reference a deleted function
2>  E:\Projects\Unreal\SandBox\Plugins\RuntimeMeshComponent\Source\RuntimeMeshComponent\Public\RuntimeMeshComponent.h(69): note: compiler has generated 'FRuntimeMeshComponentPrePhysicsTickFunction::operator =' here
2>  d:\program files\epic games\ue_4.15\engine\source\runtime\coreuobject\public\UObject/Class.h(997): note: see reference to function template instantiation 'bool CopyOrNot<CPPSTRUCT>(CPPSTRUCT *,const CPPSTRUCT *,int32)' being compiled
2>          with
2>          [
2>              CPPSTRUCT=FRuntimeMeshComponentPrePhysicsTickFunction
2>          ]
2>  d:\program files\epic games\ue_4.15\engine\source\runtime\coreuobject\public\UObject/Class.h(996): note: while compiling class template member function 'bool UScriptStruct::TCppStructOps<FRuntimeMeshComponentPrePhysicsTickFunction>::Copy(void *,const void *,int32)'
2>  E:\Projects\Unreal\SandBox\Plugins\RuntimeMeshComponent\Intermediate\Build\Win64\UE4Editor\Inc\RuntimeMeshComponent\RuntimeMeshComponent.generated.cpp(115): note: see reference to class template instantiation 'UScriptStruct::TCppStructOps<FRuntimeMeshComponentPrePhysicsTickFunction>' being compiled
2>e:\projects\unreal\sandbox\plugins\runtimemeshcomponent\source\runtimemeshcomponenteditor\private\RuntimeMeshComponentDetails.h(7): error C2504: 'IDetailCustomization': base class undefined
2>e:\projects\unreal\sandbox\plugins\runtimemeshcomponent\source\runtimemeshcomponenteditor\private\RuntimeMeshComponentDetails.h(13): error C3668: 'FRuntimeMeshComponentDetails::CustomizeDetails': method with override specifier 'override' did not override any base class methods
2>E:\Projects\Unreal\SandBox\Plugins\RuntimeMeshComponent\Source\RuntimeMeshComponentEditor\Private\RuntimeMeshComponentDetails.cpp(16): error C2440: 'return': cannot convert from 'SharedPointerInternals::FRawPtrProxy<FRuntimeMeshComponentDetails>' to 'TSharedRef<IDetailCustomization,0>'
2>  E:\Projects\Unreal\SandBox\Plugins\RuntimeMeshComponent\Source\RuntimeMeshComponentEditor\Private\RuntimeMeshComponentDetails.cpp(16): note: No constructor could take the source type, or constructor overload resolution was ambiguous
2>E:\Projects\Unreal\SandBox\Plugins\RuntimeMeshComponent\Source\RuntimeMeshComponentEditor\Private\RuntimeMeshComponentDetails.cpp(85): error C2027: use of undefined type 'IAssetTools'
2>  D:\Program Files\Epic Games\UE_4.15\Engine\Source\Developer\AssetTools\Public\AssetToolsModule.h(9): note: see declaration of 'IAssetTools'
2>E:\Projects\Unreal\SandBox\Plugins\RuntimeMeshComponent\Source\RuntimeMeshComponentEditor\Private\RuntimeMeshComponentDetails.cpp(85): error C2228: left of '.CreateUniqueAssetName' must have class/struct/union
2>ERROR : UBT error : Failed to produce item: E:\Projects\Unreal\SandBox\Plugins\RuntimeMeshComponent\Intermediate\Build\Win64\UE4Editor\Development\UE4Editor-RuntimeMeshComponent.lib
2>  Total build time: 25.60 seconds (Local executor: 0.00 seconds)
2>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.MakeFile.Targets(41,5): error MSB3075: The command ""D:\Program Files\Epic Games\UE_4.15\Engine\Build\BatchFiles\Build.bat" SandBoxEditor Win64 Development "E:\Projects\Unreal\SandBox\SandBox.uproject" -waitmutex" exited with code 5. Please verify that you have sufficient rights to run this command.
========== Build: 1 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

I am new to Unreal, so I am not completely sure about how to fix it. It is the 2.0 release, and I will test on 4.13.2 too, later... I hope it can be fixed for 4.15.0

'TypeInfo': is not a member of FVector

I'm calling

DisparityMesh->CreateMeshSection(0, vertices, Triangles, false);

Where vertices is TArray<FVector> and Triangles is TArray<int32>

When compiling, I get this problem

d:\ue4_dev\nvidia_ue4_14\engine\plugins\runtimemeshcomponent\source\runtimemeshcomponent\public\RuntimeMeshSection.h(542): note: while compiling class template member function 'const FRuntimeMeshVertexTypeInfo *FRuntimeMeshSection<VertexType>::GetVertexType(void) const'
2>          with
2>          [
2>              VertexType=FVector
2>          ]
2>  d:\ue4_dev\nvidia_ue4_14\engine\source\runtime\core\public\templates\PointerIsConvertibleFromTo.h(16): note: see reference to class template instantiation 'FRuntimeMeshSection<VertexType>' being compiled
2>          with
2>          [
2>              VertexType=FVector
2>          ]
2>  D:\UE4_Dev\NVIDIA_UE4_14\Engine\Source\Runtime\Core\Public\Templates\SharedPointer.h(518): note: see reference to class template instantiation 'TPointerIsConvertibleFromTo<ObjectType,const UObjectBase>' being compiled
2>          with
2>          [
2>              ObjectType=FRuntimeMeshSection<FVector>
2>          ]
2>  D:\UE4_Dev\NVIDIA_UE4_14\Engine\Plugins\RuntimeMeshComponent\Source\RuntimeMeshComponent\Public\RuntimeMeshComponent.h(171): note: see reference to class template instantiation 'TSharedPtr<FRuntimeMeshSection<VertexType>,0>' being compiled
2>          with
2>          [
2>              VertexType=FVector
2>          ]
2>  D:\_User\Username\Documents\Unreal Projects\OpenCVCollisionTest2\Source\OpenCVCollisionTest\CVStereoReader.cpp(247): note: see reference to function template instantiation 'void URuntimeMeshComponent::CreateMeshSection<FVector>(int32,TArray<FVector,FDefaultAllocator> &,TArray<ElementType,FDefaultAllocator> &,bool,EUpdateFrequency,ESectionUpdateFlags)' being compiled
2>          with
2>          [
2>              ElementType=int32
2>          ]
2>d:\ue4_dev\nvidia_ue4_14\engine\plugins\runtimemeshcomponent\source\runtimemeshcomponent\public\RuntimeMeshSection.h(542): error C2065: 'TypeInfo': undeclared identifier

similar to issue #37

I've built the plugin as an engine plugin on NVIDIA's FLeX 4.14.3 branch: https://github.com/NvPhysX/UnrealEngine/tree/FleX-4.14.3

Crash on UE4.15.1 shipping build

When launching a project packaged in UE 4.15.1 (shipping build), the executable crashes on startup with the following output (when trying to create a render thread):

Access violation - code c0000005 (first/second chance not available)

PFS_Win64_Shipping!FD3D11DynamicRHI::RHILockVertexBuffer()
PFS_Win64_Shipping!FDynamicRHI::LockVertexBuffer_RenderThread()
PFS_Win64_Shipping!FRuntimeMeshVertexBuffer::SetData() [d:\projects\unreal\pfs\simulator\plugins\ue4runtimemeshcomponent-2.0\source\runtimemeshcomponent\public\runtimemeshrendering.h:78]
PFS_Win64_Shipping!FRuntimeMeshSectionProxy<FRuntimeMeshVertexSimple,0>::FinishCreate_RenderThread() [d:\projects\unreal\pfs\simulator\plugins\ue4runtimemeshcomponent-2.0\source\runtimemeshcomponent\public\runtimemeshsectionproxy.h:171]
PFS_Win64_Shipping!FRuntimeMeshSceneProxy::CreateSection_RenderThread() [d:\projects\unreal\pfs\simulator\plugins\ue4runtimemeshcomponent-2.0\source\runtimemeshcomponent\private\runtimemeshcomponent.cpp:107]
PFS_Win64_Shipping!TGraphTask<URuntimeMeshComponent::CreateSectionInternal'::18'::EURCMacro_FRuntimeMeshSectionCreate>::ExecuteTask() [c:\program files\epic games\ue_4.15\engine\source\runtime\core\public\async\taskgraphinterfaces.h:888]
PFS_Win64_Shipping!FNamedTaskThread::ProcessTasksNamedThread()
PFS_Win64_Shipping!FNamedTaskThread::ProcessTasksUntilQuit()
PFS_Win64_Shipping!RenderingThreadMain()
PFS_Win64_Shipping!FRenderingThread::Run()
PFS_Win64_Shipping!FRunnableThreadWin::Run()

AFAIK the project settings should be as instructed for Runtime Mesh Component.
Any ideas what can be possibly causing this crash or how to fix it? Everything works fine when playing on editor.

crash every time when quitting

MachineId:FFE9D4CE4D347057434FBAA0D71D517A
EpicAccountId:0a07e675f2fb47b899c2f761b279eac9

Access violation - code c0000005 (first/second chance not available)

PhysX3CommonPROFILE_x64!physx::shdfnd::atomicDecrement() [d:\ori.cohen_g6217_physics\engine\source\thirdparty\physx\physx-3.3\source\foundation\src\windows\pswindowsatomic.cpp:45]
PhysX3PROFILE_x64!physx::NpShape::~NpShape() [d:\ori.cohen_g6217_physics\engine\source\thirdparty\physx\physx-3.3\source\physx\src\npshape.cpp:53]
PhysX3PROFILE_x64!physx::NpShape::`scalar deleting destructor'()
PhysX3PROFILE_x64!physx::NpFactory::releaseShapeToPool() [d:\ori.cohen_g6217_physics\engine\source\thirdparty\physx\physx-3.3\source\physx\src\npfactory.cpp:874]
PhysX3PROFILE_x64!physx::NpDestroy() [d:\ori.cohen_g6217_physics\engine\source\thirdparty\physx\physx-3.3\source\physx\src\npfactory.cpp:1249]
PhysX3PROFILE_x64!physx::Scb::Scene::removephysx::Scb::Body,1() [d:\ori.cohen_g6217_physics\engine\source\thirdparty\physx\physx-3.3\source\physx\src\buffering\scbscene.cpp:411]
PhysX3PROFILE_x64!physx::Scb::Scene::removeRigidBody() [d:\ori.cohen_g6217_physics\engine\source\thirdparty\physx\physx-3.3\source\physx\src\buffering\scbscene.cpp:601]
PhysX3PROFILE_x64!physx::NpRigidDynamic::release() [d:\ori.cohen_g6217_physics\engine\source\thirdparty\physx\physx-3.3\source\physx\src\nprigiddynamic.cpp:66]
UE4Editor_Engine!TermBodyHelper() [d:\build++ue4+release-4.12+compile\sync\engine\source\runtime\engine\private\physicsengine\bodyinstance.cpp:1947]
UE4Editor_Engine!FBodyInstance::TermBody() [d:\build++ue4+release-4.12+compile\sync\engine\source\runtime\engine\private\physicsengine\bodyinstance.cpp:2000]
UE4Editor_Engine!UPrimitiveComponent::DestroyPhysicsState() [d:\build++ue4+release-4.12+compile\sync\engine\source\runtime\engine\private\components\primitivecomponent.cpp:616]
UE4Editor_Engine!UActorComponent::ExecuteUnregisterEvents() [d:\build++ue4+release-4.12+compile\sync\engine\source\runtime\engine\private\components\actorcomponent.cpp:1120]
UE4Editor_Engine!UActorComponent::UnregisterComponent() [d:\build++ue4+release-4.12+compile\sync\engine\source\runtime\engine\private\components\actorcomponent.cpp:945]
UE4Editor_Engine!AActor::UnregisterAllComponents() [d:\build++ue4+release-4.12+compile\sync\engine\source\runtime\engine\private\actor.cpp:3861]
UE4Editor_Engine!ULevel::ClearLevelComponents() [d:\build++ue4+release-4.12+compile\sync\engine\source\runtime\engine\private\level.cpp:686]
UE4Editor_Engine!UWorld::ClearWorldComponents() [d:\build++ue4+release-4.12+compile\sync\engine\source\runtime\engine\private\world.cpp:1307]
UE4Editor_Engine!UWorld::CleanupWorld() [d:\build++ue4+release-4.12+compile\sync\engine\source\runtime\engine\private\world.cpp:3288]
UE4Editor_UnrealEd!UEditorEngine::TeardownPlaySession() [d:\build++ue4+release-4.12+compile\sync\engine\source\editor\unrealed\private\playlevel.cpp:653]
UE4Editor_UnrealEd!UEditorEngine::EndPlayMap() [d:\build++ue4+release-4.12+compile\sync\engine\source\editor\unrealed\private\playlevel.cpp:255]
UE4Editor_UnrealEd!UEditorEngine::Tick() [d:\build++ue4+release-4.12+compile\sync\engine\source\editor\unrealed\private\editorengine.cpp:1399]
UE4Editor_UnrealEd!UUnrealEdEngine::Tick() [d:\build++ue4+release-4.12+compile\sync\engine\source\editor\unrealed\private\unrealedengine.cpp:368]
UE4Editor!FEngineLoop::Tick() [d:\build++ue4+release-4.12+compile\sync\engine\source\runtime\launch\private\launchengineloop.cpp:2775]
UE4Editor!GuardedMain() [d:\build++ue4+release-4.12+compile\sync\engine\source\runtime\launch\private\launch.cpp:148]
UE4Editor!GuardedMainWrapper() [d:\build++ue4+release-4.12+compile\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:126]
UE4Editor!WinMain() [d:\build++ue4+release-4.12+compile\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:200]
UE4Editor!__scrt_common_main_seh() [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:264]
kernel32
ntdll

Need info on custom vertex structures

I 100% need information on custom vertex structures. I probably need info on how to use it with materials as well but I haven't made it that far yet.

Access Denied error when using the GetSectionFromStaticMesh in Editor 4.15

Whenever I try to use the Blueprint Node for GetSectionFromStaticMesh in the Editor, the editor Crashes with the following error:

Access violation - code c0000005 (first/second chance not available)
UE4Editor_RuntimeMeshComponent!FRuntimeMeshComponentVerticesBuilder::Reset() [d:\maikel files\unreal projects\clonerruntimecpp\plugins\ue4runtimemeshcomponent\source\runtimemeshcomponent\public\runtimemeshbuilder.h:860]
UE4Editor_RuntimeMeshComponent!URuntimeMeshLibrary::GetSectionFromStaticMesh() [d:\maikel files\unreal projects\clonerruntimecpp\plugins\ue4runtimemeshcomponent\source\runtimemeshcomponent\private\runtimemeshlibrary.cpp:408]
UE4Editor_RuntimeMeshComponent!URuntimeMeshLibrary::GetSectionFromStaticMesh() [d:\maikel files\unreal projects\clonerruntimecpp\plugins\ue4runtimemeshcomponent\source\runtimemeshcomponent\private\runtimemeshlibrary.cpp:463]
UE4Editor_RuntimeMeshComponent!URuntimeMeshLibrary::execGetSectionFromStaticMesh() [d:\maikel files\unreal projects\clonerruntimecpp\plugins\ue4runtimemeshcomponent\source\runtimemeshcomponent\public\runtimemeshlibrary.h:14]
UE4Editor_CoreUObject!UFunction::Invoke() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\coreuobject\private\uobject\class.cpp:4525]
UE4Editor_CoreUObject!UObject::CallFunction() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:721]
UE4Editor_CoreUObject!UObject::ProcessContextOpcode() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:2149]
UE4Editor_CoreUObject!UObject::ProcessInternal() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:948]
UE4Editor_CoreUObject!UFunction::Invoke() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\coreuobject\private\uobject\class.cpp:4525]
UE4Editor_CoreUObject!UObject::ProcessEvent() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:1318]
UE4Editor_Engine!AActor::ProcessEvent() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\engine\private\actor.cpp:678]
UE4Editor_Engine!AActor::UserConstructionScript()
UE4Editor_Engine!AActor::ProcessUserConstructionScript() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\engine\private\actorconstruction.cpp:841]
UE4Editor_Engine!AActor::ExecuteConstruction() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\engine\private\actorconstruction.cpp:757]
UE4Editor_Engine!AActor::RerunConstructionScripts() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\engine\private\actorconstruction.cpp:490]
UE4Editor_UnrealEd!FReinstanceFinalizer::Finalize() [d:\build\++ue4+release-4.15+compile\sync\engine\source\editor\unrealed\private\kismet2\kismetreinstanceutilities.cpp:523]
UE4Editor_UnrealEd!FBlueprintCompileReinstancer::ReinstanceObjects() [d:\build\++ue4+release-4.15+compile\sync\engine\source\editor\unrealed\private\kismet2\kismetreinstanceutilities.cpp:923]
UE4Editor_UnrealEd!FKismetEditorUtilities::CompileBlueprint() [d:\build\++ue4+release-4.15+compile\sync\engine\source\editor\unrealed\private\kismet2\kismet2.cpp:868]
UE4Editor_Kismet!FBlueprintEditor::Compile() [d:\build\++ue4+release-4.15+compile\sync\engine\source\editor\kismet\private\blueprinteditor.cpp:3283]
UE4Editor_Kismet!TBaseSPMethodDelegateInstance<0,FBlueprintEditor,0,TTypeWrapper<void> __cdecl(void)>::Execute() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:327]
UE4Editor_Kismet!TBaseSPMethodDelegateInstance<0,FBlueprintEditor,0,void __cdecl(void)>::ExecuteIfSafe() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:433]
UE4Editor_Slate!FUICommandList::ExecuteAction() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\slate\private\framework\commands\uicommandlist.cpp:97]
UE4Editor_Slate!SToolBarButtonBlock::OnClicked() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\slate\private\framework\multibox\stoolbarbuttonblock.cpp:305]
UE4Editor_Slate!TMemberFunctionCaller<SToolBarButtonBlock,FReply (__cdecl SToolBarButtonBlock::*)(void) __ptr64>::operator()<>() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\core\public\delegates\delegateinstanceinterface.h:165]
UE4Editor_Slate!TTupleImpl<TIntegerSequence<unsigned int> >::ApplyAfter<TMemberFunctionCaller<SToolBarButtonBlock,FReply (__cdecl SToolBarButtonBlock::*)(void) __ptr64> >() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\core\public\delegates\tuple.h:134]
UE4Editor_Slate!TBaseSPMethodDelegateInstance<0,SToolBarButtonBlock,0,FReply __cdecl(void)>::Execute() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:327]
UE4Editor_Slate!TBaseDelegate<FReply>::Execute() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\core\public\delegates\delegatesignatureimpl.inl:537]
UE4Editor_Slate!SButton::OnMouseButtonUp() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\slate\private\widgets\input\sbutton.cpp:278]
UE4Editor_Slate!<lambda_8d0e9a1da76abd0a756a3a9d775f5ed1>::operator()() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5075]
UE4Editor_Slate!FEventRouter::Route<FReply,FEventRouter::FToLeafmostPolicy,FPointerEvent,<lambda_8d0e9a1da76abd0a756a3a9d775f5ed1> >() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:238]
UE4Editor_Slate!FSlateApplication::RoutePointerUpEvent() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5064]
UE4Editor_Slate!FSlateApplication::ProcessMouseButtonUpEvent() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5531]
UE4Editor_Slate!FSlateApplication::OnMouseUp() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5508]
UE4Editor_Core!FWindowsApplication::ProcessDeferredMessage() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\core\private\windows\windowsapplication.cpp:1698]
UE4Editor_Core!FWindowsApplication::DeferMessage() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\core\private\windows\windowsapplication.cpp:2120]
UE4Editor_Core!FWindowsApplication::ProcessMessage() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\core\private\windows\windowsapplication.cpp:867]
UE4Editor_Core!FWindowsApplication::AppWndProc() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\core\private\windows\windowsapplication.cpp:714]
user32
user32
UE4Editor_Core!FWindowsPlatformMisc::PumpMessages() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\core\private\windows\windowsplatformmisc.cpp:980]
UE4Editor!FEngineLoop::Tick() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\launch\private\launchengineloop.cpp:2977]
UE4Editor!GuardedMain() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\launch\private\launch.cpp:166]
UE4Editor!GuardedMainWrapper() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:134]
UE4Editor!WinMain() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:210]
UE4Editor!__scrt_common_main_seh() [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:264]
kernel32
ntdll

All I do when using the node is set the mesh to the Shape_Torus from the Standard Assets and then try to run the program.

I am using the master branch directly in the plugin folder of the project. Am I doing something extremely wrong here or is this actually an issue?

Crash opening editor without rebuild - Trying to recreate class 'URuntimeMeshComponent' outside of hot reload!

I have to rebuild my project in Visual Studio before I can open the editor. I just added RMC to an actor in the scene. After rebuilding, the editor will open and won't crash again until I try to reopen it later on.

Assertion failed: GIsHotReload [File:D:\Build\++UE4+Release-4.13+Compile\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\UObjectBase.cpp] [Line: 579] 
Trying to recreate class 'URuntimeMeshComponent' outside of hot reload!


UE4Editor_CoreUObject!CreatePackage() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:543]
UE4Editor_CoreUObject!UObjectLoadAllCompiledInStructs() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectbase.cpp:781]
UE4Editor_CoreUObject!ProcessNewlyLoadedUObjects() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectbase.cpp:829]
UE4Editor_CoreUObject!TBaseStaticDelegateInstance<void __cdecl(void)>::ExecuteIfSafe() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:1017]
UE4Editor_Core!TBaseMulticastDelegate<void>::Broadcast() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\core\public\delegates\delegatesignatureimpl.inl:921]
UE4Editor_Core!FModuleManager::LoadModuleWithFailureReason() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\core\private\modules\modulemanager.cpp:424]
UE4Editor_Projects!FModuleDescriptor::LoadModulesForPhase() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\projects\private\moduledescriptor.cpp:398]
UE4Editor_Projects!FPluginManager::LoadModulesForEnabledPlugins() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\projects\private\pluginmanager.cpp:559]
UE4Editor!FEngineLoop::LoadStartupModules() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\launch\private\launchengineloop.cpp:2218]
UE4Editor!FEngineLoop::PreInit() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\launch\private\launchengineloop.cpp:1653]
UE4Editor!GuardedMain() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\launch\private\launch.cpp:117]
UE4Editor!GuardedMainWrapper() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:126]
UE4Editor!WinMain() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:202]
UE4Editor!__scrt_common_main_seh() [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:264]
kernel32
ntdll

Any idea what would be causing this?

Compile Error 4.15.3, when trying to setup cross compile

I get the following build error while building on

  • Windows 10
  • Visual Studio 2015
  • v8_clang-3.9.0-centos7
    Github check out has last commit "Branch to sanpshot for CL 3451409" on May 22 by unreal bot
25>------ Build started: Project: TestPAL, Configuration: Linux_Development_Program Win32 ------
12>  Using LINUX_MULTIARCH_ROOT, building with toolchain 'D:\dev\Linux_CorssCompileToolchain\v8_clang-3.9.0-centos7\x86_64-unknown-linux-gnu'
12>  Target is up to date
12>  Deploying UE4Game Linux Development...
12>  Total build time: 0.83 seconds (NoActionsToExecute executor: 0.00 seconds)
13>  Using LINUX_MULTIARCH_ROOT, building with toolchain 'D:\dev\Linux_CorssCompileToolchain\v8_clang-3.9.0-centos7\x86_64-unknown-linux-gnu'
13>  Target is up to date
13>  Deploying BlankProgram Linux Development...
13>  Total build time: 0.15 seconds (NoActionsToExecute executor: 0.00 seconds)
14>  Using LINUX_MULTIARCH_ROOT, building with toolchain 'D:\dev\Linux_CorssCompileToolchain\v8_clang-3.9.0-centos7\x86_64-unknown-linux-gnu'
14>  Target is up to date
14>  Deploying BuildPatchTool Linux Development...
14>  Total build time: 0.21 seconds (NoActionsToExecute executor: 0.00 seconds)
16>  Using LINUX_MULTIARCH_ROOT, building with toolchain 'D:\dev\Linux_CorssCompileToolchain\v8_clang-3.9.0-centos7\x86_64-unknown-linux-gnu'
16>  Performing 1 actions (4 in parallel)
16>  [1/1] Link CrossCompilerTool
16>  D:/dev/UnrealEngineSource/UnrealEngine/Engine/Intermediate/Build/Linux/B4D820EA/CrossCompilerTool/Development/ShaderFormatOpenGL/Module.ShaderFormatOpenGL.cpp.o: In function `FOpenGLFrontend::PrecompileShader(FShaderCompilerOutput&, FShaderCompilerInput const&, char const*, GLSLVersion, EHlslShaderFrequency)':
16>  D:\dev\UnrealEngineSource\UnrealEngine\Engine\Source\Developer\ShaderFormatOpenGL\Private/OpenGLShaderCompiler.cpp:1158: undefined reference to `glCreateShader'
16>  D:\dev\UnrealEngineSource\UnrealEngine\Engine\Source\Developer\ShaderFormatOpenGL\Private/OpenGLShaderCompiler.cpp:1161: undefined reference to `glShaderSource'
16>  D:\dev\UnrealEngineSource\UnrealEngine\Engine\Source\Developer\ShaderFormatOpenGL\Private/OpenGLShaderCompiler.cpp:1165: undefined reference to `glCompileShader'
16>  D:\dev\UnrealEngineSource\UnrealEngine\Engine\Source\Developer\ShaderFormatOpenGL\Private/OpenGLShaderCompiler.cpp:1168: undefined reference to `glGetShaderiv'
16>  D:\dev\UnrealEngineSource\UnrealEngine\Engine\Source\Developer\ShaderFormatOpenGL\Private/OpenGLShaderCompiler.cpp:1183: undefined reference to `glGetShaderiv'
16>  D:\dev\UnrealEngineSource\UnrealEngine\Engine\Source\Developer\ShaderFormatOpenGL\Private/OpenGLShaderCompiler.cpp:1192: undefined reference to `glGetShaderInfoLog'
16>  D:\dev\UnrealEngineSource\UnrealEngine\Engine\Source\Developer\ShaderFormatOpenGL\Private/OpenGLShaderCompiler.cpp:1220: undefined reference to `glDeleteShader'
16>clang++.exe : error : linker command failed with exit code 1 (use -v to see invocation)
16>ERROR : UBT error : Failed to produce item: D:\dev\UnrealEngineSource\UnrealEngine\Engine\Binaries\Linux\CrossCompilerTool
16>  Total build time: 3.19 seconds (Local executor: 0.00 seconds)

Spurious vertices created in CopyRuntimeMeshFromStaticMeshComponent

Hi, firstly this contribution is amazing - thank you!

I'm using CopyRuntimeMeshFromStaticMeshComponent to generate a dynamic mesh from a static one. However, this results in a vertex buffer with lots of additional vertices with random, non-initialized values.

It typically results a bounding box range check throwing an error.

The culprit seems to be the use of the AdjacencyTriangles buffer in GetSectionFromStaticMesh. As it doesn't seem to be used, for now I've just set AdjacencyTriangles to nullptr and moved the AdjacencyTriangles->Reset() call to after the (AdjacencyTriangles != nullptr) check. All seems to work.

Hope that makes sense, interested to know if this is my particular use case or not.

Not sure which commit I'm on, pulled down the master branch today 20/10/2016

Thanks!

UpdateMeshSection: C2039 - TypeInfo not a member of FVector

I have created a RuntimeMeshComponent and a mesh section using CreateMeshSection. In the Tick function, I modify the vertices and try to update the mesh using

UpdateMeshSection(0, vertices);

which yields the error below. I am using the plugin installed from the Marketplace, version 2.1. Any idea what the problem is? Updating by using ClearAllMeshSections and creating a new mesh section each tick works fine.

Info Compiling game modules for hot reload Info Performing 3 actions (2 in parallel) Info Distorted.cpp Error c:\program files\epic games\ue_4.16\engine\plugins\marketplace\runtimemeshcomponent\source\runtimemeshcomponent\public\RuntimeMeshSection.h(542) : error C2039: 'TypeInfo': is not a member of 'FVector' Error C:\Program Files\Epic Games\UE_4.16\Engine\Plugins\Marketplace\RuntimeMeshComponent\Intermediate\Build\Win64\UE4Editor\Inc\RuntimeMeshComponent\RuntimeMeshComponent.generated.h(11) : note: see declaration of 'FVector' Error c:\program files\epic games\ue_4.16\engine\plugins\marketplace\runtimemeshcomponent\source\runtimemeshcomponent\public\RuntimeMeshSection.h(542) : note: while compiling class template member function 'const FRuntimeMeshVertexTypeInfo *FRuntimeMeshSection<VertexType>::GetVertexType(void) const' Info with Info [ Info VertexType=FVector Info ] Error C:\Program Files\Epic Games\UE_4.16\Engine\Source\Runtime\Core\Public\Templates/PointerIsConvertibleFromTo.h(18) : note: see reference to class template instantiation 'FRuntimeMeshSection<VertexType>' being compiled Info with Info [ Info VertexType=FVector Info ] Error C:\Program Files\Epic Games\UE_4.16\Engine\Source\Runtime\Core\Public\Templates/SharedPointer.h(536) : note: see reference to class template instantiation 'TPointerIsConvertibleFromTo<ObjectType,TSharedFromThis<ObjectType,0>>' being compiled Info with Info [ Info ObjectType=FRuntimeMeshSection<FVector> Info ] Error C:\Program Files\Epic Games\UE_4.16\Engine\Plugins\Marketplace\RuntimeMeshComponent\Source\RuntimeMeshComponent\Public\RuntimeMeshComponent.h(318) : note: see reference to class template instantiation 'TSharedPtr<FRuntimeMeshSection<VertexType>,0>' being compiled Info with Info [ Info VertexType=FVector Info ] Error C:\Dev\NewDist\Source\NewDist\Distorted.cpp(55) : note: see reference to function template instantiation 'void URuntimeMeshComponent::UpdateMeshSection<FVector>(int32,TArray<FVector,FDefaultAllocator> &,ESectionUpdateFlags)' being compiled Error c:\program files\epic games\ue_4.16\engine\plugins\marketplace\runtimemeshcomponent\source\runtimemeshcomponent\public\RuntimeMeshSection.h(542) : error C2065: 'TypeInfo': undeclared identifier Info ERROR: UBT ERROR: Failed to produce item: C:\Dev\NewDist\Binaries\Win64\UE4Editor-NewDist-6910.dll Info Total build time: 19.76 seconds (Local executor: 0.00 seconds)

Project builds successfully, editor crashes on startup - "Access violation - code c0000005 (first/second chance not available)"

Hey, I've been playing with this plugin for a bit, and using standard packed vertex buffers seems to be fine, but trying to call the function CreateMeshSectionDualBuffer is giving me problems.

The full log is below:

Access violation - code c0000005 (first/second chance not available) UE4Editor_TerrainGen!URuntimeMeshComponent::CreateOrResetSection<FRuntimeMeshSection<FRuntimeMeshVertexNoPosition> >() [c:\program files (x86)\epic games\4.14\engine\plugins\marketplace\runtimemeshcomponent\source\runtimemeshcomponent\public\runtimemeshcomponent.h:86] UE4Editor_TerrainGen!URuntimeMeshComponent::CreateMeshSectionDualBuffer<FRuntimeMeshVertexNoPosition>() [c:\program files (x86)\epic games\4.14\engine\plugins\marketplace\runtimemeshcomponent\source\runtimemeshcomponent\public\runtimemeshcomponent.h:235] UE4Editor_TerrainGen!ALandActor::Generate() [c:\users\aslatas\documents\unreal projects\terraingen\source\terraingen\landactor.cpp:52] UE4Editor_TerrainGen!ALandActor::ALandActor() [c:\users\aslatas\documents\unreal projects\terraingen\source\terraingen\landactor.cpp:13] UE4Editor_CoreUObject UE4Editor_CoreUObject UE4Editor_CoreUObject UE4Editor_CoreUObject UE4Editor_Core UE4Editor_Core UE4Editor_Projects UE4Editor_Projects UE4Editor UE4Editor UE4Editor UE4Editor UE4Editor UE4Editor kernel32 ntdll

I apologize if this is something trivial, I'm a bit of a novice - I suppose it finds issue with line 86 of RuntimeMeshComponent.h but I've no real idea how to proceed.

I essentially recreated one of the examples to produce the inputs, but calling that particular function crashes the editor.
Here are the .h and .cpp files for the class:

LandActor_header.txt
LandActor.txt

I should note that moving the function call into BeginPlay allows the editor to start even with my actor loaded in the level, but trying to play in editor crashes as one might expect.

Rebooting UE4, VS, the PC, and refreshing/regenerating project files haven't helped, I think it's likely I've made some simple mistake with the arguments.

Thanks for the help.

Minimal example for 4.16

Hi,
Is there are "Minimal" example for this component, I dont want to derive my own Actor classes, just add my custom component to an emtpy Actor.

No gravity with RMC?

The RMC doesn't seem to be affected by physics. I turned on 'Simulate Physics' and 'Enable Gravity' for the RMC but with no effect.
I tried with the example project (https://github.com/Koderz/UE4RuntimeMeshComponentExamples) with UE Version 4.14.3 and in my own project with version 4.15.0
Is it somehow possible to have a RMC that is affected by gravity?
If not is it possible to save the mesh of the RMC using C++? (I have seen that this is possible in the editor)

Error in URuntimeMeshLibrary::CalculateTangentsForMesh()

Got wrong when I use the funtion calculate tangent for a mesh, and it works well in ProceduralMeshComponent. I installed the RMC from marketplace, not source code
UE 4.15.2

Vertices : [0] (1000.0f, 0.0f, -100.0f)
[1] (-1000.0, -1000.0f, -100.0f)
[2] (-1000.0, 1000.0f, -100.0f)
[3] (0.0f, 0.0f, 2000.0f)

Triangles: 0 2 1
0 1 3
1 2 3
2 0 3

UV : all is (0.0f, 0.0f) for the 4 vertices

SMC -> RMC Conversion

Hi,

I am trying to convert SMC to RMC at runtime. But im getting memory errors. I am using UE 4.14 .

mainStaticMesh is UStaticMeshComponent and filled with my static mesh.

URuntimeMeshLibrary::CopyRuntimeMeshFromStaticMeshComponent(mainStaticMesh, 0, RuntimeMesh, false);

Best,

RuntimeMeshGenericVertex.h Declaration Order

It is not possible to build RMC on OS X with the declaration order in RuntimeMeshGenericVertex.h. Clang is pretty picky about the declaration order inside source files, if a struct depends on another struct, the dependency has to be declared first.

I'd submit a patch, but I gave up after running into C++14 build errors (unsupported by unreal on OS X).

Vertex operator< inconsitent

The current implementation of operator< in the Vertex struct would have (3,4,5) < (5,4,3), but it would also have (5,4,3) < (3,4,5)

Can I only change vertex‘s color without cooking coliision

I am using this plugin in my project,and Often need to update the vertex color without other data.Now I have to recreate MeshSection(Or updateMeshSection) ,Which can lead to unnecessary performance overhead with physice recook,but I did not actually change the mesh shape.Can I only change vertex‘s color without cooking coliision.

Mesh gets darker when spawn further away from the players spawn point

image

I'm spawning a world in Mesh chunks, sort of like minecraft. But when the mesh is spawned some distance (Not sure of much to be exact) from the players spawn location (I've tried moving the spawn point around, and this holds up) The mesh gets darker, as seen on the image. It's not a transition, it's litterally just the entire chunk that gets darker when spawned. What is the reason for this? Is there some light settings, that does not apply when mesh is creating far from spawn point?

Async helper compiler error

Hey @Koderz,

I'm getting the following compiler error when trying to use the RuntineMeshAsync helpers:

1>C:\Program Files (x86)\Epic Games\4.14\Engine\Plugins\Marketplace\RuntimeMeshComponent\Source\RuntimeMeshComponent\Public\RuntimeMeshAsync.h(204): 

error C2664: 'void URuntimeMeshComponent::CreateMeshSection(int32,IRuntimeMeshVerticesBuilder &,FRuntimeMeshIndicesBuilder &,bool,EUpdateFrequency,ESectionUpdateFlags)': 

cannot convert argument 3 from 'TArray<FRuntimeMeshVertexNoPosition,FDefaultAllocator>' to 'TArray<ElementType,FDefaultAllocator> &'

From the following code:

TArray<FVector> Vertices;
TArray<int32> Triangles;
TArray<FRuntimeMeshVertexNoPosition> VertexData;

// ...

FRuntimeMeshAsync::CreateMeshSectionDualBuffer<FRuntimeMeshVertexNoPosition>(this, 0, Vertices, VertexData, Triangles, true, EUpdateFrequency::Frequent, ESectionUpdateFlags::None);

Any chance you can spot what I'm doing wrong?

Use more than 2 UV channels - how?

I am quite new to procedural meshes and thanks to your RuntimeMesh I am able to get geometry into Unreal without any problems. So big thanks for your efforts.

Now in need to get a third UV channel to use in the shader material to correctly use the underlying texture atlas.

How can this be acompilshed? Because the APIs are for either one or two UV channels and only in internal structures there are occurences of more UV channels. Would be nice, to give me some directions where to look at.

Cheers Max

Noob question about packed vertex arrays.

Hello! If I use packed vertex structures for example:

Vertices.Add(FRuntimeMeshVertexSimple(FVector(0, 100, 0), FVector(0, 0, 1), FRuntimeMeshTangent(0, -1, 0), FColor::White, FVector2D(0, 0)));

Vertices.Add(FRuntimeMeshVertexSimple(FVector(0, 100, 0), FVector(0, 0, 1), FRuntimeMeshTangent(0, -1, 0), FColor::White, FVector2D(0, 0)));

How can I access Vertex Coordinates of each Vertices Array?

Fatal error

Hello, I'm getting the following error at runtime (built for Android_ASTC):
Fatal error: [File:D:\Github\unktomi-g\UnrealEngine\Engine\Source\Runtime\Engine\Private\PhysicsEngine\BodySetup.cpp] [Line: 804]
LogPlayLevel: adb:
LogPlayLevel: adb: 02-04 03:56:11.449 26963 26988 D UE4 : This platform requires cooked packages, and physX data was not cooked into BodySetup /Game/chrisContent/Scenes/Dreamworld.Dreamworld:PersistentLevel.OasisMeshBuilder_C_0.RuntimeMesh.BodySetup_2.

Any insight is much appreciated :)

In my case, I don't need collision for the runtime mesh and tried turning it off but I get the same result.

Mesh not created if first vertex is at origin (0,0,0)

Hello,

I'm using the RuntimeMeshComponent from a C++ class using UE4.13.1. I noticed (After hours of research) that (at least for me) if the first vertex passed to the CreateMeshSection is positioned at the origin (0,0,0) or close (<100, <100, <100), the mesh is not created (at least not visible). I discovered RuntimeMeshComponent because ProceduralMeshComponent was not working for, very likely, the same reason. Also from blueprint having the first vertex at origin makes no problem.

I'm fairly new to UE4 so the problem might be entirely my fault.

I add at the end of the message the portion of code generating the problem for me. The commented is copy pasted from the wiki and works. The uncommented one is not.

I hope this is useful and not just a problem I'm the only one to meet.

Regards,

Code:
mesh = CreateDefaultSubobject(TEXT("GeneratedMesh"));

TArray<FVector> vertices;
// First Vertex
vertices.Add(FVector(0, 0, 0)); // This makes it not working
//vertices.Add(FVector(50, 50, 0)); // This makes it not working
//vertices.Add(FVector(100, 100, 0)); // This works

// Second Vertex
vertices.Add(FVector(100, 0, 0));

// Third Vertex
vertices.Add(FVector(0, 100, 0));

TArray<int32> triangles;
triangles.Add(0);
triangles.Add(1);
triangles.Add(2);

//triangles.Add(0);
//triangles.Add(3);
//triangles.Add(2);

TArray<FVector> normals;
normals.Add(FVector(0, 0, 1));
normals.Add(FVector(0, 0, 1));
normals.Add(FVector(0, 0, 1));
//normals.Add(FVector(0, 0, 1));

TArray<FVector2D> UV;
UV.Add(FVector2D(0, 0));
UV.Add(FVector2D(1, 0));
//UV.Add(FVector2D(1, 1));
UV.Add(FVector2D(0, 1));

mesh->CreateMeshSection(0, vertices, triangles, normals, UV, TArray<FColor>(), TArray<FRuntimeMeshTangent>(), false);


/*
// First vertex
TArray<FVector> Vertices;
Vertices.Add(FVector(0, 100, 0));
Vertices.Add(FVector(100, 100, 0));
Vertices.Add(FVector(100, 0, 0));
//Vertices.Add(FVector(0, 0, 0));

TArray<FVector> Normals;
Normals.Add(FVector(0, 0, 1));
Normals.Add(FVector(0, 0, 1));
Normals.Add(FVector(0, 0, 1));
//Normals.Add(FVector(0, 0, 1));

TArray<FRuntimeMeshTangent> Tangents;
Tangents.Add(FRuntimeMeshTangent(0, -1, 0));
Tangents.Add(FRuntimeMeshTangent(0, -1, 0));
Tangents.Add(FRuntimeMeshTangent(0, -1, 0));
Tangents.Add(FRuntimeMeshTangent(0, -1, 0));

TArray<FVector2D> UV;
UV.Add(FVector2D(0, 0));
UV.Add(FVector2D(1, 0));
//UV.Add(FVector2D(1, 1));
UV.Add(FVector2D(0, 1));

TArray<int32> Triangles;
Triangles.Add(0);
Triangles.Add(1);
Triangles.Add(2);

Triangles.Add(0);
Triangles.Add(2);
Triangles.Add(3);


mesh->CreateMeshSection(0, Vertices, Triangles, Normals, UV, TArray<FColor>(), TArray<FRuntimeMeshTangent>(), false);
*/

mesh->SetMeshSectionVisible(0, true);
RootComponent = mesh;

Need support for PT_4_ControlPointPatchList

Hi,
I have successfully made (WIP) planet rendering in OpenGL/DX but im new to unreal 4 and could find a base to start with, can you kindly add support for PT_4_ControlPointPatchList with tessellation shader support, because a quad is better looking when tessellated than triangles for planet.

Or atleast guide me the places where and what needs to change to support PT_4_ControlPointPatchList!

Get mesh data

How would I go about getting the mesh data like vertices, triangles, UVs and normals from a runtime mesh?

GetSectionMesh() gives me vertices and indices. How do I get UVs, normals, tangents and Vertex Colors?

Collision is not working in packaged game

I am using this plugin.This is very useful plugin and working perfectly in editor.But when I am packaging game and run it collision does not generate.

Is there any solution for it?Where I am going wrong?

Can i update mesh color every frame?what should i do?

I want to update the mesh shape and its color every frame,i used the function CreateMeshSectionDualBuffer to update position every frame.
So,what should i do to update the mesh's color?
please help me,thanks a lot:)

Missing Triangles with Packed Arrays on 4.16

Maybe a dumb question as this is still listed as a 4.15 plugin, but I wanted to know if this is a known issue atm., or if I should dig into the problem further...

I am using the latest branch, and creating packed arrays from data that previously worked with ProceduralMeshComponents.

The resultant mesh renders ok, but is missing a number of triangles, in a fairly regular pattern.

I am basically pumping the vertex data into an array like this, in a loop..

Vertices.Add( FRuntimeMeshVertexSimple( m_vNode[j].m_vPosition, m_vNode[j].m_vNormal, FRuntimeMeshTangent(0,0,1), FColor(0,0,0), m_vNode[j].m_fTexCoord )); }

Previously I was pushing the same vertex data to individual arrays thus..

for (unsigned int j=0; j<count; j++) { Vertices.Add(m_vNode[j].m_vPosition); Normals.Add(m_vNode[j].m_vNormal); UV0.Add(m_vNode[j].m_fTexCoord); }

The index data has not changed.

Is it necessary to calculate Normals and Tangents when creating a mesh?

Hi,

I am new to Unreal and use RMC for the first time. I want to create a cylinder mesh procedurally by using RMC. If I use the CreateMeshSection method, do I have to clarify the Normals and Tangents? I have created a cylinder mesh in Unity. In Unity, setting the vertices and triangles properly is enough to create the mesh. I wonder if there is a way to achieve that by using RMC? It seems that adding Normals and Tangents makes the work far more complicated.

Thanks!

GetMeshSection returns individual triangles?

I create an RMC using CopyRuntimeMeshFromStaticMeshComponent, with a simple cube (8 verts)
URuntimeMeshLibrary::CopyRuntimeMeshFromStaticMeshComponent(smc, 0, rmc, false);

Then I extract Vertices and Indices from the RMC:
const IRuntimeMeshVerticesBuilder* Vertices = nullptr;
const FRuntimeMeshIndicesBuilder* Indices = nullptr;
rmc->GetSectionMesh(0, Vertices, Indices);

Now I have 24 indices instead of the expected 8.

  1. Why would my original static mesh be divided into totally separate triangles that don't share vertices?
  2. Is the CopyRuntimeMesh... function splitting the original staticmesh into separate triangles, or is it the GetSectionMesh function?
  3. Am I ok merging vertices back together and resubmitting it to RMC?

Editor Crash upon Creating RuntimeMeshTangent Array from Blueprint (4.15)

For context, as a quick prototype, I'm trying to take a static mesh component which has several sections, and simply copy it to a runtime mesh component. The blueprint callable function "copyRuntimeMeshFromStaticMeshComponent" works fine for this.

I'm having trouble then accessing the mesh data - there's no function available in blueprint to get the runtime mesh section's say, vertices array. This makes it impossible for me to then update the mesh section, as I don't have a vertex array to feed it. I'm unsure if I'm misunderstanding something and there's an easy way to do this, if it's only possible in C++, or not intended at all.

To get around this, I'm using the "getSectionFromStaticMesh" function, which returns all the data I need. In Blueprint, I can store this to play with later. Excellent.

The procedural mesh component version of this function works fine, but any attempt to use the RMC version (the one that returns a runtime mesh tangent array) crashes the editor. I've provided the error log for this below.

Further, using the procedural mesh version of the function and then calculating normal/tangent data for a runtime mesh also crashes the editor, as does storing that data in a variable. Creating an array of Runtime Mesh Tangent by hand compiles without issue, but using that array to update the mesh crashes the editor.

I haven't been very rigorous in isolating this in C++ code, but it seems like the same sort of problem exists - using the getSectionFromStaticMesh function, calculating runtime mesh tangents, etc. compile but crash the editor when called.

It seems to me that something is wrong in my case when generating or using the runtime mesh tangent struct. I'm inexperienced and so I may just be missing something simple here, but below is a log file and I'd be happy to provide anything else.

> LoginId:aa10e1ce48afc9f013628c99f8cfa81d
> EpicAccountId:15120b2127334ed59ea403fb350f2b2b
> 
> Assertion failed: UV1s && UV1s->Num() > CurrentPosition [File:d:\build\++portal+main+full\sync\localbuilds\plugintemp\hostproject\plugins\runtimemeshcomponent\source\runtimemeshcomponent\public\RuntimeMeshBuilder.h] [Line: 786] 



> KERNELBASE

> UE4Editor_Core
> UE4Editor_Core
> UE4Editor_Core
> UE4Editor_RuntimeMeshComponent!FRuntimeMeshComponentVerticesBuilder::GetUV() [d:\build\++portal+main+full\sync\localbuilds\plugintemp\hostproject\plugins\runtimemeshcomponent\source\runtimemeshcomponent\public\runtimemeshbuilder.h:787]
> UE4Editor_RuntimeMeshComponent!URuntimeMeshLibrary::CalculateTangentsForMesh() [d:\build\++portal+main+full\sync\localbuilds\plugintemp\hostproject\plugins\runtimemeshcomponent\source\runtimemeshcomponent\private\runtimemeshlibrary.cpp:241]
> UE4Editor_RuntimeMeshComponent!URuntimeMeshLibrary::CalculateTangentsForMesh() [d:\build\++portal+main+full\sync\localbuilds\plugintemp\hostproject\plugins\runtimemeshcomponent\source\runtimemeshcomponent\private\runtimemeshlibrary.cpp:328]
> UE4Editor_RuntimeMeshComponent!URuntimeMeshLibrary::execCalculateTangentsForMesh() [d:\build\++portal+main+full\sync\localbuilds\plugintemp\hostproject\plugins\runtimemeshcomponent\source\runtimemeshcomponent\public\runtimemeshlibrary.h:14]
> UE4Editor_CoreUObject
> UE4Editor_CoreUObject
> UE4Editor_CoreUObject
> UE4Editor_CoreUObject
> UE4Editor_CoreUObject
> UE4Editor_CoreUObject
> UE4Editor_Engine
> UE4Editor_Engine
> UE4Editor_Engine
> UE4Editor_Engine
> UE4Editor_Engine
> UE4Editor_UnrealEd
> UE4Editor_UnrealEd
> UE4Editor_UnrealEd
> UE4Editor_Kismet
> UE4Editor_Kismet
> UE4Editor_Kismet
> UE4Editor_Slate
> UE4Editor_Slate
> UE4Editor_Slate
> UE4Editor_Slate
> UE4Editor_Slate
> UE4Editor_Slate
> UE4Editor_Slate
> UE4Editor_Slate
> UE4Editor_Slate
> UE4Editor_Slate
> UE4Editor_Slate
> UE4Editor_Slate
> UE4Editor_Core
> UE4Editor_Core
> UE4Editor_Core
> UE4Editor_Core
> user32
> user32
> UE4Editor_Core
> UE4Editor
> UE4Editor
> UE4Editor
> UE4Editor
> UE4Editor
> kernel32
> ntdll

Slicer issues

Hey,

First of all I want to thank you, this is exactly what I needed to implement some features.

I know I'm posting this on the wrong repo, but I found no other way to enter in contact with you.

Using the slicer I get a lot of errors when validating section vert num < 0, also caps do not work some times.

Other question, can the slicer be used with dual buffer sections ? Currently it doesn't work.

Thanks !

UE 4.15.2 Compile Error

Hey I get the following error when I try to compile this with UE 4.15.2:

error C2504: 'TStructOpsTypeTraitsBase2': base class undefined

TStructOpsTypeTraitsBase2 is not a template
Line 72, RuntimeMeshComponent.h

Build fails on 4.15

I'm not sure if this is related to me using UE 4.15, but when I try to compile I get the following error:

engine\source\runtime\coreuobject\public\UObject/Class.h(662): error C2280: 'FRuntimeMeshComponentPrePhysicsTickFunction &FRuntimeMeshComponentPrePhysicsTickFunction::operator =(const FRuntimeMeshComponentPrePhysicsTickFunction &)': attempting to reference a deleted function
Plugins\UE4RuntimeMeshComponent\Source\RuntimeMeshComponent\Public\RuntimeMeshComponent.h(69): note: compiler has generated 'FRuntimeMeshComponentPrePhysicsTickFunction::operator =' here
engine\source\runtime\coreuobject\public\UObject/Class.h(997): note: see reference to function template instantiation 'bool CopyOrNot<CPPSTRUCT>(CPPSTRUCT *,const CPPSTRUCT *,int32)' being compiled
        with
        [
            CPPSTRUCT=FRuntimeMeshComponentPrePhysicsTickFunction
        ]
engine\source\runtime\coreuobject\public\UObject/Class.h(996): note: while compiling class template member function 'bool UScriptStruct::TCppStructOps<FRuntimeMeshComponentPrePhysicsTickFunction>::Copy(void *,const void *,int32)'
Plugins\UE4RuntimeMeshComponent\Intermediate\Build\Win64\UE4Editor\Inc\RuntimeMeshComponent\RuntimeMeshComponent.generated.cpp(115): note: see reference to class template instantiation 'UScriptStruct::TCppStructOps<FRuntimeMeshComponentPrePhysicsTickFunction>' being compiled

Thanks for the great work. Would love to try this out on 4.15.

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.