## Change history

Version | Changes
--- | ---
4.2 (09 Jul, 2016) | Additions Added support for blue neutral faces for BFC. Added "Right Side Up" feature, along with "Keep Right Side Up" setting while in fly-through mode. Added support for menu item images in Windows on OSes prior to Windows Vista. (Menu item images already worked on Vista and later.) Added scale selection to STL export. (Previously it was always cm.) Updated Mac version to support pinch gesture for zooming and three-finger swipe gesture for panning. Added support of openSUSE Build Service. Updates Updated "Random colors" setting to avoid BFC face highlight colors enabled under BFC (green front faces, red back faces, and blue neutral faces), but only if they are enabled. Updated transparency sorting to use less memory during initialization. Updated highlighting in the model tree to work better on sub-geometry of the selected line that has hard-coded colors (not color 16). Updated HTML Parts List for improved printing. Disable transparency when one or more of the red back faces, green front faces, or blue neutral faces options is enabled, and BFC is enabled. Update POV export to improve generated file. Updated code to be compatible with Qt 5.x No longer require BASE install package on initial LDraw library install, since it is no longer present in ptreleases.cgi. Bug Fixes Fixed crash when taking a snapshot using a video card without Frame Buffer Object support. Fixed detection of LDConfig.ldr on case-sensitive file systems (Linux). Fixed zoom to fit to ignore conditional control points when they aren't set to be drawn. Fixed rare bug where a recent filename getting truncated to fit in the menu could cause memory corruption. Fixed crash related to BFC INVERTNEXT. Fixed menu item images when running in Vista and later with visual styles in LDView disabled. Fixed crash in POV export when triangles or quads were in the file with points less than .001 LDraw Units apart (but greater than 0 units). Fixed bug where sloped LGEO bricks would use the _slope version of the color even if it was a color not directly supported by LGEO, and therefore without a corresponding _slope color definition. This would result in a POV error. Fixed 3DS export to properly handle BFC INVERTNEXT. Fixed STL export problem where some colored geomtry would not be exported. Fixed command line snapshot generation to pay attention to the Extra Search Directories set via the UI. Fixed seams in POV export to not fail for parts that are as thin as or thinner than the seam width (like stickers). Fixed autocrop to generate a 1x1 pixel image when all pixels in the image match the background color. Previousy, it didn't crop at all. Fixed 3DS exporter to use object names that don't have too many characters. Fixed position of pneumatic pistons on 8464.mpd to correct for their origin having changed before they became official parts. Fixed uninitialized variable that sometimes prevented steps from working. Fixed Show All/Show None buttons on Mac version to not skip the last error type, and to repopulate the error list based on the new selected errors. Fixed 3DS exporter creating files that are way bigger than needed.
4.1 (03 Dec, 2009) | Additions Added curve smoothing option for POV-Ray exports. Added ability to highlight the geometry represented by currently selected line(s) in the model tree. (Note that multiple selection in the model tree is only supported on the Mac.) Added status bar to model tree showing the filename and line number of the currently selected line. Added ability to randomize colors (useful for part authoring). Added view mode toggle to default toolbar (Windows and Mac only). Added toolbar customization, along with the ability to put a lot of LDView functionality on the toolbar (Windows and Mac only). Added OK and Cancel buttons to the MPD dialog. Hitting OK causes the selected sub-model to remain selection after the dialog is dismissed. Added remote control support to Windows version, so other programs can make LDView perform certain functions. Added "Overwrite existing snapshot" option to Parts List dialog when "Show model" is checked. Added 3D-Studio export. Added ability to specify step from the command line. Added ability to specify MPD sub-model name from the command line. Added "Automatic" aspect ratio setting for POV exports. Added new !LDVIEW BBOX_IGNORE meta command, to allow you to specify parts of the model that LDView should ignore during bounding box calculations. That way, the default zoom and zoom to fit can be tighter. Add support for "ri" and "r" ring primitives. Add support for "r" torus primitives. Added 64-bit version of the Windows Explorer thumbnail generator plugin, so thumbnail generation can now be performed on 64-bit versions of Windows. Added 64-bit Ubuntu package. Updates Updated Linux version to use Qt 4.4/4.5 instead of Qt 3.3. Removed BFC and Show Axes from the default toolbar (Windows and Mac only). Updated examine/fly-through status bar icons. Changed the Model Bounding Box feature to be a toggle. Updated full screen mode to not change the display settings if the requested display mode matches the current display mode. Updated snapshot save to include MPD sub-model name as part of the default filename if an MPD sub-model is selected. Updated LGEO POV export to use LGEO studs even on non-LGEO parts. Updated automatic part downloading to improve its performance. Updates library update check to scan all existing part files to determine the latest update already installed, instead of trying to figure this out based on the contents of files in the models directory. Updated handling of quads with colinear points to split the quad into two triangles at the colinear point in order to avoid T-Junctions. Improved detection of what version of the parts library is installed. Bug Fixes Fixed problem that caused the view mode icon to show up in the wrong part of the status bar sometimes, and show the lat/lon when in fly-through mode. Fixed crash when loading a part with "Part Bounding Boxes Only" enabled. Fixed resize grip on Model Tree dialog to not disappear immediately after hiding the options. Fixed bug that caused a crash any time you tried to bring up the screensaver settings. Fixed full screen support when used on a second monitor. Fixed POV export to not apply seams to sub-parts of parts. Fixed bug that caused the step in the toolbar to not update if you changed steps while the model was rotating on its own. Stop applying seams to parts that have been transformed non-uniformly. This was causing significant problems with flex tubes, which are stretched to arbitrary lengths. The excessive stretching messed up the seam calculation, causing them to be way too short. Fixed primitive substitution with 48-segment torus primitives to extract the proper angle from the filename, instead of 3 times the proper angle. Fixed steps on toolbar when number of steps is more than 100. Fixed ring primitive substitution to support n-16rinx.dat files. Fixed opaque dithered extended colors to not be transparent. Fixed problem when a new preference set was selected via Apply (not OK) and the new pref set has a different FSAA state than the previous one. Fixed it to give an error if the latest update currently installed doesn't show up on ldraw.org's ptreleases.cgi script. Fixed Windows Explorer thumbnail generator plugin to not skip some LDraw files. Fixed uninstall to perform a reboot if uninstalling the Windows Explorer thumbnail generator plugin, which often fails to properly uninstall without a reboot. Fixed final conditional line in cyls2 primitive substitution to not be wrong when "Curve Quality" is set to anything other than its default value. Fixed "Check for Library Updates" to properly deal with recent part libaries.
4.0.1 (08 Feb, 2009) | Bug Fixes Fixed official part detection for parts in 2008-1 LDraw library update. Fixed generation of conditional lines on full tori to not produce invalid lines. Fixed problem that caused invalid lighting with certain rare sub-model matrices.
4.0 (05 Jan, 2009) | Additions New Cocoa-based LDView for the Mac. Added basic support for steps. Added export feature to convert LDraw files into other file formats. Currently POV-Ray and Stereo Lithography file formats are supported. Added Model Tree dialog (drawer in Cocoa version) to show a tree with all the data from the model. Added MPD model selection to show sub-models inside MPD models. Added new latitude/longitude rotation mode. Added dialog to set the latitude/longitude. (This does not require you to be in the new latitude/longitude rotation mode.) Added support for multiple processors, and multi-core processors. Transparency sorting and conditional line calculations now happen in background threads when LDView is run on a computer with more than one processor core. Added option to show the coordinate axes for the model, originating at the model's origin. Added support for JPEG snapshots. The default JPEG settings are set using rarely-used JPEG compression options that result in much better quality for computer-generated imagery than is typically achieved with image tools. (Specifically, LDView uses the 4:4:4 JPEG color sub-sampling by default.) Added Bounding Box dialog that shows the minimum and maximum coordinates of the bounding box for the model, and draws that bounding box. Added view mode that only shows part bounding boxes. Added support for rotation in examine mode with the arrow keys on the keyboard. Added steps to m6459.ldr sample model. Added -SaveSnapshots command line option to allow multiple snapshots to be saved at once from the command line. Added "Transparent background" and "Auto-crop" to the snapshot saving UI. (Previously, these options were only available via manual registry entries or command line parameters.) Added ability to set the 3D portion of the LDView window to various sizes with standard aspect ratios. Added ability to use the current LDView aspect ratio in the POV-Ray camera info command. Added ability to control the default directory where snapshots and part lists get saved. Choices are in the model directory, the most recently used directory for the given file type, or a specified directory. Added support for Black_Edge color definition. Add a color to your ldconfig.ldr with Black_Edge as its color name (case doesn't matter), and LDView will use the given color for its black edge lines (assuming that "Process ldconfig.ldr is checked in the general prefs.) Added icons from toolbar to corresponding menu items when running in Windows Vista. Updates Decreased the amount of time needed to make certain preference changes (for example, toggling edge lines). Greatly improved the output quality of "Transparent background" snapshots when antialiased lines are enabled. Changed snapshot rendering in Windows to do software rendering directly to an in-memory bitmap when the Pixel Buffer OpenGL extension is unavailable or disabled. Previously, it rendered into the window, which caused a window to appear for command line snapshot renders. Changed the default setting for conditional lines from off to on. Note that since edge lines default to off, this won't be seen until the first time edge lines are enabled. Changed the default setting for seams to on. Rotated 8464.mpd sample model 180 degrees so that it faces forward in the default viewing angle. Updated the toolbar to have smaller buttons in Windows XP and Windows Vista. Changed "Always black" edges to be truly black, instead of whatever color was assigned to color code 0. Updated "Always black" edges to use gray when used on dark colors, isntead of black. Bug Fixes Fixed Windows version so that switching to full screen doesn't trigger a full model reload. Fixed handling of shift key when moving via the keyboard in fly-through mode. Fixed check boxes in group box titles in preferences to only show underlines under mnemonic characters when appropriate when running with themes enabled. Fixed bug where mouse control got messed up badly if you used <Alt><Tab> to switch to another program while dragging with the mouse in LDView. Don't show model load failure error message if the user cancels the model load. Fixed bug that sometimes caused a vertical line to appear on the left edge of large snapshots. Fixed handling of transparent and invisible LDLite color codes. Fixed Errors & Warnings Dialog on Windows verison to show the proper error and warning counts when the dialog isn't shown automatically. Fixed lock up when "Show View Info" was selected in Windows while themodel was spinning. Diable Open Model toolbar button during load. Using it would result in a crash. Fixed bug where hitting escape during load didn't work in Windows Vista (and maybe other versions of Windows also). Fixed bug where changing to a new LDraw directory would still give you a message that the LDraw directory could not be found. Fixed primitive substitution to work with primitives in the Unofficial/p directory. Fixed primitive substitution for 3-8ndis primitive. Fixed fly-through speed to be dependent of FPS, so that having a super high FPS doesn't produce super fast fly-through. Fixed primitive substitution to work better with curve smoothing with cone, sphere, and torus primitives. Fixed problem with condtional lines showing up when they weren't supposed to when their control points went outside of the view frustum.
3.2 (20 Aug, 2007) | Additions Added ability to generate an HTML parts list of your model. Added ability to set the direction that the light source points, both with predefined light directions in the Preferences Dialog, and by holding down Shift and dragging with the mouse. Added support for light.dat files in LDraw models. Unless disabled, these will generate point light sources in the scene, up to a total of 8 lights. Added ability to use LDView to generate thumbnails of .ldr and .mpd files in Windows Explorer and Gnome Nautilus. Made it so dragging with the middle mouse button pans (in addition to the existing dragging with the left mouse button while holding down Control). Added support for anisotropic filtering on video cards that support it. Added scroll wheel support to QT version. Added BFC toolbar button to QT version. Added support for the new !ldraw_org meta-statement to be used in the next official parts release. Updates Made it so that settings specified on the command line don't get saved as if they had been specified in the UI. (For example, -WindowWidth=320 on the command line would result in LDView launching with a window width of 320 the next time it was run.) Updated Zoom to Fit command so that the model remaines auto-centered after using it. Moved Errors & Warnings, Show View Info, and Show POV-Ray Camera Info to a new Tools menu. Made it so only the main row of an error entry is bold. Sub-rows are now non-bold. Made it so that transparency values of 240 and above are considered opaque. This was done to get rid of ugly artifacts that show up on the glow-in-the-dark color, which has a transparency value of 250. Bug Fixes Fixed bug in error reporting that would lead to a crash when the model file has a really long line. Fixed command line processing of -SaveSnapshot so that it doesn't generate a blank snapshot. Fixed bug that caused the LDView screensaver to crash when you tried to bring up its settings. Fixed bug where some models would be clipped after a Zoom to Fit. Fixed bug where the Errors & Warnings window would sporadically not draw correctly after being resized. Fixed cutaway wireframe causing one entire eye image to be drawn in wireframe when stereo is enabled. Fixed tiled snapshot saves to not ignore the SaveAlpha setting. Fixed -cg option to support the optional radius portion. Fixed tiled snapshot saves when PBuffer isn't available to make the image size an even multiple of the number of tiles used. It already did this with PBuffer snapshots. With non-PBuffer snapshots, you ended up with a border (usually black) on the top and right sides of the image. Fixed display glitch in Windows versions when switching the viewing angle via the toolbar. Switching the viewing angle via the main menu still has the display glitch. Fixed command line snapshot saves to pay attention to the file extension of the snapshot file specified on the command line, instead of using the SaveImageType setting. Fixed crash when LDView encounters two LDraw files that refer to each other. It now generates an error and skips the child model's reference to its ancestor model.
3.1 (09 Oct, 2006) | Additions Added automatic download of the LDraw parts library. Added automatic updating of the LDraw parts library. Added automatic downloading of unofficial parts from the LDraw.org Parts Tracker. Added ability to generate a POV-Ray camera section based on the current view in LDView. Added warning for parts that have been renamed. Added warning for usage of automatically downloaded unofficial parts. Added full snapshot support to the Linux version. Added printing support to Linux version. Added option to the Windows installer to open .ldr and .mpd files with LDView. Updates Updated m6459.ldr sample model to no longer contain renamed parts. Updated generation of new triangles and lines from quads and triangles that contain identical or co-linear vertices to use the original text from the file to generate the new primitives, instead of using text generated based on rounding of the numbers. Updated the warning messages generated in the above case to also use the text from the file, instead of rounding the numbers. Renamed the Error window to Errors & Warnings. Updated Windows version to disable more menu items when there's no model loaded. Bug Fixes Fixed handling of 12-bit dithered transparent direct colors. Fixed crash that occurred when one of the numeric parameters was missing from a line-type 1 line that referenced a filename that began with a number (such as a part). Fixed LDView so that it gives you an error if you select a file from the recent files list, and the file no longer exists.
3.0 (13 Dec, 2005) | Additions Completely new rendering engine, written from scratch. This allows for the following enhancements that would have been very difficult before: Significantly reduced memory usage on large models. Measured reduction on Orion Pobursky's Imperial Star Destroyer model with all settings set to default: 86%. The same, but with LDView 3's Memory usage setting set to Low: 90%. (Note that these are reductions of and 86% and 90%, respectively, meaning LDView 3 requires 16% the memory LDView 2.1.01 requires on that model with default settings.) Significantly reduced load time on large models. BFC (Back Face Culling) support. BFC verification support (red back faces and/or green front faces). Potentially faster rendering. (Actual speed differences vary significantly based on video hardware and what settings are set.) Added a toolbar (which can of course be disabled if desired). Added support for translation DLLs. Added a distinction between errors and warnings. Added detection of more problems and potential problems with model files, leading to more errors and warnings. Added support for making the default color transparent. (Primarily useful for part authors.) Added direct access to the help file to the Linux version. Added primitive substitution support for full-circle versions of new torus primitives. Added primitive substitution support for chord primitives. Added context-sensitive help to the save snapshot dialog. Added workaround for snapshot corruption that was happening on some video cards (Don't use Pixel Buffer option during snapshot save). Added Memory usage option to allow LDView to conserve even more memory. (This comes at the possible expense of speed. However, if you're swapping when the Memory usage setting is set to High, and not swapping when it's set to Low, then Low will be faster.) Added support for LDraw search directory list in ldraw.ini using Lars Hassing's LDrawIni code. Added support for spaces in submodel filenames. (Generates a warning.) Added extra command line parsing for use when using LDView as a renderer from LPub. Added detection of primitive comment so that primitive detection can work on primitives outside the ldraw\p directory. Added support for automatic cropping of images (via the command line only; no UI at this time. Added new sample model created by Peter Bartfai: 8464.mpd. Updates Rearranged items in the File menu. Revamped error dialog box. Removed the recompile requirement for P-Buffer snapshots. Updated primitive substitution support to also substitute primitives in the p/48 directory. Updated text of check buttons in group box titles of preferences to match the color of other group box titles when run in Windows XP with themes enabled. Improved sorting of transparent substituted primitives. Updated color handling to match LDraw's behavior for unknown colors. Bug Fixes Fixed transparent extended colors so they work. Fixed snapshot saving to always redraw the model after the snapshot save. Fixed maximum depth of cutaway mode. Fixed default zoom for tall windows. Fixed zoom-to-fit with wide edge lines and wide wireframe lines. Fixed panning to be usable over the entire supported field-of-view range. Fixed problem in OpenGL driver information dialog that would cause a crash on some video cards. Fixed problem that caused the delete button not to be enabled after a single directory was added to the extra search directories list. Fixed smoothing to not smooth across sharp angles. Fixed auto-calculated extension for BMP snapshots when the save snapshot series option wasn't enabled. Fixed zooming with the mouse wheel. Fixed seams to not double-shrink parts that are referenced from other parts. Fixed clipping problem that sometimes showed up in fly-through mode. Fixed command line parsing problem that could cause LDView to crash. Fixed command line parsing problem that could cause LDView to incorrectly miss an LDraw file specified on the command line. Fixed problem that caused subfiles in an MPD file with a backslash (\) in their filename not to load. Fixed problem that prevented screensaver settings from sticking when a preference set was selected in the screensaver. Fixed problem that prevented status bar from being visible when LDView was started up maximized.
2.1.01 (10 Jul, 2004) | Additions | Re-introduced co-linear point detection in quads. I discovered that my previous belief that there was a legitimate use for them was flawed. Added ability to the screen saver to have it randomly choose a preference set each time it runs. It should be noted that the preference set includes the screen saver file or directory selection, so you can have individual models display with particular settings if you want. Added support for snapshots up to 9999x9999 on any video card by using tiling to construct images bigger than would otherwise be supported.
Updates | Updated line drawing when antialiased lines are enabled to get rid of artifacts around some edge lines of transparent colors. This has the (somewhat undesirable) side-effect of making edge lines around transparent shapes less distinct.
Bug Fixes | Fixed Zoom to Fit to work properly after panning the view. Fixed hidden line removal when sorting of transparent shapes isn't enabled. Fixed problem that caused LDView to lock up if the background color or default color was chosen without a model loaded. Fixed preference set deletion. It had no permanent effect before. Fixed zoom to fit so that it works when stereo viewing is enabled.
2.1 (03 Jan, 2004) | Additions | Added Zoom to Fit command, as well as Zoom to Fit option during snapshot saving. This uses the auto camera positioning algorithm from L3P (which was graciously provided to me by Lars Hassing). Added ability to remove hidden lines from wireframe mode. Added ability to change the default viewing angle, and added the ability to get to the original isometric viewing angle if you change the default one. Added ability to specify a view matrix on the command line. Added ability to specify the camera's latitude and longitude on the command line (similar to L3P's -cg command line option). Added ability to modify the default zoom level on the command line. Added menu command to show information about the current view and copy it to the clipboard in a format suitable for use on the command line. Added ability to control the field of view. Added documentation for the -SaveSnapshot command line option. Added support for ldconfig.ldr. Added support for custom colors inside model files (as well as inside ldconfig.ldr) using the 0 COLOR meta-command. Added ability to specify extra part/sub-model search directories. Added an optional work-around for a problem that sometimes prevented Windows 98 systems from going into power save mode when LDView was used as a screen saver. Added context-sensitive help to screen saver settings. Added ability to screen saver to select a directory and have a random model from that directory picked each time the screen saver runs.
Updates | Updated fly controls to deal with FOV changes. They won't work quite as well at extreme FOV settings, but they should still be usable. Removed Default from Viewing Angles menu. It was redundant, since it did the same thing as the Reset View command, and likely more confusing than useful. Improved transparent shape sorting performance.
Bug Fixes | Fixed precision in error window to prevent excessive rounding of the displayed values (note that the actual values were never rounded). Added missing documentation for HiResPrimitives registry/command line setting. Added code to prevent multiple copies of the LDView screen saver from running simultaneously. This shouldn't be necessary, but since I received a report in Windows 98SE indicating about 50 copies of the LDView screen saver, it is obviously useful as a safety measure. Added code to allow power save mode to work in Windows 98 when using LDView as a screen saver. As with the multiple copies problem, this shouldn't be necessary, but it appears to be (at least on some systems). Fixed -SaveSnapshot to handle relative paths correctly for the image filename. Fixed -SaveAlpha to work again. It was broken at some point. Fixed the Reset functionality of each preference page to work properly. Fixed status bar to continue to correctly display the FPS after you switch FSAA modes. Removed detection and handling of co-linear points in quads. There is a legitimate reason to have a quad that degenerates into a triangle; it can prevent seams from being visible in certain circumstances. Fixed SaveSnapshot so that it now only loads the model once; previously it would load it and then immediately reload it, doubling the load time. Fixed default camera zoom level to be the correct value, instead of a loose approximation that occasionally resulted in clipping. Fixed FOV calculation when the window is taller than it is wide. Fixed command line parsing to properly handle quotes around a filename specified as part of an option. Fixed jerkiness in fly-through mode after setting preferences. Fixed screen saver so it correctly automatically finds the LDView help file when you use context help (as long as LDView has been run at least once from its installed directory. Fixed screen saver so that when you hit the Reset button on the Screen Saver settings tab, the Apply button is enabled.
2.0.3 (07 Oct, 2003) | Bug Fixes | Fixed Open File dialog on pre-Windows 2000 machines. (This was broken by my Windows XP changes in 2.0.2.)
2.0.2 (03 Oct, 2003) | Additions | Added support for Windows XP visual styles. LDView now uses the currently selected visual style when running in Windows XP.
Updates | Updated status bar progress bar to look OK in both Windows XP style and classic style. Changed OpenGL initialization failure message to be more user-friendly, and updated it to exit when an OpenGL initialization failure occurs. Removed special handling of 4-4con12.dat file, now that the original messed up file (radius 1, instead of 12) is no longer supported by the parts library. Cleaned up color handling, as well as changing the definition of a few colors.
Bug Fixes | Fixed Show all and Show control points under Conditional lines in the Edge Lines box of the Geometry preferences tab to have proper default values and reset properly. Fixed startup routine to not show a window when generating an image based on the command line on computers with the PBuffer extension. (Computers wihout the PBuffer extension require the window to be opened in order to render the image.) This worked in the past, and was broken by another bug fix.
2.0.1 (23 Aug, 2003) | Additions | Added support for arbitrary FSAA modes.
Updates | Updated direction of mirroring of stud logos based on empirical evidence that the original direction was less often appealing. Changed general preferences tab to handle arbitrary FSAA modes.
Bug Fixes | Fixed problem that caused certain keyboard shortcuts (including F5-reload) to crash LDView on some systems. Fixed bug in part detection that resulted in not recognizing certain files as parts even though they had the appropriate comment. Fixed part scaling to skip parts with one or more dimensions that are zero. This caused a divide by zero, which resulted in an infinite scale factor. Fixed part detection not to falsely recognize subparts as parts. Fixed OpenGL error that always showed up on non-nVidia video cards. Fixed changing FSAA mode on ATI video cards. There appears to be a bug in the ATI drivers that prevented changes from one mode to another from working properly. I added code to work around this. Fixed font rendering on ATI video cards with FSAA enabled. Fixed con0 primitive substitution to stop producing a dark result.
2.0 (01 Jun, 2003) | Bug Fixes | Fixed edge line thickness to be correct in wireframe mode. Before, edge lines were drawn using the thickness setting for wireframe lines when drawing in wireframe mode. Fixed smoothing and seam width to work properly on mirrored parts.
1.9.11 (06 Apr, 2003) | Additions | Added ability to have LDView draw just edge lines, with hidden line removal by default, or no hidden line removal when in wireframe mode. Added ShowAllType5 and ShowType5ControlPoints settings to the Preferences panel so that they can be changed from inside LDView. (Before, you had to either specify them on the command line or modify the registry.) Added support for hi-res (48-sided) primitives. This only currently has an effect when primitive substitution is disabled, since all of the current hi-res primitives are supported by primitive substitution.
Updates | Updated "new" torus primitive substitution to treat size fractions of nnnn to be n / 9, instead of nnnn / 10000. This means that 3333 correctly gets interpreted as 1/3. Sped up curve smoothing (significantly, in certain situations). Updated recent file tracking to not include files with a ".tmp" extension. This was done primarily to prevent LDraw Design Pad temp files from cluttering up the recent files list. It seems safe to assume that if a file has a ".tmp" extension, it's a temporary file, and shouldn't go in the recent files list.
Bug Fixes | Fixed Antialiased Lines settings to also antialias conditional edge lines. Fixed bug in MPD-handling code that caused incorrect rendering of MPD files that contained repeat copies of a subfile. Fixed bug that the model didn't draw completely correctly if loaded in wireframe mode and then switched to display in non-wireframe mode. Unfortunately, the fix requires reloading the model when switching wireframe mode on and off. Fixed default custom colors in the color chooser to work in Windows XP. It wasn't working at all before (and may have been broken in Windows NT/2000 as well). Fixed screen saver browse file button to include .ldr files in the default file types. Fixed bug in curve smoothing algorithm that caused certain edges to be smoothed that shouldn't have been. This can actually make some parts look worse, but every one I can find that got worse isn't modeled correctly.
1.9.10 (16 Mar, 2003) | Additions | Added ability to assign hot keys to preference sets. Added six preset viewing angles (front, back, left, right, top, and bottom) in addition to the pre-existing default viewing angle. Added optional installation of screen saver to install program.
Updates | Updated screen saver to not allow task switching in 95/98/Me when waiting for a password. I can't really test this, as I no longer have a 95/98/Me machine. If it doesn't work properly, it could potentially require a hard reset. Updated setup when "High quality" is selected for edge lines to hopefully produce acceptable results across a wider range of hardware.
Bug Fixes | Fixed primitive substitution to correctly support the new con0 cone primitives. They aren't the same shape as the other cone primitives that all have a hole in the middle, and ended up rendering incorrectly. Fixed intermittent crash in Windows XP when the Preferences panel is dismissed. Fixed status bar to update properly in Windows XP. It wasn't displaying the FPS due to updates not being drawn while the model was spinning. Fixed interaction between status bar and window size so that window stays a consistent size after switching to and from fullscreen mode, and between multiple runs of LDView, whether or not the status bar is visible. Fixed screen saver mode to hopefully work properly again. It has been completly broken for a while now. Fixed window activation problems that caused LDView not to be activated when it was run, and when switching to and from fullscreen mode. Fixed problem that caused errors to be added to the error log for studs that don't have a low-res version when LDView is set to use low-res studs.
1.9.9 (12 Jan, 2003) | Additions | Added primitive substitution support for n-16 versions of some primitives. Due to their current absence from the released parts library, this has perforce received limited testing.
Updates | Updated many of the settings to be global. The preference set feature added in 1.9.8 now mostly only effects the settings in the Preferences panel. Changed from ZIP-based distribution to executable installer.
Bug Fixes | Fixed the help documentation to contain recently added but undocumented registry/command line options. Fixed bug which caused a crash when loading a model that doesn't reference any other models (such as a primitive). Fixed smoothing of curves. (It was broken completely in 1.9.8.)
1.9.8 (29 Nov, 2002) | Additions | Added support for multiple named sets of preferences. Added examine/fly-through mode indicator icon to taskbar. Added support for gray rubber (color 375). I made it significantly less shiny when specular lighting is enabled. (There is no visual difference when specular lighting is disabled.)
Updates | Enhanced the performance of the Windows version slightly by disabling compiler support for structured exception handling (which I don't use). Decreased memory usage in certain situations.
Bug Fixes | Fixed finding the help files when run from the command line. As far as I know, this always worked in Windows 98, but sometimes failed in other Windows OSes. Fixed window close button (X) on preferences panel so that it actually closes the window now. Fixed problem that caused relative paths to not work on the command line. Fixed problem that allowed relative paths to end up in the recent files list and not work. Fixed black rubber support broken in version 1.9.7.
1.9.7 (09 Sep, 2002) | Additions | Created a version using QT. This was developed in Linux, but should work in any Unix-like operating system with OpenGL and QT support and a 32-bit compiler. (I can almost guarantee it won't work if compiled with a 64-bit compiler.) RedHat 7.3-compatible Linux binaries available for download. Added a status bar (which can be hidden). Added Fly-through Mode. Added unique specular properties to gold, chrome, and the electrical contact color to try to better convey their metallic nature. They still aren't reflective, but they are now more shiny. Added support for BaseDirectory setting in [LDraw] section of ldraw.ini. Added a menu item to allow you to manually change the LDraw directory once it has been chosen for the first time. This is only useful when the old directory still exists, because LDView checks for it every time it runs and automatically prompts you if it goes away. Added "Always on Top" menu item to the View menu to make LDView a topmost window.
Updates | Increased the maximum curve quality to 12, twice the previous maximum of 6. Got rid of progress panel, and instead show progress in the new status bar. Canceling a load can now be accomplished either by hitting escape or selecting the Cancel Load item on the file menu. Even when the status bar is set to be hidden, it is shown during image loads to show progress. Hopefully this change will remove the image load problems that showed up to varying extents on varying hardware (particularly for those people who had no problems in LDView version 1.0). Updated to display FPS in the status bar if the status bar is visible and FPS are set to be displayed in the preferences. FPS is displayed as before when the status bar is not visible (including in full-screen mode). Updated OpenGL Driver Info window to be resizable, and added a status bar listing the number of extensions and WGL extensions. Incorporated font texture and stud texture into executable, thus removing those two files from the distribution.
Bug Fixes | Fixed bug in MPD parsing that caused LDView to crash when one of the MPD pieces was marked as a part, and that piece was scaled non-uniformly. Fixed bug that caused unix-format MPD files not to parse properly. Fixed bug that made it so that changing the specular preference had no effect if Alternate lighting was checked. Fixed bug that caused in-frame FPS text to be drawn half its normal width when stereo viewing was enabled. Fixed bug that caused the field of view to be greater than 180 degrees with a really tall skinny window (thus inverting the model). If your screen resolution was 1600x1200 or lower, you had to be in stereo mode in order to witness this bug. Fixed field of view calculation for tall skinny windows to come closer to preserving the model's scale (instead of shrinking the model down to nothing). This fix probably removes the need for the field of view cap fix above, but it was done separately. Fixed bug that caused wireframe cutaway in tall skinny windows to draw the wireframe portion with the wrong field of view (making the wireframe portion too big). Fixed a (minor, one-time) memory leak in the OpenGL Driver Info panel.
1.9.6 (04 Aug, 2002) | Additions | Added support for antialiased lines. Added support for file type meta-command to force recognition of a file as a part, even if it isn't in the parts directory. This mainly effects seams and smooth curves. Added ability to copy the text from the currently selected error in the error window to the Windows clipboard.
Updates | Updated OpenGL Driver info to all be consolidated into one panel (in a format that can be copied to the clipboard). Updated Font texture to a better looking font. (Well, I think it looks better, but since I constructed it myself about 10 years ago, I guess I'm biased.)
Bug Fixes | Fixed color bug that caused some submodels to be drawn in the default color, instead of their correct color. Fixed problem with texture-based font rendering. Fixed problem that caused an OpenGL error to show up in the error panel on hardware without the FSAA multisample OpenGL extension. Fixed the high quality edge lines option to work on all hardware, and changed it to be on by default. Fixed bugs which caused nothing to be drawn after switching to fullscreen, or changing the antialiasing mode. Fixed bug in OpenGL mode selection code that probably resulted in random mode selection failures, as well as possible crashes. This should only have effected antialiased modes and snapshots. Fixed bug in alternate lighting setup that sometimes caused it to be slower than it should have been. This also sometimes slowed down lighting when specular was enabled. Fixed bug that caused cancelation during model compilation to fail and put LDView into a state where you could still rotate the model, but not access any of the menus, or even exit. Fixed bug that caused colored geometry to disappear (permanently) when a snapshot was taken in Windows.
1.9.5 (26 May, 2002) | Additions | Added support for smooth shaded curves, using the presense of Type 5 lines as an indicator of a curved surface. Thanks to Martijn Zwaal for the basis of the algorithm used to implement this feature. Added experimental support for the use of the alpha channel in PNG snapshots to produce a transparent background. Currently only accessible via the command line or registry with the SaveAlpha setting.
Bug Fixes | Fixed bug introduced in 1.9.4 which prevented you from viewing any models when LDView was started with a maximized window.
1.9.4 (10 May, 2002) | Additions | Added support for Type 5 lines (conditional edge lines). Implemented primarily by Don Heyse using experience/code from LdGLite. Added conditional lines to substituted primitives. Added ability to set preferences on the command line.
Updates | Sped up drawing of non-compiled elements (sorted transparent shapes and the new Type 5 lines).
Bug fixes | Fixed possible bug where some sorted transparent shapes might have drawn in the wrong color. Fixed font corruption after some snapshot saves. Fixed problem where Ctrl+S didn't work until after you looked at the file menu.
1.9.3 (13 Apr, 2002) | Additions | Added ability to select the default color. I expect this is most useful for part authors, but at least some models use color 16. Added ability to reset each of the preferences pages back to their default values. Added detection and handling of co-linear points in triangles and quads.
Updates | Updated error window to be displayed after an automatic reload. Note that certain preference changes can change the errors that are generated, since some of the error checking is the result of certain preference settings. Updated the default custom colors to be the first 16 LDraw colors. This makes the new default color feature easier to use.
Bug fixes | Fixed edge line color for default-colored parts. Before, the default color was always 7 (light gray), but 7 was also being used for the edge lines. Color 8 is now used by default. If the default color is changed, an appropriate highlight color is used (usually black). Fixed all discovered memory leaks. Fixed recent files to show up in file menu after switching back from fullscreen mode. Fixed FPS display to hopefully work in all configurations by using a texture mapped font. Fixed FPS to not be fuzzy when an enhanced FSAA mode is used (as long as vsync is enabled). Fixed screen saver mode to cover the taskbar when it isn't set to auto hide.
1.9.2 (19 Feb, 2002) | Additions | Added ability to texture map a logo onto studs. Added ability to have the cutaway portion display as wireframe. Added experimental screen saver support. Added support for BMP snapshots. Added disclaimer to About box and Readme.txt. Added new lighting setup that improves performance on some/all video cards when specular is disabled.
Updates | Updated preferences to make room for extra primitive substitution settings by adding a new tab and moving primitive-based preferences to the new tab. Updated all lines to be opaque to make edge lines show up on transparent pieces. Updated the recent files list to include full paths up to 250 pixels wide, and put ellipses into paths that are too long to fit. Updated source to compile with standard glext.h and wglext.h header files from www.opengl.org.
Bug fixes | Fixed line widths to apply when the program is started, instead of only after they are changed. Fixed "Always black" preference on Geometry tab to be in the correct spot in the tab order for keyboard navigation. Fixed snapshot saves to update the filename immediately when you change the number of digits. Fixed minimum near clipping plane calculation to be based on the size of the model so that edge lines don't "pop" when you zoom super close using the ZoomMax registry setting. Fixed Reset View to reset the near and far clipping planes immediately, so that you can see the entire model without having to first move your mouse.
1.9.1 (27 Jan, 2002) | Additions | Added support for panning the camera. Added setting to always use black for edge lines. This is most useful for part authors to be able to see the edge lines better. Added setting to control the curve quality of primitive substitution. The minimum value produces 8-sided circles; the maximum produces 48-sided circles. Added primitive substitution support for new torus primitives. Added primitive substitution support for "ndis" (not-disk) primitives. This is necessary for curve quality to work well. Added progress panel during PNG file creation. This is especially useful for high-resolution files. Hitting cancel cancels the save and deletes the incomplete PNG file.
Updates | Renamed m6459.dat to m6459.ldr like it was supposed to be named in v1.9. Updated default zoom level to slightly higher. In all but the most extreme circumstances, the model will still never go outside the window borders at this zoom level. Updated to disable seam width setting if seams are disabled. Updated primitive substitution to parse primitive names in a more generic fashion.
Bug fixes | Fixed error window to update when the model is reloaded (either manually or automatically via polling). Fixed background color chooser dialog to be a child of the preferences panel. Fixed problem where canceling the preferences wouldn't fully reset the background color, seam width, FSAA mode and stereo mode. Fixed the preferences dialog to properly free up the resources it allocates when opened. Fixed seam width adjustment to work again. Fixed it so that menus will work when the model is spinning and animated menus are enabled in Windows. The spinning now pauses when you go to select from a menu. Fixed drag/drop support so that dropped files update the most recent open directory and show up on the recent files list. Fixed image save with dimensions that are too large to display the appropriate error message. Fixed print progress panel to stop it from flickering, and changed text from "Printing..." to "Printing Model.". Fixed primitive substitution to get rid of false positives. Fixed serious memory leaks introduced in version 1.9.
1.9 (10 Jan, 2002) | Additions | Added this HTML file to distribution as a replacement for History.txt. Added support for full-scene antialiasing (FSAA). Added printing support. Added stereoscopic 3D support. Added ability to save PNG snapshots. Added support for LDLite direct colors and L3P/L3Lab 24-bit colors. Added context-sensitive help for all preferences. Added recent files list. Added support for .ldr as a standard LDraw file extension. Added error panel to display errors encountered when loading a model. Added an option to automatically display this panel after loading a model if errors are detected during the load. Added progress panel with cancel button while model is loading, compiling, or printing. Added option to sort transparent polygons. This produces a more correct rendering, but can slow things down. The sorting is not correct 100% of the time yet. Added menu item to the View menu to reset the view back to the orientation that is displayed when a model is first loaded. Added sample file (m6459.dat) to distribution. Added ability to set maximum zoom level. (Suggested and demoed by Carsten Schmitz.) Currently requires Registry editing. Added version resource to executable. Added WGL Extensions menu item to Help->OpenGL Info submenu. Added release dates to this document. Added releases prior to 0.5.1 to this document
Updates | Updated preferences to be in a tabbed format. Updated check which prevents seam creation to have more loose check to better allow for round-off. Updated internal model representation to facilitate (among other things) the sorting of transparent polygons. Updated this document to be in table format. Updated About Box to include "Thanks to" section. Updated date format in About Box to "DD Mon, YYYY" format. Updated high quality lines to only be available when Edge Lines are enabled. Updated so lighting settings are only available when lighting is enabled. Updated so wireframe fog is only available when wireframe is enabled. Updated to statically link against my own libraries, so TCFoundation.dll and CUI.dll are no longer necessary. Removed code which prevents any axis from being scaled to 0. Updated to decrease the size of the model when the window is made narrower than its height. This is particularly useful when Stereo is enabled, as the two views are often taller than they are wide.
Bug fixes | Fixed panels so that escape triggers the cancel button. Fixed typo (missing space) in message when selecting the LDRAW directory. Fixed color bug where white shapes would not alway display in the correct color. (Found and fixed by Carsten Schmitz.)
1.0 (17 Oct, 2000) | Additions | Added check box to enable/disable seams, so you don't have to drop them all the way down to 0.00 to disable them.
Updates | Changed "High quality studs" option to "Low quality studs (faster)", and inverted the logic behind the check-box accordingly. Made capitilization of preferences options consistent. Made minor modifications to Help.html.
Bug fixes | Fixed command line parsing to work when the filename has quotes around it. Fixed command line parsing to not blow up when the file and/or directory cannot be found. Fixed polling code to work in Windows 95. (I accidentally used a function originally that didn't exist in 95.) Fixed primitive substitution bug where enabling seams was producing incorrect surface normals. Fixed part-determination for seams to allow part names which end with a letter. I incorrectly thought that these would all be sub-parts. I now determine whether it is a subpart based on whether its parent model is a part. Fixed it to get the ldraw dir out of the registry when you specify a file on the command line. Fixed seam code to shrink a part even when it is the main file which is opened. (This has extremely marginal value, but is more cosistent.)
0.9.1 (06 Oct, 2000) | Additions | Added File->Reload menu item (F5) to reload the current model. Added Polling menu with options to automatically reload the current model when the file is changed by some other program. Added ellipses (...) to menu items which open panels. Added the ablity to do cut-aways by moving the near clipping plane away from the camera. Added Help->Contents menu item to display Help.html in your web browser. Added documentation for all the menu items.
Updates | Moved the Help menu back over with the other menu items to be consistent with other Windows apps. Changed it so that it displays a directory tree if it cannot determine your LDraw directory (instead of forcing you to type in the path). Converted the README.TXT file to HTML and renamed it to Help.html. In addition to the conversion to HTML and enhancements in formatting, I also improved the content somewhat.
Bug fixes | Fixed the frame rate calculation to be more accurate. Fixed zoom speed to be consistent across models of different sizes. Fixed startup code to correctly maximize the window if it was maximized when you last exited. This worked at one point, but became broken. Fixed it to search the MODELS subdirectory of the LDRAW directory when looking for a part. Fixed it so that when fullscreen mode fails, it switches back to windowed mode gracefully after presenting the error panel (instead of waiting for you to switch back manually, then crashing without restoring the video mode).
0.9 (25 Sep, 2000) | Additions | Added sphere primitive substitution. This was--by far--the hardest primitive substitution. Unlike the other primitive substitutions, the sphere primitive substitution results in a different set of polygons being drawn. The sphere that LDView creates is made up of 16 triangles, unlike the standard sphere primitive, which is made up of 9 quads and 4 triangles. Added support for black rubber (color 256). I made it significantly less shiny when specular lighting is enabled. (There is no visual difference when specular lighting is disabled.) Added support for stipple transparency.
Updates | Changed it so only the OpenGL window has a private device context. This is much more in keeping with standard Win32 programming guidelines.
Bug fixes | Fixed NT bug where the video mode list would have a bunch of repeats for each resolution (one for each refresh rate at that resolution, I think). Fixed bug where background color button would not show the currently selected color if you used Ctrl+Shift+P to bring up the preferences panel for the first time. Fixed bug where concave polygons with non-winding points would cause a crash. I definitely fixed the crash; I think I fixed it so that they will actually draw correctly as well. Fixed possible bug in substituted primitive color setting. I never saw the problem exhibit itself, but the code seemed wrong.
0.7.5 (08-Sep, 2000) | Additions | Added primitive substitution option. This produces higher quality output, as well as slightly enhanced performance. I have created substitutions for the following primitives: Low-res Studs (Standard Studs are made up of other primitives.) Cylinders Sloped Cylinders Torus Cones Disks (no visual difference) Rings (no visual difference) Edges (no visual difference) Added support for concave quads (it now splits them into two triangles).
Updates | Optimized model-loading to decrease load time somewhat (only really noticeable on really large models). Updated Open Panel to be owned by main window. This was required to allow it to work in fullscreen mode.
Bug fixes | Fixed command line file opening to switch to the directory containing the model so that if it references other sub-models it will still work. Fixed drag and drop to change to the dropped file's directory so that models with subparts will work. Fixed bug in which color wasn't initialized properly always, resulting in incorrect colors sometimes. Fixed keyboard shortcuts (Ctrl+O, Ctrl+Q, Ctrl+Shift+P, etc). Although I believe they worked when I originally added them, they have been broken for awhile now. Note that these work while in fullscreen mode on some video cards, so you can now change options and open a new file without having to switch back to windowed mode (assuming you remember Ctrl+O and Ctrl+Shift+P).
0.7 (29 Aug, 2000) | Additions | Added fullscreen support. Added mouse scroll-wheel support for zooming. Added ability to specify a file on the command line so you can use LDView as your default DAT/MPD file viewer and/or drop files on the program to launch with that file. Added ability to drag and drop files onto the program window to have them opened.
Updates | Enhanced zooming to slow down when up close and speed up when far away.
Bug fixes | Fixed bug with color choice where if you canceled the preferences panel while choosing a color, it would crash.
0.6.4 (16 Aug, 2000) | Updates | Performed significant code rearrangement and cleanup in the model code.
Bug fixes | Fixed MPD parsing bug which would cause a crash with some MPD files.
0.6.3 (13 Aug, 2000) | Additions | Added OK/Cancel/Apply to Preferences, and made it so that preference changes don't go into effect until either OK or Apply is hit. All options now go into effect immediately thereafter. (You no longer have to reload the model after changing certain options.)
0.6.2 (29 Jun, 2000) | Updates | Updated bounding box code to use my own matrix multiply routine (instead of the OpenGL matrix multiply). The rest of the code was already using my routine. These matrix multiplications are all pre-processing, not real-time.
Bug fixes | Fixed problems with device context and OpenGL context handling. This will hopefully make it run again on non-nVidia hardware. It definitely works again with the Microsoft software renderer.
0.6.1 (27 Jun, 2000) | Bug fixes | Fixed registry bug introduced in v0.6 which prevented settings from being saved in NT.
0.6 (25 Jun, 2000) | Additions | Added ability to put seams between pieces (ala L3P). Added edge line support (with toggle). Added high-quality mode for lines (with toggle)--uses glPolygonOffset to move all filled shapes (triangles and quads) away from the viewer by a little bit. Added ability to turn off lighting (useful with edge lines turned on). Added subdued lighting mode (with toggle), which is about halfway in between the standard lighting mode and no lighting. Added wireframe support (with toggle). Added support for fog in wireframe mode (with toggle). Added asterisk to all the preferences that require the model to be reloaded. Put note at the bottom of the panel explaining. Added OpenGL Driver Info submenu to help menu: Vendor Renderer Version Extensions Added release date to About box. Added code to changed the mouse cursor to a wait cursor while the model is loading.
Updates | Renamed from L3DView to LDView (to avoid confusion with L3P/L3Lab). Updated Icon to reflect new name. Updated About Box to reflect new name. Updated About menu item to reflect new name. Updated Preferences panel to reflect new name. Changed registry key that preferences are stored under to reflect new name. This change causes settings from previous versions to be lost. Updated code so that anything visible to the user reflects the new name. Completely rearranged preferences panel to handle all the new options. Added panel to prompt for LDraw directory the first time LDView is run, if it is not found in either C:\LDRAW or in the LDRAWDIR environment variable. Since the old registry settings were lost due to the rename, I reorganized my registry settings. Added support to my convenience class for sub-folders in the registry. Changed my main registry path to `HKEY_CURRENT_USER\Software\Travis Cobbs\LDView`. Moved all my custom color registry entries to CustomColors sub-folder. Changed initial viewpoint to be at a better angle.
Bug fixes | Fixed initial window title to be LDView (it used to say 'Model Viewer'). Fixed Z-buffer noise fix. (My original fix offset the polygons in the wrong direction.)
0.5.2 (21 Jun, 2000) (late PM) | Additions | Initial source release
Updates | Project/Source cleanup for source release.
Bug fixes | Fixed FPS to display in black when background color is light. Fixed a few DC-related issues (? not positive they were actually broken).
0.5.1 (21 Jun, 2000) (early AM) | Additions | Added background color setting. Added option to turn off specular lighting (shininess).
Bug fixes | Fixed Z-buffer noise with transparent pieces. Fixed color when drawing parts all by themselves. Now draw the part using color 7.
0.5 (18 Jun, 2000) | Additions | Added Menu Bar: File Open Exit Edit Preferences Help About Added ability to open a different model without having to exit. Added preferences panel with the following settings: High quality lighting Use flat shading Use high quality studs Show frame rate Added About Box. Added code to remember window size between runs (including when maximized). Added code to remember which directory you last opened a file from. Added support for all the colors listed in the FAQ. Added support for colors used by MLCad which are not in the FAQ. Set a minimum window size to 320x240 internal dimensions.
Bug fixes | Fixed RGB values of existing colors to match FAQ. Fixed lots of memory leaks (which did not really have any effect due to the fact that you could only view a single model). Fixed bug in which the same file could get closed multiple times, resulting in crash (also did not show up due to one-model limit). Removed a some code that was left over from a previous project. This is why the main executable is actually smaller than the previous version.
0.1 (03 Jun, 2000) | Initial release.

LDView home

If you have any comments, questions, or suggestions, please e-mail me at ldview@gmail.com.

LDView and this web page are both Copyright © 2000-2009 Travis Cobbs.

LEGO® and the LEGO logo are registered trademarks of The Lego Group, which does not sponsor, endorse, or authorize this site. You can find the official LEGO website at http://www.lego.com.