Change history

Version Changes
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.
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@san.rr.com.

LDView and this web page are both Copyright © 2000-2002 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.