GPU 几何计算)核心流程总结
(将三维几何体(SOP)数据化,烘焙(Bake)成二维纹理(TOP),再通过TOP/GLSL来对几何体进行无限可能的程序化操作。)
以下内容梳理了“基于 TOPs 的 GPU 几何计算”思路及关键步骤,对应课堂提问与解答要点,帮助学生快速理解与复现。
1. 数据纹理化
-
点坐标:
SOP → Info CHOP (Position CHOP) → CHOP → RGB TOP
生成(pointCount × 1)
的纹理,每像素存储一个顶点的三维坐标。 -
顶点索引:
SOP → Table DAT(Primitives→vertices 列)→ DAT→CHOP → Monochrome TOP
生成(primitiveCount×3 × 1)
纹理,每三像素对应一个三角形的三个顶点索引。
2. 索引归一化
-
用 Math/Limit CHOP 将索引映射到 “:
uv = (index + 0.5)/pointCount
-
+0.5
保证采样对准“像素中心”,避免跨像素误差。
3. 顶点查找
-
Pixelate TOP(或 Point Cloud TOP):
输入索引 UV,输出对应的点坐标 RGB。
确保分辨率与索引纹理匹配,否则行列会错位。
4. 噪声扰动与缩放
-
Noise CHOP → CHOP To TOP:生成与顶点数等长的噪声纹理。
-
Subtract TOP:
coord = originalPos − noise
,将噪声作为偏移量从顶点坐标中减去。 -
Math TOP (Multiply = –0.5):
-
*0.5
缩放到半幅度,限制变形大小。 -
*–1
反转方向,实现凸凹反转效果。
-
-
Add TOP:
newPos = originalPos + scaledOffset
,将扰动应用回顶点。
5. 重新打包与渲染
-
Point Repack TOP:
将(primitiveCount×3 × 1)
的变形后顶点坐标纹理重新打包,输出供 SOP/Geometry COMP 使用的顶点数组。
必须设分辨率为primitiveCount×3
×1
,保证每个三角形的三点依次排列。 -
Copy SOP:按三角形模板复制,以新顶点数组重建几何。
-
Render TOP:渲染最终变形网格。
课堂讨论要点
-
半像素偏移:了解为什么在 Pixelate 前后需要加 0.5,以确保采样中心对齐。
-
索引与坐标分离:掌握索引纹理化→归一化→查找点坐标的工作流。
-
噪声应用:通过 Subtract + Multiply + Add 实现可控、中心对齐的局部变形。
-
Point Repack 原理:理解为何输出分辨率必须等于三角形数×3,以及如何正确重建几何。
-
性能优势:对比 SOP/GLSL 和纯 TOP 方法,展现 GPU 并行纹理操作的高效性。
以上总结覆盖了 Packeta12 方法中“为什么做这一步”、“如何映射与采样”、“如何完成变形与重建”的核心知识点。
暂无评论内容