Hair|Fur —— 介绍

Houdini毛发-制作流程 目录   快速生成工具 标准工作流程 特殊类型的创建 快速生成工具 在Houdini的Hair Utils工具架上的Add Fur可以快速的创建一套毛发系统,依次包括Guide Groom,Guide Deform, Hair Generate。 Groom生成导线,Deform用来继承皮肤的变形和动画,最后Hair生成可渲染的毛发。 这是一个非常简单和快速的方法,可谓一键生成。但... 阅读详情

Hair Utils工具架,可快速设置毛发,及动画和解算毛发;

Guide Process工具架,用于style设计毛发,可通过绘制皮肤属性来影响引导毛发的位置和方向;

创建毛发Fur,起始于一几何体,然后使用Add Fur(Hair Utils工具架);

  • 默认,会创建两个节点Guide Groom、Hair Generate;

  • Guide Groom、Hair Generate 具有完全相同的设置和工作流,Hair Generate输出较少;使用起来会非常简单,因为每件事都会在具有曲线的SOP内完成;
  • Guide Process 节点可对许多不同操作分层,在皮肤上使用ramp或paint属性,可非常任意的控制沿着曲线的操作;可快速轻松地创建看起来很自然的毛发;

        有一个改进是,控制引导线和绘制皮肤属性将不在是分离的;组成Groom的每个组件都显示在单个网络内,每个节点至少三个输入和三个输出;非常清晰且易于阅读,不需要引用其他节点;另一个优势是,操作可按任何顺序放置,有完全的控制和灵活性;

注意,

Mantra使用SOP network去进行Grooming,在渲染时对SOP network进行Cooking;

Grooming应该总是在静态几何体上进行,而不是在动画几何体;

3DMAX建模教程:给模型设计逼真的发型! 要在头顶创建头发,请使用样条线框架;此方法有助同时设计大量头发,尤其是长发。 当然在学习学习3Dmax,zbrush maya建模,次世代美术的道路上肯定会困难,没有好的学习资料,怎么去学习呢? 如果你感觉学不会?莫慌,小编推荐大家加入群, 群号684663881里有志同道合的小伙伴, 互帮互助,还可以拿到许多视频教程! 用于长出满头头发的样条线框架 样条线框架方法与络腮胡和唇胡所采... 阅读详情

相关推荐

毛发渲染总结

毛发的渲染技法有很多。我们主要讨论模型和着色的方案。 一.毛发模型方案 1.1 Shell Based Fur 这类毛发可以参考GFur Pro插件。 https://www.unrealengine.com/marketplace/zh-CN/product/gfur-pro 这类毛发技术使用的是多层渲染。如下图所示,只要这些面片距离足够的近,我们就有一种是单根头发的错觉。 这类技术的问题是如果我们需要长的毛发,那么我们就需要非常多的截面,性能受到的影响就越大。 当然我们并不是一个面片一个面片进行绘制

papalqi 2286

ubuntu 串口调试工具推荐_串口调试能有多便捷?——FUR组件的应用

就是最近忙着做项目,忽然发现有3个项目都需要用到串口调试,这让我感觉到有一个方便快捷的调试工具是非常重要的。虽然类似的功能有很多现成的、功能强大的开源协议,比如MODBUS。但是我看过之后,总觉得不够简单。能理解那些功能概念的应该都不算是小白了,而我的目标是做出一个小白都会用的简单串口调试协议。于是在多个项目的压力下,我推出了FUR调试系统!FUR全名Fast UART write/read Re...

weixin_39858245的博客 507

【UE5】Groom毛发系统进阶指南——从3DsMax到虚幻引擎的完整毛发制作流程

本文详细解析了UE5中Groom毛发系统的完整制作流程,从3DsMax的基础毛发建模到虚幻引擎的导入、物理模拟及材质渲染。重点介绍了Alembic导入参数设置、物理模拟调参技巧以及材质渲染的进阶玩法,帮助开发者高效实现逼真毛发效果。通过实战案例和优化建议,提升游戏角色毛发的真实感和性能表现。

onion的博客 590

3Dmax 头发制作

