打造自己的3D模型AI 自动纹理工具

news2024/10/5 13:01:33
在线工具推荐: 三维数字孪生场景工具  -  GLTF/GLB在线编辑器  -  Three.js AI自动纹理化开发  YOLO 虚幻合成数据生成器  -  3D模型在线转换  -   3D模型预览图生成服务

为 3D 模型创建纹理可能比您想象的要容易。虽然注意细节很重要,但有很多方法可以制作出出色的纹理。您可以使用 3D 建模软件,但 Photoshop 和 Gimp 等 2D 程序也可以为您提供帮助。 如果您无法从头开始构思纹理,则可以将真实世界的图像和绘图与 2D 工具一起使用。在这里,您将学习为 3D 模型创建纹理的不同技术。

纹理映射

要创建类似于现实生活的表面,您需要转向纹理映射。这个过程类似于在白盒子中添加装饰纸。在 3D 中,纹理映射是向多边形对象添加图形的过程。这些图形可以是任何东西,从照片到原始设计。纹理可以帮助你的对象老化,并赋予它们更多的吸引力和真实感。

Texture_Mapping

着色

着色器描述了对象上的整个材质、光线的反射方式、吸收方式、半透明性和凹凸贴图,您将在本文后面了解这些内容。着色器和纹理经常会混淆,但纹理是连接到着色器以赋予 3D 对象特定外观的东西。

着色

UV映射

3D 对象有很多面,计算机不知道如何正确地将 2D 纹理放在 3D 对象上。UV 贴图基本上是拉伸成平面 3D 图像的 2D 模型。多边形对象上的每个面都与 UV 贴图上的一个面相关联。现在,将 2D 纹理放置在 2D 对象的新 3D 表示上要容易得多。

UV_Map

镜面反射率

镜面反射率定义了表面反射光的方式。它基本上是纹理对光源的反射,并营造出闪亮的外观。拥有正确的镜面反射率对于定义 3D 对象的材料构成非常重要。例如,闪亮的金属材料将具有高水平的反射率,而像水泥这样的平坦质地则不会。

镜面反射率

法线

法线是一条不可见的线,直接从多边形面或 NURBS 面片中伸出。这些法线可帮助 3D 应用程序确定曲面的哪一侧是正面,哪一侧是背面。正确的法线方向很重要,尤其是在渲染时,因为大多数情况下,渲染引擎不会渲染向后的法线。

法线

凹凸图

凹凸贴图在纹理上给人一种深度或浮雕的错觉,而不会大大增加渲染时间。例如,一分钱上的凸起表面可以通过使用凹凸贴图来伪造。计算机通过读取图形上的黑、白、灰度数据来确定图像上需要凸起的区域。

Bump_Map

透明度地图

透明度贴图是灰度纹理,它使用黑白值来表示对象材质上的透明或不透明度区域。例如,在对围栏进行建模时,您可以使用黑白纹理来确定哪些区域应保持不透明,哪些区域应保持透明,而不是对每个单独的链节进行建模,这将花费大量时间。

Transparency_Map

法线贴图

法线贴图可以产生细节的错觉,而不必依赖高多边形计数。例如,可以将角色细节化到像ZBrush这样的雕刻程序中,并且所有信息都可以烘焙到法线贴图上并转移到低多边形角色上,从而在不增加模型的实际多边形数量的情况下产生细节的错觉。游戏工作室经常使用法线贴图,因为他们需要保持在紧张的多边形预算范围内,但仍然需要高水平的细节。

Normal_Maps

法线贴图 VS.凹凸图

法线贴图和凹凸贴图的相似之处在于,它们都会影响几何体的法线,并创建细节错觉,而不必依赖额外的几何体。它们之间的最大区别在于,凹凸贴图仅使用黑白值对高度信息进行编码,而法线贴图则使用 RGB 值来表示曲面法线的方向。法线贴图中红色、绿色和蓝色通道中的信息与曲面的 X、Y 和 Z 方向相对应。法线贴图通常可以将更详细的信息放到曲面上。

