[Request/Idea] Precomputed (lightmass) for Skeletal Meshes

Hi,

this request was relevant under UE3, but I guess with the new dynamic lighting it is less needed. Still, under UDK there is one thing I missed for a special effect I wanted to create. This effect is inspired by this video :

- YouTube (DmC by Ninja Theory, look at 0:40)

http://www…fr/archives/uplo/002/1354900968-dmc3.gif

What Ninja Theory did for making the street moves was to use a clever post-process effect. However, I wanted to replicate this effect by moving true geometry and not just fake it. My idea would have been to use a few skeletal meshes (with a few bones as possible) to animate more easily and realistically the scene. However, to take the least resources as possible, I would have liked the possibility to have baked lighting onto skeletal meshes (which is not possible currently).

While now the lighting is Dynamic in UE4, Lightmass is still static and my request would be the possibility to bake static lighting (only the lightmass part of course) on skeletal mesh for this kind of effect. Interp actors for example allow the use of precomputed lighting, why not the skeletal meshes ? :slight_smile:

I’m sure for a lot of little parts animated/moved in the environments of many levels there is no need for dynamic lighting and skeletal meshes help to provide much better animations than what matinee could provide.

A developer has been requested to look into your request. Thanks for your patience.

It could be done, like you said it’s already supported for interpactors. It’s mostly a problem of implementation time, skeletal meshes don’t have the static lighting pipeline setup (export to lightmass, import, generate UVs, pass lightmap UVs to the shader, etc). Not something you want to hear about I’m sure. It’s a good idea and we’ll consider it.

In the meantime, you should consider using world position offset to accomplish what you need. It doesn’t have the same power in animating as skinned meshes, but it’s possible to do some pretty powerful stuff, especially in combination with vertex texture fetches (can basically implement morph targets) and painted vertex data.

Static Mesh Morph Targets

That StaticMeshMorpher script doesn’t exist in any of the Rocket folders. Would it be possible to make it downloadable on that page?

@Jeff.Wilson : The Morph Targets for the Static Meshes could be indeed a very good solution. I thought about the WorldPosition offset solution before, but in UDK it required a lot of instructions to get a correct wave feeling, and it wasn’t giving me as much control I would like to had. There is also the need to use a costly shader to deform the geometry. Especially on a whole street.

Which gives me this question : what is the most performance friendly ? Morph target + shaders or Skeletal Meshes with baked lighting ?

@Daniel.Wright : Anyway, no need to be sorry about the Skeletal mesh integration, I totally understand your point regarding the current status of the pipeline.

Hi Fabrice - we’ll be adding the Static Mesh Morph Target script in the next beta release. Looping Daniel back into the thread to answer your perf question.

As to which is faster for performance, it depends on how much work is being done in the static mesh world position offset. It’s possible to do the same or more work in world position offset as a skeletal mesh does. So hard to say either way.

But for now, since we don’t have static lighting on skeletal meshes, static meshes + world position offset is going to be drastically faster since it won’t create a ton of dynamic shadows.

Thanks ! :slight_smile:
Does the morph target is planned for Maya as well or it is for Max only at the moment ?

Also, there is now way to compute the lightmass cache with interp-actors ? As far I know dynamic objects doesn’t count during the GI computation. If I take back my example of the street, if i convert my static meshes to interp-actors to get dynamic shadows they can’t contribute to the light cache isn’t it ?

The ‘static mesh morph target’ plugin is Max only, we don’t have any plans to make it work in Maya.

You can make Interpactors affect GI if you check ‘bLightAsIfStatic’.

Thanks for the info, but the “Light As If static” is disabled, I can’t toggle its value in the editor in my interp actor. Is there an other setting to enable this one ?

Again about the Max plug-in : is this a plug-in or just a max script ? I’m wondering if I could make a Maya version myself.

Some things to check: verify that the UStaticMesh asset has valid lightmap UVs and LightmapCoordinateIndex, verify that the static mesh component has a valid lightmap resolution.

It’s just a max script, you can open it up in the max script editor and see what it is doing.

UE4/Engine/Extras/FX_tools/3DSMax2012_x64/StaticMeshMorpher.ms

Regarding the lightmap : this mesh use the same UVs for the texture and the lightmap, so I only have one UV channel on this one. Could it be the problem ? The resolution is good otherwise.

Sharing the same channel should be fine. Could you hook me up with the mesh by attaching it (or another mesh that repro’s the problem)?

I don’t think this is really needed : all the static meshes I have imported and present in my scene act the same way : the option is disabled. Even my for skydome.

2013-07-30+01_17_13-exil+-+rocket+editor.jpg

Indeed. There is a bug here, I’ll get it sorted. Thanks for all the info.

I don’t know if this is what you want but there is a “lightmass character indirect detail volume” to generate indirect light for dynamic actors like elevators, doors, etc.

I’ve read that there is an Indirect Lighting Cache that is used for dynamic objects.

link text

It doesn’t work if you whole scene is full of skeletal meshes, as dynamic meshes don’t contribute during the GI computation.