Compiler options and how to deal with them - Tomb-Raider-Level-Editor/Tutorials GitHub Wiki
Written by Lwmte
Unlike classic editor, Tomb Editor now offers several different so called compiler options, which affect how exactly your final level file is baked. Since number of these options was constantly growing, and also we now can compile TR1, TR2 and TR3 levels, I think there's need to elaborate on all of them.
Most of the compiler options can be found in Level Settings dialog in Misc section.
Default light quality Specifies raytracing precision for all lights with "Default" individual quality setting. Low is the original setting used by winroomedit/tom2pc and results in same visual result - harsh shadow edges, while Medium and High settings make softer edges at the cost of much slower compile speed. Remember that you can still setup light quality individually for every light, so if you need high quality setting for only particular setup, you may leave this option as is.
Override individual settings As mentioned above, every light has individual light quality settings. This checkbox will force all lights in level to use specified default light quality.
Texture tile padding This setting expands all edges of every texture, so when bilinear filtering or antialiasing is used, infamous "bleeding edges" issue won't occur in game. Also padding is necessary for seamless texturing, so if you're using seamless textures in your level, don't turn this option off!
By default padding is set to 8, because 8 pixels is the least possible value to prevent border bleeding with classic mipmapping. Although no any TR engines feature mipmaps (exactly because classic winroomedit/tom2pc compiler never cared about issues described above), this value is a future-proof setting, in case some day someone will patch classic TR engine renderers to finally use mipmaps.
However, there's a special case which doesn't apply here, and it is TR1-TR3 targets. Sadly, TR1, TR2 and TR3 had strict limits on texture page count, and padding eats a lot of texture space, quickly taking TR1-3 engine to its limits. So for these targets, it is recommended to set this option to 1 or 2.
Aggressive texture packing Since TR4, compiled textures were separated by texture pages for objects (moveables, static meshes and such) and for rooms. It's not clear what's the purpose of this, because it doesn't affect anything and doesn't break anything. So it is safe to turn this option on to conserve texture page space - and again, in case of TR1, TR2 and TR3 it is essential to turn this option on to conserve texture space and prevent potential crashes.
Aggressive floordata packing This option internally joins similar floordata sequences, e.g., if you have lots of similar blocks in your levels, vast flat spaces, this may shrink floordata size up to 5-10 times! Although TR4 engine seemingly doesn't have any issues with floordata size, it may be essential for TR2-3 engines. So if you have started experiencing crashes or bugs in TR1-3, try to turn this option on, and there is a chance it will free up some memory and fix your bugs.
Dither 16-bit textures This option is also mostly specific for TR1-3 targets, and it prevents potential "banding" issues which may occur because of reduced texture color depth in these games. For TR4+ targets, it doesn't make a big difference since virtually no one should use 16-bit textures setting in 2020, but it's better to keep this option on in case someone has set it up by accident.
Map animated textures to imported geometry, objects and static meshes This option is described in details in separate tutorial. Only one thing to say is that it may slow down level compiling a lot in case you're using lots of separate texture sets.
Rearrange vertically connected rooms if necessary TR engine theoretically supports up to 1024 rooms, however, there is a limitation in floordata format which does not allow vertically connected rooms with index above 254. If any room above 254 contains any floor or ceiling portals, this option comes into action and internally sorts all rooms in level so that all vertically connected rooms appear first in the room list, while non-connected rooms are sent back, effectively lifting this limit and allowing you to have more rooms in level.
Fast preview mode This option is not in the level settings, but is a separate hotkey command and button on the toolbar. If you don't see it - right-click on toolbar, click "Customize" and push
Fast preview compiles and plays your level as fast as possible, omitting several extra steps, such as interpolating room lights, merging static meshes, mapping animated textures and so on. It's meant to be used for fast gameplay checks, when you don't care about visuals - you just need to check how your triggers and timed runs are working. With this mode, you will notice that there are now visible light transitions between rooms, static meshes are lacking proper lighting, light quality is set to minimum everywhere, and so on. If you want to recompile your level as usual - just use ordinary "Build level" or "Build level and play" commands again.