3DMax使用 MCG实现简单克隆修改器

news2024/11/26 19:37:24

    

          

3DMax中的MCG工具集允许用户创建几种不同类型的插件。在这个例子中,我们正在创建一个简单的克隆修改器。

将修改器添加到对象时,将使用“数量”整数值克隆网格n次,并使用X、Y和Z中的“缩放”、“旋转”和“移动”微调器控制每个网格的偏移。

UI(用户界面)是在计算MCG图时自动生成的,但可以通过Max Script进行自定义。

使用MCG可以创建更复杂的工具,这是快速开发任何类型插件的好方法。

          

          

让我们更深入地了解一下这个图是如何工作的。

“计数”组包含两个控制克隆网格数量的节点。

工具输入:整数

创建一个微调器,用户可以输入克隆的数量。

包含浮点数组

此节点创建一个从0到1的浮点值数组。如果输入整数设置为5,它将创建一个看起来像0.0、0.25、0.5、0.75、1.0的数组。然后,可以使用此数组将克隆网格的位置相乘,以将其展开。    

          

          

“缩放”组只有用于调整克隆整体比例的输入。

工具输入:矢量

矢量输入在UI中创建了三个微调器来控制X、Y和Z。默认值设置为1,1,1,因为它是一个乘数。

          

          

旋转组控制克隆的整体旋转。

工具输入:矢量

创建三个微调器来控制网格的旋转输入,并输出Vector 3值。    

常数

常数值用于将矢量旋转从角度转换为弧度。您还可以使用Vector X、Y和Z节点将旋转分解为三个轴,然后使用Degrees to Radian节点,然后使用Vector节点将它们重新组合在一起。这需要比乘以0.0174444多得多的节点。

倍增向量

Multiply Vector节点取一个Vector 3值,并将其乘以一个Float,然后输出一个Vector 3。

Euler的四元数

将Euler角转换为四元数以构建矩阵。

          

          

“变换”组控制每个克隆网格的位置。

工具输入:矢量

在UI中创建三个微调器,用于输入每个轴上的位置偏移。

值数组    

使用计数整数输入创建值向量值数组。我们的想法是,在创建网格数组之前,先创建一个值数组。

矢量

此节点不需要作为乘法节点,因为它可以是乘法向量节点,但我将其包含在内以显示其他方法。此节点接受三个输入,X、Y和Z,并输出Vector 3值。

倍增

将输入向量数组与包含浮点数组中从0到1创建的数组相乘,并返回一个新的向量3值数组。

          

          

网格组是创建网格的位置。

修改器:网格    

从修改器堆栈返回网格。此时,这是一个单一的网格。

变换旋转缩放矩阵

根据缩放、旋转和平移值数组构建生成的变换矩阵数组。MCG中的节点被映射,这意味着如果其中一个输入是数组,它们会自动循环。返回一个Transform Matrix值数组。

变换网格

Transform Mesh节点有两个输入,传入网格和一个Transform Matrix。在这种情况下,只有一个网格传入,但有一个Transform Matrixs数组。节点再次被映射并遍历所有矩阵数组,并为每个矩阵构建一个网格。

连接所有网格

由于修改器不能返回多个网格,我们需要在返回最终结果之前将它们全部附加在一起。

输出:修改器

将最终网格输出到修改器堆栈。

          

          

高级克隆修改器。允许径向克隆。    

          

          

内置投影复合的高级克隆修改器,用于将对象放置在场景中对象的表面上。

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

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

相关文章

[Unity Demo]从零开始制作空洞骑士Hollow Knight第十七集:制作第二个BOSS燥郁的毛里克

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、制作游戏第二个BOSS燥郁的毛里克 1.导入素材和制作相关动画1.5处理玩家受到战吼相关行为逻辑处理2.制作相应的行为控制和生命系统管理3.制作战斗场景和战斗…

springboot-整合多数据源配置