要在头顶创建头发,请使用样条线框架;此方法有助同时设计大量头发,尤其是长发。 用于长出满头头发的样条线框架 样条线框架方法与络腮胡和唇胡所采用的多边形方法稍有不同: 将从样条线(而不是从头部曲面)长出头发。没有任何毛发导向:样条线自身即为导向。当从样条线长出毛发时,其默认值不同于从多边形长出头发时的默认值。 设置场景: 在上一节课的基础上继续学习,

说到做到_我的忍道 1万+

1014. 福尔摩斯的约会 (20)-PAT乙级真题

1014. 福尔摩斯的约会 (20) 大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧!3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm”。大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的时间“星期四 14:04”,因为前面两字符串中第1对相同的大写英文字母(大小写有区分)是第4个字母’D’,代表星期四;第2对相同的字符是’

柳婼 の blog 2644

PostgreSQL+PostGIS空间数据入库实战:从矢量栅格到GeoServer发布全流程

本文详细介绍了将矢量与栅格空间数据导入PostgreSQL并利用PostGIS扩展进行管理的完整流程。内容涵盖环境搭建、使用shp2pgsql和raster2pgsql工具进行数据入库、基础空间查询验证,以及最终通过GeoServer发布为地图服务的实战步骤,为构建空间数据平台提供清晰指引。

weixin_29268267的博客 289

2d头发_[译] 程序化生成头发纹理工具:Hair&Fur

引言: 我是一名泛开发者(Generalist developer ),大约在2年前开始着手研究3D和游戏开发相关的主题。我刚开始主要是专注于学习虚幻4和摄影测量(Photogrammetry)技术,现在在研究SD。同时,我也在研究角色和生物体的建模,对Hair & Fur生成也很感兴趣。原文作者:Olivier Lau 开发者,TA译者:如果大家在做毛发纹理生成工具设计,可以了解一下O...

weixin_31618799的博客 1275

AD9361 RSSI配置实战:从寄存器到精准功率测量的避坑指南

本文详细解析了AD9361芯片的RSSI配置实战,从寄存器设置到精准功率测量的全流程避坑指南。通过优化模式选择、测量持续时间及高级参数配置,实现高精度信号强度测量,并分享实际项目中的校准流程与性能优化技巧,帮助工程师提升射频接收链路的测量精度。

weixin_38166557的博客 442

制作elasticsearch 镜像_3DsMax—油漆刷制作

01在顶视图中创建一条线,如图所示。02点击【镜像】工具,镜像轴选【X】,偏移根据自己的视图设置值,复制一条线,如图所示。03进入修改面板,点击附加,将2条线附加在一起,如图所示。04选择【顶点】级别,选择视图中2条线接口的顶点,焊接在一起,如图所示。05添加【挤出】修改器,设置参数【数量】为10,如图所示。06在前视图中,创建一个长方体,长和宽格刷柄的长度设置,高度和上一步...

weixin_39611382的博客 170

GD32F303定时器配置:实现两路互补PWM输出与相位控制

本文详细解析了基于GD32F303定时器实现两路互补PWM输出与精确相位控制的方法。通过配置TIMER2的中间对齐模式,结合REMAP功能解决引脚复用问题,从硬件层面稳定生成相位差180度的互补PWM信号,适用于电机驱动、开关电源等对时序要求苛刻的应用场景。

weixin_29182481的博客 304

2026.3.21:Ubuntu26.04 apt换国内源 清华源 阿里源 中科大源 163源

作为 LTS 版本,它会有 5 年的常规维护和安全更新。如果订阅 Ubuntu Pro,还能享受额外7年的支持。也就是说, Ubuntu Pro将享有长达 12 年的系统更新保障!接下来,我们将重点介绍 Ubuntu 24.04 LTS 中那些值得关注的新特性,以方便你决定是否进行升级。Ubuntu 24.04 LTS,代号 「Noble Numbat」,即将与我们见面!Canonical 已经宣布, Ubuntu 24.04 LTS。源文件地址 已经更换为。

拥抱具身智能,昇腾Ascend C 9071

3Dmax制作页游简单草地

1、新建片面 2、加入毛发命令-Hair and Fur (WSM) 3、调节数量等参数 4、调节材质参数 1顶部颜色材质 2尾部颜色材质 3枯萎颜色 4枯萎占的比例   5、运动面板     6、加入目标聚光灯 7、给草加入投影   双击左边的会加入到右边然后点OK   8、适当加几个辅助光

