ictusbrucks / impostorbaker Goto Github PK
View Code? Open in Web Editor NEWUE4 Plugin for generating Impostors for static meshes
UE4 Plugin for generating Impostors for static meshes
All the projects using this tool (nature packs for example) in the Marketplace are stuck with black imposters.
UE5 seems to have a problem with the material functions.
Any one could help?
and doing Clear RTs and Render Frames steps
I would like to use this in a commercial project but it's missing a proper license. Can you please add a license to make it clear if we are allowed or not to use it in a commercial project?
Using UE 4.19.0 (4.19.0-3944462+++UE4+Release-4.19), created an empty BP project, created a Plugins directory and cloned this repository into an ImpostorBaker subdirectory (so it is in C:\Users\sebas\workspace\UE4ImpostorBaker\Plugins\ImpostorBaker).
(UE 4.18.3 and UE4.20-master are totally unable to open the map)
When opening the provided Generate_Impostor_Map.umap (using "Show Plugin Content") I get a big bung of warnings. The first few lines are:
[2018.03.18-13.23.33:248][ 0]Cmd: MAP LOAD FILE="../../../../../../Users/sebas/workspace/UE4ImpostorBaker/Plugins/ImpostorBaker/Content/ImpostorBaker/Maps/Generate_Impostor_Map.umap" TEMPLATE=0 SHOWPROGRESS=1 FEATURELEVEL=3
[2018.03.18-13.23.33:249][ 0]LightingResults: New page: Lighting Build
[2018.03.18-13.23.33:255][ 0]MapCheck: New page: Map Check
[2018.03.18-13.23.33:255][ 0]LightingResults: New page: Lighting Build
[2018.03.18-13.23.33:578][ 0]LogLinker: Warning: Can't find file '/Script/BlueprintMaterialTextureNodes'
[2018.03.18-13.23.33:578][ 0]LogLinker: Warning: Can't find file for asset '/Script/BlueprintMaterialTextureNodes' while loading ../../../../../../Users/sebas/workspace/UE4ImpostorBaker/Plugins/ImpostorBaker/Content/ImpostorBaker/BP/BP_Generate_ImposterSprites.uasset.
[2018.03.18-13.23.33:578][ 0]LoadErrors: Error: /ImpostorBaker/ImpostorBaker/BP/BP_Generate_ImposterSprites : Can't find file for asset. /Script/BlueprintMaterialTextureNodes
[...]
If I create my own NewMap, and try to bring BP_Generate_ImposterSprites into it I get the following errors:
[2018.03.18-13.33.08:113][169]LogBlueprint: Error: [Compiler BP_Generate_ImposterSprites] In use pin In Render Target no longer exists on node Render Target Sample Rectangle Editor Only . Please refresh node or break links to remove pin.
[2018.03.18-13.33.08:113][169]LogBlueprint: Error: [Compiler BP_Generate_ImposterSprites] In use pin In Rect no longer exists on node Render Target Sample Rectangle Editor Only . Please refresh node or break links to remove pin.
[2018.03.18-13.33.08:114][169]LogBlueprint: Error: [Compiler BP_Generate_ImposterSprites] In use pin Return Value no longer exists on node Render Target Sample Rectangle Editor Only . Please refresh node or break links to remove pin.
[2018.03.18-13.33.08:114][169]LogBlueprint: Error: [Compiler BP_Generate_ImposterSprites] Could not find a function named "RenderTarget_SampleRectangle_EditorOnly" in 'BP_Generate_ImposterSprites'.
Make sure 'BP_Generate_ImposterSprites' has been compiled for Render Target Sample Rectangle Editor Only
[2018.03.18-13.33.08:115][169]LogBlueprint: Error: [Compiler BP_Generate_ImposterSprites] In use pin <Unnamed> no longer exists on node Set MICTexture Param Editor Only . Please refresh node or break links to remove pin.
[2018.03.18-13.33.08:115][169]LogBlueprint: Error: [Compiler BP_Generate_ImposterSprites] In use pin <Unnamed> no longer exists on node Set MICTexture Param Editor Only . Please refresh node or break links to remove pin.
[2018.03.18-13.33.08:115][169]LogBlueprint: Error: [Compiler BP_Generate_ImposterSprites] In use pin Material no longer exists on node Set MICTexture Param Editor Only . Please refresh node or break links to remove pin.
[2018.03.18-13.33.08:115][169]LogBlueprint: Error: [Compiler BP_Generate_ImposterSprites] In use pin Param Name no longer exists on node Set MICTexture Param Editor Only . Please refresh node or break links to remove pin.
[2018.03.18-13.33.08:116][169]LogBlueprint: Error: [Compiler BP_Generate_ImposterSprites] In use pin Texture no longer exists on node Set MICTexture Param Editor Only . Please refresh node or break links to remove pin.
[2018.03.18-13.33.08:116][169]LogBlueprint: Error: [Compiler BP_Generate_ImposterSprites] Could not find a function named "SetMICTextureParam_EditorOnly" in 'BP_Generate_ImposterSprites'.
Make sure 'BP_Generate_ImposterSprites' has been compiled for Set MICTexture Param Editor Only
[2018.03.18-13.33.08:117][169]LogBlueprint: Error: [Compiler BP_Generate_ImposterSprites] In use pin <Unnamed> no longer exists on node Create MIC Editor Only . Please refresh node or break links to remove pin.
[2018.03.18-13.33.08:117][169]LogBlueprint: Error: [Compiler BP_Generate_ImposterSprites] In use pin <Unnamed> no longer exists on node Create MIC Editor Only . Please refresh node or break links to remove pin.
[2018.03.18-13.33.08:117][169]LogBlueprint: Error: [Compiler BP_Generate_ImposterSprites] In use pin Material no longer exists on node Create MIC Editor Only . Please refresh node or break links to remove pin.
[2018.03.18-13.33.08:118][169]LogBlueprint: Error: [Compiler BP_Generate_ImposterSprites] In use pin Name no longer exists on node Create MIC Editor Only . Please refresh node or break links to remove pin.
[2018.03.18-13.33.08:118][169]LogBlueprint: Error: [Compiler BP_Generate_ImposterSprites] In use pin Return Value no longer exists on node Create MIC Editor Only . Please refresh node or break links to remove pin.
[2018.03.18-13.33.08:118][169]LogBlueprint: Error: [Compiler BP_Generate_ImposterSprites] Could not find a function named "CreateMIC_EditorOnly" in 'BP_Generate_ImposterSprites'.
Make sure 'BP_Generate_ImposterSprites' has been compiled for Create MIC Editor Only
[2018.03.18-13.33.08:234][169]LogBlueprint: Error: [Compiler BP_Generate_ImposterSprites] In use pin In Render Target no longer exists on node Render Target Sample Rectangle Editor Only . Please refresh node or break links to remove pin.
[2018.03.18-13.33.08:235][169]LogBlueprint: Error: [Compiler BP_Generate_ImposterSprites] In use pin In Rect no longer exists on node Render Target Sample Rectangle Editor Only . Please refresh node or break links to remove pin.
[2018.03.18-13.33.08:235][169]LogBlueprint: Error: [Compiler BP_Generate_ImposterSprites] In use pin Return Value no longer exists on node Render Target Sample Rectangle Editor Only . Please refresh node or break links to remove pin.
[2018.03.18-13.33.08:236][169]LogBlueprint: Error: [Compiler BP_Generate_ImposterSprites] Could not find a function named "RenderTarget_SampleRectangle_EditorOnly" in 'BP_Generate_ImposterSprites'.
Make sure 'BP_Generate_ImposterSprites' has been compiled for Render Target Sample Rectangle Editor Only
[2018.03.18-13.33.08:267][169]LogBlueprint: Warning: [Compiler BP_Generate_ImposterSprites] [0280,67] Compile of BP_Generate_ImposterSprites failed. 20 Fatal Issue(s) 0 Warning(s) [in 225 ms] (/ImpostorBaker/ImpostorBaker/BP/BP_Generate_ImposterSprites.BP_Generate_ImposterSprites)
You mentioned having a 4.18 version of this plugin available,
Could you please share it on a branch ?
I'm interested in the capture setup actually, so no biggie if it's not fully functional.
Thanks !
according to this discussion : If there’s no license, you have been granted no rights, including the right to run. The GitHub terms of service allow you to view the code and that’s about it.
Hi Ryan, i have a great doubt because https://docs.unrealengine.com/en-us/UE-Dev-Blog/cid/446515 the plugin is listed on documentation of Unreal Engine ... so we can use in our games for commercial use? I will use only the billboards created for my meshes foliage.
Hey Ryan thanks for the awesome work you've done on this tool. I'm not sure if this is still being updated, but just in case anyone out there knows what is going on, any help would be greatly appreciated!
The impostors seem to work just fine and don't seem to have any issues with them but when I try to bake the lighting in the scene my project unfortunately crashes 100% of the time. UE4 gives me this note upon crash "Assertion failed: InShadingModel < MSM_NUM [File:D:\Build++UE4+Licensee\Sync\Engine\Source\Runtime\Engine\Classes\Engine/EngineTypes.h] [Line: 499] ". This happens when I try building the lighting in both 4.24 and 4.25. Not sure if anyone else has run into this issue and knows exactly what is going on. I can still use the impostors without baked lighting, but it would still be nice to be able to use baked lighting withing the project for other assets.
Thanks in advance.
Even when inside ImposterCaptureSwitch there're no errors (Collections were not set, but I used MPC_ImposterCapture) when plugining in the result to the output in my material it displays the error:
"Function ImposterCaptureSwitch: (Node CollectionParameter) CollectionParameter has invalid connection"
There are two BluePrint classes defined in this plugin which have unclear or invalid names which pollute the global class list.
asdf
- looks like it can be removed as it's not referenced anywhere?blutil
- should be renamed for consistency & clarity (e.g. BP_ImposterBaker_Blutility
or something appropriately descriptive)@ictusbrucks
The created mesh keeps flickering with the instaced Mat created.
Hello, ryan
I would like to tell you that your work is extraordinary, a big thank you to you for everything you do.
I am currently working on a BP editor to automate HLOD settings and also to create imposters, I tested your "ImpostorBaker" code, under version 4.22 it is impossible to use the final Material because the HLSL code contained in "World To Loc" does not work with the new version.
With the 4.22 I create blueprint tools using "Widget Editor", I started making my own Bake imposter system based on your work "render to texture" and "Octahedral Impostors".
Thank you...
Using Unreal Engine 4.19.1, it will crash when opening BP_Generate_Imposter Sprites
Fatal error: [File:D:\Build\++UE4+Release-4.19+Compile\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\LinkerLoad.cpp] [Line: 3370] BP_Generate_ImposterSprites_C /Game/ImpostorBaker/BP/BP_Generate_ImposterSprites.Default__BP_Generate_ImposterSprites_C: Serial size mismatch: Got 1788, Expected 2052
UE4Editor_Core!FDebug::AssertFailed() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\core\private\misc\assertionmacros.cpp:419]
UE4Editor_CoreUObject!FLinkerLoad::Preload() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:3370]
UE4Editor_CoreUObject!FLinkerLoad::ResolveDeferredExports() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\coreuobject\private\blueprint\blueprintsupport.cpp:1839]
UE4Editor_CoreUObject!FLinkerLoad::FinalizeBlueprint() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\coreuobject\private\blueprint\blueprintsupport.cpp:1614]
UE4Editor_CoreUObject!FLinkerLoad::Preload() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:3353]
UE4Editor_CoreUObject!FLinkerLoad::CreateExport() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:4027]
UE4Editor_CoreUObject!FLinkerLoad::IndexToObject() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:4250]
UE4Editor_CoreUObject!FLinkerLoad::CreateExport() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:3648]
UE4Editor_CoreUObject!FLinkerLoad::CreateExportAndPreload() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2746]
UE4Editor_CoreUObject!FLinkerLoad::LoadAllObjects() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2908]
UE4Editor_CoreUObject!LoadPackageInternal() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:1328]
UE4Editor_CoreUObject!LoadPackage() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:1436]
UE4Editor_CoreUObject!ResolveName() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:792]
UE4Editor_CoreUObject!StaticLoadObjectInternal() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:880]
UE4Editor_CoreUObject!StaticLoadObject() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:947]
UE4Editor_ContentBrowser!FAssetData::GetAsset() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\assetregistry\public\assetdata.h:284]
UE4Editor_ContentBrowser!SContentBrowser::OnAssetsActivated() [d:\build\++ue4+release-4.19+compile\sync\engine\source\editor\contentbrowser\private\scontentbrowser.cpp:2052]
UE4Editor_ContentBrowser!TBaseSPMethodDelegateInstance<0,SContentBrowser,0,TTypeWrapper<void> __cdecl(TArray<FAssetData,FDefaultAllocator> const & __ptr64,enum EAssetTypeActivationMethod::Type)>::Execute() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:269]
UE4Editor_ContentBrowser!TBaseSPMethodDelegateInstance<0,SContentBrowser,0,void __cdecl(TArray<FAssetData,FDefaultAllocator> const & __ptr64,enum EAssetTypeActivationMethod::Type)>::ExecuteIfSafe() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:345]
UE4Editor_ContentBrowser!SAssetView::OnListMouseButtonDoubleClick() [d:\build\++ue4+release-4.19+compile\sync\engine\source\editor\contentbrowser\private\sassetview.cpp:3941]
UE4Editor_ContentBrowser!TBaseSPMethodDelegateInstance<0,SAssetView,0,TTypeWrapper<void> __cdecl(TSharedPtr<FAssetViewItem,0>)>::Execute() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:269]
UE4Editor_ContentBrowser!TBaseSPMethodDelegateInstance<0,SAssetView,0,void __cdecl(TSharedPtr<FAssetViewItem,0>)>::ExecuteIfSafe() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:345]
UE4Editor_ContentBrowser!TBaseDelegate<void,TSharedPtr<FAssetViewItem,0> >::ExecuteIfBound() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\core\public\delegates\delegatesignatureimpl.inl:624]
UE4Editor_ContentBrowser!SListView<TSharedPtr<FAssetViewItem,0> >::Private_OnItemDoubleClicked() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\slate\public\widgets\views\slistview.h:809]
UE4Editor_ContentBrowser!STableRow<TSharedPtr<FAssetViewItem,0> >::OnMouseButtonDoubleClick() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\slate\public\widgets\views\stablerow.h:288]
UE4Editor_Slate!<lambda_eeb33fd1b480e3cad58a1531d90d2e14>::operator()() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5872]
UE4Editor_Slate!FEventRouter::Route<FReply,FEventRouter::FBubblePolicy,FPointerEvent,<lambda_eeb33fd1b480e3cad58a1531d90d2e14> >() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:266]
UE4Editor_Slate!FSlateApplication::RoutePointerDoubleClickEvent() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5870]
UE4Editor_Slate!FSlateApplication::ProcessMouseButtonDoubleClickEvent() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5857]
UE4Editor_Slate!FSlateApplication::OnMouseDoubleClick() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5833]
UE4Editor_ApplicationCore!FWindowsApplication::ProcessDeferredMessage() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\applicationcore\private\windows\windowsapplication.cpp:1730]
UE4Editor_ApplicationCore!FWindowsApplication::DeferMessage() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\applicationcore\private\windows\windowsapplication.cpp:2172]
UE4Editor_ApplicationCore!FWindowsApplication::ProcessMessage() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\applicationcore\private\windows\windowsapplication.cpp:889]
UE4Editor_ApplicationCore!FWindowsApplication::AppWndProc() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\applicationcore\private\windows\windowsapplication.cpp:726]
user32
user32
UE4Editor_ApplicationCore!FWindowsPlatformApplicationMisc::PumpMessages() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\applicationcore\private\windows\windowsplatformapplicationmisc.cpp:129]
UE4Editor!FEngineLoop::Tick() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\launch\private\launchengineloop.cpp:3263]
UE4Editor!GuardedMain() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\launch\private\launch.cpp:166]
UE4Editor!GuardedMainWrapper() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:134]
UE4Editor!WinMain() [d:\build\++ue4+release-4.19+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:253]
kernel32
ntdll
I've tried this in 4.23 and 4.27 and it doesn't create the imposters. I'm talking even just opening the scene and trying the default settings. Nothing happens when you try to build the imposter. Anyone has any ideia what might wrong?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.