<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>3D Generation on Hypho - AI Agent 技术博客</title><link>https://blog.hypho.cn/tags/3d-generation/</link><description>Recent content in 3D Generation on Hypho - AI Agent 技术博客</description><image><title>Hypho - AI Agent 技术博客</title><url>https://blog.hypho.cn/papermod-cover.png</url><link>https://blog.hypho.cn/papermod-cover.png</link></image><generator>Hugo -- 0.148.2</generator><language>zh-cn</language><lastBuildDate>Mon, 20 Apr 2026 10:13:50 +0800</lastBuildDate><atom:link href="https://blog.hypho.cn/tags/3d-generation/index.xml" rel="self" type="application/rss+xml"/><item><title>TRELLIS.2 移植到 Mac：没有 NVIDIA 也能跑图片转 3D 模型</title><link>https://blog.hypho.cn/posts/trellis2-apple-silicon-image-to-3d/</link><pubDate>Mon, 20 Apr 2026 10:13:50 +0800</pubDate><guid>https://blog.hypho.cn/posts/trellis2-apple-silicon-image-to-3d/</guid><description>微软 TRELLIS.2 是 CVPR 2025 Spotlight 的 SOTA 图片转 3D 技术，官方只有 CUDA 版本。近日有人将其完整移植到 Apple Silicon，M4 Pro 上 3.5 分钟生成 40 万顶点网格，且全程无需 NVIDIA GPU。本文解析移植思路、关键技术细节，以及为什么 Apple Silicon 的统一内存架构在这类任务上比离散 GPU 更合适。</description><content:encoded><![CDATA[<p>如果你只有一台 Mac 电脑，想从单张图片生成 3D 模型——直到今天，这基本上是个伪需求。市面上最好的开源图片转 3D 技术，几乎全部围绕 NVIDIA CUDA 构建，买不到合适的硬件就等于玩不了。</p>
<p>这个局面正在被打破。</p>
<p>TRELLIS.2 是微软 2025 年发表在 CVPR 的论文提出的图片转 3D 方法，在 GitHub 上有 1.2 万星，官方仓库清一色 CUDA 代码。近日有个开发者把它完整移植到了 Apple Silicon，M4 Pro 上 3.5 分钟就能生成一个 40 万顶点的网格模型，全程跑在苹果自研芯片上，不需要半块 NVIDIA 显卡。</p>
<h2 id="移植的核心思路替换掉-cuda-依赖">移植的核心思路：替换掉 CUDA 依赖</h2>
<p>TRELLIS.2 依赖好几个 CUDA 专用的库，官方版本开箱即用但根本不支持 Metal。这不是简单的编译选项问题，而是代码里大量硬编码了 <code>.cuda()</code> 调用和 CUDA 核函数。</p>
<p>移植的思路很直接：<strong>找到每一个 CUDA 依赖，用 PyTorch 原生功能或纯 Python 实现替换</strong>。</p>
<p>主要替换关系如下：</p>
<table>
  <thead>
      <tr>
          <th>原始（CUDA）</th>
          <th>移植版本</th>
          <th>用途</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><code>flex_gemm</code></td>
          <td><code>backends/conv_none.py</code></td>
          <td>子流形稀疏 3D 卷积，通过 gather-scatter 实现</td>
      </tr>
      <tr>
          <td><code>o_voxel._C</code> hashmap</td>
          <td><code>backends/mesh_extract.py</code></td>
          <td>从双体素网格提取网格面</td>
      </tr>
      <tr>
          <td><code>flash_attn</code></td>
          <td>PyTorch SDPA</td>
          <td>稀疏变换器的注意力机制</td>
      </tr>
      <tr>
          <td><code>cumesh</code></td>
          <td>Stub（跳过）</td>
          <td>网格孔填充与简化</td>
      </tr>
      <tr>
          <td><code>nvdiffrast</code></td>
          <td>Stub（跳过）</td>
          <td>可微分光栅化（仅影响纹理导出）</td>
      </tr>
  </tbody>
