建筑可视化中的 3D 纹理

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

1、什么是 3D 纹理?

纹理是将二维图像添加到三维模型的技术艺术。虽然对物体进行纹理处理时的主要特征是添加颜色,但表面的光泽度、砂砾度和透明度等特征都属于“3D 纹理”的范围

2、在建筑可视化中使用 3D纹理

在建筑可视化中使用 3D 纹理是一个简单的过程。要使用3D纹理,您需要为要创建的材质提供适当的纹理和贴图。3D 纹理是在建筑可视化中创建逼真且令人信服的可视化的重要工具。它们提供了传统纹理无法比拟的真实感和准确性,使其成为任何想要创建高质量可视化的艺术家或设计师的必备品。3D 纹理能够在不同的照明条件下创建一致的结果,可用于创建准确表示最终产品的可视化效果,让客户更好地了解他们的期望。3D 纹理是建筑可视化中 3D 渲染过程的重要组成部分。与传统纹理相比,它们具有一系列优势,包括改进的真实感、一致性和可定制性。因此,对于任何想要创建视觉上令人惊叹且准确的建筑可视化的艺术家或设计师来说,它们都是必不可少的工具。

3、如何创建重复的无缝纹理

当我们为建筑渲染创建纹理时,例如下面使用的砖块纹理,我们经常需要显示所谓的无缝重复纹理。这意味着物体中间没有明显的接缝。采用传统的方法是我们先用图片编辑工具制作一张纹理图,步骤如下:

  1. 拍一张你想要的纹理的照片。确保整个画面的照明相当均匀,并且纹理距离足够远,以避免明显的重复。
  2. 将图像导入 Photoshop
  3. 如果对象具有均匀的图案,则可能需要以这样一种方式进行裁剪,以便在它偏移时它会对齐。
  4. 转到 Filter>Other>Offset 并设置偏移量,以便您可以看到纹理接缝的位置
  5. 使用修复画笔工具遮罩纹理图像中的可见接缝
  6. 一旦再次混合偏移,以确认图像中间没有明显的端点
  7. 另存为新纹理。

4、建筑模型上3D纹理

纹理图片制作好了之后,下一步就是为模型设置纹理贴图,步骤如下:

第 1 步:基本模型和形状

步骤 1.jpg

与大多数从头开始的 3D 项目一样,通常最好从一些基本形状和粗略的摄像机位置开始,这样您就可以开始找出最需要关注的场景区域。

第 2 步:展开包装

步骤2.jpg

在这个场景中,我知道我将多次复制砖墙,因此,我会在执行复制之前解开 UV。

*在展开这样的场景时,我喜欢使用简单的彩色方格纹理来帮助指导我。这使我能够对UV尺寸和UV的接缝进行可视化

步骤 2 Asteriks.jpg

第 3 步:复制

现在,简单的模型已经展开,我通常会测试我计划使用的纹理,以确保它适用于此展开。一旦我对结果感到满意,我就可以继续进行复制过程。

第 4 步:照明

步骤4.jpg

复制完成后,我现在将设置照明(我们将在下一个教程中深入探讨)
对于任何 3D 渲染场景,照明和纹理都是齐头并进的。为了获得现实的结果,你不能没有另一个。

第 5 步:凹凸和法线贴图

第 5_may 步更改.jpg

为了了解光线从物体上反射的方式,了解凹凸贴图或法线贴图在特定照明条件下将如何影响物体的外观至关重要。

第 6 步:镜面反射贴图

一旦我完成了一般的灯光设置,我就会开始完善材料的属性。一般来说,我知道砖会有些暗淡,但考虑到这一点,也许灌浆的镜面会比红砖略少。为此,我必须从图像中创建纹理中的镜面反射贴图。

最终.jpg

第 7 步:优化图像

在 3D 中创建纹理时,没有公式或预设设置可用于每个纹理。您将需要使用相当通用的设置来应用纹理,并开始通过频繁的渲染检查来完善颜色、凹凸和镜面反射贴图在照明条件下如何协同工作。

5、AI 纹理工具

