一句话让三维模型生成逼真外观风格,精细到照片级细节

根据给定输入创建 3D 内容(例如,根据文本提示、图像或 3D 形状)在计算机视觉和图形领域具有重要应用。然而这个问题是具有挑战性的,现实中通常需要专业艺术家(Technical Artist)耗费大量的时间成本去创作 3D 内容。同时,许多网上的三维模型库中的资源通常是没有任何材质的裸露三维模型,要想将他们应用到现阶段的渲染引擎中,需要 Technical Artist 为它们创作高质量的材质,灯光和法向贴图。因此,如果有办法可以实现自动化、多样化和逼真的三维模型资产生成,将是很有前景的。

因此,华南理工大学、香港理工大学、跨维智能、鹏城实验室等机构的研究团队提出了一种基于文本驱动的三维模型风格化方法——TANGO,该方法对于给定的三维模型和文本,可以自动生成更具有真实性的 SVBRDF 材质,法向贴图和灯光,并且对低质量三维模型有更好的鲁棒性。该研究已被 NeurIPS 2022 接收。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

图片

项目主页:https://cyw-3d.github.io/tango/

模型效果

对于给定的文本输入和三维模型,TANGO 可以产生精细程度较高的具有照片级真实感的细节,并且不会在三维模型表面产生自交问题。如下图 1 所示, TANGO 不仅在光滑的材料(如金,银等材质)上呈现出了逼真的反射效果,而且对于不平整的材质(例如砖块等)也能通过逐点法线的估计渲染出凹凸不平的效果。

图片

图 1. TANGO 的风格化结果

TANGO 能够生成真实渲染结果的关键在于能够精准地把着色模型中的每一个部件(SVBRDF,法向贴图,灯光)拆分开,并分别学习,最后这些拆分的部件再通过球高斯可微分渲染器输出图片,并送到 CLIP 中和输入文本计算 loss。为了展现解耦部件的合理性,该研究对每个部件都进行了可视化。图 2 (a)展示了 “一双砖块做成的鞋子” 的风格化结果,(b)展示了三维模型原本的法向,(c)是 TANGO 对三维模型上每个点预测的法向,(d)(e)(f)分别表示 SVBRDF 中的漫反射,粗糙度和镜面反射参数,(g)是 TANGO预测的用球高斯函数表达的环境光。

图片

图 2 解耦的渲染部件可视化

同时,该研究也可以对 TANGO 输出的结果进行编辑。例如在图 3 中,该研究可以换用其他的光照贴图对 TANGO 的结果进行重新打光;在图 4 中,可以对粗糙度和镜面反射度参数进行编辑,实现对物体表面反射程度的改变。

图片

图 3 对 TANGO 风格化结果进行重新打光

图片

图 4 对物体材质进行编辑

另外,由于 TANGO 采用预测法向贴图的方式增添物体表面细节,因此对于顶点数较少的三维模型也有很好的鲁棒性。如图 5 所示,原始的 lamp 和 alien 模型分别有 41160 和 68430 个面,研究人员对原始模型进行了降采样,得到了只有 5000 个面的模型。可以看到 TANGO 在原始模型和降采样模型上的表现基本相似,而 Text2Mesh 则在低质量的模型上出现了较为严重的自交现象。

图片

图 5 鲁棒性测试

原理方法

TANGO 主要关注于由文本指导三维物体风格化的方法。这一领域目前最相关的工作是 Text2Mesh,它使用了预训练模型 CLIP 作为指导,预测三维模型表面顶点的颜色和位置偏移,从而实现风格化。然而简单地预测表面顶点颜色通常会产生不真实的渲染效果,且不规则的顶点偏移会造成很严重的自交。因此,该研究借鉴传统的基于物理的渲染管线,将整个渲染过程解耦为 SVBRDF 材质,法向贴图和灯光的预测过程,并分别用球高斯函数表达解耦的元素。这种基于物理的解耦方式使得 TANGO 可以正确产生具有真实感的渲染效果,并具有很好的鲁棒性。

图片

图 6 TANGO 流程图

图 6 展示了 TANGO 的工作流程。给定一个三维模型和文本(例如图中的“一个金子做成的鞋”),该研究先把这个三维模型缩放到一个单位球内,接着在三维模型的附近采样相机位置,在这个相机位置发射射线找到与三维模型的交点 xp 和该交点的法线方向 np。接下来,xp 和 np 会被送入SVBRDF网络和 Normal 网络中,预测该点的材质参数和法线方向,同时,用多个球高斯函数来表达场景中的光照。对于每一次训练迭代,该研究使用可微分的球高斯渲染器渲染图像,然后使用 CLIP 模型的图像编码器对增强图像进行编码,最后 CLIP 模型反向传播梯度更新所有可学习的参数。

总结

