#engine-source

1 messages ยท Page 27 of 1

low dust
#

SSAO might run

granite dust
#

I've had some complaints from users about AO artifacts

#

It would be good to allow either method, I guess. But the baked AO increases mesh computation time by ~50%

#

It's noticeably slower to sculpt (for me)

#

baked AO is really creamy and nice, though

terse dragon
#

AO works in forward now, but it's unusable with MSAA, fyi

low dust
#

you mean the artifacts?

#

unreals SSAO does rely on TAA to smooth things out

#

it didn't look that horrible when used sparingly on my tests tho

#

HBAO+ has separate blur pass but like mentioned, it's fairly heavy

#

@terse dragon or did you mean the UE4's MSAA edge artifacts rather?

terse dragon
#

@low dust I meant the fact that it relies on TAA so it's really noisy without it. would it be difficult to port the HBAO+ blur pass to work with SSAO instead?

granite dust
#

SSAO will generate its own TAA pass, I believe

#

Or is that SSR?

low dust
#

neither will do separate pass

#

they both rely on TAA

#

unless I remember totally wrong

#

SSAO is definitely tad noisy but it didn't look all useless on desktop IMO

#

no idea on the blur pass on HBAO+, part of the HBAO+ is closed source, I didn't check if you get control over the passes easily

terse dragon
granite dust
#

:barf:

#

That's basically what SculptrVR looks like on PC right now.. I should at least switch to TAA...

low dust
#

well

granite dust
#

I think TAA was actually a bit too expensive last time I tried it

#

I should just give the baked AO option ๐Ÿ˜›

low dust
#

good news is that since the AO is using ScreenSpaceAO RT, it should be possible to add custom blur pass there right after AO has computed

#

bad news is that doing any kind of mod in ue4 internals is a lengthy process

#

but at least where the RT data is, is nice separated

granite dust
#

And all your work will get murdered with the rendergraph update

low dust
#

heh

#

well, if they actually make that stuff easier to modify, it would be great

#

it's crazy hardcoded right now

granite dust
#

Seems like it'll be much easier to modify, yeah

terse dragon
#

@granite dust how does your baking work? cast some rays from each vertex to calc occlusion then set it in the vertexcolor?

granite dust
#

Close. I shoot out four cones from each vertex

#

cone tracing on the CPU is only doable because of our weird voxel format

#

there's a SVO but each voxel contains gradient information as well as density

#

so you can do linear interpolation with a single voxel instead of having to do trilinear

#

in total it's 6 or 7 samples per cone and 4 cones, so it's like like 100 ops per vertex

terse dragon
#

that's cool

granite dust
#

That's what it looks like in our mobile renderer

#

that's actually an unlit shader with faked lighting

mint thicket
#

I've noticed that when I regenerate the vs project files for a project using an engine version built locally from source (4.21), the project doesn't add ..\Build\Win64\UE4Editor\YourModuleName back to the NMake\Include Search Paths values. Without it, you start getting the intellisense errors that generated files etc can't be opened.
What would I need to edit to add this step to re-add that for projects using my source built engine?

#

I just don't want to keep adding it back manually each time I need to regenerate vs project files

spiral mortar
#

@mint thicket There's an issue in 4.21 for that

mint thicket
#

any idea where that code is handled that regenerates the include paths?

spiral mortar
#

I'd look into UBT

#

Seems relevant

mint thicket
#

ah sweet ty

spiral mortar
#

Engine\Source\Programs\UnrealBuildTool\UnrealBuildTool.csproj

unique sparrow
#

Hey is it possible to disable content migration and/or export from the engine? I don't want people working on my game to "take" the assets I've paid for..

mint thicket
#

@unique sparrow Not from the engine but I think you might be able to do this through source control and permissions maybe

mint thicket
#

Engine\Source\Programs\UnrealBuildTool\ProjectFiles\VisualStudio\VCProject.cs

within VCProjectFile.WriteProjectFile(..)

at line 1019

#

and the include search paths get populated at line 671, in case anyone was looking as well

mint thicket
#

without spending a couple days looking at this, I think only place to do a quick and dirty hack to add ..\Build\Win64\UE4Editor\Inc\YourModuleName to the project files include search paths is in VCProject.cs within the VCProjectFile class' WriteProjectFile(...) method.
You can just check if VCIncludeSearchPaths variable already contains the relative path, and if not, jam it in at the end of the method before it returns. Probably should check to make sure the path actually exists as well, but something is very wrong if it doesn't exist

elder falcon
#

didn't they claim to have fixed this twice in 4.20 already

#

how can it still be broken

mint thicket
#

shenanigans. its fine for binary engine distros but source builds still drop that include on regeneration

#

I have my project on a different drive than my source engine so maybe that might be part of it but I really don't wanna keep going through the UBT source to figure out the entire call chain lol It's all over the place

mint thicket
#

funny story: if you open up your engine source build and look in the task list, filter for HACK entries, all but 4 of them are in UBT ... lol

elder falcon
#

task list?

mint thicket
elder falcon
#

that is a small scroll bar

#

never saw this window before

mint thicket
#

and damnit, the include fix above only fixes the intellisense includes for my own project. Still gives the cannot open source file error for engine's .generated.h headers

elder falcon
#

is it possible to filter this so I can make it show only todos from my project in a source build?

mint thicket
#

sorta. You can setup your own annotations in vs settings and filter by them

elder falcon
#

interesting

mint thicket
#

super handy

elder falcon
#

gonna have to check it out later

mint thicket
#

you set them in visual studios Options\Environment\Task List

elder falcon
#

hmm, that sounds like you can't configure it per solution

#

or share the settings

mint thicket
#

