LL3M:大型语言3D建模器

LL3M:大型语言3D建模器

Hacker News 摘要

原标题:LL3M: Large Language 3D Modelers

LL3M(大型语言3D模型)使用一组大型语言模型来编写Python代码,以在Blender中创建和编辑3D资产。根据用户提供的文本指令,LL3M能够从头开始创建富有表现力的形状,并在代码中实现复杂、精确的几何操作。

与之前用于3D创作的代码编写大型语言模型主要针对特定子任务或有限程序的做法不同,LL3M的方法能够生成不受限制的资产,包括几何形状、布局和外观。通过将高级代码视作3D表示形式,我们的流程本质上是一个反复精炼和共同创作的循环:代理会进行自动代码和视觉自我批评,用户可以连续提供高水平反馈。生成的Blender节点和结构中的参数清晰透明,打开了额外的编辑渠道。

LL3M的方法包括三个阶段:初始创建、自动精炼和用户引导精炼。这些概念阶段涉及不同的代理角色。首阶段创建初始形状,第二阶段自动纠正不合理的配置,比如断开的靠背,以及简化的几何形状。之后,系统能够接受用户的额外编辑指令,从而实现交互式和迭代的3D资产生成。

LL3M不仅仅是错误纠正,它实现了一种迭代的粗到精的创作过程,结合了自动和用户引导的精炼。LL3M能够生成多样化的形状,结果展示了详细的部分(如风车的建筑特征)以及复杂的排列(如钢琴键和鼓组),甚至是丰富的外观(滑板)和材质特性(光滑的灯座)。我们的方法一个显著特点是,每个网格都是通过可解释、可编辑的Blender代码生成的。

在风格一致性方面,LL3M能够从不同初始网格和相同的精炼提示开始,成功地将同一风格概念应用到每一顶帽子上。每个风格化的网格都会产生独特的变体,包括几何修改和外观变化。

在材料编辑方面,如果系统生成了一个初始网格,便能够在网格的某个特定部分(如刀片)进行材质编辑,利用着色器节点创建全面的程序材料。LL3M还支持对同一3D资产的多次连续编辑,修改遵循用户指令,仅编辑指定元素,而保持角色的身份。

我们的系统生成的Blender代码易于理解和遵循,代码配有描述性注释、清晰的变量名称和结构化的逻辑。这种可解释的代码使得潜在修改变量(如琴键宽度)或甚至算法逻辑(如键盘图案)变得简单。

通过生成Blender代码,LL3M使得用户能够直观地进行编辑,得益于代码和生成的Blender节点中透明的可解释参数。例如,在生成材料时,系统会创建一整套着色器节点,用户可以直接在Blender中轻松调整视觉属性,如调节颜色或条纹图案,以实现所需输出。

尽管在视觉上存在差异,不同形状通常会共享高级代码模式(如循环、修饰符和节点设置),这些结构在不同类别中反复出现。这种共享结构使得模型能够迁移知识并从各种提示中生成多样化、可编辑和模块化的代码。

LL3M能够生成多个对象并在单个场景中安排合适的空间关系。我们的系统通过复杂操作(如实例化和父子关系)实现这一任务,以构建场景层次结构。编码代理也能够使用父子关系来处理更复杂的单一对象,例如灯具,在明确提示下生成具有人可读的层次结构,其中部件之间拥有父子关系。这使得在Blender中,应用到父对象上的变换会传播到子对象,每个图形中的部件也赋予有意义的语义名称。


原文:https://threedle.github.io/ll3m/

评论:https://news.ycombinator.com/item?id=44930808

Report Page