Blender中的高级边缘控制和纹理映射
推荐:使用 NSDT场景编辑器 快速搭建3D应用场景
步骤 1
首先,您需要创建一组无阴影材质,每种材质具有不同的颜色,确保您有足够的材质来覆盖模型,而不会有相同的颜色相互重叠。然后,切换到“着色”(F5)面板,选择“材质按钮”,然后单击“添加新”按钮添加新材质。
步骤 2
选择“材料”子面板。单击“无阴影”按钮。使用“Col”按钮将颜色从默认灰色更改为颜色,或从颜色选择器中选择一种颜色。您的整个模型将重新涂成这种颜色。注意:在“链接和管道”子面板上,您可以使用上面描绘的汽车的小按钮自动生成此颜色的名称。在这种情况下,这是一个非常方便的工具,因为您将生成许多不同的颜色,并且尝试记住索引可能不是最好的主意。
步骤 3
现在为您的收藏添加另一种颜色。单击“链接到对象”文本下方的“链接和管道”子面板上的“<>”按钮,然后选择“添加新”选项。将使用从前一种颜色复制的属性创建新颜色。因此,您不必一直单击“无阴影”。
广告
步骤 4
执行与先前颜色相同的操作。使用“Col”按钮将颜色从默认灰色更改为颜色,或从颜色选择器中选择一种颜色。注意:无论新颜色完全替换以前的颜色,所有以前的颜色仍驻留在内存中。您可以通过单击相同的“<>”按钮来查看它们。请记住,在所有创建的颜色都分配给模型零件之前,不要保存/打开模型,因为Blender将擦除所有未分配的颜色(它们的名称前缀为“0”)。如果您绝对必须中途停止,并且某些颜色尚未分配,只需在完成该材料后按材料名称旁边的“F”按钮即可。这将告诉Blender保存颜色,即使它没有用户。
执行步骤 2 - 4,直到模型有足够的颜色。对于中等复杂度模型,10 应该就足够了。由于最后一步添加一个通用的灰色材料,我们稍后将需要它。
步骤 5
现在,您需要使用材质将模型划分为多个区域。您将使用颜色更改来标记要控制的边缘。切换到编辑模式编辑面板 (F9)。
步骤 6
在“3D 视图”窗口中,选择您希望使用一种颜色的区域,有效地使用,并且没有任何边缘。
广告
步骤 7
移至“链接和材料”子面板,使用材料选择器选择颜色,然后单击“分配”按钮。
注: 如有必要,请使用材质索引选择器附近的颜色选取器调整颜色。
步骤 8
选择要着色的另一个区域,然后重复步骤 6 和 7。注意:对于此步骤的每次迭代,请确保选择除灰色以外的其他颜色。
完成后,您应该将模型完全涂成不同的颜色,如下所示。
步骤 9
现在,您将使用“复合节点”过滤掉除边缘之外的所有信息。首先,告诉渲染引擎使用合成节点。选择“场景”面板(F10),然后选择“渲染按钮”,然后单击“执行复合”按钮。
步骤 10
在主窗口中,将视图切换到“节点编辑器”。
步骤 11
单击“节点编辑器”窗口底部的“复合节点”和“使用节点”按钮。Blender将为您创建两个初始节点:输入节点“渲染层”和输出节点“复合”。
步骤 12
通过按鼠标左键并在链接上拖动轮廓来擦除节点链接。
步骤 13
要过滤掉边缘,请使用名为“过滤器”的节点(谁知道呢?选择“加载项>筛选器>筛选器”菜单项,并确保其“图像”输入链接到“渲染层”节点的“图像”输出。
步骤 14
将过滤器类型从默认的“柔化”更改为“Sobel”。现在,如果将筛选器节点输出与“复合”节点输入“图像”链接到“图像”,并运行渲染,您将看到模型为黑色,边缘以不同的颜色勾勒。
步骤 15
但是,您确实需要边缘为黑色。执行此操作,您必须反转渲染,方法是选择“添加>颜色>反转”菜单项,并将添加的节点链接到过滤器节点的“图像”输出。然后通过选择“添加>转换器-> RGB 到 BW”菜单项,将渲染从“RGB”转换为“黑白”。不要忘记将其链接到前一个节点的输出。转换器的“Val”输出需要链接到“复合”的“图像”输入。注意:您可以将“背景”选项与“查看器”输出节点一起使用,以显示节点架构后面的中间结果。
步骤 16
运行渲染以检查结果。注意:如果在构建测试流程时不打算更改为相机放置和模型,则可以将此步骤的输出保存在文件中,并在后续步骤中使用它。这可以大大缩短渲染时间。您可以通过使用“Add-> Output-> File Output”菜单选项来执行此操作,指定文件名,对于文件类型,请使用将提供无损压缩或根本不压缩的文件类型。
步骤 17
现在,您需要展开模型,并创建遮罩纹理以覆盖边缘。把你创建的边缘放在一边,回到你的模型,以及你留下的灰色材料。这部分可能很棘手。从脚本生成的UV贴图开始,并在必要时进行调整。移回“3D 视图”显示,然后切换到编辑模式(“Tab”键)。拆分视图,然后在另一个窗口中,选择“UV/图像编辑器”选项作为窗口类型。
步骤 18
返回“3D视图”,选择整个模型,按“U”键显示“UV计算”菜单,然后选择“展开(智能投影)”菜单项。
步骤 19
单击“确定”按钮解开模型,然后在UV\图像编辑器窗口中检查结果。如果幸运的话,或者模型非常简单,您将从第一次尝试开始就获得连续的UV贴图。如果你喜欢其他人,你只需要一步一步地手动展开。
步骤 20
选择要集中精力的模型部分,然后按“Ctrl+I”反转选择,然后按“H”隐藏选择,隐藏其余部分。
步骤 21
通过按“Ctrl+Tab”,然后按“2”移动到边缘选择模式,然后选择要沿其展开模型的边缘(接缝)。
步骤 22
按“Ctrl+E”显示“边缘特价”菜单,其中包含边缘命令列表,然后选择“标记接缝”。所选边将以橙色勾勒出轮廓,表示它们被标记为接缝。
步骤 23
现在再次尝试解包过程。选择您正在使用的模型的整个部分,按“U”键显示“UV计算”菜单,然后选择“解包”菜单项。现在UV贴图应该更合乎逻辑。如果没有,您需要选择更好的接缝,然后重复展开过程。
步骤 24
取消隐藏模型的其余部分,并重复步骤 20 - 23,直到整个模型在易于绘制的地图中展开。
注意:随意使用UV编辑器中的缩放和旋转(“S”和“R”)键,以紧凑有效的方式组织UV外壳。
步骤 25
现在,您需要为您创建的UV贴图创建图片。在“UV\图像编辑器”窗口中,选择“图像>新建”。
步骤 26
指定图像名称而不是“无标题”,将图像默认颜色更改为白色,然后单击“确定”以创建图像。要保存图像,请单击“Alt+S”或选择“图像>保存”菜单项,然后保存图像。注: 您仍然需要指定图像应用作纹理,将此纹理指定给材质,并确保此纹理影响渲染模型的颜色。
步骤 27
将此纹理添加到您留下的灰色材料中。为此,请移至“着色”面板 (F5),选择“材质按钮”,然后使用“链接和管线”选项卡上的材质选择器选择灰色材质。在“纹理”子面板上,单击“添加新”按钮,以添加纹理草稿。因此,应显示“映射输入”和“映射到”选项卡。
步骤 28
现在,为了告诉纹理使用UV坐标,请选择“地图输入”选项卡,单击“UV”按钮并在“UV:”字段中指定UV纹理(不是图像)名称。注意:要了解UV纹理名称,请切换到“编辑”(F9)面板和“机甲”子面板。该名称在“UV 纹理”字段下指定。
步骤 29
之后,您需要告诉纹理要使用什么图像。转到“着色”面板(F5),然后转到“纹理按钮”(F6)。在“纹理类型”字段中,您应该看到“无”。将其更改为“图像”,然后在“图像”子面板上,单击“加载”按钮以加载您之前创建的图像。
步骤 30
现在,您需要使用合成节点来混合使用控制蒙版生成的边缘。为此,您有两种选择:1) 使用您最初创建的边渲染,或 2) 使用您现在拥有的地图。出现的问题是初始材质集会覆盖您刚刚创建的纹理映射。因此,您需要将渲染分为两部分:时间(使用保存的图像)或使用渲染层。
对于初始建模和调优,第一种方法更可取,因为您可以在按下渲染按钮后几乎立即看到渲染结果(通过跳过边缘生成阶段来实现)。对于动画或实际制作,后一种方法更可取,因为它会对模型轮廓和位置变化做出反应。
出于本教程的目的,您将使用第一种方法(第二种方法将在本教程末尾概述)。
告诉渲染引擎使用模型的纹理材质,而不是彩色集。选择“场景”面板 (F10),然后选择“渲染按钮”,然后选择“渲染层”选项卡。在“Mat:”字段中,输入您之前纹理的灰色材质的名称。
步骤 31
现在修改复合节点以使用保存的图像。在主窗口中切换到“节点编辑器”,单击“复合节点”按钮,然后擦除除“渲染层”和“复合”节点以外的所有节点。选择“添加>输入>图像”菜单选项,将“图像输入”节点添加到我们的架构中,并将图像加载到其中。现在,唯一剩下的就是混合蒙版和生成的边缘。为此,请使用“添加>颜色>混合”菜单项的“混合”节点。使用蒙版作为“混合”节点的白色输入的因素,以指定在边缘渲染上绘制的位置。结果应该是这样的。注: 如果运行渲染,则与初始边选择方案相比,不会有任何变化。默认图像为白色,因此将显示所有边缘。
步骤 32
接下来,您需要将面具上不需要的区域涂成黑色。为此,您需要保留之前使用的两个窗口视图(3D 视图和“UV\Image 编辑器”)。在“3D视图”窗口中,选择“纹理绘制”模式,并将“视口着色”设置为“纹理”。然后,要查看可用的绘画工具,请单击“编辑”(F9),然后检查“绘画”子面板。
步骤 33
为了能够在“UV\图像编辑器”中绘画,请单击铅笔按钮进入绘画模式,然后按“C”键显示可用的工具。
步骤 34
在“编辑>画图”面板中,将颜色更改为黑色,将不透明度设置为 1,将大小设置为 25,然后在“3D 视图”中,绘制出要隐藏的边缘。
要将绘画限制为仅某些面,请切换回编辑模式,选择这些面,移回纹理模式,然后按“F”按钮。现在,当您绘制时,只有选定的面会受到影响。
注意:您还可以使用“UV\图像编辑器”窗口进行细微更正,同时检查UV纹理轮廓。该过程与“3D视图”完全相同,仅在按“C”键后可以使用工具选择。此外,请确保在UV窗口中打开“启用图像绘画”按钮(铅笔)。
步骤 35
完成后,在“UV\图像编辑器”窗口中按“Alt + S”保存UV纹理,然后按“F6”移动到“纹理按钮”,然后单击“图像”面板上的“重新加载”,将其重新加载到材质纹理中。
步骤 36
呈现并重复前面的两个步骤以更正映射。继续重复,直到您对结果满意为止。
步骤 37
现在我们可以讨论我前面提到的第二种方法。为此,您将使用复合节点中使用的已保存边图像。调整流程后,您可能希望将这两个过程结合起来,以消除对保存图像的需求。为此,请添加渲染层的副本而不覆盖材质,并按下面描述的方式组合复合贴图。现在,剩下要做的就是点击渲染,并享受结果。
原文链接:Blender中的高级边缘控制和纹理映射 (mvrlink.com)
相关文章:

