Revisiting a Day at the Gallery looking for a solution.

Hello everyone and sorry for the long text!

A year ago I posted my ‘Day at the Gallery’ project here on the forums. And now I’m here for suggestions to best replace the art in the gallery. Basically a potential client want to be able to place new art in an empty version of my gallery-space. These new canvases will of course be of different number and sizes every time they are replaced.

This is how I would do it: Start with creating each canvas as a real size box in 3Ds Max. Moving and placing the canvases in an evenly and harmonic way. UV Map each of them separately. Export the canvases as FBX from Max and import them into the empty gallery Unity project. Create the canvas textures from images of the real art in Photoshop and add them in Unity.

If there are any changes to any of the canvas locations based on what I see now I would update the Max file and export/import a new FBX. Render to texture out CompleteMaps (lightmaps) for each canvas. Combine the lightmaps with the art in Photoshop and update the textures in Unity.

Last I would render out new lightmaps for the walls (two covers the three walls fit for canvases) and replace them in Unity to get the correct shadows from the canvases.

I also have to spend some time cleaning up and making adjustments to the final textures (with the lightmaps) in Photoshop as they don’t come out perfect from the render. On the canvases I also have to paint in the side edges of each canvas (under the lightmap) to make it look like the canvas is stretched over the edges.

This might sound like a lot of work but think of it, it isn’t. With 3Ds Max VRay, the scene, the render preset and a PDF guide it should be quite straightforward or what do you think?

Any ideas on other approaches? And yes, I have tried combining the empty gallery and it’s lightmaps with lights in Unity to create shadows; the results weren’t satisfying.

I were thinking there might be another small tool that could take care of creating and UV mapping the canvases. And then do the shadows on the walls, and the “lightmaps” on the canvases, by hand in Photoshop. With a small shadow guide it could be done quite fast and well enough so someone unsuspecting wouldn’t notice.

Does anyone know a small and easy application that could take care of the canvases for me?

Thank you for reading and helping out! I’m open for suggestions!

M.

Hello perfectcheat. Your Day At The Gallery example has always been my greatest inspiration. I try to give my suggestion how to automate and make the whole process easier.

First of all i would do research on these two 3dsMax plug-ins.

http://flatiron.3d-plugin.com/

http://www.unwrella.com/

These plug-ins may help you out on UV mapping and baking solutions.

Also you might take a look at Unity lightmapping tool.

http://unity3d.com/support/resources/unity-extensions/external-lightmapping-tool

It helps you greatly on moving back and forth from Unity and Max switching lightmaps.

http://web3d.ee/gallerytest/test001.html

I made this somewhat crude example only in just 10 minutes thanks to this lightmapping tool.

I would suggest dynamically creating the canvas’ at runtime: The scene would download an text or XML file with canvas sizes and positions as well as URL locations for the images. Then, read this file and build the simple canvas objects and texture them when the scene loads. This solution would make your gallery very reusable and not require special tools to update.

BTW, this is the best “3d gallery” I’ve ever scene – it’s inspiring.

Also, it would be nice if there were a way to ‘disengage’ the mouse from controlling the view direction – click to ‘free’ the mouse, etc.

John

Hey guys! Thanks for the kind words and all the help! You make me want to do a more impressive space. There are no lack of ideas. But when I have time.

Gotmilk:
Had a look at the two plugins and tried out the flatiron one. It’s super cool if I were to use only one lightmap for everything but I’m using so many in this scene and I always find that doing the UV optimizing on such simple shapes are best done by hand after flattening. I will try them out more in the future though! In this scene I only need to update the canvas and the three of the walls from now on though.

The Unity lightmapping tool also looks impressing and does kinda the same thing as with flatiron just with a better integration with Unity. Basically more then I need at the moment, or not exactly what I need. Will try it out on some other project I have in mind though!

Thanks a bunch!

tinrocket:
First I have to say that my coding skills are close to zero at the moment. I forget when I don’t use it constantly. Your approach would be perfect if it would work for any number of pieces, any different in sizes, automatic placement, preview and let you don changes to placement, and render out all the textures combined with the use of Max. Now that would be amazing but way beyond my skills.

If you have a script for what you mention about the mouse I would love to use it. You mean you click the Unity project and it locks the mouse to view, click again to release, right? I’m not sure why I decided not to go with that the first time around.

Cool to see that you are working on IPhone games. That’s what I’m doing at the moment. I do all the gfx, with a friend doing the code(no unity) and a third guy on sound&music. Will post some here soon. Very different from this. Are you freelancing?

Thanks for helping out man!

I’m thinking it’s best and easiest for my client to just use max to create and place the canvases, dump a uv map on them, export fbx, place front textures on them in Unity. Would take 20min. Then he can see what goes where. Update the Max file. Flatten the UVs. Optimize them, he only need the front and two sides. Would take another 15 min on all. Move into Photoshop to perfect the front and create the sides. He’ll have a template for the sides that he can darken or brighten. 1-2 hours maybe for all.

Then I have to come up with something for the walls. I’m thinking all Photoshop again. Some kind of guide texture he can look at in Unity to find out where the canvas shadows are and then place them on the right spot using a template in max. Crisp nice shadows the dirty way, but I don’t think you would notice. Maybe 2 hours work? I’m going to try that bit out now. I know it’s not optimal. But for someone who doesn’t know max, vray and texture baking (the rendering takes ages for that quality) I think it’s a quick option.

Thanks again guys!

Cheers,
M.

I do not have a script, but it would do something like:

-rotate the view in the direction of the cursor, when the cursor is near the edge of the viewport rect
-not track the view if the mouse were to leave the viewport rect
-not track the view if the mouse were near the center of the viewport rect

This seems like the ‘friendliest’ view tracking behavior

I do contract work in my spare time. I spend my working days doing non-unity programming, though.

John