mirror of
https://github.com/flash555588/ai-model-workbench.git
synced 2026-07-22 06:56:38 +00:00
Release 0.7.0
This commit is contained in:
parent
a4e6e1dfbc
commit
69794609b2
23 changed files with 526 additions and 200 deletions
|
|
@ -19,8 +19,11 @@ Read it before changing code. For deeper product/spec context, use
|
|||
linked knowledge notes.
|
||||
- Single-model GLB/GLTF/STL/PLY/OBJ preview paths use Babylon.js compatibility
|
||||
mode by default.
|
||||
- Direct file view treats generated converted GLB outputs as a fast-path exception:
|
||||
Three.js loads them first and Babylon.js silently handles fallback on failure.
|
||||
- Direct file view treats generated converted GLB outputs as a configurable
|
||||
fast-path exception: when the Converted GLB Three fast path setting is enabled,
|
||||
Three.js loads them first and Babylon.js silently handles fallback on failure;
|
||||
disabling the setting makes converted direct file views follow the normal
|
||||
renderer compatibility controls.
|
||||
- Three.js remains available as an explicit opt-in single-model rollout for
|
||||
reading surfaces, direct file view, and Experimental Three workbench probes.
|
||||
- Babylon.js remains the production capability backend for default single-model
|
||||
|
|
|
|||
12
CHANGELOG.md
12
CHANGELOG.md
|
|
@ -2,6 +2,16 @@
|
|||
|
||||
## Unreleased
|
||||
|
||||
- None yet.
|
||||
|
||||
## 0.7.0 - 2026-06-28
|
||||
|
||||
- Docs: expand README warnings for STEP/CAD conversion, external tools, large-model performance, generated side files, renderer-route differences, mobile limits, and optional remote drafting.
|
||||
- Warning: STEP/STP, IGES, BREP, FBX, 3MF, DAE, and similar CAD/uncommon mesh assets remain conversion-backed workflows, not guaranteed direct-render formats; desktop converter setup and source-file complexity can still block preview.
|
||||
- Warning: large converted GLB and PCB/assembly files can consume significant CPU, GPU, RAM, and disk I/O, so restored heavy direct views now require an explicit Load model action to reduce startup lockups.
|
||||
- Warning: generated conversion side files, reports, JSON sidecars, snapshots, part IDs, dimensions, and model names can be large or sensitive; use the Auxiliary file folder intentionally and exclude those outputs from sync or Git when needed.
|
||||
- Warning: external converters and optional remote drafting remain trust boundaries; converter commands should be verified locally, and remote draft requests should be enabled only when sanitized model evidence is acceptable.
|
||||
- Settings: add a Converted GLB Three fast path toggle so conversion-backed direct file views can follow normal Babylon compatibility routing when users disable the fast path.
|
||||
- Settings: add an Auxiliary file folder option so users can choose where generated conversion side files are stored, while the empty default keeps them under the Obsidian config folder.
|
||||
- Performance: reuse relocated converted-asset cache records for moved STEP/FBX/etc. sources and route direct-file converted GLB outputs through a silent Three.js fast path with Babylon fallback.
|
||||
- Performance: cancel stale direct-file preview load sessions during rapid model switches and dispose interrupted Three.js/Babylon.js GLB results before they can keep competing with the newest load.
|
||||
|
|
@ -84,7 +94,7 @@
|
|||
- Rendering: promote Three.js and Babylon picks on converted component child meshes to their parent registered component/group so selection, focus, and disassembly dragging do not collapse to a single surface fragment.
|
||||
- Rendering: preserve Three.js component world transforms when entering disassembly drag so nested converted GLB parts no longer jump to the scene origin or change orientation.
|
||||
- Performance: open large converted models faster by reusing fresh `.ai3d-converted.glb` outputs before probing converter identity and by deferring direct-view evidence registration until after the preview is visible.
|
||||
- Performance: keep conversion-backed GLB direct file views on Babylon.js by default and avoid extra full-buffer copies during GLB parsing.
|
||||
- Performance: keep conversion-backed GLB direct file views configurable with a Converted GLB Three fast-path toggle while preserving Babylon.js fallback and avoiding extra full-buffer copies during GLB parsing.
|
||||
- Performance: cap automatic registered-part writes for highly fragmented models so large imports do not keep growing the plugin state file with low-value surface shards.
|
||||
- Performance: normalize oversized saved registered-part lists on load, strip transient registered-match caches, and quickly persist the compact state so future workspace startup parses less data.
|
||||
- Performance: avoid rewriting unchanged plugin state during startup or unload, reducing extra `data.json` disk I/O in large vaults.
|
||||
|
|
|
|||
62
README.md
62
README.md
|
|
@ -8,11 +8,19 @@
|
|||
|
||||