</table>
<p>稀疏 3D 卷积的替换是个技术亮点。原始 <code>flex_gemm</code> 做的是子流形稀疏卷积——3D 生成任务中只有物体表面有数据，不需要对整个空间做卷积。移植版本用 Python 构建空间哈希表，对每个活跃体素收集邻域特征，通过矩阵乘法应用权重，再把结果 scatter 回去。neighbor maps 做了缓存避免重复计算。</p>
<p>Mesh 提取部分也很有意思。双体素网格到网格面的转换原来用的是 CUDA hashmap，移植版本用 Python 字典重写了 <code>flexibe_dual_grid_to_mesh</code> 函数，逻辑完全对应，只是从 GPU 并行换成了 Python 循环。</p>
<p>整个移植不需要任何 fork——直接 clone 后跑 <code>setup.sh</code>，脚本会自动克隆原始 TRELLIS.2 仓库并应用 patch。</p>
<h2 id="apple-silicon-统一内存被忽视的硬件优势">Apple Silicon 统一内存：被忽视的硬件优势</h2>
<p>这个移植能跑的前提，是 Apple Silicon 的统一内存架构（Unified Memory Architecture）。</p>
<p>在离散 GPU（NVIDIA/AMD）上，CPU 和 GPU 各自有独立显存，数据跨 PCIe 总线传输。把数据从 CPU 内存拷贝到 GPU 显存是不可避免的开销，对于大模型来说这个拷贝时间相当可观。</p>
<p>Apple Silicon 的 CPU 和 GPU 共享同一块物理内存，没有 PCIe 总线的概念。<strong>同一个指针，CPU 能读，GPU 也能读，不需要任何拷贝</strong>。这就是为什么苹果官方一直在推 MLX 机器学习框架，而 MLX 的核心设计思路就是最大化利用统一内存减少数据搬运。</p>
<p>TRELLIS.2 生成的是稀疏 3D 表示，中间激活值在 M4 Pro 上直接复用统一内存，不需要反复搬运。这一点在离散 GPU 上反而是劣势——PCIe 带宽远低于显存带宽，频繁的小数据搬运会让稀疏操作的 overhead 更大。</p>
<h2 id="实测效果够用但有取舍">实测效果：够用，但有取舍</h2>
<p>根据 README 的数据，M4 Pro（24GB 统一内存）上：</p>
<ul>
<li>单张图片生成 400K+ 顶点的 OBJ/GLB 模型，约 3.5 分钟</li>
<li>支持三种 pipeline 分辨率：512、1024、1024 级联</li>
<li>首次运行需要从 HuggingFace 下载约 15GB 模型权重</li>
</ul>
<p>主要限制：</p>
<ul>
<li>需要 24GB+ 统一内存（M4 Pro 或更新）</li>
<li>官方 CUDA 版本可能有更好的网格质量</li>
<li><code>nvdiffrast</code> 的跳过意味着纹理导出功能暂不可用</li>
</ul>
<p>但生成时间和质量对于大多数应用场景已经相当可用——3.5 分钟出一个可编辑的 3D 模型，比云端 API 便宜多了，而且完全本地运行，数据不离开机器。</p>
<h2 id="为什么这件事值得关注">为什么这件事值得关注</h2>
<p>过去一年开源图片转 3D 的进展很快，但生态几乎被 NVIDIA 垄断。TRELLIS.2 的 Apple Silicon 移植不是简单的移植工作——它意味着：</p>
<ol>
<li><strong>苹果生态的 AI 应用开发门槛降低了</strong>。以前想跑这类模型必须买台带 NVIDIA 显卡的机器，现在一台 M4 MacBook Pro 就行</li>
<li><strong>本地推理的边界在扩展</strong>。22B 参数级别的模型用统一内存做推理已经开始可行，这个方向会越来越宽</li>
<li><strong>PyTorch 的 MPS 后端在成熟</strong>。Sparse convolution、SDPA 这些操作以前在 MPS 上支持很差，现在已经能完整实现一个 SOTA 论文的核心算法</li>
</ol>
<p>如果你在 Mac 上做 3D 内容创作、游戏开发或 AR/VR 应用，这个工具链值得放进你的技术栈。</p>
<p><strong>项目地址：</strong></p>
<ul>
<li>Apple Silicon 移植版：<a href="https://github.com/shivampkumar/trellis-mac">github.com/shivampkumar/trellis-mac</a></li>
<li>微软官方原始仓库：<a href="https://github.com/microsoft/TRELLIS">github.com/microsoft/TRELLIS</a>（12k stars，CVPR 2025 Spotlight）</li>
</ul>
]]></content:encoded></item></channel></rss>