ArcRotateCamera rotation causes distortion in the video texture

Hello everyone, I am trying to use a video as a texture mapped onto a model to recreate the scene in the video.

The model has already been UVW unwrapped, but I can only observe it from specific angles. When I rotate the camera, the video texture becomes distorted.

If there is a person walking in the video texture, when the video texture distorts, the person’s body also distorts, which is a terrible result.

So, how can we ensure that the video texture does not distort regardless of how the camera rotates or translates?

Below is a demo that can be used for debugging, and I look forward to everyone’s answers. Thank you very much!
Video texture distortion

Just to add,
I believe the correct scenario is that, no matter how the camera rotates, the area marked in red in the image should be straight, and not curved.

Well, you’re projecting on a box, so what did you expect?

If you don’t want any distortion due to the volume of the mesh/container, change the projectionMode or project it on a plane facing the cam.

Meanwhile, have a great day :sunglasses:

Thank you for your blessings :smiling_face_with_three_hearts:. I apologize if my previous expression wasn’t clear enough, let me describe to you again the purpose of what I’m doing.

I have a segment of surveillance video that I want to use as a texture applied on a box to make the video appear three-dimensional. This way, when I watch this video, I can feel like I am immersed in the scene. If I project the video onto a plane facing the camera for observation, I cannot achieve the three-dimensional feeling I desire.

However, I found that when I attempt this, I can only observe it from specific angles. If I freely move the camera’s position and change angles to observe, the texture will deform. :sob:

I’m sorry I shouldn’t have answered because I don’t really have the time to investigate. I don’t even know what sort of projection is your current video texture. If I’d just stop on

then, my first thought would be to use a sphere with an equirectangular (or half a sphere) or you could use a box, but then with a cube or skybox texture.
I hope someone else will have the time to check your assets and logic. You might have to wait until tomorrow (because today is public holiday in some places). Let me cc @Evgeni_Popov , see if he can further look at this for you or orientate you towards someone who can :pray:. Meanwhile, have a great day :sunglasses:

Maybe @PatrickRyan can provide guidance with NME material

1 Like

Thx. I didn’t dare calling him in :grin: Thought he would have better to do :face_with_hand_over_mouth: And so do you :joy: Congrats again for the launch and enjoy your last night of Season holiday :rabbit2: :sunglasses:

1 Like

@saki, unfortunately, I am here to disappoint you as much as I don’t want to. First things first, I noticed in your node material, you had a lot of logical nodes all wired with 0 and 1 value floats for true and false. Fortunately, for the sake of being able to read the graph, we automatically return 1.0 for true and 0.0 for false when nothing is wired to the inputs. So you can simplify your graph like this which is completely valid:

I also noted in your graph, there are nodes to modify your UVs, but they are not doing anything right now, so it is the same as if you wired a basic UV node to your texture. I assume you were using these to try to modify the texture to try to correct for the distortion you point out. Unfortunately, the two operations you are doing here will not help in your case.

The reason it looks correct in only one view angle is because that one view angle matches the original video as you can see:

The problem is that the wall with the doors extends straight past the large divider piece, as does the floor. If you do someting to manipulate the texture so that the lines on the floor straighten out, the divider will distort. For this to really work, your source video needs to be a different format. Your source looks to be a somewhat wide angle lens, but nothing close to the 360 video format you really need. The reason I can say this is that the wall structure on the left edge of the image is a little distorted, but should be dramatically curved to indicate that this is video that can be projected correctly. I think you are looking for something more like the 360 Video Dome feature, but this input video won’t get you there as you need a true 360 video capture to be able to project correctly.

If you only have this source to work with, and you want to have that divider section stand up like the wall, you will likely need to extend your floor and wall to simulate them continuing past that feature. Then use a second plane UVed to encompass the divider alone and have it standing in place in the scene. In this way, the floor stripes will always be straight, but you will also have a copy of the divider on the floor.

Like I said, I’m nothing but a disappointment with this one. Anything you do with this input source will look wrong in some way just due to the format. So this will be an exercise in finding the path of least tradeoffs for you. I wish I had a better solution for you.


Glad to read that (at least ‘high-level’) I wasn’t just totally offset from the source issue :grin: But then of course, it stopped there :face_with_hand_over_mouth: Thanks a lot for your answer; For your insight and the reading of your analysis and possible solution is always of great value. I hope you had a good launch (as we did :smiley:) and until we chat next, have a great day :sunglasses:

1 Like

Thank you for your detailed response. I will try to solve this problem based on your suggestions. However, the likelihood of solving it seems low at the moment. In any case, I will continue to follow up on this issue and will provide updates in this post when there is progress.

1 Like