Mapping Unreal Engine Content on a 3D Printed Model

Hello,
I’m pretty new in mapping and I’m trying to 3D map in realtime UE4 content to a 3D printed Architectural model.

For now, I’m ok to connect UE4 and Light Act, calibrate the projector, and project an image texture on.
But now I would project the UE4 content in real-time and I’m stuck.

I understand that LightAct uses the UV Map of the object to project on the printed model, but I’m not sure how and what to project from UE4, Did I have to project the view from the camera set at the same position or something else ?

I tried to project directly the UE4 view from a camera, setting up approximately at the same position from the LightAct Projector, but the view does not map correctly.
(I made it by replacing the Input node by the SpoutListener node in the projector layout)

Any help would be appreciated,

Thanks,
Nicolas

Hello,

Thanks for posting on our Answerhub.

The best & the easiest way would actually be to use nDisplay cameras as described in nDisplay configuration file generated by LightAct. This process is presented in this Feature Preview video

But please note this feature will be available only in LightAct 3.6.0. On the upside, the official release should come out next week. If that’s not soon enough, please let me know so we can send you a beta version.

Looking forward to your reply,
Mitja

Hello Mitja,
Thks for reply

Our timing is short so access to the beta would be great!

Can you just explain a bit the process? I already see video but not understand all the process to use in UE4 to achieve the projection.

More over, how can you achieve that goal with actual LightAct version, because it seems to work for other people but I can’t put the hand on :frowning:

Thanks a lot,

Nicolas

Hi,

I’ll try to send the beta to you either later today or tomorrow. In the meantime, please make sure you understand how nDisplay works (if you don’t already).

In short:

  1. you design your UE4 project as you normally would. You don’t need to insert any projector matched cameras or Scene Captures.
  2. use LightAct to calibrate your projectors (by importing the same 3D model of your object etc)
  3. create nDisplay configuration file from within LightAct
  4. launch your packaged game with nDisplay Launcher (part of UE4) and all the UE4 cameras, which match the projectors, are created based on the nDisplay.

I hope this makes it clearer, but if you have any other questions let me know.

I’ll post the link to the beta here when it becomes available.

Thanks!
M

Thks, I will go read about nDisplay.
Can’t wait for the beta !!! :smiley:

Hi Mitja,

I took some informations on nDisplay and how to use it with the Beta.
When could you send me en access to the 3.6 ?

Thanks,

Nicolas

Hello Nicolas,

You can download Lightact 3.6.0 beta from this link:
https://drive.google.com/file/d/1H_YFf5_h4-o4cI1w0lj6l_3pxwVFi8Rg/view?usp=sharing

We also created an nDisplaySample project which should allow you to export nDisplay configuration files for projection mapping on a simple cube.
nDisplaySample.la (41.2 KB)

Process of setting up nDisplay through LightAct


If you open the sample project, you’ll see one cube and 2 projectors.
image
Every projector that you want to use with nDisplay needs to have Include in nDisplay checkbox checked.
image
Then, you’ll want to open UnrealLink window


Here, you can set up everything LightAct needs in order to replicate projection mapping properties in nDisplay.

  • UE version tells UE which UE version nDisplay was made for. I found that it’s easier to write 4.23 even if you are using newer versions, because for some reason, nDisplay Launcher always wants to convert your configuration file if you enter 4.25.
  • File name: the name of the .cfg nDisplay configuration file.
  • MPCDI projection policy: determines if you want to use MPCDI or Simple projection policy. Leave this checked
  • Overwrite: if unchecked it will create a new nDisplay file everytime you click on Create nDisplay config file and increment the filename.
  • In the Blend Masks section you tell LightAct which Texture variable should serve as a blend mask for each projector (more about this below).

Blend masks


For every project included in nDisplay you need to create a Texture variable. Then, in projector’s layout, you need to connect AutoBlend’s blend mask to it.

Saving & Using the files

image
Once you click on Create nDisplay config file button in the UnrealLink window, LightAct will create nDisplay folder in the project folder where all of the required files are saved.

If you are running your project from one server, you need to point nDisplay Launcher to this configuration file and you should be set. If you are running a multi-server project, you need to copy all of the files to the exact same path on the other computers. More detailed tutorials are available on Unreal’s documentation pages.

Let me know how it goes :slight_smile:

Best regards,
Mitja

2 Likes

Hi Mitja, thanks for the support,

I create my .cfg from LightAct and Launch nDisplayListener.exe on the project folder but when i try to launch from nDisplayLauncher after set it with the .cfg, nothing happened.
I tried with UE4.25, Launcher OutputLog report “Unknown Command”, with 4.23 no problem is shown in Log but nothing on the projector … Just one black after pink flash and the projector keep to project my desktop.

So I 'm looking for a solution from now on.

Nicolas

hmm, it seems to be working on my end. Can you please share your nDisplay config file together with all pfm and png files? If possible, just use a wetransfer or something similar.

Thanks!
M

UnrealLink is a feature I’m curious about as well.
I’m going to try it out tomorrow morning.

2 Likes

