Releases: zdmilot/DirectX-3D-Viewer
Releases · zdmilot/DirectX-3D-Viewer
Release list
DirectX 3D Viewer v1.1.0
Renderer & large-model stability
- Auto index format — meshes now use 16-bit indices when small enough, 32-bit otherwise, halving index memory on large models.
- Frustum culling + per-mesh bounding boxes — off-screen geometry is skipped each frame.
- Out-of-memory guards on buffer creation with friendly warnings instead of a crash.
- Device-lost recovery around Present/Resize so a GPU reset re-creates the renderer instead of dying.
- Back-face culling removed — models always render double-sided (reverted after it made models look hollow).
New file-format support
- OBJ + companion
.mtl— material colors are parsed and baked into exported.xfiles. - GLB / glTF import with color (via SharpGLTF).
- (STEP was prototyped, then removed from scope at your request.)
Loading experience
- Splash-screen file loading — launching the app directly with a model holds the splash, shows the file name under the progress bar, and falls back to a serial retry if async load fails.
- In-app loading overlay — opening a file from inside the app shows a centered "Loading model" card with an indeterminate bar and the file name below it.
Object shading & appearance tools
- Appearance icon changed to an eye (Day / Night / Transparent retained).
- New paintbrush "Object shading" tool — recolor the whole model from 12 preset color swatches with live preview and Restore original colors; color carries into
.x/.obj/.glbexports (note clarifies.stlhas no color). - Swatches render as real color tiles instead of default button chrome.
- Wireframe icon changed to a distinct cube glyph so it's no longer confused with the gridlines icon.
Settings (new)
- Dedicated Settings dialog behind a new cog button under Help.
- Configure default projection (Perspective/Orthographic), wireframe by default, gridlines by default, and dark theme by default — applied live and persisted across restarts.
- Wireframe preference is now actually saved (it wasn't persisted before).
Help & About
- Help dialog reorganized into "Help & About" with About moved to the bottom (standalone About button removed).
- Each CLI command is in its own bordered box with a copy button (top-right) that confirms with a checkmark.
- Help text is selectable/copyable and reflects that the exe runs by name without a full path.
- Click-outside-to-close (light dismiss) added to both Help and Settings; copy buttons no longer clip off the window edge; dialogs centered properly.
CLI / installation
- CLI registration (register-cli.ps1) — adds the app to your user PATH, creates an
x3dshortcut, registers App Paths, and associates.x .hxx .obj .stl .glb .gltfso the app runs asDirectX3DViewer model.xfrom any new terminal.
Text / polish
- All em dashes removed from the UI (desktop and web), replaced with hyphens.
- "colour" → "color" spelling normalized everywhere user-facing.
Web app parity
- Matching eye icon + 12-color shading tool wired to mesh materials (carries into
.xexport). - OBJ+MTL / GLB / glTF parity confirmed; em-dash and spelling fixes applied.
Packaging (this build)
- Version bumped to 1.1.0 in the app and installer.
- Installer now uninstalls any older version first (silent), then installs 1.1.0 as a clean upgrade.
DirectX 3D Viewer v1.0.0
DirectX 3D Viewer v1.0.0 - Initial Release
A standalone Windows desktop application for viewing, converting, and exporting 3D model files used with Hamilton liquid handling instruments.
Features
- 3D Viewer - Load and inspect .x (DirectX), .hxx (Hamilton compressed), .obj, .stl, and .glb/.gltf files with an interactive viewport
- File Conversion - Convert between 3D formats (OBJ/STL/GLB → .x)
- Export - Export .x models to OBJ, STL, or GLB
- Screenshot - Capture high-quality screenshots with customizable options (grid, background)
- Transform Controls - Rotate, mirror, and reposition models
- Hamilton HXX Support - Native loading of Hamilton compressed 3D model archives
- Dark / Light Theme - Toggle between dark and light UI themes
- File Association - Installer registers .x and .hxx file types to open directly in the app