Blender中的高级边缘控制和纹理映射
推荐:使用 NSDT场景编辑器 快速搭建3D应用场景 步骤 1 首先,您需要创建一组无阴影材质,每种材质具有不同的颜色,确保您有足够的材质来覆盖模型,而不会有相同的颜色相互重叠。然后,切换到“着色”ÿ…...

从0开始学go第四天
模板继承 继承根模板,重新定义“块模板” 【Go Web开发系列教程】07-Go模板继承_哔哩哔哩_bilibili 解析模板时,base模板要在前 渲染模板时: 要用ExecuteTemplate,而不是Excute 模板补充:Go语言标准库之http/templ…...

【飞书ChatGPT机器人】飞书接入ChatGPT,打造智能问答助手
文章目录 前言环境列表1.飞书设置2.克隆feishu-chatgpt项目3.配置config.yaml文件4.运行feishu-chatgpt项目5.安装cpolar内网穿透6.固定公网地址7.机器人权限配置8.创建版本9.创建测试企业10. 机器人测试 前言 在飞书中创建chatGPT机器人并且对话,在下面操作步骤中…...

vue3集成jsoneditor
一、背景 之前在做录制回放平台的时候,需要前端展示子调用信息,子调用是一个请求列表数组结构,jsoneditor对数组的默认展示结构是[0].[1].[2]..的方式,为了达到如下的效果,必须用到 onNodeName的钩子函数,…...
自然语言处理 中文停用词词典
我整合了4个常用的中文停用词词典(https://gitcode.net/mirrors/goto456/stopwords/-/tree/master),剔除了其中的非中文词汇,得到停用词词典如下,可直接取用。 看见 并不是 有著 岂非 毫无保留地 这样 么 哎呀 互相 通…...

CocosCreator3.8研究笔记(十)CocosCreator 图像资源的理解
一、图像资源导入 Cocos Creator 可使用图像文件格式,支持 JPG、PNG、BMP、TGA、HDR、WEBBP、PSD、TIFF 等。 将图像资源直接拖拽到 资源管理器 即可将其导入 二、图像资源的类型 在 属性检查器 面板中便可根据需要设置图像资源的使用类型:raw 、 textu…...

计算机使用中常用截图与标注方法
一、截图常用方法 1.windows自带快捷键 Print Screen SysPq 截取全屏,可以粘到word文档中,可以粘贴到"画图"程序中,命名一个文件名,另存为图片,或.jpg后缀,或.png后缀 alt Print S…...

Elasticsearch,Logstash和Kibana安装部署(ELK Stack)
前言 当今数字化时代,信息的快速增长使得各类组织和企业面临着海量数据的处理和分析挑战。在这样的背景下,ELK Stack(Elasticsearch、Logstash 和 Kibana)作为一套强大的开源工具组合,成为了解决数据管理、搜索和可视…...

MATLAB中movmean函数用法
目录 语法 说明 示例 向量的中心移动平均值 向量的尾部移动平均值 矩阵的移动平均值 包含缺失值的向量的移动平均值 基于样本点计算移动平均值 仅返回满窗口平均值 movmean函数的功能是对数据进行移动求平均值。 语法 M movmean(A,k) M movmean(A,[kb kf]) M mov…...

IIS短文件名泄露漏洞复现
IIS短文件名泄露漏洞复现 前言一、漏洞描述二、漏洞原理1.什么是短文件2.短文件特征 三、漏洞验证三、漏洞防御总结 前言 IIS短文件名泄露漏洞比较老了,而且只适合于windowsiisasp的网络结构,所有如下的复现步骤看下就行了,关键是要弄懂原理…...

万字解读 Android 车机核心 :CarService 的构成和链路~
前言 关于 Android 车机,之前分析过方控上自定义按键的输入机制和中控上旋钮输入的原理,但都局限于 Car Service 内 Input 相关模块。 一文了解 Android 车机如何处理中控的旋钮输入从实体按键看 Android 车载的自定义事件机制 本文将结合 Android 系…...
C#使用Panel
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System...
Jabbi的Rust学习日记(一)
Rust环境安装 Windows:Install Rust - Rust Programming Language (rust-lang.org) 访问网页,下载64bit | 32bit 版本 下载完成后打开,直接enter即可 Linux:输入指令 curl https://sh.rustup.rs-sSf | sh 我会报错,好像是链接不到这个网址&a…...

电脑磁盘分区形式是什么?如何更改?
磁盘分区形式介绍 在了解为什么以及如何更改分区形式之前,让我们对磁盘分区形式有一个基本的了解。一般来说,分区形式是指主引导记录(MBR)和 GUID 分区表(GPT)。 MBR和GPT是Windows系统中常用…...

Outlook无需API开发连接钉钉群机器人,实现新增会议日程自动发送群消息通知
Outlook用户使用场景: 在企业中,会议和活动的顺利举行对于业务运转和团队协作至关重要。然而,计划的变动总是无法避免,这可能会导致其他人的计划受到影响,打乱原有的安排。为了解决这个问题,许多企业开始使…...

elasticsearch分析插件 安装analysis-ik
首先下载安装es 和 插件 ,注意 两者的版本要保持一致,如果要用到kibana 则三者保持一致 ik:https://github.com/medcl/elasticsearch-analysis-ik/releases es/kibana:https://www.elastic.co/cn/downloads/past-releases/ 然后在 es— elast…...

2023年股票大宗减持研究报告
第一章 股票大宗减持概述 1.1 概念 大宗减持是指通过大宗交易的方式进行减持,即达到规定的最低限额的证券单笔买卖申报,买卖双方经过协议达成一致并经交易所确定成交的证券交易,其中A股单笔交易数量在30万股(含)以上…...

VS编译.cu文件源文件无法打开matrix.h和mex.h问题
配置好cu和VS相关库文件后CUDA程序仍然报错:无法打开matrix.h和mex.h,解决办法: (1)这两个头文件是matlab中的,可能无法直接在VS中调用,可以通过添加外部依赖项的方法将matlab中的头文件的文件路…...
小bugs搜集和解决方法,亲测有效(2022-2023)
有些小bugs几行指令就能解决,写太多不好,这里就进行一个2022-2023这段时间的bugs collection和solution。 Deep Learning How to make really empty tensor? a nn.Torch([]) b torch.empty(2,3) for i in rang(3):a torch.cat(a, b, dim0)Mismatc…...

归并排序和快速排序的两种实现
在此之前我们已经介绍过归并排序和快速排序:浅谈归并排序与快速排序,但其中的实现都是基于递归的。本文将重新温故这两种算法并给出基于迭代的实现。 目录 1. 归并排序1.1 基于递归1.2 基于迭代 2. 快速排序2.1 基于递归2.2 基于迭代 1. 归并排序 1.1 基…...

XCTF-web-easyupload
试了试php,php7,pht,phtml等,都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接,得到flag...

C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...
在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...

学校招生小程序源码介绍
基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...

linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...

Nuxt.js 中的路由配置详解
Nuxt.js 通过其内置的路由系统简化了应用的路由配置,使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

初探Service服务发现机制
1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能:服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源…...