在典型的 3D 场景中,您需要对对象进行着色、纹理和照明,以创建所需的确切外观,然后进行渲染。为了缩短渲染时间,您可以将所有材质、纹理和照明信息烘焙到图像文件中。例如,您可以将所有光照信息直接烘焙到现有纹理上,渲染一次,然后删除场景中使用的实际光源。这对游戏来说非常有用,因为在每个新帧中都需要重新计算光线。

Light_Baking

现在,您已经熟悉了这些常见的纹理技术,距离为 3D 模型构建纹理又近了一步。但是离使用这些技术的还是有一些差距的。我们该用什么样的工具 去使用这这些技术来为我们的3D模型进行纹理贴图,为我们的模型制作出更出色的纹理。

AI 自动纹理工具

DreamTexture.js自动纹理化开发包 是面向 three.js 开发者的 3D 模型纹理自动生成与设置开发包,可以为 webGL 应用增加 3D 模型的快速自动纹理化能力。用户只需给出提示词,就可以生成相应的纹理贴图,并自动映射到3D模型上,以下是使用DreamTexture.js自动纹理化工具为模型设置纹理贴图的示例:

古典建筑

动物

植物

打造自己的3D模型纹理工具

了解了 DreamTexture.js自动纹理化开发包 的用途,那么我们如何打造属于自己的3D纹理工具呢?

首先到DreamTexture.js自动纹理化开发包 - NSDT  网站下载开发包,开发包的内容结构如下:

开发包文件说明
src/源码目录
example/DreamTexture.js 使用示例目录
dream-texture.cjscjs 格式库文件
dream-texture.esmesm 格式库文件
dream-texture.umdumd 格式库文件
stable-diffusion-guide.md用于 DreamTexture.js 的稳定扩散服务安装指南
LICENSE.md开发包许可协议文件

第二步:下载好了开发包后,接下来就是参考开发包中的稳定扩散服务安装指南部署自己的 stable diffusion api 服务,支持 windows 和 Linux。

第三步:安装 three.js 开发环境,安装完成后需要引入 DreamTexture.js 库文件,以 ESM 库为例,引入代码如下:

import * as THREE from 'three';
import DreamTexture from './dream-texture.esm.min';

现在创建一个场景,在场景中导入 GLTF 模型 ,并可以适当的旋转或移动模型:

//将模型导入到场景
const gltfLoader = new THREE.GLTFLoader();
gltfLoader.load('monkey.glb', async (e) => {
  scene.add(e.scene);
});

// 将模型旋转到任何你想要的角度!
box.rotation.y = -Math.PI / 4;

然后实例化一个 DreamTexture 对象,注意要在参数中指定你的稳定扩散 API 服务的 URL:

//初始化DreamTexture对象,传入您的stable diffusion api 地址
const dt = new DreamTexture({
  baseUrl: 'http://127.0.0.1:7860', //stable diffusion url
});

现在就可以调用 DreamTexture 对象的 setTexture 方法传入提示词等参数, 让 AI 模型自动生成生成一张纹理图片,并投射到模型上,代码如下:

//编写提示词和其他参数
// 成功启动stable diffusion api后,可在 http://127.0.0.1:7860/docs 查看文档
const params = {
    prompt: 'monkey head, Brown hair, cartoon',//描述所需图像的细节越详细,Stable Diffusion生成效果越接近描述,较少描述则更具创意性。
    negative_prompt: 'blurry',//不希望Stable Diffusion生成的内容,用于排除不需要的元素。
    denoising_strength: 0.85,// 去噪强度
    cfg_scale: 15,//文字CFG比例
    image_cfg_scale: 7,//图片CFG比例
    steps: 10,//采样步数
    sampler_index: 'DPM++ SDE Karras',
    sampler_name: '',
};
dt.setTexture(scene, params).then((res) => {
  console.log('纹理添加成功!');
});

