Skip to content

DirectX 3D Viewer v1.1.0

Latest

Choose a tag to compare

@zdmilot zdmilot released this 16 Jun 21:09

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 .x files.
  • 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 / .glb exports (note clarifies .stl has 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 x3d shortcut, registers App Paths, and associates .x .hxx .obj .stl .glb .gltf so the app runs as DirectX3DViewer model.x from 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 .x export).
  • 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.