从上面来看,传统的模型纹理贴图过程泰泰国麻烦,那么有没有更简单快捷的方式?

基于AI技术的迅猛发展,在各行各业中,基于AI技术扩展了很多相关工具软件, 其中 DreamTexture.js自动纹理化开发包 就是面向 three.js 开发者的 3D 模型纹理自动生成与设置开发包,可以为 webGL 应用增加 3D 模型的快速自动纹理化能力。用户只需输入提示词,就可以根据提示词生成纹理贴图,并映射到3D模型上,完美的解决了模型纹理贴图的效率问题而且不影响模型渲染的真实性,以下是示例:

案例:

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

aa3

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

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

6、DreamTexture.js自动纹理化开发包使用方法

了解了 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 纹理 (mvrlink.com)

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

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

相关文章

Linux安装Mysql详细教程(两种安装方法)

Linux之Mysql安装配置 第一种:Linux离线安装Mysql(提前手动下载好tar.gz包)第二种:通过yum安装配置Mysql(服务器有网络) 第一种:tar.gz包安装 1、 查看是否已经安装 Mysql rpm -qa | grep m…

计算机网络的标准化工作及相关组织

一、国际化组织 计算机网络的标准化工作由一些主要的组织来进行管理和推动。以下是几个主要的计算机网络标准化的国际组织及其相关的标准: 1. 国际标准化组织(ISO):国际标准化组织负责制定各种行业的标准,包括计算机…

SpringBoot 整合 Freemarker

