面向Three.js开发者的3D自动纹理化开发包

news2025/7/23 6:35:51

DreamTexture.js 是面向 three.js 开发者的 3D 模型纹理自动生成与设置开发包,可以为 webGL 应用增加 3D 模型的快速自动纹理化能力。

aa3

图一为原始模型, 图二图三为贴图后的模型。提示词:

city, Realistic , cinematic , Front view ,Game scene graph

1、DreamTexture.js 开发包内容

DreamTexture.js 基于 Three.js 和稳定扩散(stable diffusion) AI 模型开发,用于实现 3D 模型的自动纹理化,当然版本 V1.0,主要文件及目录组织结构如下:

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

2、DreamTexture.js 开发包快速上手

以 ESM 库为例介绍如何使用 DreamTexture.js 开发包为 Three.js 应用增加 3D 模型的自动化纹理能力。

首先参考开发包中的稳定扩散服务安装指南部署自己的 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('纹理添加成功!');
});

3D 模型的自动纹理化效果如下:

案例 1:

aa2

图一为原始模型, 图二图三为贴图后的模型。提示词:

car, Realistic , photography , hyper quality , high detail , high resolution , Unreal Engine , Side view

案例 2:

aa1

图一为原始模型, 图二图三为贴图后的模型。图二提示词:

Realistic , photography, bottle, porcelain

图三:将'porcelain'换为'glass'

3、DreamTexture.js 开发包 cjs/umd 库文件的使用

DreamTexture 支持三种常用的 js 库格式,除了前面介绍的 esm 格式,还支持 cjs、umd 格式:

cjs 库的引入代码如下:

const ProjectedMaterial = require('./dream-texture.cjs.js');

umd 库的引入代码如下:

<script src="./three.js"></script>
<script src="./dream-texture.umd.js"></script>

4、DreamTexture.js 开发包 API 接口说明

DreamTexture.js 的 API 接口非常简单,说明如下:

  • new DreamTexture({ baseUrl })

初始化 DreamTexture 对象,稍后用于 3D 模型的自动纹理化。

参数描述
baseUrlstable diffusion api 地址
  • dreamTexture.setTexture(object3d:THREE.Object3D, params)

DreamTexture 会将传入的 object3d 的正视图作为依据来完成 3D 场景的自动纹理化,包括纹理的生成和自动投射。

参数描述
object3dTHREE.Object3D。支持 Group 和 Mesh。
paramsstable diffusion img2img api 的参数

3D自动纹理开发包:DreamTexture.js自动纹理化开发包 - NSDT

转载:面向Three.js开发者的3D自动纹理化开发包 (mvrlink.com)

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

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

相关文章

鸿蒙实现类似于安卓的Handler,鸿蒙的延迟和异步操作

在安卓开发的时候我们想要去延迟处理一些事情可以通过 Handler 解决&#xff0c;比如一秒后处理某些事情&#xff1a; new Handler().postDelayed(new Runnable() {Overridepublic void run() {} },1000);鸿蒙也提供了类似的方法&#xff0c;如下: getUITaskDispatcher().del…

C#,数值计算——积分方程与逆理论Fred2的计算方法与源程序