VinGe's Blog 2447

Arduino与Proteus仿真实例-LCD2004-I2C(PCF8574)驱动仿真

LCD2004-I2C(PCF8574)驱动仿真 PCF8574/74A 通过两线双向 I2C 总线(串行时钟 (SCL)、串行数据 (SDA))提供通用远程 I/O 扩展。 LCD2004,即2004字符型液晶显示器,是一种点阵模块,用于显示字母、数字、字符等。 它由 5x8 个点阵位置组成; 每个位置可以显示一个字符。 两个字符之间有一个点间距,行之间有一个空格,从而将字符和行分开。 模型 2004 表示它显示 4 行,每行 20 个字符。 在前面的实例中对PCF8574和LCD2004的已经做了详细介

视觉与物联智能 1165

Hair|Fur —— Fur

生成毛发;

NapoleonCoder的博客 361

基于唤醒音频的目标说话人语音识别系统设计报告

摘要 本报告设计了一套基于唤醒音频的目标说话人语音识别系统,通过五级流水线架构(唤醒检测→声纹注册→语音分离→目标ASR→拒识决策)解决复杂声学场景下的目标说话人识别问题。系统整合ECAPA-TDNN声纹模型、Conv-TasNet语音分离网络和Whisper ASR引擎,在L20 GPU上实现高效端到端推理,支持-5dB~5dB SNR范围和0~100%重叠率的双人语音场景处理。系统在目标说话人CER、拒识率和推理效率等关键指标上均达到设计目标,为智能语音交互提供了有效的身份感知解决方案。

huanghm88的专栏 73

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Hair|Fur —— Guide Groom

Guide Groom及Radial Menus;

NapoleonCoder的博客 1067

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Hair|Fur —— Geometry Nodes

毛发geometry节点;

NapoleonCoder的博客 848

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Hair|Fur —— 案例

毛发案例;

NapoleonCoder的博客 730

Hair|Fur —— 工具架

毛发工具架介绍;

NapoleonCoder的博客 560

Hair|Fur —— Object Nodes

毛发object节点;

NapoleonCoder的博客 460

3DsMax与UE5 Groom实时逼真头发制作全流程解析

在实时渲染领域,毛发表现一直是提升角色真实感的关键技术。其核心原理是基于引导线系统,通过少量曲线控制大量发丝的形态与动态,在保证视觉效果的同时兼顾了实时性能。这项技术的核心价值在于,它首次在实时引擎中实现了堪比离线渲染的毛发质感,极大地推动了游戏、虚拟制作和数字人等领域的发展。具体到应用层面,实时毛发技术已广泛应用于3A游戏主角、高保真虚拟偶像以及影视级实时动画中。本文聚焦于3DsMax与UE5 Groom的实战工作流,详细拆解了从引导线制作、资产导入到材质调节的全过程,并深入探讨了Groom系统的性能优化

weixin_34406086的博客 422

学习renderman中

学习renderman中,为了渲染毛发,学习maya的 renderman中。这一星期的目标是把maya自己的fur和 hair搞明白。2011年好好学习,天天向上。如果这一年没有什么进步,2012考虑转行。 转载于:https://www.cnblogs.com/ladaojeifang/archive/2011/01/10/1932390.html...

weixin_30348519的博客 91

max模型怎么导入ue4_从HOUDINI导入UE4 Groom Hair“毛手”毛脚的研究笔记

使用软件: Houdini 18.5UE4版本: 4.26所需技能:Houdini基础操作,UE4基础操作前言:自己随便摸索瞎玩玩,做笔记与分享用。不保证全部正确,如有问题欢迎留言一起讨论。有可能出后续,有可能不会(咕咕咕)。为方便用过Houdini却没植过毛的小伙伴食用,前半部分会简易的手把手做一点植毛。后半部分篇主要为Houdini导入UE4时,坐标轴对齐,粗细调节,使导入的毛发尽可能和ho...

weixin_42298622的博客 1831
上一篇: Linux —— 进程信号
下一篇: Hair|Fur —— 工具架
挨代码
博客等级 码龄5年 1696粉丝 384原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值