Interior Mapping: Fake 3d Interiors with a Flat Image

Interior Mapping: Fake 3d Interiors with a Flat Image

I made an interior mapping system which distorts flat images based on the camera’s perspective.



Most recent devlog:


Performance

This is pretty performant and useable in large scale. To remain performant it has:

  • Render distance
  • Level of Detail (The farther away = less detail)
  • Frustum culling (Doesn’t update windows out of the cameras view)
  • Face culling (Doesnt update windows not facing the camera)


Showcase




Comparison:

Notice how without the effect, the rooms look obviously 2d and fake. With the effect, the rooms properly move based on the cameras perspective.
interior mapping toggle gif



Conclusion

Let me know your thoughts! Do you see yourself using something like this in your map?



91 Likes

cool, could be used in one of those fake building games with empty one part buildings

5 Likes

It would be quite useful for fake reflections! And Portals! And Windows (obviously)

10 Likes

Totally! I can’t imagine hand-making every single room just to get that lived-in-world effect. This is genius! Can’t wait to see more of it, it looks very interesting.

I’ve never heard of that before, sounds great for systems to run faster and smoother!

Would you just take a photo of any room or does it have to be a certain type of photo for this to work? This is crazy and I’m very interested in where this is going! :doh:

6 Likes

That looks really cool! I like the illusion

5 Likes

From my experience messing with it, it looks best with a screenshot looking into a room where you can see both walls, ceiling, and floor. Although, nothing is required. There’s also adjustable values to change how strong the effect is and some other stuff with it

Thank you!

4 Likes

I just had a thought. This would be wonderful for adding realism to literally everything. Say you had a guitar. The hole? Interior map it. Great for small touches of realism!

Question. What would happen if you put maps on adjacent faces of a cube? would you get a diorama effect? Like this?
image
(from Google)

5 Likes

It wouldnt be great for this, you’d probably be better of just adding the hole within the model. Also, the windows hsve to be stationary parts due to how the render distance system works. Although, I could add support for moving objects in the future.

Hmm, not too sure how this would look. Ill try it later today

3 Likes

Sorry for the late response, I’ve been busy lately and haven’t had time to try this out

After testing, unfortunately I can’t get a good result after messing around with the values. I tried it on a simple box room.

I kind of expected it to not work because of limitations due to roblox not have proper ways to distort an image, like perspective warps. This makes the system somewhat innacurate but it’s out of my control…

The result is pretty ugly:
image

1 Like

aww mannn… Its ok Im glad you responded… If you get the time… what does it look like on a sphere? or a wedge? or a cylinder? (can it be put on meshes? :shock: )
Also, could you somehow get the reverse effect? like making an image look like it’s popping out of part rather than inset? Can it be transparent? Can you layer them? if so… Could you theoretically create a layered background :open_mouth: (parallax)


(from google)
Sorry for all the questions (especially since you’ve been busy) It just seems really cool!! you don’t have to answer them all immediately, I eagerly await your response!

4 Likes

It looks realy cool! It is a good illousion

2 Likes

No, it uses SurfaceGui’s which sadly don’t wrap around objects

Yup this is possible

Yes and yes, although there’s no good reason to layer them (reason below)

This wouldn’t be the correct use for this. In the image you provided, it would use a parallax where the layers are all moved at different speeds to give the illusion of depth. The illusion would be broken when the camera turns because you’d be able to see the 2d layers. The parallax effect I use scales the image trying to make it actually look 3d using the camera’s angle.

Also, this is really only meant for an image where you can see the walls, ceiling, and floor like this:

image

3 Likes

but… what if… you wanted to? I guess I was going for more of a 2.5D effect. Kinda like 2d Vtuber face rigs? Or like a dynamic visual novel of some sort where the “camera” moves slightly as you move your mouse giving the illusion of a 3d space while still staying 2d.

Wow this is really impressive. I definetly would use this in my game, i have a building with fake windows and they look baaad. This would definetly help.

3 Likes

Devlog P2 - Improved Accuracy, Performance Boost, Easier to Use



Improved Accuracy

Before, when moving the camera to a stronger angle, the rooms would exponentially distort. Now, the images more accurately move based on the camera, which looks more appealing and makes the effect more convincing


Performance Boost

The system now runs ~2x faster (tested with 64 active windows)


Easier Use

Before, you would have to manually set a couple values for the effect to work. Now, you only have to specify where the back wall is and it will automatically choose values for you.


With / Without:

interior mapping toggle gif


Video:


Issues:

Although improved, this is still innacurate. Notice in the video how the position jumps when the camera switches sides. I’ve noticed the stronger you make the effect the less accurate it gets, so theres some optional values to adjust this.

8 Likes

This is absolutely beautiful and I could see it being very useful for large games to bring life without compromising on optimization. If you do ever end up open sourcing this or making it a paid product (preferably paid so you can get compensation for your work) please message me

1 Like

I use a fake interiors parallax, it works with a mesh but it’s pretty bad.

1 Like

Wow, this looks very good! Nice job on this!

1 Like

Amazing job! This is truthly impressive

1 Like

I don’t see a reason why you couldn’t use Texture instead. It would be quite interesting to see it work on differently shaped objects.