I usually just do @todo: [Category|Breif where category and brief are just ways for me to categories like [Refactor|Urgent] etc

#

omg, do you have to tell this thing to iterate every generated header from the engine in the engines intermediate directory too to fix this?

#

looks like thats it, as well as any plugins you use

mint thicket
#

@elder falcon and sorry, yes you can make it filter by project specifically with the drop down on the left

bronze parrot
#

Anyone ever tried to build source 'n had this issue ? LogMaterial: Display: Missing cached shader map for material WorldGridMaterial, compiling. Is special engine material.

bronze parrot
#

The end of the log:

[2018.11.30-18.53.44:447][  0]LogMeshReduction: Using QuadricMeshReduction for automatic static mesh reduction
[2018.11.30-18.53.44:447][  0]LogMeshReduction: No automatic skeletal mesh reduction module available
[2018.11.30-18.53.44:447][  0]LogMeshReduction: No distributed automatic mesh merging module available
[2018.11.30-18.53.44:454][  0]LogMeshMerging: No distributed automatic mesh merging module available
[2018.11.30-18.53.45:296][  0]LogMaterial: Display: Missing cached shader map for material WorldGridMaterial, compiling. Is special engine material.
The thread 0xb670 has exited with code 0 (0x0).
The thread 0xac10 has exited with code 0 (0x0).
The thread 0x814c has exited with code 0 (0x0).
The thread 0xdc48 has exited with code 0 (0x0).
'UE4Editor.exe' (Win32): Loaded 'C:\Windows\System32\TextInputFramework.dll'. Cannot find or open the PDB file.
'UE4Editor.exe' (Win32): Loaded 'C:\Windows\System32\CoreUIComponents.dll'. Cannot find or open the PDB file.
'UE4Editor.exe' (Win32): Loaded 'C:\Windows\System32\CoreMessaging.dll'. Cannot find or open the PDB file.
'UE4Editor.exe' (Win32): Loaded 'C:\Windows\System32\WinTypes.dll'. Cannot find or open the PDB file.
'UE4Editor.exe' (Win32): Loaded 'C:\Windows\System32\WinTypes.dll'. Cannot find or open the PDB file.
'UE4Editor.exe' (Win32): Loaded 'C:\Windows\System32\WinTypes.dll'. Cannot find or open the PDB file.
'UE4Editor.exe' (Win32): Unloaded 'C:\Windows\System32\WinTypes.dll'
'UE4Editor.exe' (Win32): Unloaded 'C:\Windows\System32\WinTypes.dll'
The thread 0xd480 has exited with code 0 (0x0).
The thread 0xa7d0 has exited with code 0 (0x0).
The thread 0xc4ec has exited with code 0 (0x0).```
#

@placid pike You ever seen this? ^ Haven't tried working with UE4 source in half a year, no idea why this error is happening after I finished building everything 'n trying to launch the editor :/

placid pike
#

@bronze parrot I've never built from source, sorry I don't know what's going on ๐Ÿ˜ฆ

bronze parrot
#

k

bronze parrot
#

Tried again and it worked ๐Ÿ‘Œ

void lily
#

hello programmers creed. can you enlighten me how the console command "delete" works and what type of syntax it needs?
simply typing the name of an actor in there won't delete the actor

#

ok seems the delete command will only delete actors in the editor and not ingame

#

in editor it works. is there any chance to delete specific actors or type of actors vie console ingame?

limber jacinth
#

make your owen Exec function to call destroy on an actor

hearty sand
#

Any sort of idea where to start to find out what happens when an asset is opened for the first time?

placid dust
opaque lotus
#

Anybody familiar with lower level rendering code? Particularly, the OpenGLES implementation? Trying to fix a bug that I've mostly tracked down, but low level rendering code isn't my domain.

opaque lotus
#

All good - managed to fix it.

blazing axle
spiral mortar
#

I'd go for a typo in a forward declaration @blazing axle

blazing axle
#

There's no forward declaration in that class.

#

Oh.... I screwed up somewhere above during a TSubclassOf<class ...> and that registered it as a valid thing. Durr

#

Didn't see the UUSer

spiral mortar
#

That's a forward declaration too ๐Ÿ˜„

blazing axle
#

Yeah, one I didn't realize existed since I put that there trying to fix another bug I had earlier.

soft steeple
#

Heyo

#

Hoping someone here can help me with an issue

#

I'm trying to build Microsoft's fork of UE4 for the UWP version (4.19) and I keep getting a couple of errors

'/FU' requires an argument
and
MSB3075 - The command "..\..\Build\BatchFiles\Build.bat UE4Editor Win64 Development -WaitMutex -FromMsBuild" exited with code 5. Please verify that you have sufficient rights to run this command.

#

Anyone got any solutions?

spring yacht
#

I would like create a C++ class and then I want to build my project
But I have got this problem : ERROR: UnrealBuildTool Exception: Unable to compile source files.

#

Do someone have a solution ?

pearl fulcrum
#
  1. #cpp unless you're modifying a github engine
  2. Surely that's not the only thing output by ubt
formal locust
#

@spring yacht If it's #cpp we can discuss there if you're still iffy on it. Stupid question, but did you regenerate your project files?

humble kraken
#

Does anyone know what the difference is with frame buffer pixel formats?

static spoke
#

Any of you friends happened to test compiling the UE4 Source in Visual Studio 2019 Preview? Apparently there is an issue while Generating Project Files in regards to XML.

stable hemlock
#

Hey guys,

#

Would someone tells me how to force Recompiling All shader ?
Like Ctrl + shift + . Doesn't work -.-

#

Same thing if i recompile my material, it doesn't update my changes in the .usf file

stable hemlock
#

Ok, doesn't know why, I just had to change the shortcuts.

zinc abyss
#

Hello everybody. OK, we can use IPropertyTypeCustomization to customize the editor for UPROPERTY types. But is there a way for me to customize how a Datatable (based on a custom UStruct) handles data (ie. enable/disable fields based in other values)?

#

I was checking the DataTableEditorModule but couldn't find a way to "plug" anything into it. =\

crystal cloud
#

Hey everyone. A friend compiled a project using the source version of UE4 for using the dedicated server. Can I compile that same project with the Epic installer version of UE4 without any issues? I don't need the dedicated server. However, if I compile the project from my end, would that cause problems for my friend to open the files later on and use the dedicated server again? Thanks.
P.S. I don't have much time to test this out as the source engine build is taking long on my PC, hence I'm asking.

spiral mortar
#

@crystal cloud It'll modify the .uproject

#

But that's about it

#

Changing the associated engine in it

crystal cloud
#

@spiral mortar Thanks.

lost linden
#

anyone know if you can mark an SWidget as modified for the purposes of Transactions ? Its created with SAssignNew(name, type). Or am I missing the boat here?

elder falcon
#

why does 4.21.1 package Engine/Binaries/ThirdParty/PhysX/ with the game - seemingly containing ancient physx libs that haven't been used in years?

#

actual physx libs are in Engine/Binaries/ThirdParty/PhysX3/

#

4.20.3 didn't package this ๐Ÿค”

granite dust
#

Mine doesn't..

#

But I'm a bit ahead of 4.21.1, so maybe it's just fixed later

elder falcon
#

nvm

#

I somehow accidentally merged my new game folder with an old archived one from another project

#

๐Ÿค”

spiral mortar
#

lol

ornate raptor
#

Hello, so, i'm guessing this should be here, i've been getting a "Cook Failure" error ever since i wanted to export my first dev build of a small game i'm building, i don't have any experience with UE4 so i'm just guessing a bit, and grabbinjg tutorials from the internet, please don't expect me to understand true programming language, anyways, i've been having this error for about 3-4 days now, and i've been looking into it a lot but just can't find a fix for it, is anyone here able to assist me? These are my logs. https://pastebin.com/K0Ut0zhb

turbid steeple
#

How do people fix issues with NetCL being different from the binary release when building from github source? I want to avoid everyone having to build their own client (or have a separate client release)

regal thistle
#

Hey guys I think I've stumbled upon a misnamed class method in the source code. Is there a policy for renaming class methods that I can read about so that I can make sure that I fix this bug properly and therefore get my PR accepted?

small cobalt
regal thistle
#

Skimming through it, I don't see anything regarding the correct way to rename a method. I imagine it must involve copying the old signature and adding a DEPRECATED() macro, then renaming the original to the correct name? It can't really just be that simple, though, can it?

small cobalt
#

Thats typically how its handled. Search the engine source for an example of a DEPRECATED method and follow the same style.

spiral mortar
#

What's the method @regal thistle ?

limber jacinth
#

Depreacted is not really used for renaming, its saying Dont use this no more, use that instead

spiral mortar
#

Well yes, "Don't use OldName, use NewName instead"

#

And after an engine version you remove OldName

granite dust
#

Deprecated has been used for renaming before. There was some function I used that got renamed in either 4.20 or 4.21.. but I can't remember the function

valid vortex
#

hey! I would like to customize editor behavior when user drag&drops a static mesh from content browser onto a scene. I want to instatiate a specialized version of AStaticMeshActor. Seems like a typical use case when customizing the editor but I couldn't find reasonable way to do this(except directly finding and modyfing editor code).

spiral mortar
#

@valid vortex It's usually quite easy to add new type & new actions for it

#

Overriding existing actions however isn't easily possible

#

What do you want to do with that custom AStaticMeshActor?

valid vortex
#

Right. One would hope there will be a hook for this action as it seems to be quite common use case ... but I guess that deep diving into the code is the way to go

#

I need to add extra properties to all static meshes in the scene

#

More specifically I want to use GameplayTags on static meshes

deep fiber
#

Hello, did someone ever built an UE version with Nvidia technology ? I'm very interested in HBAO+ and TXAA

normal siren
#

@deep fiber I tried out their flex branch, IIRC just followed the guide and it all went smoothly

deep fiber
#

@normal siren This is what I wanted to hear ahah X) but actually I can't find their github, when I go on their website / physx for ue4 / and click on their github link it shows me a 404 error.

normal siren
#

@deep fiber make sure you are signed in on GitHub, and have agreed to terms on Nvidias website

deep fiber
#

@normal siren There probably was a problem with my github account linking, now everything is fine :) thanks

normal siren
#

@deep fiber glad to have helped :)

sly mason
#

is anyone here familiar with Gauntlet yet?

livid imp
radiant hazel
#

This is almost magical, how does nobody notice this issue

#

void FMaterialProxySettingsCustomizations::AddTextureSizeClamping(TSharedPtr<IPropertyHandle> TextureSizeProperty) is completely broken

#

What is supposed to happen is that it's supposed to override limits for FIntPoint in a specific property (the handle is given), but what really happens is that it affects every FIntProperty out there, like for example the level position, making it impossible to enter the level positions numerically D:

livid imp
#

@radiant hazel you mean FIntPoint can't be set correctly inside a detail tab for example ?

#

because few months ago I found a similar issue

radiant hazel
#

Yes

#

The bug manifests itself as FIntPoint being clamped to 8192 or 16384 every time you enter a value that's beyond 0..16384 range

#

Regardless of where it is (in my case, it was in the level properties - I was trying to enter level position, but it kept resetting)

livid imp
#

my dirty workaround was to copy the FIntPoint value, past on text editor change values and copy to paste it in editor.

radiant hazel
#

I simply commented out the broken function (AddTextureSizeClamping) in our custom engine

#

It adds nearly zero value, but breaks all FIntPoint's lol

livid imp
#

better to keep some productivity haha

#

erf :/

spiral mortar
#

PR?

radiant hazel
#

I can't be bothered to dig into the property system to figure out what's the proper fix for this, if any exists at all

#

Just commenting out that one thing fixes it and as far as I checked, no other places in engine try to do it

granite dust
#

I finally got cross platform multiplayer working again in 4.21.

#

They changed a ton of stuff between 4.19 and 4.20

#

The keys turned out to be PreLogin in game mode base

#

And RegisterPlayer in OnlineSubsystemNull

#

They changed how UniqueNetIds are dealt with and I had to wrap those functions up with safety code that can convert to a common form

#

Took me a week to figure out, and if course it was 3 lines of code in the end ๐Ÿ™„

oak breach
#

Hey i have a nasty bug, even though i freshly installed my UE version and updated VS 2017 and I hope I'm in the right place here to ask, I have 2 days Time for an application Task for a Job opportnity i recently got so I would be grateful if somebody could help me gronkhCry

: ERROR: UnrealBuildTool Exception: Unable to open log file for writing (C:\Program Files\Unreal\UE_4.20\Engine\Programs\UnrealBuildTool\Log.txt) 

--> The file is NOT only read and i dont have whitespaces in the path to my project

#

error appears when i try to build from Visual Studio

#

When i open the Project i get the error "The game module 'ApplicationTask' could not be found, please ensure that this module exists and that it is compiled."

#

WAIT A SECOND ๐Ÿ˜„ i missed a bracket in one of my cpp files and now i could rebuild everything and get it to work.... I'm a bit confused that not even the project would open without that fckn bracket lol

#

Still --> I can only run it when starting the Project as "DebugGameEditor" from cpp with Visual Studio being started as an Administrator

sinful root
#

I had a question: after forking, cloning and building UnrealEngine source, I get a lot of extra files that are not in the gitignore. Anyone got a better ignore file? Or should I just commit/make a PR with my changes only and leave the rest?

elder falcon
#

what are the files

sinful root
#

Engine/Binaries, Engine/Documentation, Engine/Extra Engine/Source/Thirdparty directories, .dll, png etc files. 19k files

elder falcon
#

what git client are you using

#

if it's git kraken, use a different one

#

git kraken does not work with unreal

#

and they refuse to do anything about it

sinful root
#

ah....ok that explains it then

#

Thanks

elder falcon
#

I use smartgit

#

always worked great

sinful root
#

Will look into that. Switched to GitKraken after SourceTree. No problems for Unreal Projects so far (blueprint and c++). Only now with Engine Source from master

elder falcon
#

the .gitignore is apparently too complex for git kraken to understand

#

I reported it like 2 years ago and nothing happened ๐Ÿคท

#

also don't use master branch

#

that's unstable

#

grab release instead if you need to change some things

sinful root
#

Made a Pull Request for the Engine itself so had to be master

elder falcon
#

ah

sinful root
#

Quickly checked GitHub client, now it's 6 files... wow GitKraken...

#

Great advice ๐Ÿ˜ƒ

elder falcon
#

it can also help to make 2 clones of the engine

#

one you actually use, and one to quickly switch between branches without having to update dependencies or cause rebuilds

sinful root
#

ah good idea, I'll keep that in mind

radiant hazel
#

Is Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile the biggest lie of unreal engine 4

#

I encountered these warnings so many times while developing our project from 4.4 all the way up to 4.22 and basically everything that involved that error message never broke between versions

#

But the API that didn't have those warnings would always break lol

#

This amuses me to no end

pearl fulcrum
#

Ah we already deprecated it, no need to remove it

#

Time to remove this, but it wasn't even deprecated? Guess nobody used it

radiant hazel
#

They broke the physics API (rightfully so considering how big of a change it is, sure), but some random forgotten API calls from 4.4 still work fine derp

#

I'm a good boy though, I clean up all these deprecation warnings (just to see more appear every few versions or so)

elder falcon
#

no warnings allowed when compiling project or engine >:(

proven grove
#

-Wno-everything

#

there, no warnings when compiling

ivory spoke
#

Hey guys, I didn't find a more appropriate channel to ask this, so I'm asking it here:

My Engine folder is taking up 90GB of space and my project's folder 75GB (even though the game is not so big) and I'm running out of space on my SSD. I package my game for Windows 64 and 32 bit and Linux (dedicated server).

Are there any folders that I could delete to free some space?
Is there a noticeable performance loss (for loading times, compiling and packaging) if I move the Engine folder to my HDD?

sinful root
#

Would also like to see some tips to reduce size. 70GB for just plain GitHub repo + build is quite a lot

elder falcon
#

none of the files are unnecessary - if you remove them they will just come back eventually

#

get a larger ssd, they've really fallen in price recently

gray bay
#

i recommend a 512GB SSD for small to medium projects

#

for large games you may need 1TB

#

especially if you're building for multiple platforms

#

prices have come down a lot... you can get a 512GB Samsung SSD for $129 at BestBuy, and probably cheaper even on Amazon

#

as for things you can delete, there really isn't that much. you could check your Intermediate folder and delete any build configurations that you no longer need. for example, if you built Debug and Development, but only use Development now, you can get rid of the Debug folder

#

you can also check your project's /Saved/ folder to see what's in there (log files, etc.), but it usually doesn't amount to much

#

delete stuff in your Windows Downloads folder, and run Disk Cleanup to remove temporary installation files, browser cache, etc.

#

make sure you don't fill your SSD all the way up. performance tends to drop considerably when they're close to full, i.e. 90%

ivory spoke
#

Thanks @gray bay and @elder falcon and sorry for the delay

#

I'll try deleting the folders of builds I'm not currently using

#

but buying an SSD is not an option for me right now specially because a 512gb SSD costs around $310 where I live

gray bay
#

@ivory spoke that sounds terrible. where do you live?

ivory spoke
#

But it's inevitable that i buy another one in the next months

#

Brazil

gray bay
#

perhaps buy one off eBay and have it shipped to you

#

if you get a used one, make sure there's a screenshot of how much data was written to it (Samsung Magician)

#

Samsung drives are pretty reliable. I have a bunch with 100TB+ written, still going strong

ivory spoke
#

There could be many taxes when importing a product so it would be basically the same as buying here

#

I might be able to find one for 220-250 maybe

#

But I'll do it next month or the other probably

#

thanks for the help!

gray bay
#

aw, that sucks, Rapalo. I just checked my purchase receipt and saw that I actually got a 1TB Samsung SSD for $135 (incl. tax). If I ever travel to Brazil, I'll bring you a stack ๐Ÿ˜‰

waxen ether
#

anyone here on linux wanting to test intellisense fix?

valid vortex
#

in vs code? Sure

waxen ether
#

there are UE-45139, UE-63664 and UE-67548 (mine) for the same thing and I think that patch fixes all of them

valid vortex
#

Will give it a try.

waxen ether
#

thanks

#

next case: is there anyone using CLion on windows ?

stable hemlock
clever jungle
#

Not sure why that would happen, but it's unlikely you need to build the minidump diagnostics anyways... ๐Ÿ˜ƒ

#

Does your project build?

proven grove
#

before i sumbit a pull request, how likley would epic be to deny a pull request that only cleans up code and doesnt change stuff

#

or change functionallity at least

#

it changes the code to make it more readable

#

or replacing the old style C++ iterators with the for(auto I : Arr) syntax

#

and removing a couple unused #includes in some of the .cpp source files

#

simple stuff that just makes the code simpler to read and understand

#

not changing any interfaces or the likes

sinful root
#

Feel free to try man, what's the harm

proven grove
#

whats the worst that could happen anyway

#

i'll just clean up a few more includes, test compile it overnight and then submit it

pearl fulcrum
#

I think if you make IWYU compliant files non-IWYU, they won't accept it.

#

split up the PR along module lines though.

proven grove
#

Some of them are straight up duplicate imports tho

pulsar urchin
#

@ivory spoke its because Engine and Project generate lots of .obj and lib files when u compile each build (Development, Shipping etc)
mount your Intermediate/Saved folders to HDD

novel mantle
#

anyone know where engine content arttools is located in source or is it generated during build?

hollow plinth
#

do anyone know what are flags for "generate *.generated.h and *.gen.cpp and *.modules and *.target && give me information about compile and linker flags" task for UBT/UHT in 4.21 or similar version?

#

i encountered 'JsonExport' flag but wasn't able to understand when it is generated

#

so i use tweaked XGE export to xml instead and it looks like it spends x2 time for some kind of building after generating actions for compilation+linking

brisk silo
#

im trying to compile one of the dev branches from github

#

and it asks for net framework 4.5

#

but its installed

#

wtf

#
1179,5): error MSB3644: The reference assemblies for framework ".NETFramework,Version=v4.5" were not found. To resolve
this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the fra
mework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global As
sembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targ
eted for the framework you intend. [E:\Gamedev\UnrealEngine\Engine\Source\Programs\UnrealBuildTool\UnrealBuildTool.cspr
oj] ```
low dust
#

what's interesting in the branch? ๐Ÿ˜„

#

but yeah, I dunno if those are even meant to compile/work

brisk silo
#

seems all that was needed is to update visual studio to the absolute latest

#

seems to be working now, and compile it

#

gonna check out what happened in deferredRenderer.cpp, where ive done plenty of work for DWVR and i "know my bearing"

brisk silo
#

@low dust seems like the render targets are now more abstracted

#

and it has more direct rhi renderpass stuff

low dust
#

part of the render graph thing?

brisk silo
#

so instead of getting the render target for "base color", with it being a hardcoded var, its now a "GetRenderTexture("BaseColor")"

#

the rest of the code looks very similar

#

for example

#

GRenderTargetPool.FindFreeElement(RHICmdList, Desc, DistanceFieldNormal, TEXT("DistanceFieldNormal"));

#

@low dust HBZ now runs through render graph

#

and also volumetric fog

#

nothing else tho

#

the most interesting use is in volumetric fog

#

volumetric fog uses multiple passes

#

and they are handled through render graph

#

a local one, in fact

#

it creates one, adds the passes for the volumetric fog, and executes it

#

becouse its one compute shader after another

#

btw, render graph for execution of compute shaders looks amazin

#

in the volumetric fog, there are a few separated rendergraph passes, some of them compute, and some of them not

tired spade
#
LogSlate: Could not find file for Slate resource: ../../../Engine/Content/Editor/Slate/Launcher/Mac/Platform_Mac_24x.png```

Anyone else getting these on startup of release branch source 4.21.1
#

Iโ€™m on win64 dev editor build release branch

amber obsidian
low dust
#

yes

#

it's intellisense error anyway

#

it still builds fine

#

you can add the extra parenthesis there like on one answer there if it really bugs you

#

it'll make the engine recompile fully tho

#

@amber obsidian

amber obsidian
#

thanks

proven grove
#

say i want to update some stuff inside of a blueprint library

#

how dangerous would it be to turn a namespace enum into an enum class?

#

if they were both marked as UENUM(BlueprintType)

#

would anything break if i did that and updated the related function?

elder falcon
#

"turn into"?

#

do you mean like upgrade the code

#

that would work just fine

proven grove
#

i have cpp UENUM(BlueprintType) namespace EScreenOrientation { enum Type {would it be dangerous to turn it into cpp UENUM(BlueprintType) enum class EScreenOrientation : uint8 {

elder falcon
#

no

proven grove
#

and update the function that uses it

#

would that sort of thing get accepted if i put it in a PR?

elder falcon
#

for bp, both of these are an enum property with identical values

proven grove
#

great

#

so no harm in updating it then

spiral mortar
#

It would

#

It's not the same thing

elder falcon
#

there would be no harm in updating all legacy enums in the engine

#

I don't know why they don't

spiral mortar
#

As you don't have implicit cast to the type

#

eg can't use with bitwise operators

elder falcon
#

ye you'd need to update some of the code that uses it ofc

#

but the question was specifically about bp I think

proven grove
#

i just changed a massive switch case into a static_cast

#

and it works fine

spiral mortar
#

works fine

proven grove
#

its one bleurpint node

#

theres only so much i can do to test it

spiral mortar
#

compile fine != works fine

#

Lots of tricky cases

#

There's a reason all that stuff is still that way

#

because it would be way too risky to upgrade it

spiral mortar
#

for no real benefit

proven grove
#

well the cast would be faster than a switch case

spiral mortar
#

That's not safe

elder falcon
#

the switch may be there for a reason

#

converting platform specific enums to this one

spiral mortar
#

Imagine someone adds a value in EDeviceScreenOrientation

#

And boom

proven grove
#

they would have to update the switch case either way with that

spiral mortar
#

Yes that's the point

#

Because then you see that you're missing a value

proven grove
#

that way they have to update the enum instead

spiral mortar
#

They need to update both, and remember to do so

proven grove
#

well they have to update both either way

spiral mortar
#

Can you show the original switch?

proven grove
spiral mortar
#

See

#

Here a missing value is handled correctly

proven grove
#

id also like to ask, how often is someone going to add to that enum

#

it was last touched 30 months ago

spiral mortar
#

That doesn't matter

#

The code with the switch is safe

#

The code with the static_cast isn't

proven grove
#

onto the next code block then i guess

#

ill find something to pr eventually

elder falcon
#

a good pr fixes an actual issue you have when using the engine

#

not changing random stuff because it can be changed

#

that just wastes time reviewing it

spiral mortar
#

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

proven grove
#

but all the bug are really complicated and im not that good at C++

#

well time to whack my head against a bug

spiral mortar
#

heh, making a PR ain't easy

elder falcon
#

regularly posting advanced c++ stuff

#

not that good at c++

spiral mortar
#

Knowing advanced C++ stuff != being good at C++

elder falcon
#

๐Ÿค”

spiral mortar
#

Like you can know everything about variadic templates

#

And still write shit code

#

Or take ages to understand code

elder falcon
#

you can know everything about variadic templates are you sure

spiral mortar
#

lol

tired spade
#
LogSlate: Could not find file for Slate resource: ../../../Engine/Content/Editor/Slate/Launcher/Mac/Platform_Mac_24x.png```
#

So no info on this

#

I canโ€™t be the only person on the planet seeing this

#

It happens when editor loads up after launching the uproject file

#

Is there some settings Iโ€™m missing to make my source build understand the editor shouldnโ€™t attempt to load android and Mac images?

#

Itโ€™s build in vs 15.9 using dev editor win64 and unrealbuildtool

#

Project is migrated from 4.19.2 launcher created project over to my source 21.1

pearl fulcrum
#

@proven grove if you write a PR that's shit enough, they'll feel bad for you and bring it inline with the engine, perhaps not even having any significant contribution from you in the final PR.

spiral mortar
#

Uh?

long wave
#

@tired spade IIRC the default dependency-download for source builds doesn't download Mac files

#

you need to add Mac to the list of includes in Setup.bat

#

Otherwise Mac dependencies will be missing

tired spade
#

@long wave I get that but Iโ€™m good with them missing I just donโ€™t understand why the editor is attempting to load them if i didnโ€™t specify that platform

#

Thatโ€™s a โ€œdummyโ€ warning for source editor that doesnโ€™t happen in launcher prebuilt

elder falcon
#

editor style probably references those images

#

it doesn't cause any problems if they're missing

gray bay
#

looks like a bug to me. those resources shouldn't be referenced when running on Windows

#

i think you can safely ignore it. if something is using it on Windows, it will show up as a white square or something like that

elder falcon
#

warning has been there for a long time

tired spade
#

Iโ€™m also getting some warnings on bool vars not correct initialization that seems to be new to 21.1

#

Iโ€™m pretty sure they are declared and set to false in header

#
LogClass: Warning: BoolProperty FBHeadSolver::bPrintDebugText is not initialized properly
LogClass: Warning: BoolProperty FEffector::bIsEndEffector is not initialized properly
LogClass: Warning: FIKChainSolverSimple::SpineRotationEffectWeight is not initialized properly
LogClass: Display: 4 Uninitialized script stuct members found
LogAutomationTest: Warning: BoolProperty FBLookSolver::bPrintDebugText is not initialized properly
LogAutomationTest: Warning: BoolProperty FBHeadSolver::bPrintDebugText is not initialized properly
LogAutomationTest: Warning: BoolProperty FEffector::bIsEndEffector is not initialized properly
LogAutomationTest: Warning: FIKChainSolverSimple::SpineRotationEffectWeight is not initialized properly
LogEngine: Initializing Engine...
#

Might be an order of operations thing because after studying the Solver BIK_BIKSolver.h file it is clearly there //------------------------------------------------------------------- // Debug //------------------------------------------------------------------- bool b_print_debug_text = false; I think it's because as an engine plugin it may be loading before the engine is completely Initialized. "if you look at the LogEngine: listing"

#

Itโ€™s not affecting the build as far as I can tell and packaging is fine

#

But yet another thing dirtying up my logs

cosmic stump
#

is it weird that with UE4 stock binary my Android project builds in no time, but with UE4 built from source (I built Development Editor) it takes ages to build my project ?

#

(my project is BP-only)

brisk silo
#

so RTX dropped

#

in dev-rendering

granite dust
#

whaaat

#

For light bakes?

#

or for real-time reflections?

#

(I guess I could check myself..)

brisk silo
#

primitive shaders too

#

and an entire PBR pathtracer in-engine

#

UpdateGPUScene is a extern tho, cant find the implementation :/

#

omg, it can upload the entire scene into GPU memory

#

all of it

#

for primitive shaders and RTX

granite dust
#

lol one commit adds support for reflected shadows. It's 30 lines of code

#

what world is this?!

brisk silo
#

@granite dust RTX OP

granite dust
#

(ignoring performance requirements)

#

๐Ÿ˜‰

elder falcon
#

only works because of the 60000 lines they added previously ๐Ÿค”

granite dust
#

probably. it's basically just an added call into TraceShadowRay

#

no wait.. that's a new function that just calls TraceRayInternal

elder falcon
#

now we just need to figure out what on earth HLR is

#

why is the branch called that

granite dust
#

High Level Raycasting..?

#

ala HLSL

elder falcon
#

๐Ÿค”

#

but why is the raytracing high level?

granite dust
#

high level language. You don't write the details of the trace, that's handled by RTX

#

but I guess they would have called it HLRL

tough oyster
#

HLR = Hype Level RTX

low dust
#

could be just some internal codename too

sly sleet
#

Anyone interested in helping writing a replay reader for the engine?

#

Currently writing it in Java but having a few issues with some things that have no documentation

#

If so, tag me ๐Ÿ˜ƒ

clear yarrow
#

Hi, I'm semi newish to unreal. So dumb question but how do I change the debugger in the editor? For some reason it only does it in Development mode and not debug mode even if I have both me project and ue4 engine in my solution configured for debug x64

Also on that note, why does the ue4 compiler in visual studios differ from the ue4 compiler in the editor?

tired spade
#

@cosmic stump thatโ€™s because stock is prebuilt and source has to build all the binaries

#

Even a top of the line i7 takes awhile

cosmic stump
#

@tired spade I am guessing besides Development Editor for Win64 I also need to compile Development Editor for Android and Development Client for Android ?

#

(so that when next time I build android projects it shouldn't take more time than when using stock launcher version of UE4 ?)

tired spade
#

It will still take a bit longer unless you rocket build

#

But not as long as the first build

#

@cosmic stump

#

So yes that will help

cosmic stump
#

Aye, thanks

hollow plinth
#

What gives rocket build?

long wave
#

BuildGraph

#

Anybody know where the TMap details panel customization is? Going to fix a long standing infuriating issue with it

spiral mortar
#

Which issue? ๐Ÿ™ƒ

#

There's FPropertyHandleMap that does some stuff

#

FDetailLayoutMap

long wave
#

It's not so much of an issue more of an irritation of mine.. but if you have a TMap that's keyed with integers or enums, ideally when you 'add' a new entry it should just auto-add the next available entry - rather than crying that you already have a default value.

#

Just want it to auto-increment if it's keyed with a numeric property of some kind when you hit the 'Add' button

#

FPropertyHandleMap looks like the place... tah!

quaint sinew
#

@clear yarrow try generating the visual studio project from within the editor, and then close the editor, open the visual studio project, and change the setting to Development Editor or Debug Editor. whenever you are compiling the project you are building the editor itself as well

#

admittedly, even Development Editor is good enough

#

because you can still set breakpoints

#

unfortunately the compilation process for Unreal optimizes the crap out of the game, even in Debug, and I don't see a difference between those two options aside from the default value of FVector()

spiral mortar
#

@long wave heh, I'm actually blocked by this rn ๐Ÿ˜„

#

I'll probably use strings as indices with a nice post edit property instead dep

clear yarrow
#

I tried that @quaint sinew no go. But you are right. Development Editor is good, it just doesn't give me as much info as debug would in some cases so its frustrating

#

But if there's not much difference with the debug editor then no real loss when unreal I guess

#

Thanks for answering

quaint sinew
#

there are strats to beat the optimization, but a useful tool is GEngine->, one of the functions there prints stuff onto the screen if you do EnableOnScreenDebugMessages or whatever in the console

#

also i advise making temporary variables, you can see what the values of certain stuff is (eg, FHitResult::GetActor() is a soft reference that doesn't resolve in Intellisense properly)

clear yarrow
#

Ooh thank you! Gonna try that after I practice with how blueprints functions and coding differ from regular coding

quaint sinew
#

blueprints are meant to be an extension to your regular programming

#

if you got any questions on that let me know

#

but generally you make a blueprint based on a native C++ class

#

and you can have blueprints either call a native function (UFUNCTION(BlueprintCallable)), have a native function that they can override (UFUNCTION(BlueprintNativeEvent)), or have a pure function that they need to override (UFUNCTION(BlueprintImplementableEvent))

#

as well as properties and stuff

clear yarrow
#

Yes, this I saw in the documentation but I'm a tactile learner so I actually have to practice to fully get it. Thanks~

alpine maple
#

Hey guys! For the first time of my 2-year experience with UE4, I have read the EULA and I have question about 1(A)f.
So if I use my very own integration of other programming language cooked within my project, I must provide source code of this integration for every UE4 licensee?

alpine maple
#

Additionally, what if my language only integrates into my game code without changing the UE4 source code, actually only dynamically creating C++ code

elder falcon
#

they way I understood this part is that it must be released as open source if you want to release the language integration by itself, but it does not matter if you're using it in a game

#

it would be a better idea to ask epic about license questions directly

alpine maple
#

Okay, thanks, I directed this question to answerhub

tired spade
#

(Name=0x00000112655a4bd0 "NODE_AddStaticMeshComponent-0")
This what's failing the NetGUIDLookup in PackageMapClient.cpp

but its very strange because at first this value comes across
+ NetGUID {Value=23 } FNetworkGUID

it breaks here

    if ( NetGUID.IsValid() )
    {
        return true;
    }```
result
```[16] = {0x00000112298a8800 (Name=0x0000011266e192d8 "StaticMeshComponent0"),{Value=23 }}```
#

Just add an actor into a fresh 4.21.1 FPS template and set to block all on the node and test walking over it with 2 clients present

#

Is there any known commit to fix this?

proven grove
#

does unreal use metalkit in its ios renderer or does does it use pure metal?

proven grove
#

it would seem they use raw metal on ios

#

and they still use openGL on macOS as far as i can tell

low dust
#

@alpine maple you don't have to share your own customizations to ue4

#

how I read it, 1Af is only about redistributing your programming language integration to the other UE4 licensees

#

if you don't wish to redist that, you'll be fine. otherwise the main option is to just share it via github fork

alpine maple
#

Thanks for answer Olento

humble kraken
#

Hey I'm currently getting a crash with PhysX to where I can't even launch the editor. The follow line is where it crashes PxU16 PMaterialCount = PShape->getNbMaterials(); in FPhysicsInterface_PhysX, line 1034.
Anyone got any ideas?

onyx knot
#

Hey ๐Ÿ˜ƒ I recenlty compiled the UE4 source and I kinda got an 4.22 Engine ๐Ÿ˜ฎ Anyone knows how this might had happen?

elder falcon
#

use release branch, not master

low dust
#

@onyx knot master is WIP branch, it contains work done for next engine version(s)

#

it's can be pretty unstable as well

hollow wadi
#

anyone know if UE4 uses SIMD and vendor specific optimizations under the hood?

slim viper
#

:((

#

what can I do?

slim viper
#

I had a bsod while downloading engine dependencies - but it should verify the hash and download again right?

#

fixed it, needed to run sfc utility as my drive corrupted one of the files

onyx knot
elder falcon
#

no, you should clone the release branch

onyx knot
#

have done it

#

but tehre I got that wierd engine version from

#

*wierd

#

or wait ... Iยดve chosen the 4.21 branch, not the release do download 4.21 version

#

So I guess I should choose the release instead of the 4.21

low dust
#

don't use 4.21 branch

#

it's as well WIP branch

#

use either release or actual release tags

#

I favor latter

#

like checkout 4.21.1-release

onyx knot
#

okay, I guess I got it finally, thank you ๐Ÿ˜ƒ

hollow plinth
#

4.21.1 looks +-good, i encountered just several issues for 2 weeks: warnings about android/mac resources, crash upon modification of container during iteration upon it in linux when adding engine folders and destruction of persistent debuglines

clear nacelle
#

is there a way to strip platform support from a source build the way you can with a launcher build? i hate having to build over 2000 modules every time i make changes

elder falcon
#

that isn't for platforms - the engine is just that big

#

you should be building your project target though, not the ue4 one

#

that way you will skip engine plugins that have been disabled in your project

clear nacelle
#

never tried building engine changes from the project sln but good to know that works

#

is there a way to reduce the file size though?

elder falcon
#

no, all files are required

clear nacelle
#

other than deleting intermediates

elder falcon
#

don't do that

#

otherwise you can only keep changes to engine headers to a minimum

stable hemlock
#

I'm making a fixed fps game, and I want time dilation to not add extra frames. So if at 1 time dilation it's 60 fps, I want .5 time dilation to be 30 fps. Anyone know how to go about this?

hollow wadi
#

you know what's displeasing

#

one interface can't inherit another

#

i want to make sure that implementers of IEquippableItem also implement IUsableItem

gloomy hamlet
hollow wadi
#

ok well i feel silly

#

thanks

gloomy hamlet
#

Haven't tried doing it for ages but pretty sure it worked for me at some point.

#

Inheriting interfaces can sometimes create more problems than it solves though.

long wave
#

Sounds like a hardware failure..

#

oops.. late

terse dragon
#

I assume there's a reason Epic didn't do this.. but its difficult to debug multiplayer C++ code in PIE without knowing which process the log messages come from

hollow plinth
#

write your own macro includeing this information

stable hemlock
limber jacinth
#

it would be usless to make a macro do that

#

but you could make a static to do it

gritty merlin
#

has anyone had issues with the navigation system from 4.19 to 4.20?

#

ive updated and ran the python script they provided in the my project root

#

but i still dont have a recast nav mesh

#

just doesnt show up when i put in my nav meshes...

#

im reading that i need to add the navigationsystem to my build.cs

#

can anyone explain to me how to do that?

#

i mean i know, open it up in visual studio

#

but what to type

humble kraken
#

I've had the same issue

#

I haven't gotten any answers for it too, happens in 4.21.1

gritty merlin
#

im trying this

#

but dealing with a snytax error, ill let you know if i solve it

#

oh duh

#

im an idiot

humble kraken
#

Ohh your issue might be the engine config

gritty merlin
#

they say to add this to your build.cs PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", โ€œNavigationSystemโ€ });

#

but im getting a syntax error with that

humble kraken
#

Delete anything relating to the navmesh or nav system in the default engine config and itll add the new system in

gritty merlin
#

that last part "NavigationSystem" (i already had the rest)

#

well theres a python script that renamed it for me as well

#

which epic provides

humble kraken
#

Wait where is the python script?

gritty merlin
#

the problem was copy paste

#

the " " that i copied was not the " " visual studio uses

#

go figure

#

download that file

#

and place it in your project root

#

install python 3

#

if you dont have it already

#

and then double click that file that is now in your root

#

it will open a window and update all your .ini files

#

none of this has solved it for me though btw

humble kraken
#

root of the project root?

gritty merlin
#

your project root, like the folder that contains your .uproject

humble kraken
#

Ahh okay

#

so you've been able to actually launch the engine then, the navmesh doesn't build at all?

gritty merlin
#

yes i have been able to launch

#

without any errors showing up (regarding the nav mesh updates)

#

but navmesh doesnt build

humble kraken
#

Ahh I have been able to get it to build

#

but the AI complete doesn't work

#

moving AI doesn't work at all

gritty merlin
#

are you using cpp

#

or blueprints

#

for your AI

humble kraken
#

tried both blueprints and CPP

gritty merlin
humble kraken
#

Alright I'll try that

#

I think you may need to remove the navmesh stuff from your config

#

try looking for that

#

might work for you

#

even if the python stuff changes it, better to let the engine add it in

#

Yeah I added NavigationSystem in my build file

#

no changes

gritty merlin
#

@humble kraken but what would i delete?

humble kraken
#

Anything that looks like it relates to the navmesh

#

Unreal will readd the proper ones once you boot into your editor again

#

Thats how I got navmesh building working

gritty merlin
#

i got it working

#

yay

#

i just kept looking at the ini file

#

and there it was, an incorrect link

humble kraken
#

Np man

mighty folio
#

Hi there, I am getting an error and I don't know what to do with it:

Severity    Code    Description    Project    File    Line    Suppression State
Error    LNK2001    unresolved external symbol "__declspec(dllimport) public: static void __cdecl FWindowsPlatformApplicationMisc::ClipboardCopy(wchar_t const *)" (__imp_?ClipboardCopy@FWindowsPlatformApplicationMisc@@SAXPEB_W@Z)    Althas_Blank    C:\LaysOfAlthas\Althas_InDev\Intermediate\ProjectFiles\SConversationDiff.cpp.obj    1    
#

I do have ApplicationCore in my publicdependencymodulenames

#

Relevant code:

void SConversationDiff::FConversationDiffPanel::CopySelectedNodes()
{
    // Export the selected nodes and place the text on the clipboard
    const FGraphPanelSelectionSet SelectedNodes = GetSelectedNodes();

    FString ExportedText;
    FEdGraphUtilities::ExportNodesToText(SelectedNodes, ExportedText);
    FPlatformApplicationMisc::ClipboardCopy(*ExportedText);
}
#

At the top I do include

#include "PlatformApplicationMisc.h"
#

This is in unreal 4.18

mighty folio
#

Solved, I accidentally modified the wrong build.cs for the applicationcore piece

onyx moss
#

Hi guys, i was browsing the code when found a comment: "[users] can target [shaders/formats] by adding them as +TargetedRHIs in the TargetPlatform ini."

#

but i cannot find any "TargetPlatform.ini" anywhere

#

found it there's a [/Script/WindowsTargetPlatform.WindowsTargetSettings] section on DefaultEngine.ini

clear yarrow
#

Has anyone used the UnrealVS extension for Visual Studios before?

twilit matrix
#

Hi unreal extenders!

#

Please add a blueprint node that supports 2 dimentional arrays

#

doing this 4 times because the 1d array variable changes to use another 1d array. would not have to do this if there was a 2d array.

pale smelt
#

@twilit matrix why not collapse those four red areas into a function?

#

it at least tidies it up somewhat and makes it a bit more readable

#

hmmm @darkz

#

@twilit matrix are you trying to make a 2d grid inside 3d space and store an array of actors in it? i did this in my game and i did it by storing it as a 1d array, using x + y * w to retrieve a coordinate from the 1d array

#

eventually though, all the initialisation stuff like you show there was moved into a pair of for loops in C++. let me know if you want source code, i'd be happy to pastebin it

twilit matrix
#

@pale smelt sent a friend request. I will try to message you tomorrow. Really need the help. On my way to bed now. But basically i will need to foreachloop of the 2d array, and transfer the index into another foreachloop.. Which uses the index to clear the index of the array, of raytraces that detect any object...

pale smelt
#

ok, drop me a pm when youre around and i'll see if i can help :-)

twilit matrix
#

Awesome

pale smelt
#

it looks like some core concepts about how your game represents its level are similar to my own

#

probably not, but i'll see the message tomorrow AM at that point

fluid stirrup
#

Hey All, I've been trying to duplicate a map so that I can set up a killcam using Level Collections. I've duplicated the level I want, but when I go to add the level to world it comes back null. Here's how I'm trying to add it:

    if (DuplicatedCollection)
    {
        for (ULevel* Level : DuplicatedCollection->GetLevels())
        {
            World->AddToWorld(Level);
            if (GEngine)
            {
                GEngine->AddOnScreenDebugMessage(-1, 15.0f, FColor::Yellow, TEXT("Map Added to world"));
            }
                
        }
    }
    else
    {
        UE_LOG(LogTemp, Warning, TEXT("Duplicate Level collection not found!"));
    }```

I can see from the logs and in the debugger that there's a duplicate level collection, so I can't figure out why this would come back null when I do my check. Can anyone point me in the right direction?
#

I'm doing this from GameInstance, if that matters.

#

Unless I'm mistaken there's a level in the DuplicatedLevelCollection, why is the level collection coming back null? It seems that the pointer is not being initialized, but I'm not sure what I'm doing wrong here.

weary raptor
#

I am hoping someone here might be able to point me in the right direction (blueprint doesn't know) I have an equation generated from an online curve generator (which I entered about 20 x/y values ) ....note, this is a Quintic Regression (which might be the problem) but I am trying to enter the equation as a math expression in Unreal and I either get errors or no output pin (don't know how that's even possible, what does it even DO with the value then if not output it) ...here is the equation from website : y = 9.2948 + 5.901899*x - 0.1058128*x^2 + 0.00112849*x^3 - 0.000005490949*x^4 + 9.316379e-9*x^5

#

I try to enter it this way as a math expression and get an error about closing ) 9.2948 + (5.901899*x) - (0.1058128*(x^2)) + (0.00112849*(x^3)) - ((0.000005490949*(x^4)) + (((9.316379*(10^-9))*(x^5)))

#

but when I fix that ), it seems to auto format the rest of it, so it looks like this : ((((9.294800 + (5.901899 * x)) - (0.105813 * x)) ^ (2 + (0.001128 * x))) ^ (3 - (0.000005 * x))) ^ (4 + ((9.316379 ^ (-9)) * (x ^ 5))) I'm not a mathematician but I am pretty sure that wildly changes the values

brisk silo
#

@weary raptor C++ it

elder falcon
#

probably doesn't like ^ operator here either

weary raptor
#

what do I need to right? POW?

#

@brisk silo I am...not good with C++...i can read it okay but generating it from scratch proves problematic...

swift ivy
#

@weary raptor You already got an answer in #cpp ? Did you try the FMath::Pow approach?

weary raptor
#

not sure, I'd need help setting up the basic layout in cpp, I never write in it

#

but it does seem like i hsould be able to generate a BP node from CPP, but if anyone wants to walk me through it, I'm a quick learner when I have help from someone

topaz igloo
#

how can i debug BuildCookRun.Automation.cs

#

?

lime mesa
#

I'm not deeply familiar with AutomationScript project debuging, but in any case You can add some pause to the function you want to debug and attach to process.

topaz igloo
#

Well classes inheriting buildcommand act as an external code so i can't debug them by just adding a break point and running uat :/

smoky tapir
#

I don't know if this is the right channel to ask about resolution and full screen settings, but I am having strange effects in my project. At some resolutions, the mouse seem to be off if where it is drawn and where it actually is. Also, there is a shadow window behind the game window. Really weird.

#

I use BPs to change game user setting

azure finch
#

Hey guys how do I guys learn the UE4 source code? It's so much stuff and so much to learn. I am primary interested in the Rendering pipeline and as well as Procedural Generation. Anyone have any pointers?

small cobalt
#

Start at the beginning? Trying starting at LaunchEngineLoop.h/.cpp

azure finch
#

Thank you @small cobalt

#

Is there a VAX command to go to LaunchEngineLoop.h easily?

small cobalt
#

Search FEngineLoop in symbol search for VAX

azure finch
#

I just tried Shift + Alt + O @small cobalt and it worked ๐Ÿ˜ƒ

small cobalt
#

๐Ÿ‘

azure finch
#

Agile coding practices = good function names > comments

But what I see in the UE4 engine source there are comments everywhere even when the implementation is obvious. In Agile, if you comment something, generally this is an indication that you should wrap the commented code in a function with the right name, and then remove the comments.

Agile coding practices = don't keep dead code like this:

    // SpectatorPawn.cpp

    bCanBeDamaged = false;
    //SetRemoteRoleForBackwardsCompat(ROLE_SimulatedProxy);
    //bReplicates = true;

    BaseEyeHeight = 0.0f;
    bCollideWhenPlacing = false;
    SpawnCollisionHandlingMethod = ESpawnActorCollisionHandlingMethod::AlwaysSpawn;

I'm guessing Epic Games isn't really adhering to Agile coding practices. So now I'm just wondering what should I do... according Agile this is bad but do I go with Agile or UE4 coding standards

elder falcon
#

note that epic don't follow this all the time either

azure finch
#

@elder falcon yes, but what happens if you see code in the UE4 source that has got to be wrong/bad-style

#

Yeah exactly what I mean

elder falcon
#

well

#

nothing happens

#

you move on as if you didn't see it

azure finch
#

What I mean is what do I follow, but I guess this CodingStandard is what I should follow for my own code

#

Regardless if the source code is wrong sometimes lol

dull echo
#

Hi, how are the instanced stereo uniform shader parameters populated ? I see that the view uniform shader parameters are populated inside SceneView.cpp code. There should be an equivalent code to populate instanced view params right ? Any pointers would be appreciated. Thanks

azure finch
#

I feel like making a simple game in OpenGL C++ will better help you understand UE4 prior to jumping into UE4 source code, anyone agrees? I think understanding things at the fundamental level will allow you to understand more of UE4 code for example.

royal glacier
#

as a dev doing debuts in the world of 3d rendering yeah, its always a good experience

#

even to understand how a rendering loop works

#

and its fun to make rotating cubes too :p

azure finch
#

lol

royal glacier
#

my first OGL C++ game was a psychedelic pacman with a rotating 3D board

azure finch
#

lol, did the controls change according to how the board rotated?

royal glacier
#

nah it was just a visual treat ๐Ÿ˜„

#

when you got a powerup the whole board went crazy and you only saw the ghosts and gums

#

anyways its a good way to learn how to render vertices, faces, manage cameras, display textures and materials according to light

short harness
#

anyone else having issues connecting to Epic's P4 server?

elder falcon
#

yes

#

but the issue is that I don't have credentials

spiral mortar
#

hehe

short harness
#

very useful thanks...

hollow plinth
#

What does epic's p4 server contain?

cursive panther
opal mist
#

hi, I built the engine from source after downloading it from github.. I am having some trouble with the swarm coordinator not initializing. I looked for a solution online and found this: https://answers.unrealengine.com/questions/792311/swarm-lightmass-coordinator-not-distributing-jobs.html

he says something about building the swarm coordinator. after pulling 64882dd8e6a8711364a3857047d31167102ed846

Do I need to do that, or is the swarm coordinator also included in the github repo already?
I've been attempting to build the automation tools, I don't know what the proper configuration is. debug, development editor, shipping, etc.

young musk
#

@azure finch what you may find that agile coding practises may be good for business applications where you can spare a few cpu cycles to do extra steps of computation so that the code is easier to read and maintain; when it comes to gaming you're always fighting a balance between optimal fast code and easy to maintain. If they wanted raw speed the whole thing would be written in assembly :P

Plus you probably have a lot of programmers at epic that hail from pre-agile days so they are likely familar with each other's style to make the engine. While also keeping it fairly readable. I mean if they wanted easy to read/follow code with minimal comments they'd use some newer language rather than c++ with all its pointifications and addressables ๐Ÿ˜›

regal thistle
#

Stupid quetion: what is the most convenient way to browse the engine's source code without having an actual project? (i.e. is there a Visual Studio solution file for just the Engine itself?)

sinful root
#

I would say either the APIs or their GitHub repo

mystic cave
#

or UE4.sln

hollow kernel
#

How do people usually update forked repos w/ hotfixes?

#

Using github desktop, i forked 4.21 and modified it. I now want to merge 4.21.1 changes into it.

hollow plinth
#

Git pull, git merge 4.21.1-release?

crystal cloud
#

In the Compiled version of Ue4, with an engine crash, the crash reporter opens up to give a stack trace. Could someone please help me in getting that in the source code version of UE4? Right now, only a message box pops open when an engine crash occurs. It doesn't give the whole stack trace. I've currently compiled it to Development_Editor. Thanks.

hollow kernel
#

@hollow plinth you doing this in command line? I'm having probs doing this in github desktop. Doesn't look like there's any merge functionality in it.
Edit: @hollow plinth Thanks. gitbash did it for me.

hollow kernel
#

Is there a setting to show symbols or class names when you hover the mouse over parts of the editor (like in Blender)?

hollow plinth
#

There is widget reflector that shows slate widgets used for interface

pastel bone
#

Why there is no check(false) when this shouldn't be used anyway by design? As it is, the user doesn't get informed when using that "move" constructor.

    FORCEINLINE TSharedRef( TSharedRef&& InSharedRef )
        : Object( InSharedRef.Object )
        , SharedReferenceCount( InSharedRef.SharedReferenceCount )
    {
        // We're intentionally not moving here, because we don't want to leave InSharedRef in a
        // null state, because that breaks the class invariant.  But we provide a move constructor
        // anyway in case the compiler complains that we have a move assign but no move construct.
    }
gloomy hamlet
#

Because the compiler can still use it, and it's not meant to crash ;)

#

It still satisfies the requirements of a move constructor, it's just doesn't give any performance benefit over a normal copy is all.

#

Why they didn't just make the type non-movable I don't know, but probably just a hack to deal with differing compilers.

stoic harbor
#

Compiled 4.21.2 overnight. It took just under 7.5 hours. Does that sound right? CPU is AMD FX6300 6-core, RAM 8 GB DDR3

pine flume
#

If you were building both the Engine and the DDC then that sounds about right for that hardware spec (assuming you have an SSD.) If it was just the source build of the Engine alone without any DDC then I'd suspect that disk I/O was bottlenecking it.

chilly swift
#

How do I limit the number of processor jobs when compiling the Editor?

granite dust
#

in visual studio

#

(I just did that yesterday :P)

elder falcon
#

that's not going to do anything for unreal

#

vs just calls ubt, the only purpose of the vs solution is to let you view the code

swift ivy
#

Huh? UBT is just a build event that runs before the msvc compiler?

granite dust
#

he said compiling the editor, not packaging a build

#

you compile the editor with VS

swift ivy
#

Also there's a BuildConfiguration xml that lets you modify the concurrency scale, that might be what you want to use

elder falcon
#

you do not compile the editor with vs

#

when you click build in vs, it calls ubt

#

which then manages everything about the build

#

and creates compile processes

#

so if you change config in the vs solution, that doesn't do anything since nothing is reading this config

#

ubt has its own config system

granite dust
#

Hmmm

chilly swift
#

the concurrency scale only works for hyper-threaded processors

#

I have 8 cores, but I run out of ram when compiling.

proper vine
#

Yall definitely wanna fuck with BuildConfiguration

limber jacinth
#

upgrade ya ram ๐Ÿ

#

๐Ÿ˜„

kind ravine
#

Is UE4.18 a good version of the game to work off of?

#

Because itโ€™s the only version that supports a plugin I need for the game.

pearl fulcrum
#

I'm not aware of any particular problems with 4.18. What's the plugin? @kind ravine

astral sapphire
#

Can someone tell me where in the source defined those rounded corners of the main ue4 editor window?

#

i've tried to find it but failed few times already

small cobalt
#

Use the Widget reflector?

kind ravine
#

Itโ€™s DoNโ€™s (drunk on nectar) flying AI plugin

limber jacinth
#

@kind ravine is it unmaintained?

#

is it opensource if so i could make it work with 4.21

kind ravine
#

Well I got it from a forum so probably

#

Hereโ€™s the link

limber jacinth
#

it seems he updates it for 4.21 from the marketplace

kind ravine
#

Wait he did?

#

Did you try downloading it? Because I couldnโ€™t do t for any other engine

#

Although I didnโ€™t have 21 installed at the time either

limber jacinth
#

yeah you need 4.21

#

source engine doesnt register properly with launcher

#

so if you have 4.21 source engine it will never allow you to add it

#

not found out a way to register it yet

kind ravine
#

Well Iโ€™ll be damned

#

Itโ€™s installing to 4.21

kind ravine
#

Now I feel silly

formal flower
cold wigeon
#

I have "AssetRegistry" in my build.cs under PublicDependencyModuleNames
However, I notice that the dedicated server returns 0 in my array. While the client/pie works fine.

What do i need to do, to get AssetRegistry to build with my game?

(Yes I am abusing it)

cold wigeon
#

Nevermind:
When searching for assets use:
Turn off: Filter Include Only on Disk Assets (edit you don't have to do this, just make sure you add your asset types/dirs to the project settings as said below)

Also, in project settings, for asset manager:
Find the Primary Asset Type: Map
and make sure that :
Is editor only is turned off!

#

If you want other things like GameModes to be searchable like this, you need to add those to the asset registry in project settings as well

brisk silo
#

@formal flower skokum script is abandoned now

#

source code license is discontinued

#

(ffs at least make it open source goddamit)

low dust
#

so

#

where was the UE4's tick flush again?

#

I thought it was on World.cpp but I don't spot it

elder falcon
#

did they share any details about the new script language for unreal at all yet?

low dust
#

have they confirmed such?

#

reading at the skookum blog, it seemed like those guys were mainly working on editors python scripting

elder falcon
#

it's fairly obvious considering this and all the talk about unreal scripting going on at the same time

low dust
#

why though?

#

they were really against it

#

they wanted to limit the ue4 scripting to blueprints and c++

#

or programming

#

there's no runtime scripting at all but considering Epic's own game projects, why would they need it?

#

but I can totally understand the editor scripting

elder falcon
#

did you see the reddit post about it?

low dust
#

nah, I don't really follow reddit

#

I also find it least reliable sources of information you can usually find ๐Ÿ˜„

#

which is partly why don't really follow it

elder falcon
#

epic preview image

brisk silo
#

@low dust unrealscript had its issues

#

but a compiled (llvm) scripting lenguage, with basically the same speed as C++, but compiling instantly AND hot-reloading, would be a huge productivity boost for everyone

low dust
#

@elder falcon ah, thanks for the link

elder falcon
#

@brisk silo can such a language using llvm be compiled at runtime

brisk silo
#

@elder falcon yes

elder falcon
#

because if they make it generate binaries at editor time it would be 100% worthless for modding

brisk silo
#

blueprints work that way

#

editor only

elder falcon
#

blueprints create vm instructions that are expected to be safe to execute

brisk silo
#

imagine a script system "like" blueprints (with its compile step), but the compile takes 0.1 seconds to compile the entire project, and has same speed as c++

elder falcon
#

that's different when something compiles to native code

low dust
#

Unity's Burst compilation is pretty snappy, you change code and you can run it some seconds later in the editor

#

(they do the llvm)

brisk silo
#

llvm is really fucking OP

elder falcon
#

(burst is also worthless for games supporting modding)

brisk silo
#

creating a llvm lenguage is actually damn easy

#

you just need to send llvm their "pseudo C", and llvm takes care of the rest

low dust
#

you can support modding in many ways

brisk silo
low dust
#

if you mean traditional "we'll ship all the managed dlls with the game" being moddable, then sure, it will restrict that a bit ๐Ÿ˜„

brisk silo
#

a tutorial a bout how to create your own lenguage

#

and such a lenguage will be same speed as C++

elder falcon
#

๐Ÿค”

low dust
#

but if you actually make your own API and stuff for modders, like proper mod support, that's still on the table

brisk silo
#

including JIT btw

elder falcon
#

well no, I mean moddable in the sense that players can write scripts themselves and the game can execute them in a safe manner

#

if the mod has to be distributed as native code that's instantly failed

brisk silo
#

of the tutorial

#

how to send llvm your code

low dust
#

you can even embed whole mono yourself manually if you want your users be able to run custom C# code

#

you can do that in unreal too if you are crazy enough

elder falcon
#

yeah s&box does that

#

but it would be very nice if the "normal" scripting language used for the engine was usable for modding

brisk silo
#

define double @foo(double %a, double %b) {
entry:
  %multmp = fmul double %a, %a
  %multmp1 = fmul double 2.000000e+00, %a
  %multmp2 = fmul double %multmp1, %b
  %addtmp = fadd double %multmp, %multmp2
  %multmp3 = fmul double %b, %b
  %addtmp4 = fadd double %addtmp, %multmp3
  ret double %addtmp4
}
``` this is more or less how llvm works
#

you create a function, and give it an array of instructions

#

everything just going through name

#

llvm does the rest

low dust
#

well

#

this explains things

#

like why UE4's API docs are so bloody awful

#

they should totally rethink this

brisk silo
#

they are just autogen-d

low dust
#

yeah I know

brisk silo
#

the thing is. The engine guys are super expensive

low dust
#

but I didn't know they leave that documentation fully to programmers

brisk silo
#

you want them doing useful work

low dust
#

that sounds like really silly decision

brisk silo
#

becouse other guys cant really go document it well

#

it happens to literally every company ever

low dust
#

make the docs guys write it in clear text, then approve it on programmers

#

well, hire a engine user to write the draft for documentation guys, haven them clean it up, review it on programmers ๐Ÿ˜„

#

you wouldn't even need that much extra staff for this

#

and it would make everyones number 1 painpoint on c++ side go away (at least when starting with UE4)

#

somehow Unity manages to do this part way better

#

but...

#

they are actually moving to that autogenerated crap now

#

for packages

#

so, there's that

elder falcon
#

huh

#

unity used to have this beautiful documentation with usage examples for nearly everything

#

are they abandoning that?

low dust
#

for new packages, yes

elder falcon
low dust
#

they still do some manual documentation

brisk silo
#

that stuff was done by a dedicated team

#

it takes time

#

and its annoying as fuck to do becouse it can get outdated real fast

#

cryengine had this issue

low dust
#

heh

brisk silo
#

coding documentation got outdated and became useless

low dust
#

CE docs is at whole another level

brisk silo
#

many of those pages have been there since freesdk days

low dust
#

to be able to use that engine, you use docs that are dated from CE 2 days to CE V docs

#

all mixed up

#

they don't usually even differentiate on what engine version some specific doc page is for

elder falcon
#

only slightly worse than unreal then

low dust
#

but you can tell from the images and dates

#

that's for the actual engine features

#

that's not too bad on UE4 either

#

on CE, they also do the autogenerated crap for API docs

#

I honestly don't get it

#

it does help if you browse the code

#

but you'll never open the website hosting that crap

#

because it's pointless

#

usually that stuff just points the obvious

elder falcon
#

autogenerated docs is completely useless since you can just open the header and see it there

low dust
#

main valuable thing on ue4's api docs is the actual inheritance order

#

you can see the hierarchy for each class

elder falcon
#

?

#

I can see the same in VA with no issue

low dust
elder falcon
low dust
#

yeah I guess ๐Ÿ˜„

elder falcon
#

interesting how the docs are missing half of these

low dust
#

do you see all the siblings too?

#

I dunno what's the real name for the classes with same parent

elder falcon
#

you'd have to quickly navigate to the parent and then show derived ones there

low dust
#

actually it's the same on docs

#

so, nevermind ๐Ÿ˜„

frozen orbit
#

Hey does anyone have any idea where the code for UCharacterMovementComponent is? Specifically the PhysWalking implementation.

#

I searched the github, I even cloned it and searched through it on my local machine and I can't find it.

#

Like the header file is in Engine/Classes but I can't find the cpp file.

crisp river
#

get the code indexed in visual studio for spelunking ๐Ÿ˜ƒ

#

but start here UE_4.21\Engine\Source\Runtime\Engine\Private\Components\CharacterMovementComponent.cpp(4615)

spiral mortar
#

@frozen orbit entrian search / visual assist

frozen orbit
#

@spiral mortar You keep recommending it at some point I will listen.

#

Probably today, haha.

steep blaze
#

hi all, I'm trying to work with a class within the WorldBrowser module that is not exposed in the default engine

#

Engine\Source\Editor\WorldBrowser\Private\Tiles\WorldTileCollectionModel.h

#

Another class is exposed by default, this one:

#

Engine\Source\Editor\WorldBrowser\Private\LevelCollectionModel.h

#

When I include the working one, all is happy, when I include the above one... I get an error that this file can't be found:

#

#include "Tiles/WorldTileModel.h"

#

to try and fix this, I included that path in the modules build.cs, under the PrivateIncludePaths array

#

didn't fix it, anyone have a lead on this?

#

thanks

steep blaze
#

allright, I think I did it

#

followed this example

half ore
#

Hello

#

When you set up a function to be called when a component is overlapped, does the engine constantly check for overlapping actors or does it have some mechanism that somehow triggers that event?

#

I'm wondering this in order to know if, for performance, it'd be better have only the character checking for most overlaps or if it's ok to have other actors doing it

limber jacinth
#

Overlaps are checked everyu frame

#

so pretty expensive if you have lots of them

#

i prefer to defer non frame critical overlaps with a timer and custom overlap trace

#

like do i need to be checking every frame if a player is in a certain zone? is it okay to wait maybe 2-3 possibly 4 frames?

#

then i decide if i use a timer or not

remote badge
#

Is there a way to change something in the engine without recompiling everything because of it? I guess precompiled headers at fault, what would you do? Thanks.

#

It sucks to change just one header file like GameViewportClient and wait hours

elder falcon
#

yes, make sure you do not change any engine headers

remote badge
#

Tried to, but hardly possible at times, I wish it'd recompile just one module, but I guess GameViewportClient is used everywhere

#

Any idea if disabling unity builds will have any effect?

half ore
#

Thanks Kaos

#

My idea is to instead check in the player class

#

if the player overlaps some specific actors, it'll execute the associated functions

#

it'd be prettier to deal with that at the actor itself but it's still good at the player class

elder falcon
#

disabling unity build will make building the engine an order of magnitude slower

#

they just include everything all over the place so you always rebuild the whole engine if you change any relevant headers

#

there is nothing you can do about it yourself

half ore
#

btw, do you also know how End Overlap is checked?

#

it only starts to check after an overlap begins right?

#

But what if I am tracking the end of overlaps but not the beginning, would it still set a system to verify every single frame?

remote badge
#

guess so, thanks Zeblote

bronze current
#

How to get SkeletalMeshComponent->BodyInstance? Always return false. Thanks

half ore
#

USkeletalMeshComponent->GetBodyInstance(FName BoneName, bool bGetWelded)

#

You also have USkeletalMeshComponent->Bodies: "Array of FBodyInstance objects, storing per-instance state about about each body."

#

I just checked the documentation, didn't try

#

@bronze current

low dust
#
float AWorldSettings::FixupDeltaSeconds(float DeltaSeconds, float RealDeltaSeconds)
{
    // DeltaSeconds is assumed to be fully dilated at this time, so we will dilate the clamp range as well
    float const Dilation = GetEffectiveTimeDilation();
    float const MinFrameTime = MinUndilatedFrameTime * Dilation;
    float const MaxFrameTime = MaxUndilatedFrameTime * Dilation;

    // clamp frame time according to desired limits
    return FMath::Clamp(DeltaSeconds, MinFrameTime, MaxFrameTime);    
}``` ๐Ÿค”
#

that's from engine code

#

that FixupDeltaSeconds is virtual so technically it would allow thing that overrides that to use that RealDeltaSeconds

#

makes one wonder if some epics own game do that as the engine itself doesn't

#

and that RealDeltaSeconds isn't used for anything

#

for the ref, MinUndilatedFrameTime and MaxUndilatedFrameTime are something you can set on the ini files directly

#

from BaseGame.ini: MinUndilatedFrameTime=0.0005 ; 2000 fps MaxUndilatedFrameTime=0.4 ; 2.5 fps

bronze current
#

@half ore I'm trying to find UV coordinates from SkeletalMesh hit location. Thanks for help

half ore
#

^^

hardy palm
kind ravine
#

So is Unreal Engine 4.18 a good version to make a game with or is it a loser outdated version?

limber jacinth
#

any reason you need 4.18?

hidden juniper
hollow plinth
#

Does it have some kind of delegates? Like onvaluechange or similar?

hidden juniper
#

UDataTable::OnDataTableChanged

#

Hmm, I might be able to combine that with FDataTableEditorUtils::RenameRow to change the key to whatever I like, using a UDataTable sub-class. I'll just have to make sure modifying the table inside an OnDataTableChanged callback is safe.

hollow plinth
#

and prevent delegate loops

#

like change -> delegate -> change -> ...

hidden juniper
#

yeah, that's what I mean by safe

mystic star
#

If I wanted to save some data from actors when play in editor is ending, would FEditorDelegates::EndPIE be the delegate to use, or are there better places to hook into that?

#

And similarly, if I wanted to use that persisted data to make changes to the editor versions of those actors, is there a place to hook into after PIE has ended?

limber jacinth
#

UATHelper: Cooking (Windows): BUILD FAILED
PackagingResults: Error: AutomationTool failed to compile.

#

anyone any idea?

#

i compiled the automation tool

astral sapphire
#

Why there are 2 SQLite plugins?

shut solstice
#

Please, can anyone compare Unreal Engine's virtual texture to Graphine Software's Granite or Umbra 3d? Also, It would be nice to know which version of the UE4 Virtual Texture will be ready to use. I mean engine version. Thanks.

spiral mortar
#

@tough oyster ^

tough oyster
#

@shut solstice The comparison is simple. Unreal's official version is totally nonfunctional as of right now and won't be done for a while. So Granite kind of wins by default

#

There haven't been any commits to VTs for a while, not since they started pushing in the RTX features, so it's safe to say that won't happen until RTX is finished at least. So it could be Q4 2019 or even sometime in 2020 when it's finally usable.

#

Never used Umbra personally, but I have used Granite a ton, and Granite is great. It's stable, fast, and looks really nice (really a fan of how it just natively supports UDIM textures). My one and only complaint about Granite (aside from it not supporting procedural virtual texturing) is that the builds they make for it can sometimes be hit or miss. 4.19 for instance, there was a bug where it would CTD if you used the shader complexity view mode. It got fixed in 4.20... but now in 4.20 the support for VTs on the baked ambient occlusion texture layer doesn't work. Nowhere near as vital since it doesn't impact how things look, but still, I like having that texture layer for material functionality

#

What I do like about Granite as well, if I ever send an email in for support, I get responses pretty fast, sometimes even from the CEO directly. So that's always appreciated.

shut solstice
#

@tough oyster That's too sad news. I need to find a lot of money for this then. Thanks for your time and informations.

tough oyster
#

Just so you know, Granite offers a sub instead of perpetual if you prefer. It's about half the price

#

That's what I did for it, only way I could justify the cost

shut solstice
#

I think I can wait for a while. I hope Epic can solve this issue.

tough oyster
#

It's not really an issue so much as just priority I think.

#

VTs are going to take a massive amount of work for them to wrap up, they just barely got started on it, where RTX stuff they had showcased almost a year ago now

#

So they probably want to finish that before making more promises

#

4.21 is supposed to have VT lightmaps at least, but in my testing I've found it to be incredibly unstable and very hard to work with

#

It's nowhere near ready

brisk silo
#

@tough oyster more likely that VT is paused due to all the render rewrites

#

its really no joke all the stuff they are doing

tough oyster
#

And that, I totally forgot render graph was a thing

brisk silo
#

the mesh renderer, the RenderGraph Graph, and the RTX

shut solstice
#

All I understand is that I have no choice but to wait.

brisk silo
#

render graph boosts VT HARD

#

and the new mesh stuff too

brisk silo
#

the render graph makes sure to take care of gpu resources, and to run compute shaders at the proper order and stuff

#

so using it for VT passes is an obvious fit

#

and then, having the game scene in the GPU gives you great data to control the streaming details as needed in compute shaders

#

and more than anything, VT is absolutely perfect for raytracing, as you have less materials and can merge more stuff