示例效果如下:

aa1

图一为原始模型, 图二图三为贴图后的模型。图二提示词:Realistic , photography, bottle, porcelain;图三:将'porcelain'换为'glass'

简单几步就可以打造一个AI 驱动的3D模型自动纹理话工具,再也不用为3D模型的纹理制作头疼了,只需输入合适的提示词,就可以快速的为3D模型设置好纹理贴图,省事有省力!

转载:打造自己的3D模型AI 自动纹理工具 (mvrlink.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1230132.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

你好,我叫Python,欢迎你认识派森。(来自关于Python语言的全方位自我介绍。

文章目录 自我简介一、Python的发展历程二、Python的特色1.语言特色2.语法特色 三、Python2与Python3的比较1.print 函数2.Unicode3.除法运算4.异常5.八进制字面量表示6.不等运算符7.python 3.0严格使用tab键进行缩进 四、Python适用开发场景及成果1.应用领域2.Python开发出的应…

二百零六、Flume——Flume1.9.0单机版部署脚本(附截图)

一、目的 在实际项目部署时,要实现易部署易维护,需要把安装步骤变成安装脚本实现快速部署 二、部署脚本在Linux中文件位置 文件夹中只有脚本文件flume-install.sh和tar包apache-flume-1.9.0-bin.tar.gz 三、Flume安装脚本 #!/bin/bash #获取服务器名…

使用centos搭建内网的yum源

1.安装httpd服务 2.启动服务,设置开机自启 #启动服务 systemctl start httpd # 设置开机自动启动 systemctl enable httpd systemctl status httpd3.新建一个目录,将rpm文件放到该目录下 4.将/etc/httpd/conf/httpd.conf文件中的DocumentRoot "…

海康威视综合安防管理平台任意文件上传

系统介绍 HIKVISION iSecure Center综合安防管理平台是一套“集成化”、“智能化”的平台,通过接入视频监控、一卡通、停车场、报警检测等系统的设备,获取边缘节点数据,实现安防信息化集成与联动,公众号:web安全工具库…

【SpringCloud】Eureka基于Ribbon负载均衡的调用链路流程分析

文章目录 前言1.调用形式2.LoadBalancerInterceptor3.负载均衡流程分析3.1 调用流程图3.2 intercept()方法3.3 execute()方法3.4 getServer()方法3.4 子类的chooseServer()方法3.5 getLoadBalancerStats().…

低代码平台全解析:衍生历程、优势呈现与未来趋势一览无余

在数字化时代,应用程序的开发与更新已成为企业保持竞争力的关键。传统的编码方式,虽然精细且功能强大,但耗时且要求开发者具备较高的技术水平。在这样的背景下,低代码开发平台的出现无疑为企业带来了福音。 低代码开发平台是一种创…

一文全面了解低代码

目录 一、低代码概况 二、低代码构成 三、低代码开发者 1)低代码赋能IT技术人员--低代码 2)低代码赋能业务人员--零代码 四、低代码核心技术概念 五、低代码能力 六、低代码技术应用价值及趋势 一、低代码概况 2014年,Forrester提出了低代码…

nvm的下载与使用

1.如果已经安装nodejs , 先卸载nodejs; 从控制面板中 卸载程序 卸载nodejs win r打开cmd ,管理员运行 where node 查看是否删除干净nodejs 2.下载nvm 从github 下载nvm , 下载nvm 3.nvm 和node安装路径最好写在同一个路径下 ,如D盘 ,D\a\nvm , D\a\nodejs 4.…

采购组件修改申请办理流程

现有采购流程1 #mermaid-svg-qAesAhfW2IQBcef8 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-qAesAhfW2IQBcef8 .error-icon{fill:#552222;}#mermaid-svg-qAesAhfW2IQBcef8 .error-text{fill:#552222;stroke:#5522…

Linux:安装MySQL服务(非docker方式)