简介 主要介绍两种整合方式,分别是 springboot+mybatis 使用分包方式整合,和 springboot+druid+mybatisplus 使用注解方式整合。 一、表结构 在本地新建两个数据库,名称分别为db1和db2,新建一张user表,表结构如下: SQL代码: CREATE TABLE `user` (`id` int(11) NOT …

LeetCode 热题100 之 回溯1

1.全排列 思路分析1(回溯):要生成一个不含重复数字的数组 nums 的所有可能全排列,我们可以使用回溯算法。这种算法通过递归的方法探索所有可能的排列组合,并在合适的时机进行回溯,确保不会遗漏任何排列。回…

笔记整理—linux驱动开发部分(4)驱动框架

内核中,针对每种驱动都设计了一套成熟的、标准的、典型的驱动框架,实现将相同部分实现,不同部分留出接口给工程师自行发挥。具有以下特点:①简单化;②标准化;③统一管控系统资源;④特定化接口函…

靠谷歌广告赚了100美刀,程序员可以照这个思路去干

复制网站盈利尝试:谷歌广告收入之路的挑战与反思 背景介绍 在互联网的浩瀚海洋中,网站复制现象屡见不鲜。近期,我尝试复制了一个名为网站B的核心代码,并成功发布了自己的网站。通过谷歌搜索引擎的优化(SEO&#xff0…

Windows 10/11 设置锁屏密码的方法以及设置PIN密码

Windows 10/11 设置锁屏密码的方法 一、打开设置: 按 Win I 快捷键打开“设置”。 二、进入账户设置: 在设置窗口中点击“账户”。 三、选择登录选项: 在左侧菜单中选择“登录选项”。 四、添加密码: …

Python并发编程库:Asyncio的异步编程实战

Python并发编程库:Asyncio的异步编程实战 在现代应用中,并发和高效的I/O处理是影响系统性能的关键因素之一。Python的asyncio库是专为异步编程设计的模块,提供了一种更加高效、易读的并发编程方式,适用于处理大量的I/O密集型任务…

当软件质量遇上计划性报废:测试行业该如何应对?

那天,我像往常一样开车在路上,车窗外的风景飞快掠过。就在这时,我在听的一档播客里,突然提到了一个让我不得不停下来思考的词——“计划性报废”。这个词让我愣了一下,伴随着车轮的转动,我的思绪也随之转了…

【Seed-Labs】SQL Injection Attack Lab

Overview SQL 注入是一种代码注入技术,利用的是网络应用程序与数据库服务器之间接口的漏洞。当用户输入的信息在发送到后端数据库服务器之前没有在网络应用程序中进行正确检查时,就会出现这种漏洞。 许多网络应用程序从用户那里获取输入,然…

linux笔记(DNS)

一、概念 DNS(Domain Name System)DNS 是一种分布式网络目录服务,主要用于将人类易于记忆的域名(如 www.example.com)转换为计算机可识别的 IP 地址(如 192.168.1.1)。它就像是互联网的电话簿&a…

【计网】实现reactor反应堆模型 --- 框架搭建

没有一颗星, 会因为追求梦想而受伤, 当你真心渴望某样东西时, 整个宇宙都会来帮忙。 --- 保罗・戈埃罗 《牧羊少年奇幻之旅》--- 实现Reactor反应堆模型 1 前言2 框架搭建3 准备工作4 Reactor类的设计5 Connection连接接口6 回调方法 1 …

minikube 的 Kubernetes 入门教程--(五)

本文记录 Minikube 在 Kubernetes 上安装 WordPress 和 MySQL。 这两个应用都使用 PersistentVolumes 和 PersistentVolumeClaims 保存数据。 在深入这些步骤之前,先分享来自kubernetes.io教程。 链接>>使用持久卷部署 WordPress 和 MySQL | Kubernetes 获…

算法详解——链表的归并排序非递归解法

算法详解——链表的归并排序非递归解法 本文使用倍增法加上归并排序操作实现了对链表的快速排序,比起一般的递归式归并排序要节省空间并且实现要简单的多,比起一般的迭代式归并排序实现也要简单。 1. 题目假设 给定链表的头结点 head ,请将其…

【网络-交换机】生成树协议、环路检测

路由优先级 路由优先级决定了在多种可达的路由类型中,哪种路由将被用来转发数据包。路由优先级值越低,对应路由的优先级越高,优先级值255表示对应的路由不可达。一般情况下,静态路由的优先级为1,OSPF路由优先级为110&a…

确定图像的熵和各向异性 Halcon entropy_gray 解析

1、图像的熵 1.1 介绍 图像熵(image entropy)是图像“繁忙”程度的估计值,它表示为图像灰度级集合的比特平均数,单位比特/像素,也描述了图像信源的平均信息量。熵指的是体系的混乱程度,对于图像而言&#…

数字后端零基础入门系列 | Innovus零基础LAB学习Day9

Module 16 Wire Editing 这个章节的学习目标是学习如何在innovus中手工画线,切断一根线,换孔,更改一条net shape的layer和width等等。这个技能是每个数字IC后端工程师必须具备的。因为项目后期都需要这些技能来修复DRC和做一些手工custom走线…

除草机器人算法以及技术详解!

算法详解 图像识别与目标检测算法 Yolo算法:这是目标检测领域的一种常用算法,通过卷积神经网络对输入图像进行处理,将图像划分为多个网格,每个网格生成预测框,并通过非极大值抑制(NMS)筛选出最…

ProCalun卡伦纯天然万用膏,全家的皮肤健康守护

受季节交替、生活环境变化、空气污染等方面因素的影响,加上作息不规律导致的免疫力降低,我们或多或少会出现一些如湿疹、痤疮、瘙痒之类的皮肤问题,且反复概率很高。很多人盲目用药,甚至诱发激素依赖性皮炎。所以近年来&#xff0…

Vue 自定义icon组件封装SVG图标

通过自定义子组件CustomIcon.vue使用SVG图标&#xff0c;相比iconfont下载文件、重新替换更节省时间。 子组件包括&#xff1a; 1. Icons.vue 存放所有SVG图标的path 2. CustomIcon.vue 通过icon的id索引对应的图标 使用的时候需要将 <Icons></Icons> 引到使用的…

wireshark工具使用

复制数据 1.右键展开整帧数据 2.复制“所有可见项目” mark标记数据 标记&#xff1a; 跳转&#xff1a; 保存成文件&#xff1a; 文件–>导出特定分组—>Marked packets only