Last edited: 2013-11-25
To do stuff with the script, you need to authenticate the script. Do that by entering your api key. You only need to do that once, the script will remember the next time you run the script. Make sure you press “enter” after you’ve pasted the API key into the field.
You can get the API key for your account here: http://floorplanner.exhibitcore.com/forms/GetApi.aspx
On first run, the script asks you to authenticate
Get the API key for your account
The basic script functions very straightforward. You select one or more objects in the scene, enter a title in the script and press the big green “Publish” button. By default the script will lightbake the scene, detect transparencies and upload the result to your account on the exhibitcore floorplanner. After that, you’ll be able to use your own 3D asset in your floorplans.
There are some options however to tweak the results. These options are shown in the following sections. Mainly you can influence the lightbaking, the lighting and influence how the script deals with transparent objects.
the main ui and the most important areas highlighted
The first rollout deals with actually publishing the 3D model. For this to happen you need to either enter a new title or pick an item to replace.
When using a new title, a new 3D asset is created in your exhibitcore account. When you choose to replace an existing item, only the 3D model of that item is replaced. All other information you might have added previously will be kept.
If you choose to replace an existing item, you have to pick that item from a list. Press the “Pick…” button. This will open a popup which displays your categories. Pick a category and all items in that category will be listed. Pick an item in the right column and press the “Confirm” button. Now you’ll use that item to replace the 3D model of. Since the script will connect to the exhibitcore API building the list of items might take a few seconds.
Replacing the 3D model on an existing item you’ve uploaded earlier
After the model has been published, the script automatically opens a webpage with your model in it. Here you can view the result online, check out some properties and edit them
Check out the model online
When publishing a selection of objects a few things are done to (a copy of) your scene to ensure the model is properly lightbaked and exported.
When publishing you need to consider that only the selected objects will be published. If you’ve selected nothing, the entire scene is published. When lightbaking, only the objects which are going to be published will be baked. Other, non-selected objects will participate in the bake by casting shadows or by appearing in reflections. If you don’t want this, hide those objects before publishing.
The script will check the unit-system and make them compatible with the online floorplanner. If you’ve worked in correct units everything’s fine. you can use any unit system 3dsMax offers. If you’ve worked in an imaginary unit system, you need to rescale the model first. Otherwise the item might turn up too big or too small in the floorplanner.
When exporting, your model is repositioned towards the origin of the scene. This avoids having to deal with weird offsets in the online floorplanner. However, some objects do benefit from an offset in the z-direction: lighting fixtures, paintings, kitchen cabinets and such. You can move these objects upwards in the online floorplanner, but you can also give them a default Z-elevation when exporting. Check out the “Product options” rollout for this.
A major feature of the script is it’s lightbaking capability. This will help make you 3D models look good on your floor plans. There are some scenarios which the script supports:
- you want to unwrap and bake with automatic settings
- you want to bake, but already have unwrapped your models yourself
- you want to bake and have your own custom lighting
- you already have baked your model and don’t want to do it twice
Bake and unwrap options
The automatic lighting provides a lighting setup which will work for most objects. It’s omnidirectional and provides some “footing” to the models which makes them appear fixed to the ground. If you’ve got very bright or very dark objects in your scene, you can tweak the overall brightness of the auto-lighting.
Automatic and manual lighting
Using a lighting preview can help to determine the final look of the export. When using the “Manual” lighting option, you can also just render a preview yourself.
If you’ve got your own lighting setup and want to use that to lightbake your model: pick the “Manual” option in the lighting settings. This will tell the script to use the lights already present in the scene. All lights in the scene will be used, also hidden ones. If you want to skip lights, switch them off or delete them. You can pick a camera to use for lightbaking. If there’s no camera present, the script will create one for you.
Keep in mind that you can rotate your objects on the exhibitcore floor plans. Using a strong directional lighting element is not advised since this will look awkward if objects will be rotated. It’s good practice to keep the lighting omnidirectional.
Eventually the scene has to have one or more objects with a material. There is only one single bitmaptexture (e.g. jpg, png) allowed. The 3D engine of exhibitcore will only display objects with a single texture. If you let the script deal with the lightbaking, the export will comply to this rule. If you have already baked your object yourself and don’t want the script to do it again, you need to consider this rule. The script will notify you if there’s an issue with the object you want to publish.
The 3D engine of the floorplanner can deal with transparent materials. Objects with transparent materials are actually baked as well. In the online 3D floorplan, transparent materials are displayed by applying an opacity value to the baked texture. There are three ways to apply this opacity-value to materials:
- let the script deal with it
- set a value manually
- a combination of both
By default, the script detects if a material is transparent and to what extent. Opacitymaps are also detected. It can detect transparency on many materials:
The auto-detect only works if these materials are applied directly to objects. If a material is used in a compound material, such as a multi-sub, mask or mix-material, transparencies aren’t detected.
You can see how the scripts interprets these transparencies by either viewing a preview in the viewport or checking on a list of materials. You can also force the script to interpret certain materials as opaque or transparent. Use the buttons in the rollout to manage these overrides.
View transparencies in the scene
This scene contains objects with materials which the script considers transparent
This is a preview in the viewport of the objects with transparent materials. A legend is shown in the lower left corner of the viewport
You can also override the automatic transparency detection on a per-object basis by using a specific object naming scheme: “op_##”. If you name objects according to this scheme and enable the “Preserve custom defined transparency” option, you can completely bypass the automatic transparency detection. The naming scheme uses an opacity value. So “op_00” is 0% opaque and “op_75” is 75% opaque.
You can use either the automatic detection, or the custom bypass in a single publish. You can’t use both at the same time.
Bypass the automatic detection of transparent objects
It’s also possible to use objects with a special purpose of behaviour. You have to name these according to a special naming convention in the scene and enable the “Keep special objects” option. There are four types of special objects with their own behaviour:
- gra_ graphics objects
- sdw_ shadow object
- scr_ video screen objects
- dbl_ double sided objects
When publishing a model for the first time, a thumbnail and preview image is automatically created by making a render of the model in the chosen lighting setting. You can pick a custom image here in the script. You can also change this image later in the online exhibitcore environment.
Upload a custom thumbnail and preview image directly with the 3D model
You can send a few extra information with the uploaded model. If you’re going to upload many objects this might come in handy to synchronize product catalogs.
The Z elevation option will offset the model from the groundplane.
The script supports lightbaking with scanline, mentalray and vray. It will bake any material compatible with the renderengine you’re using. It will only detect transparencies on the materials listed in the chapter about transparencies.
Install the script by either dragging the .mzp file into a viewport or by using the menu: Maxscript > Run script…
After that a dialog appears. Press the “Install ExhibitCore Publisher [version number]” button. A dialog appears to ask you if you’re sure. If the installation has been successful, another dialog appears which tells you how to add the script to a toolbar, quad, shortcut or menu. Close the installation dialog.
The installation dialog
Are you sure?
The success message with an instruction on how to add the script to the gui
To add the script to a toolbar, use the menu: Customize > Customize User Interface… Go to the “Toolbar” tab and in the “Category” list pick the “ExhibitCore tools” item. A list of scripts in that category appears. Pick the “ExhibitCorePublisher [version number]” item and drag that to an existing toolbar or make a new toolbar for it. Save the ui layout if you want to keep it.
You can also put the script in a menu, quad, under a keyboard shortcut or a combination of these.
The customize user interface dialog
Add the script to a toolbar
The script checks for an update on a server every time it starts up. If there’s an update available, the script will notify you with a big colored button. Press it to download the update and start the installer. Follow the instructions under the “Installation” chapter. However, you don’t need to customize the gui again. Just close the installer and script and reopen the script. It’s been updated now.
An update is available, go get it
If you’re behind a proxy, you can set it up here. Either use the default proxy settings stored in the internet settings, or specify one manually. You can also enter credentials if needed. Press the “Test proxy settings” button to check if the connection works. The script tries to connect to exhibitcore.com while testing the proxy.
Testing the default proxy settings
Here’s how you upload and bake a new item:
- install the script and enter your API code
- open a scene and select the objects you want to publish
- enable texturebaking, set a texture quality, set the unwrap setting and pick a lighting setup (either automatic or manual)
- press the big green “Publish” button
- wait for the rendering process to finish
- the script opens the model online, inspect it