|
||||
|
||||
> **Important: STEP/STP support is conversion-only, not direct rendering.**
|
||||
> STEP files require Obsidian Desktop plus a configured local Python + CadQuery/OCCT
|
||||
> converter. Mobile cannot run STEP conversion, and large or complex STEP/PCB
|
||||
> assemblies can take a long time on first open or fail if the local CAD
|
||||
> environment is missing. If reliability matters, pre-convert the model to GLB
|
||||
> or check the plugin's converter diagnostics before troubleshooting the viewer.
|
||||
|
||||
---
|
||||
|
||||
## Table of Contents
|
||||
|
||||
- [Features](#features)
|
||||
- [Warnings And Risks](#warnings-and-risks)
|
||||
- [Current Release](#current-release)
|
||||
- [Platform Support Matrix](#platform-support-matrix)
|
||||
- [Quick Start](#quick-start)
|
||||
|
|
@ -46,20 +54,52 @@
|
|||
|
||||
---
|
||||
|
||||
## Warnings And Risks
|
||||
|
||||
- **STEP/STP and CAD files are not direct-render formats.** They need desktop
|
||||
conversion first. Missing Python packages, incompatible CAD geometry, very
|
||||
large assemblies, or converter timeouts can prevent preview even when the
|
||||
plugin itself is installed correctly.
|
||||
- **Local converters are external desktop tools.** They parse model files on
|
||||
your machine. Use trusted model files, keep converter command paths explicit,
|
||||
and check converter diagnostics before running unknown CAD, FBX, 3MF, DAE, or
|
||||
SLDPRT assets.
|
||||
- **Large models can stress Obsidian.** Big GLB files and converted STEP/PCB
|
||||
assemblies can consume high CPU, GPU, RAM, and disk I/O, stall the UI, trigger
|
||||
WebGL context loss, or take minutes on first open. Lower render quality/scale,
|
||||
open one heavy model at a time, and prefer pre-converted GLB for repeat work.
|
||||
- **Generated side files can be large or sensitive.** Converted GLBs, snapshots,
|
||||
reports, indexes, and JSON sidecars may include filenames, assembly names,
|
||||
part IDs, dimensions, geometry summaries, and preview images. Put auxiliary
|
||||
files in an intentional folder and exclude them from sync or Git if needed.
|
||||
- **Renderer routes can look different.** Babylon.js compatibility mode is the
|
||||
safest path. Three.js fast paths can be faster, but colors, picking,
|
||||
measurement, or toolbar behavior may differ on some assets. Disable the
|
||||
Converted GLB Three fast path or switch back to compatibility mode when
|
||||
diagnosing display issues.
|
||||
- **Mobile support is direct-format only.** Mobile can view GLB/GLTF/STL/OBJ/PLY
|
||||
and already-converted GLB files, but it cannot run local conversion tools or
|
||||
converter diagnostics.
|
||||
- **Remote drafting is optional and should be treated as sensitive.** The plugin
|
||||
is local-first by default, but configured remote draft requests can include
|
||||
sanitized evidence such as model names, part names, counts, dimensions, tags,
|
||||
and note references depending on privacy settings.
|
||||
|
||||
---
|
||||
|
||||
## Current Release
|
||||
|
||||
`0.6.1` is a source-review patch for the `0.6.0` Three.js capability-tree release. It keeps the `0.6.0` rendering, measurement, diagnostics, and knowledge-workflow upgrades, and updates the remote draft timeout helper to follow Obsidian review guidance.
|
||||
`0.7.0` is a compatibility, performance, and support-boundary release for large local model workflows. It keeps Babylon.js compatibility mode as the default route for single-model previews, adds an explicit Converted GLB Three fast-path switch, improves conversion side-file control, and documents the real risks around STEP/CAD conversion, heavy assemblies, generated side files, mobile limits, and optional remote drafting.
|
||||
|
||||
Release highlights:
|
||||
|
||||
- Three.js capability profiles and quality snapshots for route diagnostics
|
||||
- GLB/GLTF PBR preservation, STL/PLY vertex colors, OBJ/MTL color-texture sRGB handling
|
||||
- Camera precision, raycast thresholds, and measurement markers scaled to tiny and large models
|
||||
- Dynamic frame-budget tracking, interactive pixel-ratio throttling, and idle render-loop sleep
|
||||
- Calibrated measurement records with Markdown export
|
||||
- More reliable knowledge-generation state, diagnostics, conversion cache handling, and release gates
|
||||
- Babylon.js compatibility mode remains the default for single-model previews, with Three.js still available as an explicit opt-in route.
|
||||
- Converted GLB outputs from STEP/FBX/3MF/DAE/etc. can use a configurable Three.js fast path with silent Babylon fallback.
|
||||
- Auxiliary conversion side files can be stored in a user-selected folder instead of only under the Obsidian config directory.
|
||||
- Direct file view, `3dgrid`, measurement, camera zoom, and large-model loading paths have tighter performance and stability behavior.
|
||||
- README warnings now call out STEP/CAD conversion limits, external converter risk, large-model resource pressure, generated side files, renderer-route differences, mobile limits, and optional remote-draft privacy.
|
||||
|
||||
See [docs/release-notes/0.6.0-plus.md](docs/release-notes/0.6.0-plus.md) for the rolling `0.6.0+` update log, plus [docs/release-notes/0.6.1.md](docs/release-notes/0.6.1.md), [docs/release-notes/0.6.0.md](docs/release-notes/0.6.0.md), and [CHANGELOG.md](CHANGELOG.md) for versioned release notes.
|
||||
See [docs/release-notes/0.7.0.md](docs/release-notes/0.7.0.md) and [CHANGELOG.md](CHANGELOG.md) for the full `0.7.0` change log, plus [docs/release-notes/0.6.1.md](docs/release-notes/0.6.1.md) and [docs/release-notes/0.6.0.md](docs/release-notes/0.6.0.md) for previous releases.
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -221,6 +261,10 @@ SPLAT preview is temporarily disabled in packaged builds while its loader is rep
|
|||
|
||||
### Conversion (Requires External Tools)
|
||||
|
||||
> **STEP/STP note:** STEP is supported through local conversion to GLB only.
|
||||
> It is not a browser/WebGL-native format and depends on the desktop converter
|
||||
> environment shown in plugin settings.
|
||||
|
||||
| Format | Extension | Converter | Output |
|
||||
|--------|-----------|-----------|--------|
|
||||
| STEP | `.step` `.stp` | Python + CadQuery/OCCT | GLB |
|
||||
|
|
@ -590,7 +634,7 @@ ai-model-workbench/
|
|||
|
||||
### Release Publishing
|
||||
|
||||
Releases are published by the GitHub Actions `Release` workflow. Push a tag that matches `manifest.json`, for example `0.6.1`, or run the workflow manually. The workflow uploads only `main.js`, `manifest.json`, and `styles.css`, removes unsupported release assets, verifies asset sizes and SHA-256 hashes, includes versioned release notes when available, and generates GitHub artifact attestations for the published files. After a release is published, run `npm run verify:obsidian -- --release-tag 0.6.1` to install the assets downloaded from GitHub into the temporary Obsidian vault.
|
||||
Releases are published by the GitHub Actions `Release` workflow. Push a tag that matches `manifest.json`, for example `0.7.0`, or run the workflow manually. The workflow uploads only `main.js`, `manifest.json`, and `styles.css`, removes unsupported release assets, verifies asset sizes and SHA-256 hashes, includes versioned release notes when available, and generates GitHub artifact attestations for the published files. After a release is published, run `npm run verify:obsidian -- --release-tag 0.7.0` to install the assets downloaded from GitHub into the temporary Obsidian vault.
|
||||
|
||||
### Release Token Safety
|
||||
|
||||
|
|
|
|||
|
|
@ -8,11 +8,17 @@
|
|||
|
||||

|
||||
|
||||
> **醒目提示:STEP/STP 是“转换支持”,不是直接渲染。**
|
||||
> STEP 文件需要在 Obsidian 桌面端配置本地 Python + CadQuery/OCCT 转换器后才能转成 GLB 预览。
|
||||
> 移动端不能执行 STEP 转换;大型或复杂 PCB/装配体 STEP 首次打开可能很慢,也可能因为本地 CAD 环境缺失而失败。
|
||||
> 如果需要稳定打开,建议先转换为 GLB,或先在插件设置里的转换器诊断中确认环境可用。
|
||||
|
||||
---
|
||||
|
||||
## 目录
|
||||
|
||||
- [功能特性](#功能特性)
|
||||
- [警告与风险](#警告与风险)
|
||||
- [当前版本](#当前版本)
|
||||
- [平台支持矩阵](#平台支持矩阵)
|
||||
- [快速入门](#快速入门)
|
||||
|
|
@ -46,20 +52,43 @@
|
|||
|
||||
---
|
||||
|
||||
## 警告与风险
|
||||
|
||||
- **STEP/STP 和 CAD 文件不是直接渲染格式。** 它们必须先在桌面端转换。
|
||||
Python 依赖缺失、CAD 几何不兼容、装配体过大或转换超时,都可能导致无法预览,
|
||||
即使插件本身已经正确安装。
|
||||
- **本地转换器是外部桌面工具。** 它们会在你的电脑上解析模型文件。
|
||||
请只处理可信模型,明确配置转换器命令路径,并在打开未知 CAD、FBX、3MF、DAE
|
||||
或 SLDPRT 资产前先查看转换器诊断。
|
||||
- **大型模型可能拖慢 Obsidian。** 大型 GLB 和转换后的 STEP/PCB 装配体可能占用大量
|
||||
CPU、GPU、内存和磁盘 I/O,导致界面卡顿、WebGL 上下文丢失,或首次打开耗时数分钟。
|
||||
建议降低渲染质量/缩放,一次只打开一个重模型,并优先使用预先转换好的 GLB。
|
||||
- **生成的副文件可能很大,也可能包含敏感信息。** 转换后的 GLB、截图、报告、索引和
|
||||
JSON sidecar 可能包含文件名、装配体名称、部件 ID、尺寸、几何摘要和预览图。
|
||||
请有意识地设置辅助文件夹;如果需要,记得从同步工具或 Git 中排除这些文件。
|
||||
- **不同渲染路线可能显示不一致。** Babylon.js 兼容模式最稳。Three.js 快速路径可能更快,
|
||||
但某些资产的颜色、拾取、测量或工具栏行为可能不同。排查显示问题时,可以关闭
|
||||
“转换 GLB 的 Three 快速路径”,或切回兼容模式。
|
||||
- **移动端只支持直读预览。** 移动端可以查看 GLB/GLTF/STL/OBJ/PLY 和已经转换好的 GLB,
|
||||
但不能运行本地转换工具,也不能执行转换器诊断。
|
||||
- **远程草稿是可选能力,也应按敏感数据处理。** 插件默认本地优先;如果配置了远程草稿,
|
||||
根据隐私设置,请求中仍可能包含经过裁剪的模型名、部件名、数量、尺寸、标签和笔记引用。
|
||||
|
||||
---
|
||||
|
||||
## 当前版本
|
||||
|
||||
`0.6.1` 是 `0.6.0` Three.js 能力树版本的源码审核修复版。它保留 `0.6.0` 的渲染、测量、诊断和知识工作流升级,并按 Obsidian 审核建议调整远程草稿超时 helper。
|
||||
`0.7.0` 是面向大型本地模型工作流的兼容性、性能和支持边界版本。它保留 Babylon.js 兼容模式作为单模型预览默认路线,新增“转换 GLB 的 Three 快速路径”开关,允许用户自定义转换副文件位置,并把 STEP/CAD 转换、大型装配体、生成副文件、移动端限制和远程草稿隐私风险写入入口文档。
|
||||
|
||||
发布亮点:
|
||||
|
||||
- Three.js 能力画像和质量快照,用于路由诊断
|
||||
- GLB/GLTF 保留 PBR 语义,STL/PLY 保留顶点色,OBJ/MTL 只对颜色贴图应用 sRGB
|
||||
- 相机精度、拾取阈值和测量标记会根据极小/超大模型尺度自适应
|
||||
- 动态帧预算、交互时像素比降档、静止后渲染循环休眠
|
||||
- 带单位校准和 Markdown 导出的测量记录
|
||||
- 更可靠的知识生成状态、诊断、转换缓存和发布验证门禁
|
||||
- Babylon.js 兼容模式仍是单模型预览默认路线,Three.js 继续作为显式启用的可选路线。
|
||||
- STEP/FBX/3MF/DAE 等转换后的 GLB 可以通过独立开关使用 Three.js 快速路径,并在失败时静默回退到 Babylon.js。
|
||||
- 转换副文件可以放到用户指定的辅助文件夹,不再只能放在 Obsidian 配置目录下。
|
||||
- 直接文件视图、`3dgrid`、测量、相机缩放和大型模型加载路径获得更多稳定性与性能优化。
|
||||
- README 已集中补充 STEP/CAD 转换限制、外部转换器风险、大模型资源压力、生成副文件、渲染路线差异、移动端限制和远程草稿隐私提醒。
|
||||
|
||||
滚动更新日志见 [docs/release-notes/0.6.0-plus.md](docs/release-notes/0.6.0-plus.md),版本发布日志见 [docs/release-notes/0.6.1.md](docs/release-notes/0.6.1.md)、[docs/release-notes/0.6.0.md](docs/release-notes/0.6.0.md) 和 [CHANGELOG.md](CHANGELOG.md)。
|
||||
完整 `0.7.0` 发布日志见 [docs/release-notes/0.7.0.md](docs/release-notes/0.7.0.md) 和 [CHANGELOG.md](CHANGELOG.md),历史版本见 [docs/release-notes/0.6.1.md](docs/release-notes/0.6.1.md) 与 [docs/release-notes/0.6.0.md](docs/release-notes/0.6.0.md)。
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -220,6 +249,9 @@ AI Model Workbench 的插件包中不包含赞助提示、付款流程或加密
|
|||
|
||||
### 转换(需要外部工具)
|
||||
|
||||
> **STEP/STP 注意:** STEP 只支持通过本地转换生成 GLB 后预览。
|
||||
> 它不是浏览器/WebGL 原生直读格式,是否可用取决于插件设置中显示的桌面端转换器环境。
|
||||
|
||||
| 格式 | 扩展名 | 转换器 | 输出 |
|
||||
|------|--------|--------|------|
|
||||
| STEP | `.step` `.stp` | Python + CadQuery/OCCT | GLB |
|
||||
|
|
@ -583,7 +615,7 @@ ai-model-workbench/
|
|||
|
||||
### 发布流程
|
||||
|
||||
发布由 GitHub Actions 的 `Release` workflow 完成。推送一个与 `manifest.json` 版本匹配的 tag,例如 `0.6.1`,或手动运行该 workflow。它只上传 `main.js`、`manifest.json` 和 `styles.css`,会删除不受支持的 release asset,校验资产体积与 SHA-256 hash,在存在版本发布日志时自动写入 release notes,并为发布文件生成 GitHub artifact attestation。发布完成后可运行 `npm run verify:obsidian -- --release-tag 0.6.1`,从 GitHub release 下载资产并安装到临时 Obsidian vault 做实机验证。
|
||||
发布由 GitHub Actions 的 `Release` workflow 完成。推送一个与 `manifest.json` 版本匹配的 tag,例如 `0.7.0`,或手动运行该 workflow。它只上传 `main.js`、`manifest.json` 和 `styles.css`,会删除不受支持的 release asset,校验资产体积与 SHA-256 hash,在存在版本发布日志时自动写入 release notes,并为发布文件生成 GitHub artifact attestation。发布完成后可运行 `npm run verify:obsidian -- --release-tag 0.7.0`,从 GitHub release 下载资产并安装到临时 Obsidian vault 做实机验证。
|
||||
|
||||
### 发布 Token 安全
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ README, implementation, verification scripts, and release/security docs.
|
|||
|
||||
AI Model Workbench is an Obsidian plugin that renders 3D model files inside a vault,
|
||||
adds 3D annotations/bookmarks, and generates linked knowledge notes from model evidence.
|
||||
The current package version is `0.6.1`.
|
||||
The current package version is `0.7.0`.
|
||||
|
||||
Important runtime files:
|
||||
|
||||
|
|
@ -31,10 +31,13 @@ Babylon.js compatibility mode is the default single-model mesh preview path:
|
|||
- GLB/GLTF/STL/PLY/OBJ direct formats
|
||||
- readonly and edit annotation overlays on supported single-model routes
|
||||
|
||||
Direct file view has one fast-path exception: generated converted GLB outputs
|
||||
from STEP/FBX/3MF/DAE/etc. are opened with Three.js first, then silently fall
|
||||
back to Babylon.js if Three loading fails. This keeps repeated CAD opens fast
|
||||
without broadening `3dgrid` or workbench production routing.
|
||||
Direct file view has one configurable fast-path exception: when the Converted
|
||||
GLB Three fast path setting is enabled, generated converted GLB outputs from
|
||||
STEP/FBX/3MF/DAE/etc. are opened with Three.js first, then silently fall back
|
||||
to Babylon.js if Three loading fails. Disabling the setting makes converted
|
||||
direct file views follow the normal renderer compatibility controls. This keeps
|
||||
repeated CAD opens fast without broadening `3dgrid` or workbench production
|
||||
routing.
|
||||
|
||||
Three.js remains available as an explicit opt-in rollout for supported
|
||||
single-model routes:
|
||||
|
|
@ -236,7 +239,7 @@ npm run verify:preview -- --model "models/resource-fixtures/grouped-parts/groupe
|
|||
|
||||
## Current Follow-Up Direction
|
||||
|
||||
Short-term product direction after `0.6.1`:
|
||||
Short-term product direction after `0.7.0`:
|
||||
|
||||
- Keep tightening auto part registration and cross-model part reuse feedback.
|
||||
- Keep improving direct workbench UX without prematurely moving all workbench routes.
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ The table below assumes the default rollout setting: `Compatibility mode` (`baby
|
|||
| Live Preview embed | readonly annotations present | Babylon.js | default `rendererRollout=babylon-safe` |
|
||||
| Direct file view | `GLB/GLTF/STL/PLY/OBJ` single-model edit view | Babylon.js | default `rendererRollout=babylon-safe` |
|
||||
| Direct file view | `SPLAT` or other unsupported formats | Babylon.js | formats not in `THREE_FORMATS` direct view still routes to Babylon |
|
||||
| Direct file view | conversion-backed single-model output (`STEP`, `FBX`, `3MF`, `DAE`, etc. converted to `GLB`) | Three.js, Babylon fallback | generated GLB outputs take the Direct View fast path even in compatibility mode; load failure falls back to Babylon |
|
||||
| Direct file view | conversion-backed single-model output (`STEP`, `FBX`, `3MF`, `DAE`, etc. converted to `GLB`) | Three.js, Babylon fallback | generated GLB outputs take the Direct View fast path when `Converted GLB Three fast path` is enabled; load failure falls back to Babylon |
|
||||
| Workbench | any current model | Babylon.js | `requireWorkbenchFeatures=true`; retained on Babylon after phase-3 evaluation |
|
||||
| `3dgrid` | compare / gallery / compose / preset layouts | Babylon.js | retained on Babylon after phase-4 decision |
|
||||
|
||||
|
|
@ -35,9 +35,9 @@ The table below assumes the default rollout setting: `Compatibility mode` (`baby
|
|||
|
||||
The runtime route decision is intentionally conservative:
|
||||
|
||||
- Babylon.js is the default path for preview surfaces unless the user explicitly enables a Three.js rollout or Direct View is opening a generated converted GLB fast-path asset.
|
||||
- Babylon.js is the default path for preview surfaces unless the user explicitly enables a Three.js rollout or Direct View is opening a generated converted GLB fast-path asset with the fast-path setting enabled.
|
||||
- Three.js remains the opt-in fast path for common single-model formats (GLB, GLTF, STL, PLY, OBJ) across reading surfaces and direct view, including annotation overlays.
|
||||
- Three.js is automatically used for Direct View conversion-backed GLB outputs because those assets are local generated intermediates; Babylon remains the silent fallback when Three loading fails.
|
||||
- Three.js is automatically used for Direct View conversion-backed GLB outputs when `Converted GLB Three fast path` is enabled because those assets are local generated intermediates; Babylon remains the silent fallback when Three loading fails.
|
||||
- Babylon.js remains the intentional capability path for:
|
||||
- full workbench features outside the direct file edit-preview path
|
||||
- grid layouts
|
||||
|
|
@ -54,7 +54,7 @@ The plugin exposes a `Preview compatibility mode` setting:
|
|||
- `Compatibility mode` (`babylon-safe`) - default
|
||||
- inline `3d` -> Babylon.js
|
||||
- Live Preview embed -> Babylon.js
|
||||
- direct file view -> Babylon.js, except generated converted GLB outputs use Three.js with Babylon fallback
|
||||
- direct file view -> Babylon.js, except generated converted GLB outputs use Three.js with Babylon fallback when `Converted GLB Three fast path` is enabled
|
||||
- `Reading surfaces only` (`three-readonly-glb`)
|
||||
- inline `3d` -> Three.js
|
||||
- Live Preview embed -> Three.js
|
||||
|
|
@ -64,7 +64,12 @@ The plugin exposes a `Preview compatibility mode` setting:
|
|||
- Live Preview embed -> Three.js
|
||||
- direct file view -> Three.js
|
||||
|
||||
Workbench and `3dgrid` remain on Babylon.js regardless of this setting. The verification harness also has a hidden Three.js workbench capability probe, but production routing still keeps workbench on Babylon.
|
||||
The separate `Converted GLB Three fast path` switch controls whether converted
|
||||
Direct View GLB outputs may override compatibility mode for the Three.js fast
|
||||
path. Turn it off to make STEP/FBX/3MF/DAE/etc. converted outputs follow the
|
||||
normal renderer settings, which means Babylon.js in default compatibility mode.
|
||||
|
||||
Workbench and `3dgrid` remain on Babylon.js regardless of these settings. The verification harness also has a hidden Three.js workbench capability probe, but production routing still keeps workbench on Babylon.
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -95,7 +100,8 @@ Manual checks remain required for:
|
|||
The Three.js smoke examples below assume the setting is switched to
|
||||
`Reading + file view` (`three-direct-glb`). The exception is Direct View
|
||||
conversion-backed GLB output, which uses the Three.js fast path in default
|
||||
compatibility mode and falls back to Babylon.js on load failure.
|
||||
compatibility mode only when `Converted GLB Three fast path` is enabled and
|
||||
falls back to Babylon.js on load failure.
|
||||
|
||||
### 1. Simple inline `GLB` -> Three.js
|
||||
|
||||
|
|
|
|||
|
|
@ -10,7 +10,8 @@
|
|||
|------|------|------|
|
||||
| `0.6.0` | 已发布 | Three.js 能力树、视觉质量、测量、知识工作流、诊断和验证门禁 |
|
||||
| `0.6.1` | 已发布 | Obsidian 源码审核修复,保留 `0.6.0` 行为不变 |
|
||||
| `0.6.0+` current main | 未发布补充 | PLY 点云证据链、极小模型真实尺度、小零件聚合、格式血缘保留、文档拆分 |
|
||||
| `0.7.0` | 已发布 | Babylon 兼容默认路线、转换 GLB 快速路径开关、辅助文件夹、加载/测量/缩放优化、STEP/CAD 风险提示 |
|
||||
| `0.6.0+` history | 已归档 | PLY 点云证据链、极小模型真实尺度、小零件聚合、格式血缘保留、文档拆分 |
|
||||
|
||||
## 0.6.0 主要更新
|
||||
|
||||
|
|
|
|||
180
docs/release-notes/0.7.0.md
Normal file
180
docs/release-notes/0.7.0.md
Normal file
|
|
@ -0,0 +1,180 @@
|
|||
# AI Model Workbench 0.7.0
|
||||
|
||||
`0.7.0` is a compatibility, performance, and support-boundary release for large
|
||||
local 3D model workflows in Obsidian. It keeps Babylon.js compatibility mode as
|
||||
the default single-model route, adds user control over converted GLB fast-path
|
||||
routing, improves conversion side-file placement, tightens heavy-model behavior,
|
||||
and makes STEP/CAD risks explicit in the user-facing documentation.
|
||||
|
||||
## Warnings And Risks
|
||||
|
||||
- STEP/STP and CAD files are conversion-only, not direct-render formats. They
|
||||
require Obsidian Desktop plus a configured local Python + CadQuery/OCCT
|
||||
environment before the plugin can preview them as GLB.
|
||||
- Mobile can view direct formats and already-converted GLB files, but it cannot
|
||||
run local conversion tools or converter diagnostics.
|
||||
- Large GLB files and converted STEP/PCB assemblies can consume significant CPU,
|
||||
GPU, RAM, and disk I/O. First open can take a long time, stall Obsidian, or
|
||||
trigger WebGL context loss on constrained devices.
|
||||
- Local converters are external desktop tools that parse model files on your
|
||||
machine. Use trusted model files and verify converter command paths before
|
||||
processing unknown CAD, FBX, 3MF, DAE, or SLDPRT assets.
|
||||
- Generated side files can be large or sensitive. Converted GLBs, reports,
|
||||
indexes, JSON sidecars, snapshots, part IDs, dimensions, geometry summaries,
|
||||
and preview images should be placed in an intentional folder and excluded from
|
||||
sync or Git when needed.
|
||||
- Babylon.js compatibility mode is the safest renderer path. Three.js fast paths
|
||||
can be faster, but colors, picking, measurement, or toolbar behavior can differ
|
||||
on some assets. Disable the Converted GLB Three fast path or return to
|
||||
compatibility mode when diagnosing display issues.
|
||||
- Remote drafting is optional and local-first by default. If configured, remote
|
||||
draft requests can still include sanitized evidence such as model names, part
|
||||
names, counts, dimensions, tags, and note references depending on privacy
|
||||
settings.
|
||||
|
||||
## Highlights
|
||||
|
||||
- Adds a `Converted GLB Three fast path` setting so conversion-backed direct file
|
||||
views can use Three.js first with silent Babylon fallback, or follow normal
|
||||
Babylon compatibility routing when the setting is disabled.
|
||||
- Adds an `Auxiliary file folder` setting for generated conversion side files,
|
||||
while the empty default keeps outputs under the active Obsidian config folder.
|
||||
- Reuses relocated converted-asset cache records for moved STEP/FBX/etc. sources
|
||||
and reuses fresh converted GLB outputs before initializing converter adapters.
|
||||
- Defaults single-model preview surfaces to Babylon.js compatibility mode while
|
||||
keeping Three.js available through explicit rollout controls.
|
||||
- Pauses restored large or conversion-backed direct-file previews until the user
|
||||
clicks `Load model`, avoiding vault lockups during workspace restore.
|
||||
- Adds a draggable right-side camera zoom control and smoother wheel zoom across
|
||||
Three.js, Babylon.js, and `3dgrid`.
|
||||
- Redesigns measurement as an inspector-toolbar readout with synced records,
|
||||
transparent in-scene dimension text, copy/clear/calibration actions, and
|
||||
improved pointer feedback.
|
||||
- Keeps direct file view canvases full-height by moving workbench metrics into a
|
||||
compact overlay and fixing the Obsidian leaf height chain.
|
||||
- Adds README warning sections in English and Chinese that clearly describe
|
||||
STEP/CAD conversion limits, external tool risk, large-model pressure, generated
|
||||
side files, renderer-route differences, mobile limits, and optional remote
|
||||
drafting privacy.
|
||||
|
||||
## Detailed Changes
|
||||
|
||||
### Routing And Settings
|
||||
|
||||
- Added the Converted GLB Three fast-path toggle and diagnostics output.
|
||||
- Added the Auxiliary file folder setting and diagnostics output.
|
||||
- Kept Babylon.js as the default single-model compatibility route.
|
||||
- Kept Three.js available for explicit single-model rollout and converted GLB
|
||||
fast-path use.
|
||||
- Documented the converted GLB route contract in the preview routing matrix.
|
||||
- Preserved Experimental Three workbench as a guarded direct GLB/GLTF option with
|
||||
Babylon fallback.
|
||||
|
||||
### Conversion And Cache
|
||||
|
||||
- Wrote new converted GLB outputs under the active `Vault#configDir` instead of
|
||||
assuming `.obsidian`.
|
||||
- Allowed users to place generated conversion side files in a configured vault
|
||||
folder.
|
||||
- Reused relocated cache records when a source file moved but a same-stem fresh
|
||||
converted GLB already exists.
|
||||
- Reused existing converted outputs before probing converter identity or creating
|
||||
conversion managers.
|
||||
- Reused source file stats across conversion-cache checks.
|
||||
- Reused normalized converted-asset records during plugin startup.
|
||||
- Clarified STEP/STP support as local desktop conversion only.
|
||||
|
||||
### Direct View, Grid, And UI
|
||||
|
||||
- Cancelled stale direct-file preview load sessions during rapid model switches.
|
||||
- Disposed interrupted Three.js and Babylon.js GLB results before they can
|
||||
compete with the newest load.
|
||||
- Paused restored large/conversion-backed direct file previews until explicit
|
||||
user load.
|
||||
- Kept direct file view canvases full-height.
|
||||
- Added a right-side draggable camera zoom slider.
|
||||
- Improved wheel zoom behavior across preview backends.
|
||||
- Redesigned the distance measurement UI and records.
|
||||
- Kept Babylon `3dgrid` warmup frames dirty briefly after load to avoid blank
|
||||
first frames.
|
||||
- Released offscreen `3dgrid` Babylon engines and gave grid canvases a stable
|
||||
default height.
|
||||
- Added multi-block `3dgrid` preview verification for nonblank pixels and WebGL
|
||||
context-loss warnings.
|
||||
|
||||
### Performance
|
||||
|
||||
- Deferred reading-mode, Live Preview, annotation, heading-pin, settings, import,
|
||||
converter, and direct-view workbench modules until visible or needed.
|
||||
- Serialized inline and Live Preview loads through a queue and added a settle
|
||||
window between heavy visible model loads.
|
||||
- Cached Live Preview embed path resolution and skipped full rescans for ordinary
|
||||
note edits.
|
||||
- Loaded external `.gltf` buffers and textures with temporary Blob URLs and
|
||||
deduplicated concurrent resource reads.
|
||||
- Included external `.gltf` buffers and textures in pre-parse render budgeting.
|
||||
- Applied render quality earlier and pre-budgeted direct, inline, and Live
|
||||
Preview render quality from model file size.
|
||||
- Avoided extra full-buffer copies for absolute-path model files.
|
||||
- Deferred Three.js PMREM, shadow, geometry snapshot, evidence registration, and
|
||||
registered-match preview work so large models become interactive sooner.
|
||||
- Cached Three.js root bounds, child-mesh descendant indexes, renderable bounds,
|
||||
renderable indexes, material preparation, and Babylon/Three geometry stats.
|
||||
- Reduced disassembly drag and focus-selection work for large assemblies.
|
||||
- Compacted persisted registered parts, mesh refs, bounding boxes, centers, and
|
||||
automatic observation text to reduce `data.json` startup cost.
|
||||
- Avoided unchanged plugin-state rewrites during startup and unload.
|
||||
- Skipped or delayed low-value automatic evidence registration for heavy models.
|
||||
|
||||
### Rendering And Interaction
|
||||
|
||||
- Included Three.js PLY point clouds in summary, part evidence, picking,
|
||||
measurement, material audit, and disposal paths.
|
||||
- Kept Three.js orthographic camera, shadow, and grid helper scales tied to real
|
||||
tiny-model bounds.
|
||||
- Promoted converted component child-mesh picks to their parent registered
|
||||
component/group for selection, focus, and disassembly behavior.
|
||||
- Preserved nested component world transforms during disassembly drag.
|
||||
- Throttled Three.js measurement preview-line raycasts to animation frames.
|
||||
- Scaled Three.js texture anisotropy by render quality.
|
||||
- Resolved parent-directory GLTF/OBJ resource paths consistently across desktop
|
||||
platforms.
|
||||
|
||||
### Knowledge, Diagnostics, And Docs
|
||||
|
||||
- Preserved part-splitting format lineage across direct and converted formats in
|
||||
reports, sidecars, draft input, and registered part profiles.
|
||||
- Merged generic tiny mesh fragments into lower-confidence detail clusters.
|
||||
- Skipped direct-view auto part registration writes when regenerated candidates
|
||||
match saved profiles.
|
||||
- Improved direct-view registered part match previews by skipping sidecar reads,
|
||||
capping sample sizes, and reusing indexed match tokens.
|
||||
- Expanded diagnostics with the converted GLB fast-path setting and auxiliary
|
||||
file folder.
|
||||
- Trimmed redundant README copy and moved detailed syntax to dedicated usage
|
||||
docs.
|
||||
- Added explicit warning/risk sections to README and README.zh-CN.
|
||||
- Updated the development handoff, preview routing matrix, changelog, and release
|
||||
docs for the 0.7.0 route and settings contract.
|
||||
|
||||
## Release Contract
|
||||
|
||||
- Release assets remain limited to `main.js`, `manifest.json`, and `styles.css`.
|
||||
- Minimum Obsidian version remains `1.5.0`.
|
||||
- Local conversion remains desktop-only and does not upload model files.
|
||||
- Knowledge generation remains local-first. Remote draft support remains optional
|
||||
and uses sanitized evidence only when explicitly configured.
|
||||
- Babylon.js remains the production compatibility backend for default
|
||||
single-model previews, `3dgrid`, conservative fallback behavior, and future
|
||||
local-only SPLAT restoration.
|
||||
|
||||
## Verification
|
||||
|
||||
- `npm run typecheck`
|
||||
- `npm run lint`
|
||||
- `npm run verify:settings`
|
||||
- `npm run verify:diagnostics`
|
||||
- `npx vitest run src/view/direct-view-routing.test.ts src/diagnostics/report.test.ts`
|
||||
- `npm run verify:preview`
|
||||
- `npm run build`
|
||||
- `npm run verify:release`
|
||||
316
main.js
316
main.js
File diff suppressed because one or more lines are too long
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"id": "ai-model-workbench",
|
||||
"name": "AI Model Workbench",
|
||||
"version": "0.6.1",
|
||||
"version": "0.7.0",
|
||||
"minAppVersion": "1.5.0",
|
||||
"description": "Turn 3D models into linked knowledge assets.",
|
||||
"author": "flash",
|
||||
|
|
|
|||
4
package-lock.json
generated
4
package-lock.json
generated
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
"name": "obsidian-ai-model-workbench",
|
||||
"version": "0.6.1",
|
||||
"version": "0.7.0",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "obsidian-ai-model-workbench",
|
||||
"version": "0.6.1",
|
||||
"version": "0.7.0",
|
||||
"dependencies": {
|
||||
"@babylonjs/core": "^9.6.0",
|
||||
"@babylonjs/loaders": "^9.6.0",
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "obsidian-ai-model-workbench",
|
||||
"version": "0.6.1",
|
||||
"version": "0.7.0",
|
||||
"private": true,
|
||||
"description": "Obsidian plugin for turning 3D models into linked knowledge assets.",
|
||||
"scripts": {
|
||||
|
|
|
|||
|
|
@ -73,6 +73,7 @@ await writeFile(entryPath, `
|
|||
assert(state.settings.analysisMode === DEFAULT_SETTINGS.analysisMode, "Analysis mode was not defaulted");
|
||||
assert(state.settings.sendRawModelToRemote === false, "Raw model remote upload should default off");
|
||||
assert(state.settings.previewRendererRollout === DEFAULT_SETTINGS.previewRendererRollout, "New rollout setting was not defaulted");
|
||||
assert(state.settings.useThreeForConvertedDirectView === DEFAULT_SETTINGS.useThreeForConvertedDirectView, "Converted GLB fast path setting was not defaulted");
|
||||
assert(state.settings.snapshotFolder === DEFAULT_SETTINGS.snapshotFolder, "New folder setting was not defaulted");
|
||||
assert(state.settings.partFolder === DEFAULT_SETTINGS.partFolder, "Part folder setting was not defaulted");
|
||||
assert(state.settings.enabledConverterIds.includes("obj2gltf"), "Legacy converter setting was not preserved");
|
||||
|
|
@ -83,6 +84,7 @@ await writeFile(entryPath, `
|
|||
|
||||
await ps.save();
|
||||
assert(saved.settings.experimentalThreeWorkbench === DEFAULT_SETTINGS.experimentalThreeWorkbench, "Saved data did not include defaulted setting");
|
||||
assert(saved.settings.useThreeForConvertedDirectView === DEFAULT_SETTINGS.useThreeForConvertedDirectView, "Saved data did not include converted GLB fast path setting");
|
||||
assert(saved.lastKnowledgeGeneration?.partNoteCount === 2, "Saved data did not preserve last generation summary");
|
||||
`, "utf8");
|
||||
|
||||
|
|
|
|||
|
|
@ -83,6 +83,7 @@ describe("diagnostics report", () => {
|
|||
expect(report).toContain("Current route: three");
|
||||
expect(report).toContain("Route capability profile: three; formats=glb/gltf/stl/ply/obj");
|
||||
expect(report).toContain("Route color pipeline: sRGB output, no tone mapping");
|
||||
expect(report).toContain("Converted GLB Three fast path: on");
|
||||
expect(report).toContain("Path: <redacted .glb>");
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -159,6 +159,7 @@ export function buildDiagnosticsReport(options: BuildDiagnosticsReportOptions):
|
|||
"## Renderer",
|
||||
"",
|
||||
`- Use Three renderer: ${formatValue(settings.useThreeRenderer)}`,
|
||||
`- Converted GLB Three fast path: ${formatValue(settings.useThreeForConvertedDirectView)}`,
|
||||
`- Preview rollout: ${settings.previewRendererRollout}`,
|
||||
`- Experimental Three workbench: ${formatValue(settings.experimentalThreeWorkbench)}`,
|
||||
`- Current route: ${route ? `${route.backend} (${route.reason})` : "no current model"}`,
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ export const DEFAULT_SETTINGS: PluginSettings = {
|
|||
annotationDisplayMode: "surface",
|
||||
previewRendererRollout: "babylon-safe",
|
||||
useThreeRenderer: false,
|
||||
useThreeForConvertedDirectView: true,
|
||||
experimentalThreeWorkbench: false,
|
||||
sendRawModelToRemote: false,
|
||||
sendPreviewImagesToRemote: false,
|
||||
|
|
|
|||
|
|
@ -23,6 +23,8 @@ export interface PluginSettings {
|
|||
previewRendererRollout: PreviewRendererRollout;
|
||||
/** Simple toggle: true = Three.js, false = Babylon.js (compatibility). */
|
||||
useThreeRenderer: boolean;
|
||||
/** Allow converted GLB outputs to use the Direct View Three.js fast path. */
|
||||
useThreeForConvertedDirectView: boolean;
|
||||
/**
|
||||
* Experimental workbench route: allow Three.js for direct GLB/GLTF workbench
|
||||
* surfaces with automatic Babylon fallback.
|
||||
|
|
|
|||
|
|
@ -46,6 +46,8 @@ export const en = {
|
|||
"settings.previewRendererRollout.direct": "Reading + file view",
|
||||
"settings.useThreeRenderer": "Use Three.js renderer",
|
||||
"settings.useThreeRenderer.desc": "Toggle between Three.js (faster, lighter) and Babylon.js (full compatibility) for single-model previews. Three.js supports GLB/GLTF/STL/PLY/OBJ. 3dgrid always uses Babylon.js.",
|
||||
"settings.useThreeForConvertedDirectView": "Converted GLB Three fast path",
|
||||
"settings.useThreeForConvertedDirectView.desc": "When opening STEP, FBX, 3MF, DAE, and other converted files, load the generated GLB with Three.js first and silently fall back to Babylon.js if it fails. Turn this off to make converted files follow the normal compatibility mode.",
|
||||
"settings.experimentalThreeWorkbench": "Experimental Three workbench",
|
||||
"settings.experimentalThreeWorkbench.desc": "Try the Three.js workbench path for direct GLB/GLTF files only. If loading fails, the file view falls back to Babylon.js automatically.",
|
||||
"settings.autoRotateDefault": "Auto-rotate by default",
|
||||
|
|
|
|||
|
|
@ -48,6 +48,8 @@ export const zhCN: Record<TranslationKey, string> = {
|
|||
"settings.previewRendererRollout.direct": "阅读 + 文件视图",
|
||||
"settings.useThreeRenderer": "使用 Three.js 渲染器",
|
||||
"settings.useThreeRenderer.desc": "在 Three.js(更快、更轻量)和 Babylon.js(完全兼容)之间切换单模型预览渲染器。Three.js 支持 GLB/GLTF/STL/PLY/OBJ。工作台和 3dgrid 始终使用 Babylon.js。",
|
||||
"settings.useThreeForConvertedDirectView": "转换 GLB 的 Three 快速路径",
|
||||
"settings.useThreeForConvertedDirectView.desc": "打开 STEP、FBX、3MF、DAE 等需要转换的文件时,先用 Three.js 加载生成的 GLB,失败后自动回退到 Babylon.js。关闭后转换文件会遵循普通兼容模式。",
|
||||
"settings.experimentalThreeWorkbench": "实验性 Three 工作台",
|
||||
"settings.experimentalThreeWorkbench.desc": "仅对直读 GLB/GLTF 文件尝试使用 Three.js 工作台路径。加载失败时,文件视图会自动回退到 Babylon.js。",
|
||||
"settings.autoRotateDefault": "默认自动旋转",
|
||||
|
|
|
|||
|
|
@ -246,6 +246,17 @@ export class AI3DSettingTab extends PluginSettingTab {
|
|||
}),
|
||||
);
|
||||
|
||||
new Setting(containerEl)
|
||||
.setName(t("settings.useThreeForConvertedDirectView"))
|
||||
.setDesc(t("settings.useThreeForConvertedDirectView.desc"))
|
||||
.addToggle((toggle) =>
|
||||
toggle
|
||||
.setValue(this.plugin.getSettings().useThreeForConvertedDirectView)
|
||||
.onChange((val) => {
|
||||
this.plugin.updateSettings({ useThreeForConvertedDirectView: val });
|
||||
}),
|
||||
);
|
||||
|
||||
new Setting(containerEl)
|
||||
.setName(t("settings.experimentalThreeWorkbench"))
|
||||
.setDesc(t("settings.experimentalThreeWorkbench.desc"))
|
||||
|
|
|
|||
|
|
@ -53,6 +53,29 @@ describe("createDirectViewPreviewOptions", () => {
|
|||
expect(route.reason).toBe("glb direct view edit preview");
|
||||
});
|
||||
|
||||
it("keeps converted GLB outputs on the normal route when the fast path is disabled", () => {
|
||||
const options = createDirectViewPreviewOptions(
|
||||
makeSettings({
|
||||
previewRendererRollout: "babylon-safe",
|
||||
useThreeRenderer: false,
|
||||
useThreeForConvertedDirectView: false,
|
||||
}),
|
||||
makeSource({
|
||||
path: "C:\\vault\\models\\test-step.ai3d-converted.glb",
|
||||
strategy: "convert",
|
||||
sourcePath: "models/test-step.step",
|
||||
sourceExt: "step",
|
||||
}),
|
||||
);
|
||||
const route = resolvePreviewRoute(options);
|
||||
|
||||
expect(options.requireWorkbenchFeatures).toBe(false);
|
||||
expect(options.rendererRollout).toBe("babylon-safe");
|
||||
expect(options.useThreeRenderer).toBe(false);
|
||||
expect(route.backend).toBe("babylon");
|
||||
expect(route.reason).toBe("useThreeRenderer=false");
|
||||
});
|
||||
|
||||
it("uses the guarded Three workbench route only when the experimental file-view setting is enabled", () => {
|
||||
const options = createDirectViewPreviewOptions(
|
||||
makeSettings({
|
||||
|
|
|
|||
|
|
@ -32,8 +32,10 @@ function canUseThreeDirectFileView(source: PreviewSource): boolean {
|
|||
return source.strategy === "convert" && THREE_WORKBENCH_DIRECT_EXTS.has(source.ext);
|
||||
}
|
||||
|
||||
function shouldUseFastConvertedDirectView(source: PreviewSource): boolean {
|
||||
return source.strategy === "convert" && THREE_WORKBENCH_DIRECT_EXTS.has(source.ext);
|
||||
function shouldUseFastConvertedDirectView(settings: PluginSettings, source: PreviewSource): boolean {
|
||||
return settings.useThreeForConvertedDirectView
|
||||
&& source.strategy === "convert"
|
||||
&& THREE_WORKBENCH_DIRECT_EXTS.has(source.ext);
|
||||
}
|
||||
|
||||
export function createDirectViewPreviewOptions(
|
||||
|
|
@ -42,7 +44,7 @@ export function createDirectViewPreviewOptions(
|
|||
): DirectViewPreviewOptions {
|
||||
const allowWorkbenchFeaturesOnThree = canUseExperimentalThreeWorkbench(settings, source);
|
||||
const useThreeDirectFileView = canUseThreeDirectFileView(source);
|
||||
const useFastConvertedDirectView = shouldUseFastConvertedDirectView(source);
|
||||
const useFastConvertedDirectView = shouldUseFastConvertedDirectView(settings, source);
|
||||
return {
|
||||
ext: source.ext,
|
||||
annotationMode: "edit",
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
{"0.0.1":"1.5.0","0.0.2":"1.5.0","0.0.3":"1.5.0","0.0.4":"1.5.0","0.0.5-beta.0":"1.5.0","0.1.1":"1.5.0","0.1.2":"1.5.0","0.1.4":"1.5.0","0.1.5":"1.5.0","0.1.6":"1.5.0","0.1.7":"1.5.0","0.1.8":"1.5.0","0.1.9":"1.5.0","0.2.0":"1.5.0","0.2.1":"1.5.0","0.2.2":"1.5.0","0.2.3":"1.5.0","0.2.4":"1.5.0","0.2.5":"1.5.0","0.3.0":"1.5.0","0.3.1":"1.5.0","0.4.0":"1.5.0","0.4.3":"1.5.0","0.5.1":"1.5.0","0.5.3":"1.5.0","0.5.5":"1.5.0","0.5.7":"1.5.0","0.5.8":"1.5.0","0.6.0":"1.5.0","0.6.1":"1.5.0"}
|
||||
{"0.0.1":"1.5.0","0.0.2":"1.5.0","0.0.3":"1.5.0","0.0.4":"1.5.0","0.0.5-beta.0":"1.5.0","0.1.1":"1.5.0","0.1.2":"1.5.0","0.1.4":"1.5.0","0.1.5":"1.5.0","0.1.6":"1.5.0","0.1.7":"1.5.0","0.1.8":"1.5.0","0.1.9":"1.5.0","0.2.0":"1.5.0","0.2.1":"1.5.0","0.2.2":"1.5.0","0.2.3":"1.5.0","0.2.4":"1.5.0","0.2.5":"1.5.0","0.3.0":"1.5.0","0.3.1":"1.5.0","0.4.0":"1.5.0","0.4.3":"1.5.0","0.5.1":"1.5.0","0.5.3":"1.5.0","0.5.5":"1.5.0","0.5.7":"1.5.0","0.5.8":"1.5.0","0.6.0":"1.5.0","0.6.1":"1.5.0","0.7.0":"1.5.0"}
|
||||
|
|
|
|||
Loading…
Reference in a new issue