1 文本格式 using System; namespace Legalsoft.Truffer { public abstract class Fred2 { public readonly double a; public readonly double b; public readonly int n; public double[] t; public double[] f; …

ABBYY16最新pdf文档转换图片、Word、Excel和PPT工具

欢迎来到 ABBYY 软件下载中心&#xff0c;FineReader PDF使专业人员能够最大程度地提高数字工作场所的效率。帮助信息工作者轻松地在同一工作流程中对各种文档进行数字化、检索、编辑、加密、共享和协作。 可以对pdf文档进行各种格式转换&#xff0c;任意转换为图片、Word、Ex…

代码版本控制工具GitLab :从安装到使用一步到位

一、GitLab 是什么&#xff1f; 如果听说过 Git 或者 GitHub&#xff0c;那么 GitLab 你一定也听说过。GitLab 是一个用于仓库管理系统的开源项目&#xff0c;使用 Git 作为代码管理工具&#xff0c;并在此基础上搭建起来的 Web 服务。简单理解&#xff1a;GitLab 类似私人版 …

Linux高性能服务器编程——ch12笔记

第12章 高性能I/O框架库Libevent 12.1 I/O框架库概述 基于Reactor模式的I/O框架库包含&#xff1a; 1&#xff09;句柄&#xff1a;与事件源绑定&#xff08;I/O事件、信号和定时事件&#xff09;。当内核检测到就绪事件时&#xff0c;通过句柄来通知应用程序这一事件。I/O事件…

多线程---线程安全的集合类

文章目录 多线程环境使用数组synchronizedListCopyOnWriteArrayList 多线程环境使用队列多线程环境使用哈希表HashTableConcurrentHashMapHashTable VS HashMap VS ConcurrentHashMap 我们原先学习过的集合类&#xff0c;大部分都是线程不安全的。只有Vector、Stack、HashTable…

智能井盖传感器有哪些?万宾科技智能井盖效果

在城市治理过程之中&#xff0c;小小的井盖却成为影响民生的一个重要方面&#xff0c;因为井盖一旦出现问题&#xff0c;会严重影响市民的生命安全&#xff0c;并且传统的井盖一般都会采用人工巡检的方式&#xff0c;这就导致了巡检的难度较大&#xff0c;从而不能对城市各个角…

Hdmi接口与XAPP460

之前写过VGA&#xff0c;其实HDMI也写过&#xff0c;但是没记笔记。 VGA时序 VGA Signal Timing (tinyvga.com) 介绍 规范&#xff1a; 小结&#xff1a; VGA像素编码以后通过差分对端口以十倍像素时钟的速率地串行发送。 官方例程 HDMI编码器 来自xaap460的编码器 // //…

Python Django 之模板继承详解(extends)

文章目录 1 概述1.1 目的1.2 标签&#xff1a;block、extends1.3 目录结构 2 templates 目录2.1 base.html&#xff1a;父页面2.2 login.html&#xff1a;子页面 3 其它代码3.1 settings.py3.2 views.py3.3 urls.py 1 概述 1.1 目的 模板继承 和 类继承 的目的是一样的&#…

机器人仿真-gazebo学习笔记(1)前期准备

1.更新gazebo到gazebo11 1)查看我们的gazebo插件&#xff08;我这里已经是gazebo11了&#xff0c;但对于ubuntu18.04的同学来说应该是gazebo9&#xff09; dpkg -l | grep gazebo 2)卸载gazebo9的插件 sudo apt-get purge gazebo9 gazebo9-common gazebo9-plugin-base libga…

【Java 进阶篇】Java Response 路径详解

在Java Web开发中&#xff0c;处理HTTP响应的路径是一个重要的概念。了解如何正确处理和管理路径对于构建健壮的Web应用程序至关重要。本篇博客将详细介绍Java中的HTTP响应路径&#xff0c;包括路径的组成、相对路径和绝对路径的区别、如何构建和处理路径&#xff0c;以及路径在…

MySQL基础教程下

MySQL 约束 约束是作用于表中字段上的规则&#xff0c;用于限制存储在表中的数据。 目的&#xff1a;保证数据库中数据的正确、有效性和完整性。 约束描述关键字非空不能为nullnot null唯一约束唯一unique主键非空唯一primary key默认默认值default检查约束满足一个条件chec…

铭控传感数字温度变送器丨远传温度变送器在工业中的助您精准测量

秋季的森林被染成了彩色的&#xff0c;地上满是落叶和一些颗粒饱满的果实。一说起栗子&#xff0c;最令人念念不忘的当属刚出锅的糖炒栗子&#xff0c;栗子的外壳在糖类与高温作用下一点点发生非酶褐变&#xff0c;偶尔有栗子外壳破裂的声音&#xff0c;听着心都跟着颤了一下。…

SIT3088E3.0V~5.5V 供电,ESD 15kV HBM,256 节点,14Mbps 半双工 RS485/RS422 收发器

SIT3088E 是一款 3.0V~5.5V 宽电源供电、总线端口 ESD 保护能力 HBM 达到 15kV 以上、总 线耐压范围达到 15V 、半双工、低功耗&#xff0c;功能完全满足 TIA/EIA-485 标准要求的 RS-485 收发器。 SIT3088E 包括一个驱动器和一个接收器&#xff0c;两者均可独立…

NeurIPS 2023 Spotlight | 探索不变学习中的充分必要因果

©PaperWeekly 原创 作者 | 杨梦月 单位 | 伦敦大学学院 研究方向 | 因果推断 NeurIPS 2023 接收的 Spotlight 论文“Invariant Learning via Sufficient and Necessary Cause”提出了一种在不变学习当中学习充分必要因果的解决方案。其能够在从数据中寻找不变表征的基础上…

阿里云服务器ECS经济型e实例2核2G3M带宽优惠价格99元一年

2023阿里云服务器双11优惠价格99元一年经济型e实例&#xff0c;并且续费不涨价&#xff0c;云服务器ECS-经济型e实例2核2G配置、3M带宽、40G ESSD entry系统盘优惠价99元一年&#xff0c;原价956.64元/年&#xff0c;可用于中小型网站建设、开发测试、小程序或app搭建&#xff…

TRS 2023 | Spurs in Millimeter-Wave FMCW Radar System-on-Chip

原始笔记链接: https://mp.weixin.qq.com/s?__bizMzg4MjgxMjgyMg&mid2247486779&idx1&snc75171844595150abc48d2dd59e7255f&chksmcf51bfc2f82636d4e3f9c8526d0f25df1bea5496d9945d1e963961fea8c8fd630e7670b99afb#rd ↑ \uparrow ↑ 打开上述链接即可阅读全文…

文件操作---IO

文章目录 什么是文件&#xff1f;文件的路径文件的系统操作文件的内容操作面向字节流面向字节流的读操作&#xff08;InputStream&#xff09;面向字节流的写操作&#xff08;OutputStream&#xff09; 面向字符流面向字符流的读操作&#xff08;Reader&#xff09;面向字符流的…

【数智化人物展】途牛旅游网副总裁王树柏:人性化深耕,数智化赋能,合力共促企业可持续发展...

王树柏 本文由途牛旅游网副总裁王树柏投递并参与《2023中国企业数智化转型升级先锋人物》榜单/奖项评选。 数据智能产业创新服务媒体 ——聚焦数智 改变商业 数字经济时代下&#xff0c;科技与信息的红利快速释放。“数智化”是这个时代所有企业都要面对的大趋势、大机遇。“数…

mybatis条件构造器(加强版CURD)

文章目录 1.Wrapper介绍2.QueryWrapper3.UpdateWrapper4.condition5.LambdaQueryWrapper6.LambdaUpdateWrapper 1.Wrapper介绍 Wrapper &#xff1a; 条件构造抽象类&#xff0c;最顶端父类 AbstractWrapper &#xff1a; 用于查询条件封装&#xff0c;生成 sql 的 where 条件 …