通过 Freemarker 模版,我们可以将数据渲染成 HTML 网页、电子邮件、配置文件以及源代码等。 Freemarker 不是面向最终用户的,而是一个 Java 类库,我们可以将之作为一个普通的组件嵌入到我们的产品中。 Freemarker 模版后缀为 .ftl(FreeMarke…

Nginx部署前端项目

Nginx部署前端项目 1.在nginx官网http://nginx.org/en/download.html ,下载稳定版本: 2.解压后,点击根目录中的nginx.exe即可启动Nginx,或是在nginx安装目录中启动cmd并输入以下命令启动: nginx.exe 或 start nginx3…

Apahce虚拟主机配置演示

在企业的真实环境中,一台WEB服务器发布单个网站会非常浪费资源,所以一台WEB服务器一般都会发布多个网站,少则3-5个,多个10-20个网站。在一台服务器上发布多网站,也称之为部署多个虚拟主机。 WEB虚拟机主机配置方法主要…

开源之夏2023 MatrixOne 项目结业啦

开源之夏是由中国科学院软件研究所与 OpenEuler 社区共同主办的一项面向高校学生的暑期在线活动,旨在鼓励在校学生积极参与开源软件的开发维护,促进优秀开源软件社区的蓬勃发展。 在开源之夏 2023 年中,MatrixOne 一共有 2 个任务项目&#…

Linux:firewalled服务常规操作汇总

一、firewalled防火墙工作原理 firewalled的内部结构,可以简单的看做下图,有两个集合,一个集合管理关闭的端口,另一个集合管理放开的端口。 二、常用操作 1、开启和关闭防火墙 临时性配置: systemctl [start | stop …

KT142C语音芯片搭配HAA2018功放,两个板子,一个声音正常一个没有声音

KT142C芯片搭配HAA2018功放,焊了两个板子,一个声音正常,一个没有声音,该如何分析解决问题呢? 客户提出来的这个问题,原理图如下:分析问题的步骤如下: 可以看出来芯片的原理图部分没有…

六要素一体微型气象站介绍

WX-WQX6 随着科技的发展,气象监测已经进入了一个全新的时代。传统的气象站已经无法满足现代社会对气象预测的需求。因此,一款新型的气象站——六要素一体微型气象站应运而生。这款气象站集成了温度、湿度、风速、风向、气压和雨量六个气象要素&#xff0…

深度学习之自监督模型汇总

1.BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding paper:https://arxiv.org/pdf/1810.04805v2.pdf code:GitHub - google-research/bert: TensorFlow code and pre-trained models for BERT Abstract:我们引入了一种名为 BE…

硬件驱动为什么要有WHQL数字签名

硬件驱动要有WHQL数字签名才能实现正常安装、启动、运行,并实现驱动静默安装。 目前的桌面操作系统中,Windows系统市场占有率处于优势,Windows 的各个版本的系统加起来几乎占领了大部分市场。所以很多工业和行业的硬件设备都要考虑兼容在Win…

服务器数据恢复—raid5上层NTFS分区误删除/格式化的数据恢复案例

NTFS是windows操作系统服务器应用最为广泛的文件系统之一。理论上,NTFS文件系统格式化操作虽然不会对数据造成太大的影响,但是有可能会出现部分文件目录结构丢失的情况。下面介绍一台服务器误操作导致raid5阵列上层的NTFS分区被格式化后如何逆向操作恢复…

【接口自动化测试】HTTP协议详解

协议 简单理解,计算机与计算机之间的通讯语言就叫做协议,不同的计算机之间只有使用相同的协议才能通信。所以网络协议就是为计算机网络中进行数据交换而建立的规则,标准或约定的集合。 OSI模型 1978年国际化标准组织提出了“开放系统互联网…

了解JVM的相关概述,发现很多全忘了(文末福利)

1、学之前存在的问题 1、你被JVM伤害过吗? 你是否也遇到过这些问题? 运行着的线上系统突然卡死,系统无法访问,甚至直接OOM!想解决线上JVM GC问题,但却无从下手。新项目上线,对各种JVM参数设置一…

clusterProfiler包学习

&#x1f4d6; Introduction | Biomedical Knowledge Mining using GOSemSim and clusterProfiler (yulab-smu.top) 部分使用 #GO classificationlibrary(clusterProfiler) data(geneList, package"DOSE") gene <- names(geneList)[abs(geneList) > 2]# Entre…

在Spring Boot中使用Thymeleaf开发Web页面

引言&#xff1a; 为啥写这篇文章呢&#xff1f;我明明就没怎么用过这个Thymeleaf进行web开发&#xff0c;用JSP也行&#xff0c;三剑客也行&#xff0c;或者Vue&#xff0c;React&#xff0c;PHP等等&#xff0c;不好吗&#xff1f; 那我为啥写这篇博客呢&#xff1f;这个写了…

基于安卓android微信小程序的刷题系统

项目介绍 面试刷题系统的开发过程中&#xff0c;采用B / S架构&#xff0c;主要使用jsp技术进行开发&#xff0c;中间件服务器是Tomcat服务器&#xff0c;使用Mysql数据库和Eclipse开发环境。该面试刷题系统包括会员、答题录入员和管理员。其主要功能包括管理员&#xff1a;个…

【Linux系统化学习】进程的状态 | 僵尸进程 | 孤儿进程

个人主页点击直达&#xff1a;小白不是程序媛 Linux专栏&#xff1a;Linux系统化学习 目录 操作系统进程的状态 运行状态 阻塞状态 进程阻塞的现象 挂起阻塞状态 Linux进程状态 Linux内核源代码怎么说 R&#xff08;running状态&#xff09;运行状态 S&#xff08;sl…

关于漏洞:检测到目标SSL证书已过期【原理扫描】

这个漏洞是监听443端口的&#xff0c;如果我们是正式的网站且使用了https那么更新证书即可。 但是我的服务器上面几乎是个空服务器&#xff0c;谁会用443呢&#xff1f; 找不到谁用了那我就部署一个nginx&#xff0c;用nginx代理443&#xff0c;找个证书配一下呗。 然而当我…

rabbit MQ的延迟队列处理模型示例(基于SpringBoot)

说明&#xff1a; 生产者P 往交换机X&#xff08;typedirect&#xff09;会发送两种消息&#xff1a;一、routingKeyXA的消息&#xff08;消息存活周期10s&#xff09;&#xff0c;被队列QA队列绑定入列&#xff1b;一、routingKeyXB的消息&#xff08;消息存活周期40s&#xf…