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

在线工具推荐: 三维数字孪生场景工具  -  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.mzph.cn/news/150173.shtml

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

相关文章

超详细~25考研规划~感恩现在努力的你!!!

25考研规划 俄语,翻译过来叫我爱你 考试时间 第一天 8.30-11.30政治——100分 2.00-5.00英语——100分 第二天 8.30-11.30数学——150分 2.00-5.00专业课——150分 1.什么是25考研 将在2024年12月参加考研,2025年本科毕业,9月读研究…

java基础练习缺少项目?看这篇文章就够了(下)!

公众号:全干开发 。 专注分享简洁但高质量的动图技术文章! 回顾 在上节内容中,我们实现了用户开户的功能createAccount public void start(){System.out.println("欢迎您进入到了ATM系统");System.out.println("1、用户登录&…

git基本用法和操作

文章目录 创建版本库方式:Git常用操作命令:远程仓库相关命令分支(branch)操作相关命令版本(tag)操作相关命令子模块(submodule)相关操作命令忽略一些文件、文件夹不提交其他常用命令 创建版本库方式: 创建文件夹 在目录下 右键 Git Bush H…

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

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

键盘控制ROS车运动

键盘控制ROS车运动 上位机 使用pyseria库与stm32单片机进行通信控制 #!/usr/bin/env python # -*- coding: utf-8 -*import sys, select, termios, tty import serialmsg """ ---------------------------w a x ds w : x a : y s : -x …

广西柳州机械异形零部件三维扫描3D抄数全尺寸测绘建模-CASAIM中科广电

一、背景介绍 复杂机械异形零部件具有不规则的形状和复杂的结构,给生产制造带来了很大的检测难度。为了确保零部件的制造质量和精度,需要对零部件进行全面的尺寸检测和分析。 CASAIM三维扫描仪在机械异形零部件全尺寸检测应用可以实现对机械异形零部件…

腾讯云轻量数据库是什么?性能如何?费用价格说明

腾讯云轻量数据库测评,轻量数据库100%兼容MySQL 5.7和8.0,腾讯云提供1C1G20GB、1C1G40GB、1C2G80GB、2C4G120GB、2C8G240GB五种规格轻量数据库,腾讯云百科txybk.com分享腾讯云轻量数据库测评、轻量数据库详细介绍、特性、配置价格和常见问题解…

JVM 调优指南

文章目录 为什么要学 JVM一、JVM 整体布局二、Class 文件规范三、类加载模块四、执行引擎五、GC 垃圾回收1 、JVM内存布局2 、 JVM 有哪些主要的垃圾回收器?3 、分代垃圾回收工作机制 六、对 JVM 进行调优的基础思路七、 GC 情况分析实例 JVM调优指南 -- 楼兰 ​ JV…

口袋参谋:如何通过布局“问大家”,快速提高宝贝转化!

问大家对于中小卖家来说,是非常适合的,因为我们完全可以靠对问大家的布局,提高宝贝的转化率。 问大家的作用 问大家主要是方便买家在购买前,了解商品的一些问题,而作为该不该购买的参考。对于卖家来说,是…

释放机器人潜力,INDEMIND深耕底层技术

市场转暖,但攘外需要同时安内。 市场降温之后,正迎来拐点 疫情之后,经济逐渐下行,服务机器人的“好日子”也随之结束,整个行业都在动荡中经历渡劫。根据TE智库报告显示,从2022年开始,我国服务…

疑似openAI的BUG

Chat gpt 4.0 『最新数据2023年』 Chat gpt 3.5 智商不在线『最近数据2021年9月左右』 发现了疑似openAI的一个bug 通过固定连接访问就可以用chatgpt4.0 4.0版本的费用为20美金一个月 https://chat.openai.com/?modelgpt-4-gizmo

【Linux】C文件系统详解(四)——磁盘的物理和抽象结构

文章目录 磁盘结构磁盘物理结构磁盘的具体物理结构磁盘结构的逻辑抽象 文件系统BootBlockSuperBlockGroupDescriptorTableinode tableDataBlocksinodeBitmapblockBitmaplinux中的inode 和文件名如何理解文件的增删查改删 补充细节1.如果文件误删了,我们该怎么办?2.inode确定分…

服务器端请求伪造(SSRF)

概念 SSRF(Server-Side Request Forgery,服务器端请求伪造) 是一种由攻击者构造形成的由服务端发起请求的一个安全漏洞。一般情况下,SSRF是要攻击目标网站的内部系统。(因为内部系统无法从外网访问,所以要把目标网站当做中间人来…

Thinkphp6实现定时任务功能

本文主要介绍命令启动定时任务的功能,按照CRMEB标准版的程序为大家详细的进行实现过程的介绍 首先创建安装Worker,执行composer require topthink/think-worker 安装在config/console.php中定义指令 timer > \crmeb\command\Timer::class 3. 对应图1…

C++ Qt 学习(八):Qt 绘图技术与图形视图

1. 常见 18 种 Qt 绘图技术 1.1 widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <memory> #include <QTreeView> #include "CPaintWidget.h"using namespace std;class Widget : public QWidget {Q_OBJECTpublic:Widget…

使用Python实现3D曲线拟合

曲线拟合是数据分析和数学建模领域中广泛使用的技术。它涉及到寻找最接近一组数据点的数学函数的过程。在3D曲线拟合中&#xff0c;该过程被扩展到三维空间&#xff0c;其中的目标是找到最好地表示一组3D数据点的函数。 Python是一种用于科学计算的流行编程语言&#xff0c;它…

暖阳脚本_ 将Agent技术的灵活性引入RPA,清华等发布自动化智能体ProAgent

RPA暖阳脚本 近日&#xff0c;来自清华大学的研究人员联合面壁智能、中国人民大学、MIT、CMU 等机构共同发布了新一代流程自动化范式 “智能体流程自动化” Agentic Process Automation&#xff08;APA&#xff09;&#xff0c;结合大模型智能体帮助人类进行工作流构建&#x…

QT下使用QChart绘制曲线

目录 头文件内容构造函数AddSeries方法UpdateSeries方法AppendSeriesData方法SetLegendVisiableSetRubberBandCPP内容测试函数 需要用到的头文件&#xff1a; #include <QtCharts/QChart> #include <QtCharts/QChartView> #include <QtCharts/QValueAxis> #…

广西南宁新能源汽车电机定子三维扫描3D尺寸测量检测-CASAIM中科广电

一、背景介绍 电机定子压圈是一种用于电机上对电机定子的两端进行固定的辅助装置&#xff0c;在电机制造业中&#xff0c;电机定子制造的工艺水平往往能够直接决定电机制造的性能质量。而传统电机定子检测主要通过三坐标测量以及人工卡尺测量两种测量方式&#xff0c;三坐标每…

在Vue3中使用Element-Plus分页(Pagination )组件

开发过程中数据展示会经常使用到&#xff0c;同时分页功能也会添加到页面中。 记&#xff1a;在Vue3中使用Element-Plus分页组件与表格数据实现分页交互。 开始实现 引入表格和分页组件的H5标签。 <strong>Element-Plus分页组件使用</strong> <div><el-t…