Hi, Mitja
Please Find the nDisplay configuration in the link below :
https://newquest.fromsmash.com/LightAct-nDisplay

Hi,

It seems to be working on my end (after I changed the IP address).

Is it possible something is wrong with your project? Perhaps try a basic UE project from a template, package it and test the config file with it?

Let me know if I can help any further.
Mitja

Hi Mitja,

with default file problems occurs too,
So can you explain wich IP you change ?
You go on the .cfg and change to local 127.0.0.1 or have you done something else?

Looks like on local I can run a windows on 1 screen.

Thks in advance,

Nicolas

Hello Nicolas,

All I did was open your cfg file and change the IP address to the IP address of my computer.

so this line:
[cluster_node] id="NQPCF0012A" addr="10.10.3.114" window="window_PSAH" master="true" sound="true"

was changed to:
[cluster_node] id="NQPCF0012A" addr="192.168.178.11" window="window_PSAH" master="true" sound="true"

Just to confirm:

  • which Unreal Engine version are you using? I am testing with 4.25.
  • did you try and package a basic project, for example First Person Template, with it? And does the issue occur?
  • which UE version did you select in LightAct UnrealLink window?
  • does the issue occur with one of ExampleConfig cfg files? You can find them if you open nDisplay template in Unreal Engine editor.

Thanks!
Mitja

Thks for the fast answer,
For the .cfg that’s the way I’m trying

  • I tried with 4.23 cause of the nDisplay convert the .cfg file, but first, my project is on 4.25.
  • I tried the nDisplay template and have some errors, I’m changing the .cfg template file to make it works approximately
  • I didn’t try another basic project
  • In Unreal Link, I selected the 4.23 version, due to your primary advice.
  • Errors occur, but I will try with 4.25 this afternoon.

I will try the config with the local address on.
thanks for the support,

edit:
Actually, I succeed to compile and obtain something but not what I want to.

It looks like if you accept nDisplayLauncher to “transform” the .cfg to the current version error occurred and the app doesn’t launch, so just pass the dialog box and keep the .cfg.
Moreover, I had to change the IP to localhost 127.0.0.1 to make it work.
But the position is not good and I don’t see my 3d Object on my Physical Model :confused:

Nicolas

Sorry to interrupt you.
I was able to use nDisplay with UE4.25 in the .cfg I created from Unreallink.
However, I don’t understand how to make use of UnrealLink after all.
Do you mean that it works as a mask for the screen output from UE4?


It’s just projecting a projector up and down from a single PC.

No need to apologize, @Atsushi . It’s us who should be apologizing because we didn’t create any documention for this feature yet :slight_smile: (it’s coming soon though).

Anyway, UnrealLink allows you to create nDisplay configuration files from inside LightAct in order to replicate projection mapping setup in Unreal’s nDisplay .

This process is meant for projects where you’ve got a 3D model in Unreal Engine and an exactly the same physical mode. One example of such project would be this one. If you’d like to project content from UE4 onto the physical model, you need to create virtual cameras in Unreal Engine that exactly match the projectors. Once you have that, if what the UE4 camera sees is directly projected through the projectors you will get a perfect projection mapping.

So what LightAct does for you is create nDisplay configuration files which create nDisplay/UE4 cameras which exactly match the projectors. It also creates blend masks, so that the projectors are blended correctly.

Setup

  1. Make sure you’ve got a 3D model that exactly matches the physical object.
  2. Import this 3D model into UE4 and LightAct. The location, rotation and scale needs to match in both applications.
  3. In LightAct, create the projectors and map them to correct physical outputs.
  4. In LightAct, calibrate the projectors using either 3DCal manual method or CamCal automatic method. At this point, you should see a perfectly mapped content coming straight from LightAct.
  5. In LightAct, create nDisplay config file.
  6. In UE4, create your content and package the game.
  7. Launch nDisplay Listener on all computers and, using nDisplay Launcher, launch the project using nDisplay config file you created in step 5.

I hope this helps!
M

Hi Mitja,

I’m questioning your response to @Atsushi.

  • Currently, I’m using a .fbx in UE4 and an obj in Light act, is it possible that make some problems?
  • When you say that location rotation and scale have to match, value has to be the same or have to match between the 2 scenes (don’t know if I’m very clear).
  • I’m ok to set up from 1. to 7. just have to look for the 3D in point 2.
  • Currently, my camera is not set up correctly from the nDisplay when i Launch but I don’t know how to debug and make it work properly

Thanks!
Your help is very appreciated here!

Nicolas

This shouldn’t be a problem by itself, but you would need to make sure the objects are positioned (locations, rotations & scale) exactly the same in both applications (the numbers should match). The easiest is to just set locations and rotations to 0 in both apps and to make sure the scales are the same.

I’ll try to create a tutorial and UE4 sample project tomorrow.

Best regards,
M

I have the same question as @NQ_3D

How do I set up the camera on Ue4?

Do you want to check Lightact’s camera coordinates?

The final video output is just the output from ue4’s ndisplay, right?

I’m hoping to have a sample project and tutorial ready to go. That would help me a lot too.

1 Like