1、下载安装包 下载MySQL安装包,需要Oracle官网的账号 下面是网友提供的账号及密码,亲测有效。 账户:3028064308qq.com 我用的这个,可以登陆 密码:OraclePassword123!Oracle Account: 602205528qq.com Oracle Pass…

【原创】CentOS7.9解决mdadm组raid阵列后resync非常慢的问题

前言 前几日我买了4块16TB的硬盘使用mdadm组了一个raid10阵列,具体如何搭建的可以看我之前的博客。 【报错记录】疯狂踩坑之RockyLinux创建Raid1镜像分区,Raid分区在重启后消失了!外加华硕主板使用Raid模式后,硬盘在系统中无法找…

查询数据库DQL

DQL 查询基本语法 -- DQL :基本语法; -- 1查询指定的字段 name entrydate 并返回select name , entrydate from tb_emp;-- 2 查询 所有字段 并返回select id, username, password, name, gender, image, job, entrydate, create_time, update_time from tb_emp;-- 2 查询…

【技巧】Word和Excel如何互相转换?

Word文档里有数据表格,如果编辑修改起来感觉没那么方便或容易出错,不妨将文档转换成Excel表格再来处理。 将Word文档转换成Excel,比较常用的是复制粘贴方法,也就是将Word文档的表格复制后,再粘贴到Excel表格里&#x…

STM32开发(三十)STM32F103 数据手册 —— 模拟/数字转换 DAC 详解

文章目录 DAC主要特征DAC内部框图单DAC通道数据格式DAC转换流程DAC输出电压计算方式选择DAC触发方式数字/模拟转换模块(DAC)是12位数字输入,电压输出的数字/模拟转换器。 DAC可以配置为8位或12位模式,也可以与DMA控制器配合使用。 DAC工作在12位模式时,数据可以设置成左对齐…

实力认证|易知微上榜中国信息通信研究院数字孪生城市产业图谱!

近期,中国通信院就数字孪生技术在城市层面的广泛应用,根据数字孪生产业框架,结合产业发展动态和企业综合实力评估,选取了核心产业、关联产业和辐射产业等各领域业务代表性较强的企业(机构),形成…

如何使用$APPEALS法,分析用户期待?

$APPEALS分析法是一种用于分析用户期待和需求的方法,它可以帮助企业全方位多角度地了解客户对产品的期望,有助于企业多维度有侧重地调整市场规划和产品改进策略,帮助企业打造优势产品,提高市场竞争力。 下面是使用$APPEALS分析法来…

【以图会意】操作系统的加载流程

声明:本图为博主方便自己记忆理解,诸多疏漏望请博友理性观看!如有错误不足恳请指正。 首先,操作系统是一段程序,他保存在ROM中,在开机时,CPU被激活,首先将IR置为BIOS(Bas…

澳洲猫罐头真实水平如何?我家亲自喂养过的优质猫罐头推荐给大家

当我们选择猫罐头时,要关注它的营养配方是否完整均衡、原料是否新鲜优质以及生产工艺是否科学可靠。只有满足这三个条件的猫罐头,才能称得上是高品质的。 猫罐头要营养均衡,好的配方不能少;猫罐头成品要优质,原材料要…

文心一言 VS 讯飞星火 VS chatgpt (139)-- 算法导论11.4 3题

三、用go语言,考虑一个采用均匀散列的开放寻址散列表。当装载因子为 3/4 和 7/8 时,试分别给出一次不成功查找和一次成功查找的探查期望数上界。 文心一言: 在开放寻址法中,当散列表的装载因子超过其阈值时,会触发重…

文件加密软件哪个好丨2023年最值得收藏的6款文件加密软件

文件加密软件哪个好? 在这个安全事件频发的时代,信息安全、文件安全已成为很多人关注的话题。不管是电脑还是手机,都需要重视文件加密这个话题。 那今天就推荐6款最值得收藏的文件加密软件,并分析其中的优缺点。 一、电脑加密软…