Ideas for Non-Raytraced, Mirrored Surface Plugin?

Hi guys,

Long time lurker first time poster.
My sincerest apologies for putting all the images at the bottom, but as a first-time user I’m not allowed more than one image per post, so I’ve had to put them all togeher into one. I ask for your patience.

There have been a number of threads over the years discussing workarounds and tricks for simulating a mirrored surface natively in SketchUp - i.e. without using a rendering plugin.
The most popular solution currently is to componentiate your geometry, copy it, and reflect it along your ‘mirror’ surface (typically just a low-opacity white surface). You can see an example here:

Now, for rectangular rooms like the one shown in the example above, this works pretty well.
But try using it on geometries where your mirror plane pokes into the space…
To get an idea of what I mean, imagine a floor plan like the one in Fig. A, where your mirrored surface is represented by the red line.

The obvious problem you run into using this trick is that your reflected, ‘mirror world’ copy of the room is going to overlap with the ‘real’ room, as shown in Fig. B.

Thus your space is just going to end up looking like Fig. C. Which is obviously very far from the intended result.

My question, then, for all you veteran SketchUp users and plugin developers, is this: What would be the feasibility of building something that basically generates a mirrored proxy of your geometry - a mirror-world version of it, as it were - and only displays that proxy within the frame of your mirror?

Again to provide a crappy example, if Fig. D is our intended result, can we get there by having a mirrored proxy geometry of the whole space (blue), and then only displaying the blue mirror-world geometry within the ‘clipping plane’ of the red mirror frame? See Fig. E


Sorry for the world’s shittiest illustrations of basic optics… But I hope someone is willing to explore the topic.

You obviously don’t want to bother mirroring the parts of your model that aren’t even visible in the mirror (i.e. geometries that are behind walls, floors, etc.) so would it possible to implement some kind of selection criteria for determining what surfaces get proxied and which ones are left out of mirror-world? Or would such a selection process itself end up being too computationally expensive…

Anyways, guys, any thoughts are appreciated! Just looking to brainstorm here.

Cheers,
Mati

Love the idea of such an extension.

That is an interesting idea.

Im pretty sure an extension could be made that that creates a scene looking from the centre of the mirror (pointing toward the SU viewer) and captures a JPG which is then applied to the surface of the mirror. Doing this lots of times (updating often) will capture diiffernet angles and even objects as they approach the mirror. Computationally expensive, however.

I actually think SU will update its lighting engine to a more realistic one in the near future. A number of renderers are doing some impressive stuff in realtime (and live-syncing with SU). Modern GPUs are so powerful that these sorts of workarounds will become unecessary soon enough.

Light-Up is an extension that can do true mirrors by using real time OpenGL rendering, you can move around the scene. But, another approach is that your duplicate mirrored component could be in a group of its own, and in that group there is a section plane, that cuts off what you shouldn’t be able to see in this side of the mirror. See this model.

mirrowed.skp (65.8 KB)