Importers and External Proxies
Twilight Render V2 IntermediateSeries
There are a lot of great model resources available today, offering free and paid 3D models. Unfortunately, SketchUp doesn't provide importers for most of the formats common today. In particular, .OBJ (the Wavefront Object format) and .FBX (Autodesk FBX) are today's de-facto standard and their absence in SketchUp can be painful.
Twilight Render Pro users can now import these formats, along with 3DS and Kerkythea XML, directly into SketchUp models. Not only that, Pro users can create External Proxies to render theses models without the CPU and Memory overhead of creating SketchUp geometry!
With Twilight Render Pro, you can open up a whole world of external 3D resources to create better renders, faster.
The Importer framework is built around two categories, Importing and External Proxies. Both operations work with external files in the same way, with just small variations in the workflow. Please note, this is a Twilight Render Pro feature and a license for Twilight Render Pro must be purchased and activated on the computer you are using. Also note that Twilight Render Pro V2.14 or later is required.
Importing a model is very simple. While it can be a little time consuming to load and create the geometry, there aren't many options and it's easy to do:
- In SketchUp, open the Tools menu and choose 'Twilight Render V2' and then 'Import'.
- Select the file to import. This can be .3ds, .obj, .fbx, and .xml. There is more information on the specific file formats below.
- After selecting your file and clicking 'Open', the Import Options window will open. More on that below
- Once you have set your options, click OK to begin processing the file. The Import Model window will open and you will see a bar across the bottom indicating the progress in loading the model file.
- Once the model file is loaded, you may be prompted to choose from a list of available models. Not all file formats support this, however. Once you've chosen your model and clicked 'Import Selected' (or if the format selected does not support multiple models), your model will be created in SketchUp. Note that this can be a very time-consuming process depending on the size of your model. Each face in the model must be created in SketchUp and correctly textured.
- Finally, after your model is loaded and created, the "Component Placement" tool will activate and you will be able to place your model in your scene.
Note that if you use the "Import by Proxy" import option (described below), your imported component will be a point cloud representation of the model, configured to be rendered as an external proxy. This will allow you to position and scale the model accurately (just as if it were a full import) but without the time and memory overhead of a full import.
Creating an external proxy is very similar to Importing and follows many of the same steps. However, because an external proxy does not create any geometry inside SketchUp, we need a different starting point. External proxies operate just like Component proxies in that you connect an existing SketchUp Component with a proxy. When you render, that existing SketchUp Component is replaced with a different model. When using external proxies, that model information comes from an outside file.
In order to add a proxy, we first need a SketchUp Component to act as the stand-in, geometry that will be replaced with the proxy. Typically all you need is to create a cube and turn it into a component.
The stand-in component determines where the proxy will be placed and how it will be rotated. If you scale the component, this will also affect the scale of the proxy. Essentially, anything you do to the stand in will be applied to the proxy.
It is very important to note, however, that the external proxy will always be scaled to fit inside the bounds of the stand-in geometry. In our example above, whatever proxy we choose to import will fit inside that box. That doesn't mean it will be stretched to fit, however. The aspect ratio of the original model will still be maintained. Instead of a full box, a flat component that defines a footprint can also be used (note that the component must be flat; the size along one of the cardinal dimensions must be 0).
Whether you choose to use a 3D bounding box or a 2D footprint, your proxy will always be positioned so that it's minimum boundary corner lines up with the stand-in component's minimum boundary corner.
Once you have your stand-in component, you can assign a proxy by right-clicking on the component and choosing 'Twilight Render V2' and then 'Set External Proxy'. You will see the same Import Model window described in the Importer section above (and described more completely below). However, unlike in the Import process, you will not be placing any new geometry. Instead you will be notified when the import is complete.
Now, when you render the stand-in component, your proxy geometry will be rendered instead!
Import Options Window
When importing, you will be presented with a window to choose your import options.
- Smooth edges - This option allows you to mark edges as smooth / soft. The 'Hard Edge Angle' is used to determine which edges to soften and which to leave hard.
- Hard Edge Angle - When the angle between two adjacent faces is greater than the specified value, the edge between them will be considered hard. Otherwise it will be softened. This is only applied if 'Smooth edges' is checked.
- Geometry Scale - This specifies what the units the geometry in the imported file is expected to use. This controls the initial size of the imported geometry.
- Import by Proxy - Instead of importing the entire geometry, a "point-cloud" model will be imported and configured to act as an External Proxy. This saves time over a full import but still provides a preview of what the final model will look like.
Import Model Window
The Import Model window is used to provide progress information and, for some file types, the option to choose from a list of imported models.
For most model types (3DS, OBJ, FBX), this window will only show you a progress indicator as it loads the geometry file. Once the geometry is loaded, the window will automatically close. During some stages of loading, you will be able to cancel the import by clicking the 'Cancel' button.
When importing Kerkythea XML, however, you may be presented with a list of models to choose from. This is because some Kerkythea XML files are actually libraries of models. If you are presented with a list, you can click on one of the available models and click 'Import Selected' (or double-click), or you can even choose 'Import All' to import all the available models.
Note that during the final stage of importing, when the SketchUp geometry is being created, this window will likely be unresponsive and may not accurately depict the current status. This is do to the programmatic nature of SketchUp's Ruby plugin interface.
Different file formats have different characteristics that are worth considering, especially if you have more than one option.
.OBJ (Wavefront object)
The .obj format is an industry standard that has been around for a long time. Many of the resources on the internet are available in the .obj format. Many converter programs are capable of importing and exporting this format.
That said, the .obj is fairly simple and fairly limited. You won't find models with complicated hiearchy or geometry instances. But it is generally a reliable format. However, the major drawback is that it is text-based which is always slower to import. It is a good choice for small to medium models but should generally be avoided for models with considerable amounts of geometry.
.3DS (Autodesk 3D Studio)
The .3ds format, like the .obj format, has been an industry standard for many years. However, the application that originally authored this format, Autodesk 3D Studio, was replaced in the mid-1990s. As such, it has not been improved or expanded beyond its original inception. Therefore it is limited. Additionally, many file format converters and modelers that export 3DS do a poor job of exporting the format. Many of the files available on the internet are poor quality. However, the format is a binary format which is much faster to import than text-based. Generally, the .3ds format should probably be your last choice.
.FBX (Autodesk FBX)
Essentially the current industry standard, .fbx is binary, modern, and continually developed. Of the available options, it is by far the most complete and the most reliable. However, as it is newer than the other available options, you may find fewer available models. If it is available it should generally be your first choice. Twilight Render Pro utilizes the Autodesk FBX 2019.0 SDK.
The .xml format is a text-based format for generically storing data. Just because a file is .xml format does not mean it is a Kerkythea model! However, there are many models available on the internet (and here at Twilight Render) in the Kerkythea XML format.
The Kerkythea XML format is the only format that supports multiple models in a single file. Additionally, the Kerkythea XML format is currently the only format that supports compression (typically indicated by the .KZX extension).
Note that while other formats can be modeled in any units, the Kerkythea XML format is almost always modeled in meters.
Both importing and loading an external proxy will import the model's materials into SketchUp. In the case of importing, this is logical as the created geometry will need corresponding materials. However, materials are also loaded when using external proxies. The primary motivation behind this is to allow you to edit materials for rendering.
It's critical to note that the link between external proxies and imported materials is based on the material name! If the name of the material is changed, the proxy will not render that material correctly. Additionally, if a material of the same name already exists in the SketchUp scene, the existing material will be used and will not be overwritten.
The Twilight Render Material Editor has a special material template just for imported materials, unsurprisingly called 'Import'.
The Import template provides a general purpose material that supports all the major material settings found in the available file formats. Note that not all file formats will utilize all the availbale options and not all the possible material settings are supported by the template. But most of the settings should be covered by the template.
The one major departure from this is with the Kerkythea XML format. Because it is the native format for the Kerkythea render engine, it is able to specify very specific materials. All materials from the Kerkythea XML format are imported as Deep materials.
- It's worth noting that many, if not most, 3D geometry models publicly available on the internet are very geometry heavy. Take care when importing (and always save first!) because SketchUp can become overloaded by the excessive size of the geometry.
- Twilight Render keeps importers in memory for the lifetime of the SketchUp session. That means if you have imported a model and you choose to import that model again (without restarting SketchUp or starting a new file), Twilight Render will not reload the file but will use the previously loaded data.
- If you have an external proxy in your scene, Twilight Render may need to load the file on the first render (if it hasn't previously loaded the file). Note that this may cause your first render to take longer than normal, depending on the number and size of the external proxies.