Maya_to_Unity工作流程
***************************注意事项****************************
1、maya的place2Dtexture不起作用,只能使用pbs节点的uv调整(只能调整scale、offect),所以贴图的rotate只能使用uv工具进行调整:
2、Unity项目第一步将色彩空间设置为liner:
3、灯光材质与area光源优劣区别:
①下图所示只有灯光材质可以将场景照亮,但是计算速度较慢(但灯光材质可以加上posteffect可以实现bloom效果!)
②area光源一般模拟自然天光源来使用(一般情况室内,只有环境球不足以不足以照亮整个室内场景,所以要在每个窗户使用area模拟窗口的入射天光),此外area的计算速度快一点?
****************************Maya_to_Unity流程****************************
1、maya场景设置
①maya的单位为厘米、unity为米(每个单元格),所以可以在maya中进行匹配缩放,再导入unity中(unity中scale比较慢)
②maya的pbs材质的贴图一定要使用非中文路径(所以工程文件应该也是非中文路径)
③可以借助unityToMaya的接口工具进行联动操作
2、maya模型调整:
①尽量合并材质球,减少drawCall数量
②不要出现长三角面,不利于uinty优化
③贴图的选择不要使用placeTexture2D旋转(对于PBS材质无效,maya的PBS材质不识别贴图的placeTexture2D信息),而是要使用UV工具进行旋转。
⑤UV工具可以使用:automatic、best等投射方式(便捷快速)
⑥玻璃材质标注为glass前缀(目前无法使用mel使用transparent模式切换),进行后期手工处理
3、将材质转换为PBS材质:
①使用以下mel进行转换:
string $a[] = `ls -sl`;
//if( $ssel[0]=="") return;
string $ss;
for($ss in $a)
{
shadingNode -asShader StingrayPBS -name ("StingrayPBS"+$ss);
sets -renderable true -noSurfaceShader true -empty -name ("StingrayPBS"+$ss+"SG");
setAttr ("StingrayPBS"+$ss+".initgraph") true;
connectAttr -f ("StingrayPBS"+$ss+".outColor") ("StingrayPBS"+$ss+"SG"+".surfaceShader");
setAttr ("StingrayPBS"+$ss+".use_normal_map") 1;
string $incomeNode1[]=` listConnections -d off -s on $ss`;
print $incomeNode1;
if($incomeNode1[0]!="")
{
//打开use_color_map贴图
setAttr ("StingrayPBS"+$ss+".use_color_map") 1;
//取消链接;
disconnectAttr ($incomeNode1[0]+".outColor") ($ss+".color");
// connectAttr -f ($incomeNode1[0]+".outColor") blinn1.color;
//建立链接
//setAttr ("StingrayPBS"+$ss+".use_color_map") 1;
connectAttr -f ($incomeNode1[0]+".outColor") ("StingrayPBS"+$ss+".TEX_color_map");
//设置坐标
string $file[]=` listConnections -d off -s on ("StingrayPBS"+$ss+".TEX_color_map")`;
string $uv[]=` listConnections -d off -s on ($file[0]+".uvCoord")`;
float $repeatU = `getAttr ($uv[0]+".repeatU")`;
float $repeatV= `getAttr ($uv[0]+".repeatV")`;
float $offsetU= `getAttr ($uv[0]+".offsetU")`;
float $offsetV=`getAttr ($uv[0]+".offsetV")`;
setAttr ("StingrayPBS"+$ss+".uv_offsetX") $offsetU;
setAttr ("StingrayPBS"+$ss+".uv_offsetY") $offsetV;
setAttr ("StingrayPBS"+$ss+".uv_scaleX") $repeatU;
setAttr ("StingrayPBS"+$ss+".uv_scaleY") $repeatV;
}
else
{
vector $color=` getAttr ($ss+".color") ` ;
float $x1=$color.x;
float $y1=$color.y;
float $z1=$color.z;
setAttr ("StingrayPBS"+$ss+".base_color") -type double3 $x1 $y1 $z1 ;
}
//根据材质球选择面,然后替换为新的材质球
hyperShade -objects $ss ; //根据材质选择面
sets -e -forceElement ("StingrayPBS"+$ss+"SG"); //将新的材质球赋予选择的面
}
②转换完以后进行材质的preset设置(但是此操作会打断colorTexture)
③使用以下脚本进行colorTexture的链接;并将placeTexture2D的信息转换到PBS的UVoffset、Uvscale上:
/********补充:防止设置preset后colormap勾选被去掉,UV被重置的问题*******/
string $a[] = `ls -sl`;
//if( $sssel[0]=="") return;
string $ss;
for($ss in $a)
{
string $file[]=` listConnections -d off -s on ($ss+".TEX_color_map")`;
if($file[0]!="")
{
//打开use_color_map贴图
setAttr ($ss+".use_color_map") 1;
//设置坐标
string $uv[]=` listConnections -d off -s on ($file[0]+".uvCoord")`;
float $repeatU = `getAttr ($uv[0]+".repeatU")`;
float $repeatV= `getAttr ($uv[0]+".repeatV")`;
float $offsetU= `getAttr ($uv[0]+".offsetU")`;
float $offsetV=`getAttr ($uv[0]+".offsetV")`;
setAttr ($ss+".uv_offsetX") $offsetU;
setAttr ($ss+".uv_offsetY") $offsetV;
setAttr ($ss+".uv_scaleX") $repeatU;
setAttr ($ss+".uv_scaleY") $repeatV;
}
}
5、场景中添加其他物体:
①添加灯光:maya中可以添加spot、point灯光(一般用作人工光,如灯具):
②可以添加背景,使用png贴图(边缘进行虚化)
6、导出fbx(导出fbx到贴图所在路径比较好)
①将glass的PBS材质手工设置为transparent模式
②导出之前注意maya(厘米)与unity(米)的空间单位(如有缩放,尽量在maya中进行,unity缩放比较慢)
7、Unity导入
①先导入贴图
②将fbx导入到贴图的目录
③一定要勾选产生光子图UV,否则后期烘焙贴图会出错!(材质贴图是UV0)
⑤如果想在Unity中对物体的材质进行调整,要将材质进行extract:
8、对Unity导入模型进行修正:
①透明材质,要使用alpha通道进行透明度的调整:
②玻璃要做成有厚度的,否则单面只有一个面可见
9、Unity灯光技巧:
①首先使用一盏directlight作为日光,自然光只让他来产生阴影,此灯只是产生阴影而已
②环境球的曝光度,对场景间接光的提升不是很明显,对反射环境图的亮度有有作用:
③如果不想在增加灯光数量、亮度的情况下提升间接光的亮度,可以使用下面的参数,非常好!
⑤室内场景的户外天光,使用area放置在玻璃上进行模拟(去掉阴影投射)
⑥室内灯:
室内人工光灯(灯泡,灯具,小范围的照明):使用spot、point灯,但是大面的柔和室内光不建议使用
室内大面的照明使用area(数量不能多,面积不要太大)
室内的灯带使用发光材质制作(既要照明,又要看到灯光本体,就要使用发光材质)
10、灯光探头、反射探头
①灯光探头,在需要有动态物体活动的区域,且需要表现细腻的光影空间时使用,可以在动态物体活动区域密集的阵列式排布(简单点)
②反射探针,可以每个空间一个(把墙体排除),或在需要反射实际物体的空间中进行进行设置
11、场景光子图初步计算:
可以使用substractive(直接光、间接光都烘焙)、Baked indirect(只烘焙间接光)
12、最终烘焙使用以下参数:
AO可以烘焙,也可以使用posteffect进行后期处理
13、后期可以是posteffct进行处理:
Maya_to_Unity工作流程相关推荐
- GPU—加速数据科学工作流程
GPU-加速数据科学工作流程 GPU-ACCELERATE YOUR DATA SCIENCE WORKFLOWS 传统上,数据科学工作流程是缓慢而繁琐的,依赖于cpu来加载.过滤和操作数据,训练和部 ...
- python爬虫之Scrapy框架的post请求和核心组件的工作 流程
python爬虫之Scrapy框架的post请求和核心组件的工作 流程 一 Scrapy的post请求的实现 在爬虫文件中的爬虫类继承了Spider父类中的start_urls,该方法就可以对star ...
- WifiP2pSettings工作流程
本文为<深入理解Android Wi-Fi.NFC和GPS卷>读书笔记,Android源码为Android 5.1 Android平台中,P2P操作用户只需执行如下三个步骤: 1)进入Wi ...
- Blender+SP+UE5游戏艺术工作流程学习
Blender到虚幻引擎5 Blender游戏艺术 Blender for Game Art 你会学到: 如何在Blender中创建三维模型 UV如何展开和布局 如何在Substance Painte ...
- Revit: Twinmotion工作流程学习
Revit: Twinmotion Workflow MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz,2 Ch 技能等级:中级|语言:英语+中英文字幕(根据原英文字幕机译 ...
- iOS应用模块化的思考及落地方案(一)模块的划分及模块化工作流程
1.0 什么是模块化 很多关于重构及设计模式的介绍中,经常提到的几个词语是复用及解耦. 模块化之所以被提出,也更多是为了解决这几个问题. 复用可以减少重复造轮子的情况,很容易理解的是,我们经常使用的g ...
- travis ci_如何使用Travis CI和GitHub进行Web开发工作流程
travis ci by Vijayabharathi Balasubramanian 通过Vijayabharathi Balasubramanian 如何使用Travis CI和GitHub进行W ...
- Nginx源码分析:master/worker工作流程概述
nginx源码分析 nginx-1.11.1 参考书籍<深入理解nginx模块开发与架构解析> Nginx的master与worker工作模式 在生成环境中的Nginx启动模式基本都是以m ...
- Scrapy框架的概念、作用和工作流程
1. scrapy的概念 Scrapy是一个Python编写的开源网络爬虫框架.它是一个被设计用于爬取网络数据.提取结构性数据的框架. Scrapy是一个为了爬取网站数据,提取结构性数 ...
最新文章
- 数据结构(5)之单链表的操作(补充)
- python待遇如何-Python薪资待遇到底是多少?老男孩python学习
- Centos5.5上vsftpd安装使用
- java面试题28 牛客 下面有关java classloader说法错误的是?
- DOS中切换盘符(直接CD不行)
- 2.6 相对和绝对路径 2.7 cd命令 2.8 创建和删除目录mkdir/rmdir 2.9 rm命令
- 精通JavaScript系列目录
- java 港澳台手机号码正则表达式
- 电子设计教程42:限流软启动电路
- 流量卡之家:拥有边缘计算的物联网才是真正的物联网
- oracle 加载dbf文件路径,Oracle 导入DBF故障存储文件
- 快递取件码生成软件_一种快递柜取件码生成装置及其使用方法与流程
- 【AD-NeRF】音频驱动人脸NeRF
- 全网唯一OpenCyphal/UAVCAN教程(10)canfd协议详解
- unity 2d摄像机类型_Unity法线水,顺便利用CommandBuffer实现廉价的深度和截屏
- win10 ltsc安装linux,Windows 10 LTSC / Server 2016 (Server 2019 ?) 安装WSL(Linux子系统)
- 【C语言】初识C语言——开端
- AjaxUpLoad.js文件上传插件的使用
- 在OpenBSD上架设安全的小型网络
- 数据库的发展三阶段以及所了解到的的SQL语言
热门文章
- 腾讯笔试——安排机器 【 题目描述】小 Q 的公司最近接到 m 个任务, 第 i 个任务需要 xi 的时间去完成, 难度等级为 yi。 小 Q 拥有 n 台机器, 每台机器最长工作时间 zi, 机器等
- ADS3 Inverted File Index
- python把一个文件夹内子文件夹下所有文件复制到指定目录下
- 在类中找不到 main 方法, 请将 main 方法定义为: public static void main(String[] args)
- 【RCV】接收单号丢失处理
- 13万人12306信息泄露 小伙挨个发邮件通知
- zotero+坚果云实现多pc端及iPad同步管理查看文献【保姆教程】
- inter服务器修改ip地址,如何更改您的IP地址(公共IP和本地IP)
- mqtt服务器(mosquitto)测试环境的搭建
- github加速插件(google浏览器)