Cameras: Materials: Textures:
- Textures work differently than I expected, is this by design?
- What are Channels?
- Why do projections show up as 'locked' when I open my MXS in Maxwell Studio?
- What about Scene Scale?
- I want to use an MXI/HDR background image in the Rhino viewport. How do I do this?
- I can't see the Sun in the viewport. How do I turn it on?
- What does 'There is no MAXWELL_ROOT environment variable on this machine' mean?
- The plugin does not seem to be working. What is wrong?
Question: How can I make the rendered image match what is shown in the Rhino viewport?
By default, the rendered image will match exactly what is shown in the viewport. If however, you have modified the Camera's film size, this will no longer be the case. The way to get back to the starting point is to switch the Camera back to 'Viewport' resolution mode in the Scene Manager's Camera Settings page.
It is also useful to enable the plugin's Camera Heads-up Display. This tool shows the relationship of the Camera's films size to that of the Rhino viewport, which is always 24mm x Nmm or Nmm x 24mm. If you change the Camera's film size, which puts it into 'Manual' mode, then the Camera's resolution will no longer be linked to the viewport size. This is quite advantageous, since you can set up a shot which will not be destroyed by the simple act of re-sizing the related viewport.
Question: Why aren't my Emitters working?
Maxwell Emitters behave according to real-world parameters. Therefore, it is necessary to:
- make sure your scene scale is realistic - 100W spread out over 100 sq. meters is not very bright
- make sure your emitter plane normals are facing the correct direction
- make sure your camera settings are correct
- make sure that the Emitter power is defined correctly (don't forget efficacy for watt-based emitters)
Question: How do I group Emitter objects for MultiLight?
It is often desirable to group several Emitter objects together when using Maxwell's Multilight feature. To do this in Rhino:
- if the objects are NURBS geometry, use Rhino's Mesh > From NURBS Object command to get mesh objects
- merge the meshes together using Rhino's Join command. This will result in one mesh, with several separate pieces
- compensate the wattage/power of the Emitter Material in question to account for the fact that it will now need to cover (in terms of wattage or power) all of the meshes which have just been joined
- render
Question: Textures work differently than I expected, is this by design?
Most definetely. The way to work with Textures in the plugin may seem unconventional upon first use, but it has been purposefully designed to provide a quick workflow. The first concept to understand is that there is always only one 'current' texture for each Material, if any. It is this texture which is shown in the viewport. Here are the basics of operation:
- LMB : Clicking a Texture button with the left mouse-button makes it the 'current' texture. Only one Texture is ever 'selected' for each Material. It is this Texture which will be shown in the Texture Editor, and on objects in the viewport. Selecting an empty Texture shows the untextured Material in the viewport.
- RMB : Clicking with the right mouse-button opens or closes the Texture Editor, and also sets the Texture for that button current.
- Drag-and-Drop : Textures may be dragged from a Texture button onto another Texture button, or to the Texture preview window, assigning the path of the source Texture to that of the target Texture. If CTRL is held down during the operation, not only the path will be copied, but all of the source Texture's parameters as well. Textures may be dragged also over the Material Layers Tree, making it possible to drag a Texture from one layer to another (it is the same for colors as well)
- Path Text-box : The text-box in the Texture Editor shows only the filename, rather than the entire path (which is shown in a tooltip), of the file which is assigned to it. It is not possible to directly edit the path using the keyboard, this is always done using a dialog-box shown when the 'browse' button is clicked. Because directly editing the path is not possible, paths may be cleared in one of two ways: 1) dragging an empty Texture on to the Texture you want to clear, or 2) right-clicking the path text-box and choosing 'Clear' from the context-menu that is shown
While the Material Editor does emulate Maxwell MXED in many respects, Texture-handling is one area where it makes somewhat of a departure. This aspect has been designed with the plugin's goal of providing completely-modeless operation in mind, and to accomodate real-time editing of Textures. Typical first-time out Q & A might include:
-
Q: Why doesn't left-clicking a Texture button open the Texture editor, or show a file-dialog?
A: Texture buttons are used to set the selected Texture, whether or not the Texture Editor is visible. It is designed to allow selecting different Textures in the viewport without having the Texture Editor open -
Q: Why isn't it that a Texture is selected, and the Texture Editor is shown (if hidden) when left-clicking a Texture button?
A: Similar to above, selecting a Texture is a separate action from opening the Editor. In fact, this exact sequence is accomplished by right-clicking a Texture button
Question: What are Channels, and how do I use them in Rhino?
Using the new texture-mapping tool in Rhino 4, An object may be given multiple sets of UV mapping coordinates. A set of UV coordinates (UV Set in Maxwell) may be one of several types, and is used to determine how a texture map is 'projected' onto the object it is associated with. The projector-types available in Rhino include:
- Surface : This is technically not a projection. The texture-map rectangle is basically stretched out across the object's surface
- Planar : A theoretical plane is created, sized to the bounding-box dimension of the surface which it is applied to. The texture-map rectangle is scaled to match the size of the plane, and the image pixels are projected through the plane in a direction perpendicular to it
- Box : similar to Planar, but here there are 6 planes surrounding the object, all 6 of which are mapped as with the Planar projection. An individual mesh-face's orientation determines which side of the mapping box it takes gets its coordinates from
- Spherical : The texture-map image is stretched/squished onto a theoretical sphere, that is, pixels at the center (figuring top-to-bottom) are mapped around the sphere's equator, and moving toward the top or bottom of the image, each row of pixels is compressed to fit the radius of the sphere at that cross-section height. At the top and bottom of the sphere, the last line of pixels is theoretically squished to infinity. Now, each pixel is projected onto the mapped object, using the theoretical surface normal at its location on the sphere
- Cylindrical : The texture-map is stretched to fit a theoretical cylinder, sized to enclose the object to which it is applied. Each pixel is projected onto to the mapped object using the theoretical surface normal at its location on the cylinder
- Capped Cylindrical : Identical to Cylindrical, but here the ends of the cylinder are capped and mapped using a Planar projection
A Texture's Channel number is used to determine which UV Set the Texture uses, and should be set to correspond with the index of the desired texture-mapping in Rhino's texture-mapping list:
This allows the various Textures that any Material may use to be mapped individually onto the objects which the Material is applied to, with visual adjustments possible using either the global Tile/Offset parameters in the Maxwell Texture Editor, or the per-object UV mapping controls provided by the Rhino texture-mapping tool.
Note that Rhino starts numbering mappings at 1, and prohibits the re-numbering of a mapping to 0. This is because channel 0 is reserved for the 'current' mapping shown in the viewport. The Maxwell plugin follows the same convention, so to use a Texture with a certain Rhino mapping, simply set the Texture's Channel number to the same channel number used by the desired Rhino texture-mapping. Also, because it is possible to 'skip' projector numbers (e.g. a Material with one Texture, for which the Channel is set to 4), Maxwell will give objects the channel 0 (viewport) UV coordinates for any channels which have no explicit Rhino texture-mapping channel.
Additionally, since there is never an explicit Rhino mapping on Channel 0, the plugin uses this Channel to implement the Real Scale feature. If a Texture uses Channel 0 and has Real Scale enabled, the plugin will create and maintain a special cubic mapping, which will always be sized based on [Tile X/Y x 1 meter], and will remain oriented to the object it is assigned to. This plugin-maintained orientation may be adjusted on a per-object basis using the Real Scale Texture Control section of the Maxwell Object Properties window.
Question: Why do projections show up as 'locked' when I open my MXS in Maxwell Studio?
The MXS format does not hold data about 'projectors', UV mapping is saved on the objects themselves in the form of UV data attached to each mesh triangle. So in short, it is not projectors which are written into an MXS, it is the UV coordinates that they create.
Question: What about Scene Scale?You don't need to worry about Scene Scale, the plugin translates the current Rhino drawing units into meters for Maxwell. Of course, as noted above, Emitters depend on Scene Scale being correct. Also note, if you have enabled 'Cached Meshes', and switch Rhino drawing units after the meshes have already been cached, an incorrectly-scaled Camera may be written into the MXS. So, if you change drawing units mid-session, make sure to invalidate any cached meshes by either disabling/enabling 'Cached Meshes' ( in Plug-in Options ), or by moving/adding/deleting some geometry.
Question: I want to use an MXI/HDR background image in the Rhino viewport. How do I do this?From the 'Maxwell' menu in Rhino's main menu, choose 'Show Maxwell Toolbars'. When they are shown, locate the 'Environments' toolbar:
The first four buttons, 'Background', 'Illumination', 'Reflection', and 'Refraction', may be used to set their respective environment as visible in the viewport, while the fifth ( 'None' ) disables any active channel. If no MXI/HDR has been assigned to the channel ( in Scene Manager > Environment Settings > Image Based ), the viewport will show a pale red background color. The path for the channel may be set either using the Scene Manager, or by right-clicking the toolbar button, which will show a file-browsing dialog. Note: display of Image Based Environments is not linked to their actual 'enabled' status in the Scene, it is necessary to use the Scene Manager to make sure that the Sky Type is set to 'Image Based', and that the desired channels are enabled.
Changes to the active channel's Scale/Offset parameters will be made interactively in the viewport as they are adjusted in the Scene Manager. Note that only spherical environments are implemented in this release, so it is not possible to preview the Background channel's Screen-mapped mode.
Question: I can't see the Sun in the viewport. How do I turn it on?In the Scene Manager's Location Settings page, there is a button in the toolbar next to the 'Presets' dropdown:
Use this button to toggle the Sun display in the viewport on and off.
Question: What does 'There is no MAXWELL_ROOT environment variable on this machine' mean?
The Maxwell for Rhino 4 plugin requires Maxwell Render 1.7 to be installed. If you encounter this error when attempting to load the plugin, it means that either:
- Maxwell Render is not installed on the machine. Download and install Maxwell Render 1.7 to fix the problem
- Maxwell Render is incorrectly installed on the machine. Uninstall/re-install Maxwell Render 1.7 to fix the problem
An Environment Variable is a value that is available to every application on your machine. As such, the MAXWELL_ROOT variable points to Maxwell's
home directory, and provides the ability for any application that wishes to locate Maxwell to be able to do so. So, it is very important that it is correctly
set when you install Maxwell. Usually this is no problem, but there are always cases where installation is not completely successful, and it is possible that
you may need to manually create the variable. Note that you should proceed with caution when accessing Environment Variables.
If you alter Environment Variables without having very specific reasons, you may encounter problems with the applications that rely on them.
To view your System's Environment Variables, go to: Start > right-click My Computer > Properties > Advanced > Environment variables:
If Maxwell Render is installed correctly, there should be a MAXWELL_ROOT variable present, similar to the one shown. Note that the actual path may differ, depending on where Maxwell is installed on your machine.
Question: The plugin does not seem to be working. What is wrong?
The 1.7 Maxwell for Rhino 4 plugin requires Rhinoceros 4.0 SR3, and Maxwell Render version 1.7. The plugin consists of one Rhino plugin, and four DotNet libraries :
- Maxwell.Rhino.dll
- Maxwell.dll
- Maxwell.Common.dll
- Maxwell.UI.dll
- Maxwell.Script.dll
By default, Maxwell.Rhino.dll is installed to [ProgramFiles]\Rhinoceros 4.0\Plug-ins\Maxwell\dll, though you may have chosen a different location during installation. The remaining .dll files are installed in the .Net Framework's Global Assembly Cache, which may be viewed by going to [system root]\Windows\Assembly. You may view and confirm that these libraries are installed, but you should not attempt to alter the contents of this directory manually.
If a problem is encountered, the first thing to do is to confirm that Maxwell.Rhino.dll is actually loaded. If it is not, the plugin will not be present in Rhino's Renderers list. The plugin installer sets up the registry in such a way that Maxwell should be available immediately after installation. However, if any errors occur, or if the configuration is not set up correctly, the plugin may not be automatically loaded, and it would be necessary to perform a manual load:
- go to Rhino main menu > File > Properties > Plug-ins 4.0\Plug-ins\Maxwell\dll
- if 'Maxwell for Rhino 4' is not found, Click 'Install', and browse to [Program Files]\Rhinoceros 4.0\Plug-ins\Maxwell\dll, choose Maxwell.Rhino.dll, and click 'OK'
- verify that 'Maxwell for Rhino 4' is now in the list of plugins
- click 'OK' to exit the Document Properties dialog
- Maxwell should now be installed correctly, and available in the Renderers menu
If you encounter an error during this process, it may be necessary to manually install the VC++8.0 runtime, which should normally be done by the plugin's installer, setup.exe. The VC++8.0 runtime is a file named 'vcredist_x86.exe', and it is located in a folder of the same name in the plugin download. To run this, make sure it is located in a directory you have permission to install programs from, double-click the .exe file, and follow the installer's instructions.
If these steps do not help, please note:
- your Maxwell Render version
- your Rhinoceros version (SR0, SR1, etc.)
- a list of other installed, non-standard, plugins
- confirmation that the plugin libraries are present, and located in the correct directories
- screen-shots of any error dialogs
- any log entries that may be present in Windows Event Viewer
Once you have gathered this information, send it, along with any other information available, to Next Limit tech support.