本文提出了 TANGO,一种根据输入文本对三维模型生成逼真外观风格,对低质量模型具有鲁棒性的新方法。通过将外观风格解耦 SVBRDF,局部几何变化(逐点法向)和光照条件,并将这些用球高斯函数表示并渲染,能够用 CLIP 作为 loss 监督并进行学习。

与现有方法相比,即使对于低质量的三维模型,TANGO 也可以具有很好的鲁棒性。然而,逐点法向提供几何细节的方式在避免产生自交的同时,也会使得能表达的材质表面凹凸程度略微降低,该研究认为 TANGO 和基于顶点偏移的 Text2Mesh 在各自的方向上都进行了很好的初步尝试,会启发更多的后续研究。

吉卜力风格图片在线生成 吉卜力风格图片在线生成

将图片转换为吉卜力艺术风格的作品

吉卜力风格图片在线生成 121 查看详情 吉卜力风格图片在线生成

以上就是一句话让三维模型生成逼真外观风格,精细到照片级细节的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/568808.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月10日 04:55:24
下一篇 2025年11月10日 04:56:23

相关推荐

  • CSS3三维变形实现立体方块

    这篇文章主要给大家介绍了css3利用三维变形实现立体方块的方法,文中给出了完整的实例代码,感兴趣的朋友们可以自己运行后看看效果,只有自己动手了才能更好的学习,下面来一起看看吧。 前言 三维变换使用基于二维变换的相同属性,如果您熟悉二维变换,你们发现3D变形的功能和2D变换的功能类似。3D变形与2D变…

    2025年12月24日
    100
  • 如何用HTML插入标签云组件_HTML CSS3变换与随机颜色生成算法

    使用HTML构建标签结构,CSS3添加旋转与过渡效果,JavaScript生成随机HSL颜色并设置字体大小,实现动态交互的标签云组件。 要在网页中实现一个动态的标签云组件,结合 HTML、CSS3 变换和随机颜色生成算法,可以按照以下步骤操作。这个组件不仅能提升页面视觉效果,还能通过色彩和旋转增加交…

    2025年12月23日
    000
  • 如何在Go Gin应用中集成前端JavaScript模块(如Sentry)

    本文探讨了在Go Gin框架下,通过HTML模板服务前端页面时,如何有效集成JavaScript模块(如Sentry)。针对浏览器不直接支持Node.js模块导入语法的问题,文章详细阐述了利用CDN引入Sentry SDK的解决方案,并提供了具体的代码示例,帮助开发者实现前端错误监控功能,避免了复杂…

    2025年12月23日
    000
  • html官网浏览入口_html网站设计免费平台

    html官网浏览入口在https://www.codepen.io,该平台支持实时预览代码、创建Pen项目、Fork开源示例,可添加外部资源,具备点赞评论收藏等社区互动功能,设有挑战活动与作品集分类,开放API接口,界面简洁适合初学者,在线编写无需配置环境,支持多种预处理器和响应式测试。 html官…

    2025年12月23日
    000
  • html如何修改日期样式

    在html中,可以使用“::-webkit-datetime-edit”伪元素选择器来修改日期格式,只需要用该选择器选中元素,在设置具体样式即可,具体语法为“::-webkit-datetime-edit{属性:属性值}”。 本教程操作环境:windows7系统、CSS3&&HTML…

    2025年12月21日
    100
  • 单选框的type属性值为什么

    单选框的type属性值为“radio”。html type属性可以规定要显示的输入框“”元素的类型;值为“radio”时显示为单选框、“checkbox”时显示为复选框、“select”时显示为下拉式选框等等。 本教程操作环境:windows7系统、HTML5版、Dell G3电脑。 在HTML中,…

    2025年12月21日
    000
  • HTML中type是什么意思

    在HTML中,type是类型的意思,是一个标签属性,主要用于定义标签元素的类型或文档(脚本)的MIME类型;例在input标签中type属性可以规定input元素的类型,在script标签中type属性可以规定脚本的MIME类型。 本教程操作环境:windows7系统、html5版、Dell G3电…

    2025年12月21日
    000
  • HTML中ul标签如何去掉点?HTML无序列表的样式实例解析

    本篇文章主要讲述的是关于html中的ul标签的默认小点给取消掉,还有关于html的无序列表ul标签的样式解释,给出了ul标签中的type属性三种值的介绍。现在就让我们一起来看本篇文章吧 首先这篇文章一开始我们就开始介绍在html中是怎么把ul标签的点给去掉的: 大家应该都使用过ul无序列表标签,ul…

    2025年12月21日 好文分享
    000
  • html中的ol标签如何去掉标号呢?标签的使用方法总结

    本篇文章介绍了html的ol标签是怎么去掉序号标号的,这里还有代码的详细解释,还有介绍了关于html ol有序列表标签如何更改序号,下文介绍了三种序号,大家也可以自己去想填写怎样的序号。现在来看这篇文章吧 一、我们先看看html中的ol标签是如何去掉标号的呢: 我们都知道html的ol标签是个有序列…

    2025年12月21日 好文分享
    000
  • HTML ul标签的什么意思?HTML ul标签的作用详解

    本篇文章主要的为大家讲解了关于html ul标签的三种重要的用法,还有关于html ul标签的解释,包含li标签的还有type属性对ul标签的使用情况,好了,下面大家一起来看文章吧 首先让我们先来解释一下HTML ul标签的意思: ul标签定义的是表格当中无序列表,表格当中的无序列表都是在 标签之中…

    2025年12月21日
    000
  • html的盒模型详解

    这次给大家带来html的盒模型详解,使用html盒模型的注意事项有哪些,下面就是实战案例,一起来看一下。 1.1. 盒的内容区的尺寸— content width和content height —取决于几个因素: –生成该盒的元素是否设置了’width’或&#82…

    好文分享 2025年12月21日
    000
  • javascript框架和库是什么_如何选择React、Vue或Angular?

    JavaScript框架与库分别提供按需调用的功能集合和约束性开发结构;React是UI组件库,生态灵活但需自行整合工具;Vue渐进式易上手,兼顾原型与工程化;Angular是全功能TypeScript框架,适合强规范企业级项目。 JavaScript框架和库是封装好的代码集合,用来简化前端开发——…

    2025年12月21日
    000
  • React应用生产环境环境变量配置深度指南

    本文针对react应用在生产环境中无法读取`.env`文件配置的环境变量问题,深入剖析其工作原理、常见原因及排查方法。通过详细的步骤和示例代码,指导开发者正确配置和使用环境变量,解决api调用层面的`null`响应问题,确保应用在生产环境下的稳定运行。 在React应用开发中,环境变量(如API密钥…

    2025年12月21日
    000
  • JS注解怎么实现文档化_ JS注解生成开发文档的流程与工具

    JSDoc是一种JavaScript结构化注释规范,通过@param、@returns等标签描述代码元素,并借助工具生成HTML文档,结合IDE支持和CI/CD可提升团队协作效率。 JavaScript本身不支持原生注解(Annotation)像Java那样的语法,但通过约定的注释格式和配套工具,可…

    2025年12月21日
    000
  • JS注解怎么标注联合类型_ JS联合类型的注解书写与使用技巧

    在JavaScript中可通过JSDoc使用联合类型注解,如string|number表示多类型支持,结合@param、@typedef等标签提升代码可读性与编辑器提示,适用于函数参数、返回值等场景。 在JavaScript中,虽然原生不支持类型注解,但在使用JSDoc配合现代编辑器(如VS Cod…

    2025年12月21日
    000
  • VS Code主题开发:告别JSON,拥抱脚本化生成

    vs code主题扩展最终需json格式定义,但开发者可通过javascript或typescript等脚本语言生成此json文件。这种方法有效解决了大型json文件难以维护、不支持注释等问题,并能实现颜色动态计算,显著提升主题开发的灵活性与效率。 为什么选择脚本化生成VS Code主题? 在开发V…

    2025年12月20日
    000
  • 如何用Quasar框架开发一个跨平台应用?

    Quasar基于Vue.js用一套代码构建多平台应用,支持响应式网站、PWA、移动App和桌面应用。通过quasar create创建项目,利用模式(SPA、PWA、Electron等)切换目标平台,使用Quasar组件库编写通用UI,配合Pinia管理状态,最后通过不同构建命令发布到各平台,实现高…

    2025年12月20日
    000
  • 怎么利用JavaScript进行前端代码覆盖率统计?

    答案:利用JavaScript进行前端代码覆盖率统计的核心是通过Istanbul/nyc等工具对代码插桩,结合测试框架收集执行数据并生成报告。具体流程包括:在代码执行前通过Babel或Webpack插件(如babel-plugin-istanbul)插入计数器实现插桩;运行测试时记录哪些代码被执行;…

    2025年12月20日
    100
  • typescript中的参数分享

    TypeScript 中的参数共享允许组件间共享参数,实现跨组件状态维护和数据变更共享。通过 @Input 装饰器传递父组件参数,使用 @Output 装饰器定义子组件事件,以便在子组件状态改变时通知父组件。参数共享提高复用性,简化状态管理,允许子组件向父组件发出通知,但应谨慎使用,避免大量数据共享…

    2025年12月19日
    000
  • 手机如何运行typescript方法

    要在手机上运行 TypeScript 方法,可以使用 TypeScript 编译器或第三方库:TypeScript 编译器: 将 TypeScript 代码编译成 JavaScript,然后集成到移动应用程序中。第三方库: 如 React Native 或 NativeScript,允许使用 Typ…

    2025年12月19日
    000

发表回复

登录后才能评论
关注微信