Developing 3D content is time consuming and difficult. No matter if you're working on the next blockbuster game, a thrilling VR experience, a casual mobile game or a stunning architectural visualization. To get the project to render smoothly it's quite common for 3D artists to optimize previously created 3D assets by removing polygons or merging multiple assets to reduce the amount of draw calls necessary for a scene. InstaLOD helps you save both time and money by automating the cumbersome optimization process involved in making your next project a success.
The FMX is Europe’s most influential conference dedicated to Digital Visual Arts, Technologies, and Business. Our team is happy to be present as a partner at this year's FMX showing off the power of InstaLOD SDK2018.
Meet us at FMX 2018
From the best-game studios to the most beloved automotive brands: they’re all using our leading technology. With InstaLOD SDK2018 we’re making a huge array of powerful features easily accessible to both artists and programmers alike. Killer mesh optimizations, blazing fast and high-quality remeshing, occlusion culling, state of the art imposters and AAA-grade baking are just a few of the features available in InstaLOD SDK2018. Visit our booth to get a look at our latest releases, such as InstaLOD for Unreal Engine 2018 or our new stand alone application.
We’d love to give you a personal tour of InstaLOD SDK2018 and other new products in development at FMX 2018! Get in touch with us now at [email protected] to schedule a meeting or find us at the FMX 2018 marketplace at booth number 2.2.
About FMX
Every year, VFX specialists, Animation experts as well as Games and Transmedia talents come to FMX to present cutting edge achievements, state of the art tools and pipelines, fascinating real time technologies, spectacular immersive experiences, innovative business models and more. More recently they have been joined by VR, AR, and 360° creatives who have introduced a new dimension into movie making and, more general, into entertainment. Every single one of them defines the diverse scope of the Conference program. Their contributions are complemented by the Marketplace that allows visitors to get their hands on the latest innovations of industry-leading companies and start-ups. Workshops, Masterclasses and Company Suites dig even deeper into the learnings of international companies. To round things off, top-notch studios and service providers scout talent at the Recruiting Hub and international schools present their best projects on the School Campus.
FMX is one of the world’s premier conferences to meet with the most influential players in the field. The overall organization and the intimate yet international size of the event offer professionals and students from the digital arts communities a great platform to mingle, network, and share insights about Art, Technologies and Business, at the highest level.
Visit the FMX website for tickets and more information.
With over 26,000 attendees the Game Developers Conference (GDC) is the world's largest professional game industry event.
GDC attracts over 26,000 attendees, and is the primary forum where programmers, artists, producers, game designers, audio professionals, business decision-makers and others involved in the development of interactive games and virtual reality gather to exchange ideas and shape the future of the industry. Our team is happy to be present as a partner at this year's GDC 2018 showing off the power of the latest version of InstaLOD SDK2018 and other new products that are currently in development.
Meet us at GDC 2018
With InstaLOD SDK2018 we're making a huge array of powerful features easily accessible to both artists and programmers alike.
Killer mesh optimizations, blazing fast and high-quality remeshing, occlusion culling, state of the art imposters and AAA-grade baking are just a few of the features available in InstaLOD SDK2018. Visit our booth to get a look at our latest releases, such as InstaLOD for Unreal Engine 2018 or our new stand alone application.
We'd love to give you a personal tour of InstaLOD SDK2018 and other new products in development at GDC 2018! Get in touch with us to schedule a meeting or find us at the GDC 2018 at booth number 1529.
About Game Developers Conference
GDC attracts over 26,000 attendees, and is the primary forum where programmers, artists, producers, game designers, audio professionals, business decision-makers and others involved in the development of interactive games and virtual reality gather to exchange ideas and shape the future of the industry.
This market defining conference features over 500 lectures, panels, tutorials and round-table discussions on a comprehensive selection of game development and VR topics taught by leading industry experts. In addition, the GDC expo showcases all of the most relevant development tools, platforms and services helping to drive the industry forward. The conference also features the annual Independent Games Festival, the longest-running and largest festival relating to independent games worldwide, where original games compete for the attention of the publishing community, and the annual Game Developers Choice Awards, the premier accolades for peer-recognition in the digital games industry.
Based on the choice of all participants, the organization committee of the 18th annual Volkswagen KTVT provided the Best Exhibitor Award to InstaLOD.
FOR IMMEDIATE RELEASE
Stuttgart, Germany, 22nd December 2017 – InstaLOD was presented with the prestigious Volkswagen KTVT Award for outstanding contribution to the conference.
Based on the choice of all participants, the organization committee of the 18th annual Volkswagen Konzerntagung Virtuelle Techniken (KTVT) conference provided the Best Exhibitor Award to InstaLOD. InstaLOD beat out more than 25 contestants from Fortune 500 companies to emerging tech startups.
“This award is a testament to our company’s achievements in the space”, said Manfred Nerurkar, CEO of InstaLOD, “it perfectly illustrates that InstaLOD is the first and only technology that has traction in industries with stark requirements for scalability and quality.”
About InstaLOD
InstaLOD delivers instant and fully automatic workflows for 3D productions. Customers can easily achieve more than 10x in cost-savings when creating new assets or optimizing existing data with revolutionary workflows. InstaLOD enables companies to dive into emerging technologies by retargeting existing CAD or 3D data for any target platform. From high-end CAD to VR/AR or mobile – all at the push of a button or fully integrated into data-prepping pipelines.
About Volkswagen Konzerntagung Virtuelle Techniken Conference
Hailed as one of the world’s most relevant conferences at the intersection of automotive and virtual technologies. Volkswagen KTVT returned this year for the 18th time to Wolfsburg. Both attendees and exhibitors were carefully selected and invited to the conference on a case-by-case basis by the conference committee. The list of this year’s exhibitors included the biggest US tech companies as well as Europe’s most relevant startups from the space. About 250 attendees and delegates came to Wolfsburg from every automotive brand part of the Volkswagen Group.
Slush brings together the leading actors of the global tech scene to Helsinki for something very special.
Described by many as “Burning Man meets TED”, the event has grown in just a few short years to 17,500 attendees and 1 million live stream viewers. In 2016, over 2,300 startups, 1,100 venture capitalists, and 600 journalists from over 120 countries came to Slush to drive business, and to experience the phenomenal atmosphere. Our team is happy to be attending at this year's SLUSH 2017 showing off the power of the latest version of InstaLOD SDK2.
Meet us at SLUSH 2017
With InstaLOD SDK2 we're making a huge array of powerful features easily accessible to both artists and programmers alike.
Killer mesh optimizations, blazing fast and high-quality remeshing, occlusion culling, state of the art imposters and AAA-grade baking are just a few of the features available in InstaLOD SDK2.
We'd love to talking about our plans for 2018 and give you a personal tour of InstaLOD at SLUSH 2017! Get in touch with us now at [email protected] to schedule a meeting at SLUSH 2017.
About SLUSH 2017
SLIUSH 2017 — running Nov 30 - Dec 1, 2017 in Helsinki: NOT THE CALIFORNIAN SUN, BUT HONEST SLUSH. Slush has grown from a 300 person assembly to a world-renowned event, now spreading globally. The philosophy behind Slush has remained the same: to help the next generation of great, world-conquering companies forward.
Held during the darkest time of the year in Helsinki, Finland, Slush has always been characterized by a unique energy and enthusiasm. The very core of Slush is to facilitate founder and investor meetings and to build a world-wide startup community.
Think of Slush as a collision of a festival and a conference. It’s not a business, but a community of people who love what they do.
Running October 26-28, 2017 at the Javits Center in NYC, NY VR Expo is the premier event for VR/AR new emerging technologies on the east coast.
A variety of educational seminars, demonstrations, and presentations will be scheduled throughout the NYVR conference to provide attendees with a level of networking and learning not available on the East Coast — until now. Our team is happy to be present as a partner at this year's NY VR Expo 2017 showing off the power of the latest version of InstaLOD SDK2.
Meet us at NY VR Expo 2017
With InstaLOD SDK2 we're making a huge array of powerful features easily accessible to both artists and programmers alike.
Killer mesh optimizations, blazing fast and high-quality remeshing, occlusion culling, state of the art imposters and AAA-grade baking are just a few of the features available in InstaLOD SDK2.
We'd love to give you a personal tour of InstaLOD SDK 2 Update 3 at NY VR Expo 2017! Get in touch with us now at [email protected] to schedule a meeting or find us at the NY VR EXPO 2017 at booth number 312.
About NY VR Expo
NYVR Expo — running October 26-28, 2017 at the Javits Center in NYC — is for everyone eager to learn how virtual and augmented reality technologies can impact their lives now and in the future, with dozens of seminars touching on a broad range of VR and AR topics.
Plus: See the very latest in VR/AR technology from numerous manufacturers, suppliers, and VR/AR applications.
With InstaLOD SDK2 we’ve put a wide array of powerful and easily accessible features into the hands of both 3D artists and programmers alike.
Today, I am pleased to announce the immediate availability of InstaLOD SDK2 Update 3. Enabling many different industries to bring their content into any application – from VR applications to killer AAA titles. Highest quality mesh optimizations, blazing fast and high-quality remeshing, occlusion culling, state of the art imposters and AAA-grade baking are just a few of the many features we have introduced with InstaLOD SDK2. At SIGGRAPH 2017 the response to our tools and workflows we showcased at our booth was phenomenal - and I cannot wait to get your feedback on the new InstaLOD SDK2 Update 3.
InstaLOD SDK2 Update 3 comes with many exciting new features and improvements. With the latest iteration of Smart Optimizer V2 our team keeps pushing the frontier of what is considered to be possible with polygon optimization. Other features include support for large texture data, automatically inserting UV splits for normal splits and a new HD multi-pass dithering when down sampling 16bpp data to 8bpp to bake beautiful normal-maps with reduced banding artifacts. These are just a few out of more than 100 significant new features, improvements and changes.
InstaLOD SDK2 Update 3 also marks the availability of InstaLOD for Unity – the perfect integration of InstaLOD into the Unity 3D engine. All features are available and neatly integrated into the tech: create high-quality polygon optimizations, remove hidden polygons, or merge your entire scene into a single texture – all at the push of a button.
As always, we want to make sure that new teams are aware of all features and workflows that are enabled by InstaLOD. That’s why we’re offering free SDK2 introduction sessions via video conferencing to ensure that your team is productive right from the start. The introduction will showcase SDK2 Update 3 using InstaLOD for Autodesk Maya – so it’s just perfect for every artist. But we think that both programmers and producers will benefit from the demo, too, as it helps to comprehend the functionality and productivity improvements gained when using InstaLOD.
Get in touch with us now at [email protected] to schedule your introduction session and start your free InstaLOD SDK2 evaluation today.
InstaLOD SDK2 empowers 3D content creators to ship their creations faster, with more content and lower production cost. Tedious workflows like manual retopology, UV unwrapping or complex baking setups as well as productivity killing export and import iterations can be either fully automated with InstaLOD or dramatically reduced. Here is what Declan Doyle, the technical director behind the recently released HYPERCHARGE: Unboxed, had to say about using InstaLOD for the production of their title:
“A high profile asset that will require a lot of polish may take a few days to weeks in most pipelines. This is mainly driven by the numerous steps taken to achieve a final game ready asset, but the one’s most time consuming can be the final low poly, UV layout, baking and LOD generation depending on final model complexity. These four steps alone can eat up hours to days’ worth of work. When we can minimize the time it takes to complete those tasks alone with InstaLOD in our pipeline, we are able to focus more on a polished asset on the first run and produce more content. […] There were numerous assets we wanted to have in the game for the Early Access release of HC:U, and without InstaLOD, release could have been delayed. I swear, those InstaLOD guys are pure wizards. They’ve helped to make HC:U possible for our fans and the feedback we have received has been tremendous because we had InstaLOD in our pipeline.”
Make sure to check out both HYPERCHARGE: Unboxed and their case-study about InstaLOD.
This page will help you to get up to speed with InstaLOD for Unity in minutes.
Table of Contents
What is InstaLOD for Unity
Prerequisites
Installing InstaLOD for Unity
Updating from a previous version of InstaLOD for Unity
Machine Authorization
Machine Deauthorization
Using InstaLOD for Unity
Create a game object LOD chain
Using the InstaLOD Toolkit
Vertex based optimization weights
InstaLOD Data Cache
Contributing to this document
Website
What is InstaLOD for Unity
InstaLOD for Unity enables you to optimize 3D meshes and scenes from within Unity. Full support for both static and skeletal meshes optimizations as well as complex mesh operations make InstaLOD the ultimate solution for 3d optimization in Unity.
Prerequisites
InstaLOD for Unity currently supports all engine versions from 2017 to the latest stable version on both Windows PC and MacOS. InstaLOD has been built on Windows 10 using Visual Studio 2015. If you are using an earlier version of Windows, the installation of the Visual Studio 2015 redistributables is required.
Installing InstaLOD for Unity
To get started, copy the InstaLOD folder to your project's Assets folder. The next time you will open your Unity project the InstaLOD plugin will be available.
Updating from a previous version of InstaLOD for Unity
Before installing the latest version of InstaLOD for Unity, delete the InstaLOD folder from your project's Assets folder. Install the latest version of InstaLOD for Unity as described in the previous chapter.
Machine Authorization
Your workstation needs to be authorized before InstaLOD for Unity can be used. Spawn either the InstaLOD or the InstaLOD Toolkit window by selecting it from the Window menu. Enter your license information and press Authorize to request a license for your workstation. Once a license has been installed InstaLOD for Unity is fully operational. Your workstation is now authorized for use with InstaLOD. Make sure to deauthorize your workstation before uninstalling InstaLOD or you will not be able to authorize another workstation.
Machine Deauthorization
It is important to deauthorize your machine before uninstalling InstaLOD for Unity or your seat/node will remain locked. To deauthorize your workstation, spawn either the InstaLOD or the InstaLOD Toolkit window by selecting it from the Window menu. Click on the ? tab and select the Deauthorize to display the deauthorization UI elements. Enter your license information and press Deauthorize Workstation to deauthorize your workstation.
Deauthorization takes 24 hours to complete. Until the deauthorization cycle is fully complete the seat/node will remain locked and cannot be used to activate another machine.
Using InstaLOD for Unity
InstaLOD is fully integrated into Unity and all features are now available to you. All operations run offline and asynchronous inside Unity, so you can keep on working on your scene while your data is being processed.
Create a game object LOD chain
InstaLOD supports automatic LOD generation for both static and skinned meshes. To create a LOD chain for your game object, select the game object in the viewport or hierarchy and spawn the InstaLOD window by selecting it from the Window menu. If the selected game object has either a Mesh Renderer or a Skinned Mesh Renderer assigned the InstaLOD window will update to prompt you to create a LOD Group component for the select game object. Once the selected game object has a LOD Group component assigned, the InstaLOD window will update to display the LOD setup of the game object. By default, a Unity LOD group contains three entries and only the first entry is properly setup with the base mesh. Press Create missing LODGroup entry and InstaLOD will automatically create the missing mesh for the selected LOD group entry. By default, newly created LOD group entries are setup to use 50% triangles of the previous LOD group entry. Therefore, pressing the Create missing LODGroup entry again to create LOD2 will create another optimization at 25% triangles in relation to the base mesh. To create additional LOD group entries or modify when individual LOD group entry transition occurs, simply modify the LOD Group assign to the game object. Right-clicking on the LOD Group component UI allows you to insert or delete entries, dragging the separator allows you to change when the transition occurs. All per game object InstaLOD settings will be persisted in the InstaLODSettingsComponent that is automatically assigned to your game object.
By default, InstaLOD will perform a polygon optimization when creating new LOD chain entries. However, InstaLOD for Unity also supports the creation of imposters and remeshed geometry as LOD chain entry by changing the Mesh Operation value.
Using the InstaLOD Toolkit
The InstaLOD Toolkit enables Unity developers to perform complex mesh operations inside Unity that are normally only available in DCC tools. Easily remesh large scenes or 3d scanned data, create high-quality imposters, merge all your scene materials onto a single texture or remove hidden faces from your geometry. Nearly the entire suite of InstaLOD's powerful mesh operations is available, right inside Unity. To get started, spawn the InstaLOD Toolkit window by selecting it from the Window menu. Select the mesh operation you want to perform and select all meshes that you want to process in the viewport or the hierarchy. All selected materials and the number of meshes will be displayed in the toolbox. Configure the settings for the mesh operation and press the confirmation button at the bottom of the window to start the mesh operation.
Please refer to the InstaLODCmd SDK2 documentation for an overview of all features. Teams using InstaLOD SDK 2 have the option of getting a private introduction session via Skype video. Please get in touch with us to schedule your session.
Vertex based optimization weights
InstaLOD supports vertex color based optimization weights when performing polygon optimizations. This is a great way to give artists full control over the optimization.
Vertex Pinning, use the blue vertex color channel to mark vertices as important. Values between [0...1] will increase the weight of the vertex. A value of 1 marks the vertex as pinned and therefore not as collapsible.
Vertex Cullable Detail, use the red vertex color channel to mark vertices as cullable detail. Values between [0...1] will decrease the weight of the vertex. A value of 0 means the vertex will be culled as early as possible.
InstaLOD will only accept vertex color channels that have an empty green channel. Avoid using both RED and BLUE for a single vertex. If both RED and BLUE colors are used on the same vertex the high color value will determine the weighting type. It is recommended to use pinning instead of culling, to avoid interfering with the optimization strategy of the optimizer. To enable vertex based optimization weights, check the Vertex Colors As Weights checkbox under the Advanced settings of the Optimize operation.
InstaLOD Data Cache
InstaLOD automatically creates a folder called InstaLOD Data inside your projects Assets folder. This folder contains all mesh, material and texture data that was created by InstaLOD. Persisting this data to the disk is an important step when creating data for Unity, in order to facilitate the creation of prefabs that contains data generated by InstaLOD. It is recommended to purge unused data from the InstaLOD Data folder from time to time.
Contributing to this document
The InstaLOD documentation efforts are open-sourced and we welcome third-party contributions. Feel free to contribute to our documentation by submitting pull-requests to our documentation repository on GitHub.
Website
Please visit http://www.InstaLOD.io to stay up to date!
Three months have passed since the introduction of InstaLOD SDK2, a defining release that was more than 1½ years in development.
Today, I am pleased to announce that InstaLOD SDK2 Update 2 is now available to our customers. With InstaLOD SDK2 we've made a wide spectrum of powerful features easily accessible to both 3D artists and programmers alike. Killer mesh optimizations, blazing fast and high-quality remeshing, occlusion culling, state of the art imposters and AAA-grade baking are just a few of the many features introduced with InstaLOD SDK2. Feedback on the first iteration of SDK2 has been outstanding and once again, I cannot wait to get your feedback on InstaLOD SDK2 Update 2.
InstaLOD SDK2 Update 2 contains many new features and improvements that our team did not finalize on time for the initial release of SDK2. These developments include the second iteration of our Smart Optimizer tech, support for multiple vertex color channels, per pixel UV transforms and remeshing/reconstruction of non-watertight surfaces without the creation of interior-/backfaces. But Update 2 also contains many improvements that have been requested by our customers: EXR texture import and export, support for regular expression based mesh filters, enterprise offline authorizations and much more. These are just a few out of more than one hundred changes and improvements of InstaLOD SDK2 Update 2.
InstaLOD SDK2 Update 2 also marks the availability of InstaLOD for Autodesk 3ds Max - with support for version 2014 and later versions.
As with our last release, we want to make sure that everyone is getting the most out of SDK2 Update 2. That’s why we’re onboarding teams on a case-by-case basis. At the same time, we’re offering free SDK2 introduction sessions via videoconferencing to ensure that your team is productive right from the start. The introduction will showcase SDK2 Update 2 using InstaLOD for Autodesk Maya, but we think that programmers will benefit from the demo as well, as it helps to comprehend the functionality of SDK2.
Make sure to get in touch with us now at to schedule your introduction session and start using InstaLOD SDK2.
SIGGRAPH is the world’s largest, most influential annual conference and exhibition in computer graphics and interactive techniques.
Five days of research results, demos, educational sessions, art, screenings, and hands-on interactivity featuring the community’s latest technical achievements, and three days of commercial exhibits displaying the industry's current hardware, software, and services. Our team is happy to be present as a partner at this year's Siggraph 2017 showing off the power of the latest version of InstaLOD SDK2.
Meet us at SIGGRAPH 2017
With InstaLOD SDK2 we're making a huge array of powerful features easily accessible to both artists and programmers alike.
Killer mesh optimizations, blazing fast and high-quality remeshing, occlusion culling, state of the art imposters and AAA-grade baking are just a few of the features available in InstaLOD SDK2.
We'd love to give you a personal tour of InstaLOD SDK 2 Preview 2 at SIGGRAPH 2017! Get in touch with us now at [email protected] to schedule a meeting or find us at the SIGGRAPH 2017 at booth number 1208.
About SIGGRAPH
The 44th SIGGRAPH Conference on Computer Graphics and Interactive Techniques: five days of research breakthroughs, alternative realities, advanced training, digital-media extravaganzas, human-computer interaction, creative collaboration, and tomorrow's technologies.
Research
Posters and talks summarize early-stage research and encourage live interaction with the presenters. Theoretical or critical research papers thoroughly cite relevant previous work and rigorously demonstrate the validity of their conclusions. Although all SIGGRAPH submissions are peer-reviewed, research papers undergo a more formal, journal-quality review process and are published in citable archives.
Learning
These educational opportunities and discussion forums include formal presentations, sharing of practical experience, and discussion of issues in computer graphics and interactive techniques. They allow attendees to “get up to speed” quickly in new technologies, hear from active practitioners, and share ideas about problems that need to be solved and new areas of exploration.
Experiences
In experiential programs, SIGGRAPH 2017 attendees observe and interact with apps, demos, and hands-on labs that showcase everything from mobile VR to haptic technologies, real-time game sequences, 3D printing, and immersive realities.
Computer Animation Festival
For this annual festival of the world's most innovative, accomplished, and amazing digital film and video, a prestigious international jury reviews hundreds of submissions and presents the best work of the year in two programs.
Events
Join the international SIGGRAPH community for festive and adventurous events that illuminate the past, present, and future of computer graphics and interactive techniques.
This page will help you to get up to speed with InstaLOD for Autodesk 3ds Max SDK 2.
What is InstaLOD for Autodesk 3ds Max SDK 2
InstaLOD for Autodesk 3ds Max enables you to optimize 3D meshes without having to leave your favorite DCC tool. The integration features a graphical user interface, supports complex batch operations and can be scripted with its MAXScript scripting based API. Great care has been taken to ensure a high degree of usability and productivity even when using InstaLOD for Autodesk 3ds Max for the first time.
Please refer to the InstaLODCmd SDK2 documentation for an overview of all features.
Teams using InstaLOD SDK 2 Update 2 have the option of getting a private instruction session via Skype video. Please get in touch with us to schedule your session.
Table of Contents
Compatibility
Prerequisites
Installing InstaLOD for 3ds Max
Getting started with Autodesk 3ds Max
Optimizing a single mesh
Optimizing multiple meshes
Creating batch operations
Deleting batch profiles
Exporting settings and batch profiles for InstaLODCmd
Scripting InstaLOD for Autodesk 3ds Max via Python or MAXScript
Pre- and post optimization callbacks
Optimizing via script
Scripting with Python
Known Limitations
Website
Compatibility
The following versions of Autodesk 3ds Max are supported: 2014, 2015, 2016 and 2017.
Prerequisites
InstaLOD for Autodesk 3ds Max uses InstaLODCmd as backend for optimization operations. InstaLODCmd must be installed before you can start using InstaLOD for Autodesk 3ds Max. Please refer to the InstaLODCmd documentation on how to install InstaLODCmd on your workstation.
Installing InstaLOD for 3ds Max
Once you have installed and authorized InstaLODCmd on your workstation unzip the InstaLOD for 3ds Max file.
Installation
Copy the InstaLOD_3dsMaxIntegration.ms file into your 3ds Max startup scripts folder \scripts\startup, normally found within your 3ds Max user folder at \Users\<your-username>\AppData\Local\Autodesk\3dsMax\<3dsmax-version>\<3dsmax-language>. More information on how to install startup scripts can be found in the Autodesk 3ds Max Documentation for Startup Scripts.
Getting started with Autodesk 3ds Max
Once the integration's script file is copied to your 3ds Max's scripts folder you can start 3ds Max. The script will automatically create the InstaLOD menu item, that can be used to spawn the InstaLOD settings window.
If the InstaLOD window has been closed, it can be spawned again by selecting InstaLOD->Open Window... from 3ds Max's main menu.
On the first start of InstaLOD, it is necessary to point InstaLOD for 3ds Max to the installation directory of InstaLODCmd. Click the Browse...-button and browse to the InstaLODCmd installation directory on your workstation.
If InstaLODCmd was found in the specified directory the window contents will change. If your machine has already been authorized for InstaLOD you can start using InstaLOD for Autodesk 3ds Max now. If your machine has not been authorized for InstaLOD yet you can enter your license information in the dialog to authorize your workstation.
Please refer to the InstaLODCmd SDK2 documentation for an overview of all features.
Teams using InstaLOD SDK 2 Update 2 have the option of getting a private instruction session via Skype video. Please get in touch with us to schedule your session.
Optimizing a single mesh
To optimize a mesh select the mesh in the viewport or hierarchy. Select the Optimize-tab in the InstaLOD window and enter the percentage of triangles for the output mesh in the Percent Triangles text field. Click the Optimize Selected Meshes button to optimize the mesh. 3ds Max will export the geometry for InstaLOD and start the optimization. Once the geometry has been exported InstaLOD will execute the mesh operation asynchronously.
Both skeletal and static meshes are supported by InstaLOD for 3ds Max. The image above shows the UI of InstaLOD for Autodesk 3ds Max docked to the right side of the window. The InstaLOD window can be docked and undocked like other native 3ds Max windows.
Optimizing multiple meshes
InstaLOD SDK 2 introduces a new feature called 'Global Optimization'. Optimizing multiple meshes in a single operation with global optimization enabled allows the optimizer to consider all input meshes when executing the operation. This results in the lowest visual deviation for the input meshes as a whole. Global optimization is enabled by default, but can be disabled by unchecking the checkbox in the Advanced Settings found on the Optimize-tab.
Optimizing multiple meshes works identical to the optimization of a single mesh. Select all meshes to be optimized in the viewport or hierarchy, enter the optimization target value and click the Optimize Selected Meshes button to optimize all currently selected and visible meshes.
Creating batch operations
By right-clicking on the mesh operation execution button and selecting Save as Batch-Profile... the current mesh operation settings will be saved as batch profile inside the directory of your InstaLODCmd installation. On the Batch-tab one saved profiles can be selected and executed on the current mesh selection in parallel. This is a great way to create a complete LOD chain with a single click.
Deleting batch profiles
To delete a saved batch profile open the Batch-tab. Right click on the Execute Batch button and select Delete selected Batch Profiles to delete all selected profiles.
Exporting settings and batch profiles for InstaLODCmd
To export a profile that can be used with InstaLODCmd without modification. Configure your mesh operation and right click the mesh operation execution button and select Export as InstaLODCmd Profile.... Another great feature of InstaLOD for Autodesk 3ds Max is the ability to create and export multi operation batch profiles for InstaLODCmd. To export a multi operation batch profile open then Batch-tab and select all saved batch profiles that will be included in the multi operation. Right click the Execute Batch button and select Export as InstaLODCmd Profile... to export the profile for InstaLODCmd.
Profiles exported with InstaLOD for Autodesk 3ds Max have a hard-coded profile name of 3dsMax. When queuing files with InstaLODCmd the profile needs to be specified:
Scripting InstaLOD for Autodesk 3ds Max via Python or MAXScript
InstaLOD for Autodesk 3ds Max can be scripted using both Python and MAXScript. The integration's callback system enables developers to prepare texture and geometry data before submitting it to InstaLOD for optimization. One such example would be custom materials that are flattened and converted to layered standard materials during the pre-optimization callback and converted back into a custom material in the post-optimization callback.
Pre- and post optimization callbacks
InstaLOD for Autodesk 3ds Max provides two functions that are invoked pre and post optimization for each object used in the operation. To hook into these callbacks, simply implement the MAXScript functions listed in the table below in the global namespace.
Callback Name Argument 1 Argument 2 InstaLOD_Event_WillExecute (string) operation type (node) object InstaLOD_Event_DidExecute (string) operation type (node) object
The InstaLOD_Event_WillExecute callback will be invoked during an undo chunk, so it is recommended to only perform operations on the object that fully support undo. Once control returns back to 3ds Max the undo chunk will be rolled back and the object will be reverted to it's original state before running the optimization.
Optimizing via script
When using InstaLOD for 3ds Max via Script (MAXScript or Python) it is necessary to invoke the MAXScript function InstaLOD_Initialize() prior to using any of the optimization functionality.
InstaLOD for Autodesk 3ds Max saves all settings that are relevant to building optimization profiles in nested structures. The naming convention for the settings is INSTALOD_SETTINGS_INSTANCE.InstaLOD_[type]Settings.[field] where [type] is the mesh operation type and field is a corresponding settings field e.g. INSTALOD_SETTINGS_INSTANCE.InstaLOD_OptimizeSettings.PercentTriangles. The [field] names are matching the names of variables defined in the InstaLOD C++ SDK.
function InstaLOD_Initialize() Initializes the integration.
function InstaLOD_IsCurrentInstaLODCmdPathValid() Determines if the current InstaLODCmdPath is valid.
function InstaLOD_GetLicenseInfo() Returns a string containing InstaLOD license information. This method requires the InstaLODCmd path to be setup.
function InstaLOD_ResetSettings respawnUI:true Resets all settings to default values. Set respawnUI to true to automatically recreate the InstaLOD user interface, true by default.
function InstaLOD_OptimizeMesh meshObject optimizeType &outErrorLog externalProfilePath: allowAsync:true Optimizes the specified meshObject using the specified optimizeType. outErrorLog is a string reference that will contain error information. Optionally externalProfilePath can be specified to load a json profile from the disk. If no externalProfilePath is specified, a profile will be built from the settings structs.
function InstaLOD_OptimizeMeshes objectArray optimizeType &outErrorLog externalProfilePath: allowAsync:true Optimizes the meshes specified in the objectArray using the specified optimizeType. outErrorLog is a string reference that will contain error information. Optionally externalProfilePath can be specified to load a json profile from the disk. If no externalProfilePath is specified, a profile will be built from the settings structs.
Before an optimization can be started via script. The InstaLOD settings structs need to be setup to match the desired operation. The following MAXScript example sets the mesh operation type to Optimize and optimizes a mesh with the name Sphere to 50% triangles.
InstaLOD for Autodesk 3ds Max does not provide a native Python API. However, invoking the MAXScript API from Python works as a quality workaround. The following Python-example sets the mesh operation type to Optimize and optimizes two meshes with the name Sphere001 and Sphere002 to 50% triangles.
import MaxPlus import pymxs # querying a struct value as FPValue type currentPercentTriangles = MaxPlus.Core.EvalMAXScript("INSTALOD_SETTINGS_INSTANCE.InstaLOD_OptimizeSettings.PercentTriangles"); print("Percent Triangle is set to: " + str(currentPercentTriangles.GetFloat())); # reset all settings to their defaults pymxs.runtime.execute("::InstaLOD_ResetSettings respawnUI:false;"); # set Optimize settings pymxs.runtime.execute("INSTALOD_SETTINGS_INSTANCE.InstaLOD_OptimizeSettings.PercentTriangles = 50.0;"); # create errorLog string pymxs.runtime.execute("errorLog = \"\";"); # execute optimization on object (without async) # pymxs.runtime.execute("::InstaLOD_OptimizeMesh (getNodeByName \"Sphere001\") \"Optimize\" &errorLog allowAsync:false;"); # execute optimization on multiple objects (without async) pymxs.runtime.execute("::InstaLOD_OptimizeMeshes #((getNodeByName \"Sphere001\"), (getNodeByName \"Sphere002\")) \"Optimize\" &errorLog allowAsync:false;");
Known Limitations
There are currently no known limitations.
Website
Please visit http://www.InstaLOD.io to stay up to date!
After more than 1½ years in development, I am thrilled to announce that starting today we begin the process of rolling out InstaLOD SDK2 Preview 1.
With InstaLOD SDK2 we're making a huge array of powerful features easily accessible to both artists and programmers alike. Killer mesh optimizations, blazing fast and high-quality remeshing, occlusion culling, state of the art imposters and AAA-grade baking are just a few of the many features available in InstaLOD SDK2. Early feedback on SDK2 has been absolutely phenomenal and we cannot wait to get your feedback on SDK2.
SDK2 offers more than one hundred new features and improvements that allow for exciting new productivity-boosting workflows. We want to make sure that every company is getting the most out of SDK2. That’s why we’re onboarding teams on a case-by-case basis. At the same time, we’re offering free SDK2 introduction sessions via Skype video to ensure that your team is productive right from the start. The introduction will showcase SDK2 using InstaLOD for Autodesk Maya, but we think that programmers will benefit from the demo as well, as it helps to comprehend the functionality of SDK2.
We’ve spent countless hours testing SDK2 on a wide spectrum of different types of geometry in all kinds of scenarios. We consider InstaLOD SDK2 to be highly stable and fit for production. This release carries the preview tag as certain secondary elements are still missing: the updated website, InstaLOD for Autodesk 3ds max as well as tutorial videos and further documentation. But we didn’t want to keep you waiting any longer!
Make sure to get in touch with us now at to schedule your introduction session and start using InstaLOD SDK2.
InstaLOD Indie SDK 2 will be available soon. All customers of InstaLOD Indie SDK 1 will receive a free upgrade to InstaLOD Indie SDK 2.
The FMX is Europe’s most influential conference dedicated to Digital Visual Arts, Technologies, and Business. Our team is happy to be present as a partner at this year's FMX showing off the power of InstaLOD SDK2.
Meet us at FMX 2017
With InstaLOD SDK2 we're making a huge array of powerful features easily accessible to both artists and programmers alike.
Killer mesh optimizations, blazing fast and high-quality remeshing, occlusion culling, state of the art imposters and AAA-grade baking are just a few of the features available in InstaLOD SDK2.
We'd love to give you a personal tour of InstaLOD SDK 2 Preview 1 at FMX 2017! Get in touch with us now at [email protected] to schedule a meeting or find us at the FMX 2017 marketplace at booth number 3.2.
About FMX
Every year, VFX specialists, Animation experts as well as Games and Transmedia talents come to FMX to present cutting edge achievements, state of the art tools and pipelines, fascinating real time technologies, spectacular immersive experiences, innovative business models and more. More recently they have been joined by VR, AR, and 360° creatives who have introduced a new dimension into movie making and, more general, into entertainment. Every single one of them defines the diverse scope of the Conference program. Their contributions are complemented by the Marketplace that allows visitors to get their hands on the latest innovations of industry-leading companies and start-ups. Workshops, Masterclasses and Company Suites dig even deeper into the learnings of international companies. To round things off, top-notch studios and service providers scout talent at the Recruiting Hub and international schools present their best projects on the School Campus.
FMX is one of the world’s premier conferences to meet with the most influential players in the field. The overall organization and the intimate yet international size of the event offer professionals and students from the digital arts communities a great platform to mingle, network, and share insights about Art, Technologies and Business, at the highest level.
Visit the FMX 2017 website for tickets and more information.
Getting Started with InstaLOD for Autodesk Maya SDK 2
This page will help you to get up to speed with InstaLOD for Autodesk Maya SDK 2.
What is InstaLOD for Autodesk Maya and Maya LT SDK 2
InstaLOD for Autodesk Maya and Maya LT enables you to optimize 3D meshes without having to leave your favorite DCC tool. The integration features a graphical user interface, supports complex batch operations and can be scripted with its mel scripting based API. Great care has been taken to ensure a high degree of usability and productivity even when using InstaLOD for Autodesk Maya for the first time.
Please refer to the InstaLODCmd SDK2 documentation for an overview of all features.
Teams using InstaLOD SDK 2 Update 2 have the option of getting a private instruction session via Skype video. Please get in touch with us to schedule your session.
Table of Contents
Compatibility
Prerequisites
Installing InstaLOD for Maya and Maya LT
Maya Windows Installation
Maya MacOS Installation
Maya LT Windows Installation
Maya LT MacOS Installation
Getting started with Autodesk Maya LT
Getting started with Autodesk Maya
Optimizing a single mesh
Optimizing multiple meshes
Creating batch operations
Deleting batch profiles
Exporting settings and batch profiles for InstaLODCmd
Scripting InstaLOD for Autodesk Maya via Python or MEL
Pre- and post optimization callbacks
Optimizing via script
Scripting with Python
Known Limitations
Website
Compatibility
InstaLOD for Autodesk Maya and MayaLT runs on both MacOS and Windows. The following versions of Autodesk Maya are supported: 2014, 2015, 2016 and 2017. The following versions of Autodesk Maya LT are supported: 2016 LT and 2017 LT.
Prerequisites
InstaLOD for Autodesk Maya and Maya LT uses InstaLODCmd as backend for optimization operations. InstaLODCmd must be installed before you can start using InstaLOD for Autodesk Maya and Maya LT. Please refer to the InstaLODCmd documentation on how to install InstaLODCmd on your workstation.
InstaLOD for Autodesk Maya supports authorizing licenses and displaying license info from within Maya. Due to limitations in Maya LT, this feature is only available in non-LT versions.
Installing InstaLOD for Maya and Maya LT
Once you have installed and authorized InstaLODCmd on your workstation unzip the InstaLOD for Maya file distribution. Maya installs third-party plug-ins into a platform specific folder. Installation varies depending on the version of Maya you are using and your operating system.
Maya Windows Installation
Copy the InstaLOD_MayaIntegration.mel file to your Maya script folder, normally found at \Users\your-username\Documents\maya\scripts.
Maya MacOS Installation
Copy the InstaLOD_MayaIntegration.mel file to your Maya script folder, normally found at ~/Library/Preferences/Autodesk/maya/scripts.
Maya LT Windows Installation
Copy the InstaLOD_MayaIntegration.mel file to your Maya script folder, normally found at \Users\your-username\Documents\maya\scripts. Copy the file MayaLT.bat to your InstaLODCmd installation direction.
Maya LT MacOS Installation
Copy the InstaLOD_MayaIntegration.mel file to your Maya script folder, normally found at ~/Library/Preferences/Autodesk/maya/scripts. Copy the file MayaLT.app to your InstaLODCmd installation direction.
Getting started with Autodesk Maya LT
One of the limitations of Autodesk Maya LT is its inability to launch child processes. To circumvent this limitation we've extended InstaLODCmd in a way that it can listen for incoming mesh operation requests. In order to start and prepare InstaLODCmd for use with Autodesk Maya LT you have to double-click the MayaLT.bat (Windows) or MayaLT.app (MacOS) program before you can use InstaLOD from within Maya. The rest of the workflow is identical to the non LT version and therefore you can follow the regular guide from this point on.
Getting started with Autodesk Maya
Once the integration's script file is copied to your Maya scripts folder you can start Maya. To open the InstaLOD window, type the following MEL command in the Maya Command Line.
InstaLOD;
If you want to automatically initialize InstaLOD whenever Maya starts. Create a file called userSetup.mel in your Maya script folder. Enter the following MEL command in the newly created file and save it:
InstaLOD_MayaIntegration;
More information on how to run MEL commands whenever Maya starts up is available on the Autodesk website.
If the InstaLOD window has been closed, it can be spawned again by selecting InstaLOD->Open Window... from Maya's main menu.
On the first start of InstaLOD, it is necessary to point InstaLOD for Maya to the installation directory of InstaLODCmd. Click the Browse...-button and browse to the InstaLODCmd installation directory on your workstation.
If InstaLODCmd was found in the specified directory the window contents will change. If your machine has already been authorized for InstaLOD you can start using InstaLOD for Autodesk Maya now. If your machine has not been authorized for InstaLOD yet you can enter your license information in the dialog to authorize your workstation.
Please refer to the InstaLODCmd SDK2 documentation for an overview of all features.
Teams using InstaLOD SDK 2 Update 2 have the option of getting a private instruction session via Skype video. Please get in touch with us to schedule your session.
Optimizing a single mesh
To optimize a mesh select the mesh in the viewport or hierarchy. Select the Optimize-tab in the InstaLOD window and enter the percentage of triangles for the output mesh in the Percent Triangles text field. Click the Optimize Selected Meshes button to optimize the mesh. Maya will export the geometry for InstaLOD and start the optimization. Once the geometry has been exported InstaLOD will execute the mesh operation asynchronously.
Both skeletal and static meshes are supported by InstaLOD for Maya. The image above shows the UI of InstaLOD for Autodesk Maya docked to the right side of the window. The InstaLOD window can be docked and undocked like other native Maya windows.
Optimizing multiple meshes
InstaLOD SDK 2 introduces a new feature called 'Global Optimization'. Optimizing multiple meshes in a single operation with global optimization enabled allows the optimizer to consider all input meshes when executing the operation. This results in the lowest visual deviation for the input meshes as a whole. Global optimization is enabled by default, but can be disabled by unchecking the checkbox in the Advanced Settings found on the Optimize-tab.
Optimizing multiple meshes works identical to the optimization of a single mesh. Select all meshes to be optimized in the viewport or hierarchy, enter the optimization target value and click the Optimize Selected Meshes button to optimize all currently selected and visible meshes.
Creating batch operations
By right-clicking on the mesh operation execution button and selecting Save as Batch-Profile... the current mesh operation settings will be saved as batch profile inside the directory of your InstaLODCmd installation. On the Batch-tab one saved profiles can be selected and executed on the current mesh selection in parallel. This is a great way to create a complete LOD chain with a single click.
Deleting batch profiles
To delete a saved batch profile open the Batch-tab. Right click on the Execute Batch button and select Delete selected Batch Profiles to delete all selected profiles.
Exporting settings and batch profiles for InstaLODCmd
To export a profile that can be used with InstaLODCmd without modification. Configure your mesh operation and right click the mesh operation execution button and select Export as InstaLODCmd Profile.... Another great feature of InstaLOD for Autodesk Maya is the ability to create and export multi operation batch profiles for InstaLODCmd. To export a multi operation batch profile open then Batch-tab and select all saved batch profiles that will be included in the multi operation. Right click the Execute Batch button and select Export as InstaLODCmd Profile... to export the profile for InstaLODCmd.
Profiles exported with InstaLOD for Autodesk Maya have a hard-coded profile name of Maya. When queuing files with InstaLODCmd the profile needs to be specified:
Scripting InstaLOD for Autodesk Maya via Python or MEL
InstaLOD for Autodesk Maya can be scripted using both Python and MEL. The integration's callback system enables developers to prepare texture and geometry data before submitting it to InstaLOD for optimization. One such example would be custom materials that are flattened and converted to layered lambert materials during the pre-optimization callback and converted back into a custom material in the post-optimization callback.
Pre- and post optimization callbacks
InstaLOD for Autodesk Maya provides two callbacks that are invoked pre and post optimization for each object used in the operation:
Callback Name Argument 1 Argument 2 instaLODWillExecute (string) operation type (string) object name instaLODDidExecute (string) operation type (string) object name
The instaLODWillExecute callback will be invoked during an undo chunk, so it is recommended to only perform operations on the object that fully support undo. Once control returns back to Maya the undo chunk will be rolled back and the object will be reverted to it's original state before running the optimization.
Optimizing via script
When using InstaLOD for Maya via Script (MEL or Python) it is necessary to invoke the MEL function InstaLOD_InitializeGlobals() prior to using any of the optimization functionality.
InstaLOD for Autodesk Maya saves all settings that are relevant to building optimization profiles in option vars. The option vars used by InstaLOD for Autodesk Maya are listed in the InstaLOD_InitializeGlobals() method. The naming convention for option vars is INSTALOD_ID_[type]_[field] where [type]Â is the mesh operation type and field is a corresponding settings field e.g. INSTALOD_ID_OP_PERCENTTRIANGLES. The [field] names are matching the names of variables defined in the InstaLOD C++ SDK.
InstaLOD_InitializeGlobals() Initializes the integration.
int InstaLOD_IsCurrentInstaLODCmdPathValid() Determines if the current InstaLODCmdPath is valid.
string InstaLOD_GetLicenseInfo() Returns a string containing InstaLOD license information. This method requires the InstaLODCmd path to be setup. This method is not supported on Autodesk Maya LT.
InstaLOD_ResetSettings(int $respawnUI) Resets all settings to default values. Set $respawnUI to true to automatically recreate the InstaLOD user interface.
int InstaLOD_OptimizeMesh(string $mesh, string $profile, int $allowAsync) Optimizes the specified $mesh. Optionally, a $profile file path can be specified to load a json profile from the disk. If no $profile is specified, a profile will be built from the option vars.
int InstaLOD_OptimizeMeshes(string[] $meshes, string $profile, int $allowAsync) Optimizes the specified $meshes. Optionally, a $profile file path can be specified to load a json profile from the disk. If no $profile is specified, a profile will be built from the option vars.
Before an optimization can be started via script. The InstaLOD option vars need to be setup to match the desired operation. The following MEL example sets the mesh operation type to Optimize and optimizes a mesh with the name pSphere1 to 50% triangles.
InstaLOD for Autodesk Maya does not provide a native Python API. However, invoking the MEL API from Python works as a quality workaround. The following Python example sets the mesh operation type to Optimize and optimizes two meshes with the name pSphere1 and pSphere2 to 50% triangles.
# querying an optionVar maya.cmds.optionVar( q='INSTALOD_ID_OP_PERCENTTRIANGLES' ); # reset all settings to their defaults maya.mel.eval("InstaLOD_ResetSettings(false);"); # setting an optionVar # set mode to "Optimize" maya.cmds.optionVar( sv=('INSTALOD_ID_OPTIMIZE_TYPE', "Optimize") ); # set Optimize settings maya.cmds.optionVar( fv=('INSTALOD_ID_OP_PERCENTTRIANGLES', 50.0) ); # execute optimization on object (without async) # maya.mel.eval("InstaLOD_OptimizeMesh(\"pSphere1\", \"\", false);"); # execute optimization on multiple objects (without async) maya.mel.eval("InstaLOD_OptimizeMeshes({\"pSphere1\", \"pSphere2\"}, \"\", false);");
Pre- and post-optimization callbacks can be subscribed by invoking Maya's native Python callback API.
Known Limitations
There are currently no known limitations.
Website
Please visit http://www.InstaLOD.io to stay up to date!
This page will help you to get up to speed with InstaLODCmd SDK2 in just a few minutes.
What is InstaLODCmd SDK 2
InstaLODCmd is a cross-platform console application that enables you to perform mesh operations on a batch of 3D models or scenes without having to use a graphical user interface. Complex batch processes can be set up within minutes by specifying optimization profiles and batches using JSON.
InstaLODCmd also forms the optimization backend for InstaLOD for Autodesk Maya and InstaLOD for Autodesk 3ds Max.
Table of Contents
Getting Started
Prerequisites
License
Machine Authorization
Machine Deauthorization
Offline Authorization (Enterprise)
Profiles and Batches
Polygon Optimization
Optimizing without a Profile
Remeshing
"Game-Ready" Remeshing
Imposters
Hybrid Billboard Cloud Imposters
Rendering Hybrid Billboard Cloud Imposters
Merging Mesh Materials
Occlusion Culling
Automatic Interior Culling
Camera Based Occlusion Culling
Visibility Based Mesh Optimization
UV operations
UV Unwrap
UV Repack
Baking
Targeting Meshes By Name
Internally Generated Texture Pages
Baking Vertex Colors
Your First Bake with InstaLODCmd
Baking Cages
Advanced Baking
Mesh Operation Chains
Materials
Automatic Texture Page Configurations
Custom Texture Page Configurations
Example 1: Color maps
Example 2: Alpha masks
Example 3: Input normal maps
Example 4: Customizing internal textures
Rendering Normal Maps
Format strings with InstaLOD Script variables
Using OS Environment Variables
InstaLOD Script
Program Arguments
Available import/export file formats
Adding custom file format support via plug-ins
Contributing to this document
Website
Getting Started
To get started quickly with InstaLODCmd it is recommended to inspect the sample files that are included in the InstaLODCmd distribution.
InstaLODCmd works by executing mesh operations as specified by JSON profiles on input files queued either via JSON batch files or by manually queuing them by specifying file or folder input via program arguments. Multiple profiles and batches can be loaded and executed in parallel with a single invocation of InstaLODCmd.
Prerequisites
InstaLODCmd for Windows has been compiled using Visual Studio 2015 Update 3 on Windows 10. If you are not using the latest version of Windows the installation of the Visual C++ Redistributables for Visual Studio 2015 Service Pack 3 is required. If you have already installed Visual Studio 2015 or later on your workstation, the installation of the redistributables is not necessary. InstaLODCmd for Windows is compatible with Windows XP Service Pack 3 and later. IntaLODCmd for MacOS requires MacOS Sierra 10.12 or later.
License
Machine Authorization
Before InstaLODCmd can be used your workstation needs to be authorized. To authorize your workstation cd into the InstaLODCmd directory and execute the following command and replace the placeholders with your actual license information:
InstaLODCmd -authorize <username> <password>
Your workstation is now authorized for use with InstaLOD. Make sure to deauthorize your workstation before uninstalling InstaLOD or you will not be able to authorize another workstation.
Machine authorization for InstaLOD is system wide. If you've already been using InstaLOD on your computer, there is no need to authorize your machine for InstaLODCmd. Make sure to deauthorize your workstation prior to uninstalling InstaLOD, or the seat/node will remain locked.
Machine Deauthorization
To deauthorize your workstation prior to uninstalling InstaLODCmd, use the -deauthorize argument:
InstaLODCmd -deauthorize <username> <password>
Deauthorization takes 24 hours to complete. Until the deauthorization cycle is fully complete the seat/node will remain locked and cannot be used to activate another machine.
Offline Authorization (Enterprise)
Enterprise licensees can make use of offline authorization in situations where a machine that needs to be activated has no access to the internet. In these cases, a machine that has an active internet connection can be used to create a license file on behalf of another machine. First, it is necessary to acquire the machine key of the target machine by specifying the -machineKey argument:
InstaLODCmd -machineKey
InstaLODCmd will now output the machine key to the console. Copy and paste the key to the machine that will fulfill the authorization request and specify the machine key together with the authorizeKey argument:
InstaLODCmd will now request a license file for the specified <key> and write it to the specified <filename>. Copy the generated license file to the target machine and ingest it into the InstaLOD licensing system by specifying the -ingestLicense argument:
InstaLODCmd -ingestLicense <filename>
The target machine will now be fully activated and ready for use with any of the tools that are part of the InstaLOD SDK.
Profiles and Batches
InstaLOD ships with profile templates for each operation supported by InstaLOD SDK 2. It is recommended to use these bundled profiles as a starting point when creating new profiles. Each field or setting in a profile template is fully documented, so they serve both as template and as documentation at the same time.
In order to queue files for optimization a valid profile needs to be loaded. Profiles can be loaded by specifying the -profile argument followed by a filename:
-profile <filename>
Once a profile has been loaded, files can be queued by either loading a batch file, specifying a file or searching through a folder. To load a batch file specify the -batch argument.
-batch <filename>
Files are queued directly using the -file argument. The -file argument accepts the following arguments in fixed order:
By passing the -folder argument to InstaLODCmd entire folders can be queued at once by specifying a search folder and a file-mask. The -folder argument requires the following arguments in a fixed order.
If the search path argument ends with /**, InstaLODCmd will recursively search for all files in all sub-folders of the specified folder.
When queuing files using -folder, a format string needs to be used to avoid overwriting a single output file name. Format strings can be used anywhere an output path is specified. For more information on built-in variables and format strings, please refer to the chapter "Format strings with InstaLOD Script variables".
The following command searches recursively through the Data/ folder and queues all files that match the file mask SK_*.fbx using the OptimizeDemo profile.
Multiple profiles, batches, files and folders can be specified in a single InstaLODCmd invocation. However, profiles need to be loaded prior to queuing any batches, files or folders that are referencing a particular profile.
InstaLODCmd makes use of all available CPU cores, therefore, it is recommended to batch as many operations as possible in a single invocation.
Profiles can be created and edited manually using any text editor. Another excellent way to create InstaLODCmd profiles is by using InstaLOD for Autodesk Maya or InstaLOD for Autodesk 3ds max. Both integrations can export operation based profiles and profiles that create sophisticated LOD chains using the Batch functionality of the integration.
Working with the InstaLOD DCC integrations to configure and export profiles is our preferred way of creating new profiles.
InstaLODCmd ships with well-documented template profiles for all operation types supported by InstaLOD. It is highly recommended to use these bundled profiles as a starting point when creating new profiles for InstaLODCmd.
Polygon Optimization
Polygon Optimization is the process of removing polygons until the polygon count of the mesh matches the target value. InstaLOD is able to optimize meshes with multiple millions of polygons while maintaining vertex attributes like normals, texture coordinates and colors. Artists can influence the optimization by using vertex colors to mark vertices for preservation or for early removal. When optimizing skinned meshes, InstaLOD will automatically try to preserve polygons around areas critical for the animation. Additionally, InstaLOD features built-in skeleton rig optimization to reduce the amount of bones or vertex weights required to animate the model. InstaLOD's Smart Optimizer mode aims to produce the best result on a variety of mesh topologies without requiring any additional configuration.
The polygon optimization profile template can be found at Profiles/Optimize.json. The bundled optimization profile creates a LOD chain with 4 entries at 100%, 50%, 25% and 10% triangles of the input mesh.
Execute the following command in a shell to load the template profile and execute a sample batch. The batch file consists of two meshes, a static couch model and an animated and skinned parasite zombie:
Remember, it is not necessary to use batch files to optimize your data. To optimize the contents of a single model file, specify it using the -file argument:
The SM_Zetsuda_130k model is a AAA quality game character that is comprised of more than 35 high resolution textures (up to 4k). It is making use of the Stingray PBS-material found in 2016 and later versions of Autodesk Maya, Autodesk Maya LT and Autodesk 3ds Max. Earlier versions will not be able to render the character with texture, unless the material setup is recreated manually. The character is also being used to demonstrate the powerful material merging capabilities of InstaLOD SDK 2. See the chapter 'Merging Mesh Materials' for more information.
Make sure to review the bundled profile template located at Profiles/Optimize.json to get a better understanding of all settings related to the polygon optimization operation.
By combining multiple operations InstaLOD is able to perform complex optimization operations like Visibility Based Mesh Optimization or custom polygon remeshing as described in the chapter Mesh Operation Chains.
Optimizing without a Profile
Optimization can be performed without creating an optimization profile. To optimize without a profile specify the -instaOptimize argument followed by the target amount of polygons in percent between 1 and 100. InstaLOD will automatically create a default profile with the specified optimization target in percent. It is worth mentioning that if the instaOptimize argument has been specified, all queued files and batches will use the automatically created optimization profile.
Remeshing is the process of using input mesh data to construct a new mesh from scratch. A normal map is generated in the process that is used to authentically replicate the shading of the input mesh, even when going from multiple millions of polygons down to a few thousand. Full control over the remeshing resolution and the target face count enables users to create the ideal output mesh for every specific situation. With features like Automatic Occlusion Geometry even non-manifold input meshes can be remeshed without generating interior faces.
InstaLOD's remeshing is both powerful and fast. Therefore, it is highly recommended to watch the tutorial videos that cover the remeshing specific features and setting in detail.
The remeshing profile template can be found at Profiles/Remesh.json. The bundled remeshing profile remeshes the input file at Normal resolution using a fuzzy face count target of Normal. Using the fuzzy face count target is a great way to create real-time ready assets without specifying a target polygon count that needs to be updated for each mesh. When using a fuzzy face count target, InstaLOD chooses an appropriate target face count based on the remeshing resolution, the input mesh face count, the input mesh complexity and it's bounding box size.
The following command uses the remeshing profile template to remesh the 2 million polygon mesh. The resulting surface will have approximately 5000 polygons and a normal map texture to reproduce the fine details of the high poly input mesh.
Maya Specific: if color management is enabled, make sure to set the color space of the normal map texture to Raw or severe rendering artifacts will be present when rendering as sRGB.
Normal Map Tangent Space: the template profile outputs a tangent space for OpenGL by default. The tangent space can be set to DirectX by changing the TangentSpaceFormat field in the profile.
Game Engine Specific: If your game engine computes the binormal/bitangent per fragment set the ComputeBinormalPerFragment field to true in the profile. (Unreal Engine 4: true, Unity: false)
Please see the chapter Rendering Normal Maps for more information.
"Game-Ready" Remeshing
This workflow is intended to be used for the rapid creation of "Game-Ready" prop assets, where a small trade-off in quality can be made for a game-changing boost in efficiency and thus saving huge amounts of development time.
Take existing high poly sources from generic 3D object repositories and get them game-ready in minutes.
Create environment props by quickly throwing together high poly props and let InstaLOD turn the scene into a game-ready prop.
Turn high-poly subdivision surfaces or sculpted objects into game ready props without retopologizing the asset.
The possibilities are endless and with some basic understanding of the system, you will be creating incredible assets with minimum effort in no time. Check out our tutorial videos for some great examples on how this workflow can revolutionize your production.
InstaLODCmd ships with a profile template that produces "Game-Ready" assets. The profile can be found at Profiles/RemeshGameReady.json. This profile remeshes the input mesh using a High Resolution and a Normal fuzzy face count target. Important for this particular workflow are the output texture maps. The "Game-Ready" profile will automatically generate all texture maps necessary to texture the asset generated by InstaLOD in tools like "Substance Painter" or "Substance Designer":
Tangent Space Normals
Object Space Normals
Position
Thickness
Curvature
Ambient Occlusion
Mesh ID
Textures will be generated with a 2048x2048 resolution using x2 super sampling. Existing texture maps of the input mesh will be automatically transferred to the mesh constructed by InstaLOD.
When importing the geometry created with this profile in Substance Painter or Substance Designer, set the Tangent Space to OpenGL and disable Compute Tangent per Fragment. Additionally, set the texture resolution to 2048x2048. It is highly recommended to use 'Tri-planar projection' when texturing with Substance tools to minimize visible seams where possible.
For more information on using InstaLOD with Substance tools check out our tutorial videos.
Imposters
Imposters are stand-in meshes typically used for foliage type meshes that are difficult to optimize otherwise. InstaLOD is capable of creating a wide range of different imposter types:
AABB
Flip-book
Billboard
(Hybrid) Billboard Cloud
Imposters using custom geometry
Imposter creation with InstaLOD is a one-click solution with full support for per-pixel light and the creation of advanced maps like curvature, AO and more.
The imposterize profile template can be found at Profiles/Imposterize.json. The bundled imposterize profile creates a regular billboard imposter with two-sided quads spawned along the XY-axis and YZ-axis.
Hybrid billboard cloud imposters are a new method of creating highly optimized representations of foliage meshes. One of the great benefits of using hybrid billboard cloud imposters is the preservation of volume and depth, which allows for excellent self shadowing. By mixing billboard abstractions for leaves and regular polygon meshes for trunks and branches this kind of hybrid imposter can hold up even on close inspection. However, using poly meshes for certain parts of the mesh is not a strict requirement. If no meshes are found in the scene where the name matches the CloudPolygonalGeometryMeshSuffix as configured in the profile, the entire mesh will be built using billboards. The imposterize profile template can be found at Profiles/ImposterizeCloud.json. The following example uses a batch file to create a hybrid billboard cloud imposter each of the two input meshes in the batch:
The video above shows Unreal Engine 4 rendering a hybrid billboard cloud imposter next to the respective input mesh that was used to create the imposter. Even though imposters are designed to be viewed at a distance, when used properly they can create a result that holds up well when viewed up close.
Rendering Hybrid Billboard Cloud Imposters
The result is best rendered using a two-sided masked material for the entire mesh. It is highly recommended to utilize a material that supports two-sided foliage rendering so leaves are properly lit. Alternatively, a MeshID map can be generated by InstaLOD to determine when to discard fragments during runtime. If the material is properly lit hybrid billboard cloud imposters can produce stunning results at a very low rendering cost.
Merging Mesh Materials
Both characters and environment props are often constructed using modular pieces or a process called "kit-bashing". These techniques are a great way to create a wide variety of assets while keeping production time down. One major draw back of these techniques is that it often requires multiple material textures for such a composed mesh - resulting in a high per object draw-call count. Therefore, the improvements in production time take a toll on rendering performance.
With InstaLOD such cases can be beautifully optimized by merging all material textures onto a single output texture. Material size on the resulting texture can be configured by adjusting importance weights:
Visual weight, fast ray-tracing against the scene at a low resolution to determine visible material to pixel coverage.
Texture weight, weights generated via texture dimensions
World-space geometry weight, weights generated by determining material coverage in world-space units.
UV weight, weights generated by determining material coverage in UV space.
High quality solidification, super-sampling and full control over UV-shell rotation constraints ensure best-mode quality in all cases. InstaLOD supports merging materials of both static and skinned models or a combination of both. Handling large scenes with multiple millions of polygons and over-sized 30k textures is no problem for InstaLOD.
The mesh material merge profile template can be found at Profiles/MaterialMerge.json. The bundled mesh material merge profile creates a 2048x2048 output texture using x2 super-sampling.
InstaLOD features high precision occlusion culling that uses an in-house developed multi-threaded ray tracer. Visible faces are determined by ray-tracing the scene to a preconfigured resolution using one or multiple cameras stored in the input file. Occluded geometry can be either directly removed by InstaLOD or vertex colors can be written that can be used to further process the mesh. In order to avoid removing single faces of large geometry InstaLOD supports removing geometry on a per sub-mesh basis. When culling on a per sub-mesh basis the entire sub-mesh will be removed if less than a specified number of faces is visible. Additionally, InstaLOD supports automatically removing interior faces as a zero-configuration solution.
Automatic Interior Culling
As a zero-configuration solution to removing interior geometry the automatic interior culling mode can be used. Depending on the complexity and density of the input mesh the fields Resolution, AutomaticPrecision and AdjacencyDepth can be increased at the cost of processing time.
The occlusion culling profile template can be found at Profiles/OcclusionCullAutomatic.json.
Camera based occlusion computes occlusion data based on one or multiple cameras. Both perspective and orthogonal cameras found in the input file will be used for occlusion culling. In order to better comprehend the view of the camera used for the operation InstaLOD supports writing ray traced image output to disk. To enabled image rendering simply set RenderOutputPath to a valid path.
The occlusion culling profile template can be found at Profiles/OcclusionCullCamera.json. The bundled occlusion culling profile uses a custom camera to remove occluded faces and writes camera output to the Build/ folder.
Combining occlusion culling and mesh optimization allows for visibility based mesh optimization. This is a great way to ensure that the optimizer chooses to remove occluded faces before removing visible faces. By setting the field DataUsage to WriteOptimizerWeightsToWedgeColors InstaLOD is able to use the visibility data to write optimizer weights into the vertex color channel of the output mesh. In order to use the output of one operation as input for another operation in the same profile set the UsePreviousOutputAsInput field to true. This functionality enables the mesh optimization operation to use the optimizer weights generated by the occlusion cull operation to further optimize the mesh.
In the image above, a character model has been reduced to 25% of the initial face count using visibility based mesh optimization. A camera has been placed that captures only the shoulders and the head of the model (bright edges). The optimized mesh topology that is visible by the camera that was used to perform the occlusion culling remains unchanged. However, occluded polygons - or polygons outside the camera's frustum (dark edges) have been heavily optimized by InstaLOD.
The visibility based mesh optimization profile template can be found at Profiles/VisbilityOptimize.json. The bundled profile uses a custom camera to generate optimizer weights for the input mesh and optimizes the mesh to 25% while making use of the generated optimizer weights.
For more information on how to create complex chained operations please see the chapter 'Mesh Operation Chains'.
UV operations
InstaLOD's powerful UV functionality can also be used outside of any optimization functionality. This can be useful to automatically UV parameterize surfaces (UV Unwrap) or to improve the UV packing of existing meshes.
UV Unwrap
The UV Unwrap template can be found at Profiles/UVUnwrap.json. InstaLOD UV unwrapper features three distinct algorithms that each have their strengths on different kinds of input meshes. Organic works great for organic meshes while HardSurfaceAxial and HardSurfaceAngle are better suited for hard-surface/constructed type meshes.
The bundled UV Unwrap profile is configured to use the HardSurfaceAxial algorithm as the couch model used in this example is a hard-surface type mesh.
The UV Pack template can be found at Profiles/UVPack.json. The UV packer will create a new UV layout for the input meshes. It is able to stack duplicate shells and create layouts for non-square textures. In order to preserve axis aligned shells, constraints can be configured that determine how the packer can rotate shells: Allow90 (90° rotations only), None (no rotations) or Arbitrary (arbitrary rotations).
The bundled UV Pack profile repacks the input mesh UV channel 0 to a 1024x1024 texture with a 2px gutter size and writes the result into UV channel 1.
InstaLOD features a sophisticated baker that is fully batch-able and scalable in terms of both output texture dimensions and polygon counts. Source meshes can be targeted by name using regular expressions to avoid baking onto the wrong target mesh. Even the most trickiest bakes can easily be solved without inserting additional edges, by utilizing baking cages that have a different topology than the target mesh. A wide range of internally generated texture maps and the capability to transfer existing normal and texture maps make InstaLOD's baker the go-to solution for even the most challenging bake. High quality dilation and post-process solidification ensure that you will always get best-mode quality for textures generated by InstaLOD.
Targeting Meshes By Name
InstaLOD's baker renders high quality bakes while keeping iteration speed high and setup friction low. By default, InstaLOD will bake all source meshes onto all target meshes. However, in some cases, it is preferable to perform targeted bakes.
Enable MatchMeshByName to match source meshes to target meshes by name. This avoids baking wrong source geometry to target meshes. Meshes matching the suffix configured in the field MatchMeshByNameTargetSuffix will be considered as target mesh. The suffix will be truncated and the resulting string will form the mesh name that is used to identify matching meshes. Meshes matching the regular expression (ECMA, ignore-case) configured in the field MatchMeshByNameSourceRegExFormat will be used as source mesh.
All source meshes that do not match the source mesh regular expression will be baked onto every target mesh in the scene.
Example 1: hood_rail_low -> matches suffix _low as configured in the field MatchMeshByNameTargetSuffix -> resulting mesh name hood_rail -> mesh hood_rail_high matches the format string regex {MESH.NAME}_high as configured in the field MatchMeshByNameSourceRegExFormat.
Example 2: pilot_target -> matches suffix _target as configured in the field MatchMeshByNameTargetSuffix -> resulting mesh name pilot -> mesh pilot_source_A matches the format string regex {MESH.NAME}_source(.*) as configured in the field MatchMeshByNameSourceRegExFormat -> mesh pilot_source_B also matches the regex as configured in the field MatchMeshByNameSourceRegExFormat as the source mesh name regular expression is configured in a way that allows additional characters after the _source string.
Internally Generated Texture Pages
In addition to transferring existing normal and texture maps, InstaLOD supports the creation of texture maps that are directly or indirectly derived from the source mesh. The following texture pages can be automatically generated by InstaLOD.
Generating AmbientOcclusion, Thickness and BentNormals texture pages can cause a stark increase in processing time when creating high resolution textures due to the computationally intensive algorithms involved in rendering these texture pages.
Baking Vertex Colors
By default, existing vertex colors of the source mesh will be transferred. However, both internally and externally sampled texture pages can be baked into vertex colors instead. When AutoMatchTexturePages is enabled, external texture page names are generated by their type followed by their index ex. Color_0, Color_1. Internal texture pages like Ambient Occlusion are referenced by their name ex. AmbientOcclusion.
Your First Bake with InstaLODCmd
The bake template can be found at Profiles/Bake.json. InstaLOD's baker is highly configurable and supports many features that ensure you get the possible result. Using the bundled bake template profile, we can easily perform a bake in the same way other mesh operations are executed:
When baking, the input filename will be used as source mesh file and the output filename as target mesh file. Baking supports queuing folders using the -folder command and batch files using the -batch command in the exact same manner as every other mesh operation. Output textures will be written to the OutputPathFormat as configured in the Materials section of the bake profile. Besides textures, InstaLODCmd will also generate a output filename_bake.fbx file that contains the target meshes with materials that reference all generated materials.
If you are in a situation where a single file contains both the source and the target mesh or meshes. You can specify the same file for both input and output. However, this requires the bake profile to target meshes by name.
InstaLOD's baker supports using baking cages with an entirely different topology than the target mesh. This allows you to insert edge loops to bake beautiful bevels, cut out pieces to perfectly bake decals or build your geometry around specific objects. When using a cage mesh, InstaLOD matches cage and target meshes via the UV-space, therefore it is important that the cage mesh UVs match those of the target mesh.
Ensuring that UVs stay in place when creating the baking cage for your target mesh can be a trivial task. When using Maya simply enable the move-tool setting 'Preserve UV' prior to moving components - or use the 'Multi-Cut' when inserting additional helper edges or edge-guards.
Meshes matching the suffix configured in the field CageMeshSuffix will be used as a cage mesh. There is no limitation on the amount of cage meshes used in a bake.
By default the cage mesh will dictate the origin of the ray that is cast during the bake. This gives artists precise control over the bake and helps to resolve bakes that would otherwise be wrong. However, baking cages become especially helpful once CageMeshNormalsAsRayDirections is enabled. Using the cage mesh's normals as ray directions enables artists to bake beautiful bevels and orthogonal decals onto a fully averaged surface (or bent normals on a surface with face normals). Therefore it is not necessary to insert edges and polygons in the target mesh, that would normally only serve the purpose to force a specific vertex normal orientation.
The following example helps to better illustrate the benefits of using cages. The target mesh cube_low is a simple cube, stretched along one axis. In order to avoid the "puffy surfaces" issue, the normals of the target have been averaged. The source mesh cube_high is the same cube but with smooth bevels and additional details added. The following example bakes the mesh without using a cage:
The bake will generate the output file Data/SM_Bake_CageDemo_NoCage_Target_bake.fbx with the normal map texture assigned. Upon reviewing the normal map that has been written to the Build/-folder it becomes apparent that the additional details appear distorted. This is typical when using averaged normals, as baking rays are projected along the normals of the mesh.
One of the typical methods of solving this issue is to bake using a target mesh that has additional helper edges inserted. This ensures that the normals are orthogonal on flat surfaces, but bent along the edges for smooth bevels. However, the resulting tangent space normal map cannot directly be used on the final mesh as the topology is different. Another intermediate step is required as an object space normal map needs to be used and converted into a tangent space normal map usable on the final mesh. With InstaLOD, this is not necessary as baking cages can beautifully solve this issue to generate a tangent space normal map that is directly usable.
The following example bakes the mesh using a cage mesh cube_cage for the target mesh cube_low to solve the issue:
InstaLOD's baker is highly configurable. Please refer to the baking template profile at Profiles/Bake.json to get an overview of all available settings and their meaning.
An excellent way to creating InstaLODCmd baking profiles is by using InstaLOD for Autodesk Maya or InstaLOD for Autodesk 3ds max. Both integrations can export bake profiles by right clicking on the Bake-button and selecting Export as InstaLODCmd Profile....
Mesh Operation Chains
InstaLODCmd supports creating complex operations by chaining together multiple mesh operations. This allows for the creation of unique and highly customized operations that can be used in the same way other profiles are used.
Mesh operation chains function by using the output of one operation as input for the next operation in the chain. In order to use the output of one operation as input for another operation in the same profile set the UsePreviousOutputAsInput field to true. When using mesh operation chains it can be desirable to disable the export of intermediate mesh operations, as only the final mesh operation's output is the intended result. To disable the export for specific mesh operations, simply set the Export field of the mesh operation entry to false.
InstaLOD ships with two template profiles that make use of mesh operation chains. The first example performs visibility based mesh optimization using two chained mesh operations. The profile can be found at Profiles/VisbilityOptimize.json.
The visibility based mesh optimization is described in detail in the dedicated Visibility Based Mesh Optimization chapter.
The second and more complex example can be found at Profiles/ComplexPolyRemesh.json. It performs a custom polygon-based remeshing using four different mesh operations:
Optimize the input mesh to 10%, but discard all mesh attributes. This allows InstaLOD to optimize with the least amount of constraints and therefore it can generate best-mode for the raw geometry.
Perform occlusion culling in automatic interior mode to remove all occluded faces.
UV unwrap the surface and generate tangents.
Bake the input mesh onto the unwrapped mesh.
To execute the profile invoke the following command:
The material configuration in InstaLOD is tied to a profile but common accross all operations that make use of materials or textures. This means that the same configuration can be used in all profiles.
InstaLOD uses Texture Pages to configure output texture specifications like texture dimensions and pixel format. At the same time texture pages are used to determine the input and output type for individual input textures and to which output texture it's contents belong.
Texture page rules have to be established in order for InstaLOD to understand the semantic of an input texture. Texture pages with identical names will be written to a single output texture. Additionally, certain texture types like tangent space normal map or alpha masks can be used by InstaLOD to perform various operations. When InstaLOD is generating output materials, the texture page's type determines to which material channel it is assigned.
The Materials section of a profile contains all settings relevant to the global material system as used by InstaLODCmd.
Field Description OutputPathFormat (string) The output format string for generated texture files. DefaultWidth (int) The default output size for texture pages (internal). DefaultHeight (int) The default output size for texture pages (internal). AutoMatchTexturePages (bool) Enables to use automatic texture page configurations. AutoMatchTexturePagesForceDefaultOutputSize (bool) Enables to use default output size for all textures. TexturePageExportFormat8Bit (string) Output format for 8bit textures (PNG8/PNG8Dithered/PNG16/HDR/EXR16/EXR32). TexturePageExportFormat16Bit (string) Output format for 16bit textures (PNG8/PNG8Dithered/PNG16/HDR/EXR16/EXR32). TexturePageExportFormat32Bit (string) Output format for 32bit textures (PNG8/PNG8Dithered/PNG16/HDR/EXR16/EXR32). TexturePages (array) Array of TexturePage entries.
All textures generated by InstaLOD will be written to the file path as configured in the field OutputPathFormat. In order to avoid overwriting the same file for each texture InstaLOD built-in script variables can be used to construct a unique filename for each texture. Refer to the chapter Format strings with InstaLOD Script variables for an overview over all available variables. By default, internally generated textures will be created using the size as configured in the fields DefaultWidth and DefaultHeight. Externally loaded textures will use the input texture size as output texture size. However, the output size for both internal and external textures can be manually configured using texture page configurations.
InstaLOD supports high quality texture downsampling and dithering that minimizes banding artefacts when downsampling to lower bit depths. This is especially useful when downsampling InstaLOD's 16bit normal maps for a rendering engine that only supports 8bit texture data. To output 16bit textures as 8bit dithered textures, simply set the field TexturePageExportFormat16Bit to PNG8Dithered.
Automatic Texture Page Configurations
Using custom texture page configurations is an excellent way to setup complex rules that integrate perfectly into custom pipelines. However, InstaLODCmd also supports the automatic creation of rules based on the input file when AutoMatchTexturePages is set to true. InstaLOD will then automatically create texture pages for all materials that are attached to a specific material channel (e.g. Color, Normal, ...). InstaLOD supports using "Layered Textures" for all material channels to handle even the most complex material setups. When using layered textures, InstaLOD will automatically create a texture page with a generated name based on the material channel type followed by the layer index ex. Color_0, Color_1. When loading Stingray-PBS materials, InstaLOD will automatically generate texture pages for each texture assigned to a PBR texture slot. To force a common output size for all output textures when using AutoMatchTexturePages simply set AutoMatchTexturePagesForceDefaultOutputSize to true and the DefaultWidth and DefaultHeight will be used for both internal and external textures.
Automatic texture page configuration is both powerful and flexible and therefore well suited to handle most situations. By default, InstaLOD for Autodesk Maya and InstaLOD for Autodesk 3ds max use automatic texture configurations to handle mesh materials.
Custom Texture Page Configurations
Custom texture page configurations are a great way to make sure that your file naming conventions are fully recognized by InstaLOD. Texture page configurations work by assigning a texture page to input files that match the regular expression of the texture page. Texture pages control the type, the pixel specification and dimensions of the texture and whether it is generated or not. By default, the output dimensions matches the input dimensions and generation is disabled. If no texture page configuration matches a texture's filename, a default texture page configuration will be created.
Custom texture page configurations can also be used to control the output size of internally generated texture pages. However, the pixel specification of internal texture cannot be modified.
Texture page configurations can be prioritized using the Priority field. A configuration with a high priority overwrites a configuration with a lower priority. InstaLOD regular expressions are case-insensitive and based on the ECMAScript derivate.
Example 1: Color maps
The following configuration matches all filenames that contain one of the following strings: _diffuse, _color or _albedo, -diffuse, -color, -albedo. If a texture page matches this rule, it will be exported as 8bpp RGB texture.
Alpha masks can be used by ray casting operations to allow rays to be cast through a surface. In general, all textures that have an alpha channel can be used as alpha mask. Greyscale textures can only be used as alpha mask if the TexturePageType is set to Opacity. The following configuration matches all filenames that contain the string: _colormask. If a texture page matches this rule it will be used as alpha mask during casting operations and exported as 8bpp RGBA texture.
If the configurations from Example 1 and Example 2 are used in the same profile both rules would apply for a filename that ends with the word '-colormask.png' as it would match Example 1's regex rule of '-color' and Example 2's regex rule of '-colormask.png'. However, due to the higher priority of Example 2 it would override Example 1.
Example 3: Input normal maps
A rule needs to be setup for InstaLOD to use normal maps during operations bake operations. The following configuration matches all filenames that contain the string: _normal.
In most cases EnableOutput should be disabled for input normal maps (default) as the baker will export a properly transformed tangent space normal map if TexturePageNormalTangentSpace has been enabled in the BakeOutput settings of the profile. If the output is not disabled, InstaLOD will export the tangent space untransformed.
Example 4: Customizing internal textures
Texture pages can also be used to configure internally generated textures. The following configuration sets the size of the ambient occlusion map to 1024x1024.
Whether InstaLOD generates an internal texture is not determined by texture page rules, but by modifying the BakeOutput settings of the mesh operation. However, for the size rule to be active, EnableOutput must be set to true.
Rendering Normal Maps
InstaLOD is able to generate tangent space normal maps that are compatible with either OpenGL or DirectX. If normal mapped surface details appear inverted change the value of the TangentSpaceFormat field to either OpenGL or DirectX. Depending on how your renderer draws normal mapped surfaces, it might be necessary to change ComputeBinormalPerFragment to either true or false. If this setting does not match, surfaces can appear slightly perturbed. (Unreal Engine 4: true, Unity: false)
Maya Specific: if color management is enabled, make sure to set the color space of the normal map texture to Raw or severe rendering artifacts will be present when rendering as sRGB. This issue is unrelated to InstaLOD and applies to all versions of Maya that support color management. Textures assigned to the normal map material channels are imported as sRGB instead of Raw. More information can be found at Autodesk Maya: Troubleshoot Normal Mapping.
Format strings with InstaLOD Script variables
Format strings can be formatted using built-in InstaLOD Script variables. The same placeholders can be used when scripting with InstaLOD Script.
Token Description Example {YEAR} The current year. 2017 {MONTH} The current month. 06 {DAY} The current day of the month. 12 {INDEX} The input file index when queuing folders and batch files. 3 {RANDOM} Generates a random integer number. 1315341 {MESH.PATH} The file path of the input file. /Users/InstaLOD/Cmd/ {MESH.FILENAME} The file name of the input file without file extension. SM_Sphere {MESH.NAME} The name of the current mesh in the scene. Sphere_001 {MESH.EXTENSION} The input file extension including separator. .obj {PROFILE.NAME} The profile used for the current task. Default {TEXTURE.PATH} The file path of the texture file. /Users/InstaLOD/Cmd/ {TEXTURE.FILENAME} The file name of the texture file without file extension. T_NormalTangent {TEXTURE.EXTENSION} The texture file extension including separator. .png {TEXTURE.TYPE} The type of the current texture. Normal {MATERIAL.NAME} The name of the current material. M_MetalRust
The availability and contents of built-in variables is context sensitive. Mesh related variables are typically available when referencing meshes (eg. when formatting output paths or name matching). Material and texture related variables are typically available when referencing textures and materials (eg. when formatting output paths or name matching).
Profile settings that contain the word Format denote a format string. Format strings enables the use of built-in variables.
Example: Both OutputPathFormat and MatchMeshByNameSourceRegExFormat are format strings and therefore allow using built-in variables to construct a string that will be evaluated during runtime.
Using OS Environment Variables
Besides supporting InstaLOD Script variable, format strings can also evalute platform specific environment variables. To include an environment variable in a format string, reference the variable by name using the following syntax on all platforms: ${VARIABLE}. Whenever the string is evaluated by InstaLOD, all environment variables will be evaluated as well.
InstaLOD Script
InstaLOD Script (IS) is an interpreted scripting language designed for InstaLOD. It enables developers to easily create complex optimization processes that perfectly integrate existing asset pipelines. Perform web requests, execute shell commands, write files and read user input. There are nearly no limits to what is possible with InstaLOD Script.
Until the technical documentation for InstaLOD Script is available online, we encourage you to take a look at the sample code that ships with InstaLODCmd. Simply open Scripts/Example.is with a text editor of your choice and take a look around. It is fully documented and contains a compact reference and syntax guide. To execute the script example that ships with InstaLODCmd enter the following command:
InstaLODCmd -script Scripts/Example.is
Play around and break things!
Program Arguments
The following arguments can be specified when starting InstaLODCmd. It is necessary that at least one profile is specified and one file or batch operation. If no file or batch is specified, a help will be output to the terminal.
-profile <filename> Loads the profile with the specified filename. NOTE: Profiles must be specified prior to files or batches. -file <input filename> <output filename> <profile name> Queues the specified input file with the specified profile. The optimized file is written to the specified output file path. InstaLOD will select the importer/exporter based on the file extension. -batch <filename> Loads the specified batch file. -folder <search path> <file mask> <output format> <profile name> Searchs the specified folder for files matching the specified file mask. To search in sub directories append two asterix to the path e.g. "/models/**" To avoid overriding the same file, the output format should contain format tokens. -script <filename> Queues the specified InstaLODScript file for execution. NOTE: If script files are executed the job queue must be manually started in the script. -listenScript <filename> Listens for the specified InstaLODScript file. If the file is found, it is executed. Afterwards it will be deleted and a <filename>.tick file is generated. If the file is not found, InstaLODCmd will sleep until the file is available. NOTE: To abort execution InstaLODCmd has to be forced to quit (CTRL+C) -instaOptimize <percentage> Creates a default profile with the specified reduction in percent [0-100] and assigns it too all queues files. WARNING: This setting will override any previously set profile. -threads <count> Specifies the amount of threads available for optimization operations. -fbxversion <2010/2011/2012/2013/2014/2016/2018> Specifies the FBX file format version used for FBX exports. Default: 2013 -authorize <email/username> <license/password> Authorizes this machine for use with InstaLODCmd. NOTE: Please deauthorize your computer before uninstalling to avoid a locked seat. -deauthorize <email/username> <license/password> Deauthorizes this machine. NOTE: Deauthorization takes 24 hours to complete. -machineKey Retrieves the machine specific authorization key. -authorizeKey <key> <filename> <email/username> <license/password> Authorizes the machine with the specified key and writes the licensing file to the specified file. -ingestLicense <filename> Authorizes this machine using the specified license file. -plugins <path> Loads custom FBX SDK file-format plugins from the specified path.
Available import/export file formats
The following file formats can be loaded by InstaLODCmd. InstaLOD will automatically detect the file format based on the file extensions and file header:
FBX (*.fbx)
AutoCAD DXF (*.dxf)
Alias OBJ (*.obj)
3D Studio 3DS (*.3ds) (import only)
Collada DAE (*.dae)
(*.zip)
It is highly recommended to use FBX for both import and export as it is the only file format for 3D data that supports storing important data points such as animations, skeleton, normal, binormals, tangents, smoothing groups as well as embedding of texture data.
Adding custom file format support via plug-ins
InstaLODCmd allows developers to extend the file format import/export capabilities via plug-ins loaded at runtime. Plug-ins can implement both custom readers and writers. To load plug-ins specify the -plugins <path> argument when invoking InstaLODCmd from the command line. More information on customizing file formats with FBX SDK I/O plug-ins is available online.
It is important to build and link your plug-in to the corresponding FBX SDK version used by InstaLODCmd. The current FBX SDK version is output to the console on the 4th line upon launching InstaLODCmd.
Contributing to this document
The InstaLOD documentation efforts are open-sourced and we welcome third-party contributions. Feel free to contribute to our documentation by submitting pull-requests to our documentation repository on GitHub.
Autodesk FBX SDK
This software contains Autodesk® FBX® code developed by Autodesk, Inc. Copyright 2017 Autodesk, Inc. All rights, reserved. Such code is provided “as is” and Autodesk, Inc. disclaims any and all warranties, whether express or implied, including without limitation the implied warranties of merchantability, fitness for a particular purpose or non-infringement of third party rights. In no event shall Autodesk, Inc. be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of such code.
Website
Please visit http://www.InstaLOD.io to stay up to date!
The biggest change for EA7 is that many parts are already running on the upcoming InstaLOD SDK version 2.0. Work on SDK2 still happens as I am typing this so not all features will be available in this update. But one of the core features that received the 2.0 update is “mesh merging”. Unlike other solutions, we’re not only building an atlas of all merged textures. With SDK 2.0 InstaLOD tightly repacks all merged UV shells and at the same time it is reprojecting all texture data. It’s also worth mentioning InstaLOD automatically detects and stacks duplicate shells - even if the geometry is different. If the UV shell is identical and it’s the same material it will be stacked! Using SDK 2.0 means that our optimizer is also running on the latest version with huge gains in performance and memory usage and great improvements in terms of quality for highly tesselated and complex mesh topologies.
Use the pink slider to reveal the InstaLOD optimization!
With EA7 we’re also rolling out support for Epic’s Unreal Engine version 4.14. Besides using the latest version of our SDK, we’ve also greatly improved our licensing systems. One of the changes is that if you have InstaLOD for Unreal Engine installed but you haven’t authorized your machine, your editor will continue to work as always but InstaLOD will be disabled.
Both InstaLODCmd and our engine integrations are now using a machine-global licensing. That’s great because all your applications are now using a shared license so you only have to authorize a single application and your license will be valid in all apps that make use of InstaLOD. And it’s also great news for network deployments of InstaLOD, as your admin can now easily remote activate your machine using InstaLODCmd!
Our Early Access period is about to end and it’s safe to say that it has been a huge success. All over the world studios are making use of InstaLOD for their awesome productions. And we just can’t wait until the InstaLOD SDK 2.0 will finally be released with features like remeshing, killer UV unwrapping and repacking, one click imposters, AAA-grade texture baking and much more.
We couldn’t be happier with this release. Our community grows with every release and our optimizer tech just keeps getting better. We plan to stay on this trajectory and we’re eager to get your feedback on our latest version of the InstaLOD SDK.
This is primarily noticeable by the redesign of the InstaLOD logo which features a much more iconographic and distinct symbol next to our InstaLOD typography. Together with EA6 we’re also rolling out a new set of EPS based logo files and updated logo guidelines.
We have continued to improve the quality and the performance of our updated InstaLOD SDK 1.9! A focus area of this update was performance and memory usage - and with 1.9 we’re delivering. Highly complex CAD-type meshes that previously used up to 20 GB of memory during optimization now require only about 6GB. This is a reduction of memory usage by 70%, we’re achieving this by employing new memory management and allocation strategies that reuse data and free up resources where possible. At the same time, we’ve also managed to improve the performance of InstaLOD so it’s a great win overall. Besides a long list of improvements and bugfixes to the InstaLOD SDK, we’re also introducing machine authorization with this release. InstaLOD will now require you to authorize your installation of the SDK. Indie license users can activate their license on up to two personal computers at the same time, so you’re encouraged to deactivate your license before uninstalling InstaLOD.
Use the pink slider to reveal the InstaLOD optimization!
For the UE4 plugin, we’re now shipping with the brand new InstaLOD SDK 1.9, which brings all the improvements over to users of Epic’s popular Unreal Engine 4 as well as some engine specific improvements. UE4 users can easily authorize their machine for InstaLOD using a built-in dialog system that allows you to quickly enter your data. To deauthorize your machine, open the InstaLOD help and scroll to the bottom for a link to the deauthorization. InstaLOD UE4 EA6 supports all versions of the Unreal Engine from 4.9 to 4.13. InstaLOD for Unreal Engine EA6 is now available to all customers.
InstaLODCmd is our terminal based batch processing app for both Windows PC and MacOS. InstaLODCmd is used in production by a wide spectrum of companies: from offline CG to real-time VR experiences. So with each new release, we’re making sure that InstaLODCmd get’s the treatment it deserves. And once again the list of changes and improvements for InstaLODCmd is long. InstaLODCmd EA10 is the best version we’ve ever released and it ships with countless new features:
InstaLOD Script (ISL), a brand new scripting language that can be used to build complex optimization operations. With support for web requests, shell executions, and dynamic profile creation.
Heavily improved memory usage for large batches and complex meshes.
Batch entire folders using recursive searches and file masks with the -folder parameter.
Create batch profiles that queue folders with file masks and patterns.
Improved progress calculation and status updates.
Output filenames can be formatted using placeholders.
(Preview feature) Combine all meshes in a file before optimization.
Use “SplitNormals false” to weld mesh normals before optimization to reduce splits.
Fixed a rare bug that affects certain rigged FBX files when removing large amounts of data.
Fixed a race condition that affects input files containing thousands of meshes.
InstaLODCmd EA10 is now available to all non-indie customers.
But there is one more thing that I can share with you today. It’s InstaLOD for Autodesk Maya and Maya LT and it is now available as early access for all non-indie customers. Our Maya integration will enable you to optimize both static and skeletal meshes without leaving your DCC application. It’s both fast and comes with the same insanely great optimization quality you can expect from using InstaLOD. However, this is the first early access version of InstaLOD for Autodesk Maya and Maya LT and there are some caveats to it.
Customers will receive an email containing instructions on where to get their copy of InstaLOD EA6 shortly.
I couldn’t be more proud of the state of our tech and what our team is doing. Our community keeps growing with every release and our optimizer tech is in heavy use in killer productions all around the world. We plan to keep the ship on this course and we’re eager to get your feedback on our latest version of the InstaLOD SDK.
Getting Started with InstaLOD for Autodesk Maya and Maya LT
This page will help you to get up to speed with InstaLOD for Autodesk Maya.
InstaLOD SDK 1 is outdated
> This document only applies to InstaLOD for Autodesk Maya SDK 1. > Please visit http://www.InstaLOD.io/GettingStartedWithMaya for the latest version of this document.
What is InstaLOD for Autodesk Maya and Maya LT
InstaLOD for Autodesk Maya and Maya LT enables you to optimize 3D meshes without having to leave your favorite DCC tool. InstaLOD for Autodesk Maya and Maya LT features a graphical user interface, supports batch operations and can be scripted with its mel scripting based API.
Compatibility
InstaLOD for Autodesk Maya and MayaLT runs on both MacOS and Windows. The following versions of Autodesk Maya are supported: 2013, 2014, 2015, 2016 and 2017. The following versions of Autodesk Maya LT are supported: 2016 LT and 2017 LT.
Prerequisites
InstaLOD for Autodesk Maya and Maya LT uses InstaLODCmd as backend for optimization operations. Therefore InstaLODCmd needs to be installed and authorized before you can continue with the installation of InstaLOD for Autodesk Maya and Maya LT. Please refer to the InstaLODCmd documentation on how to install and authorize InstaLODCmd on your workstation.
Installing InstaLOD for Maya and Maya LT
Once you have installed and authorized InstaLODCmd on your workstation unzip the InstaLOD for Maya file. Maya installs third-party plugins into a platform specific folder. Installation varies depending on the version of Maya you are using and your operating system.
Maya Windows Installation
Copy the InstaLOD_MayaIntegration.mel file to your Maya script folder, normally found at \Users\your-username\Documents\maya\scripts.
Maya MacOS Installation
Copy the InstaLOD_MayaIntegration.mel file to your Maya script folder, normally found at ~/Library/Preferences/Autodesk/maya/scripts.
Maya LT Windows Installation
Copy the InstaLOD_MayaIntegration.mel file to your Maya script folder, normally found at \Users\your-username\Documents\maya\scripts. Copy the file MayaLT.bat to your InstaLODCmd installation direction.
Maya LT MacOS Installation
Copy the InstaLOD_MayaIntegration.mel file to your Maya script folder, normally found at ~/Library/Preferences/Autodesk/maya/scripts. Copy the file MayaLT.app to your InstaLODCmd installation direction.
Getting started with Autodesk Maya LT
One of the limitations of Autodesk Maya LT is that it is not able to launch a child process. To circumvent this limitation we've extended InstaLODCmd in a way that it can listen for optimization requests. Inorder to start and prepare InstaLODCmd for use with Autodesk Maya LT you have to double-click the MayaLT.bat (Windows) or MayaLT.app (MacOS) program before you can optimize your meshes from within Maya. The rest of the workflow is identical to the non LT version and therefore you can follow the regular guide from this point on.
Getting started with Autodesk Maya
If you have properly installed the script file in your Maya scripts folder you can start Maya. To open the InstaLOD window in Maya type the following MEL command in the script panel.
InstaLOD;
If you want to automatically initialize InstaLOD whenever Maya starts. Create a file called userSetup.mel in your Maya script folder. Enter the following MEL command in the newly created file and save it:
InstaLOD_MayaIntegration;
More information on how to run MEL commands whenever Maya starts up is available on the Autodesk website.
If you have closed the InstaLOD window you can spawn it again by selecting InstaLOD->Open Window... from Maya's main menu.
On the first start of InstaLOD, it is necessary to point InstaLOD for Maya to the installation directory of InstaLODCmd. Simply click Set InstaLODCmd Directory... and browse to the InstaLODCmd installation directory on your workstation. If InstaLODCmd was found in the specified directory the window will rebuild itself and show various optimization settings. InstaLOD for Maya is now setup and ready for use.
Optimizing a mesh
To quickly optimize a mesh select the mesh in the viewport or hierarchy. Enter the percentage of triangles that you want to remove in the InstaLOD window in the Percent Triangles text field and click Optimize Mesh. Both skeletal and static meshes are supported by InstaLOD for Maya. Multiple meshes can be optimized at once by selecting multiple meshes or a parent transform before clicking Optimize Mesh.