***************************注意事项****************************

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工作流程相关推荐

  1. GPU—加速数据科学工作流程

    GPU-加速数据科学工作流程 GPU-ACCELERATE YOUR DATA SCIENCE WORKFLOWS 传统上,数据科学工作流程是缓慢而繁琐的,依赖于cpu来加载.过滤和操作数据,训练和部 ...

  2. python爬虫之Scrapy框架的post请求和核心组件的工作 流程

    python爬虫之Scrapy框架的post请求和核心组件的工作 流程 一 Scrapy的post请求的实现 在爬虫文件中的爬虫类继承了Spider父类中的start_urls,该方法就可以对star ...

  3. WifiP2pSettings工作流程

    本文为<深入理解Android Wi-Fi.NFC和GPS卷>读书笔记,Android源码为Android 5.1 Android平台中,P2P操作用户只需执行如下三个步骤: 1)进入Wi ...

  4. Blender+SP+UE5游戏艺术工作流程学习

    Blender到虚幻引擎5 Blender游戏艺术 Blender for Game Art 你会学到: 如何在Blender中创建三维模型 UV如何展开和布局 如何在Substance Painte ...

  5. Revit: Twinmotion工作流程学习

    Revit: Twinmotion Workflow MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz,2 Ch 技能等级:中级|语言:英语+中英文字幕(根据原英文字幕机译 ...

  6. iOS应用模块化的思考及落地方案(一)模块的划分及模块化工作流程

    1.0 什么是模块化 很多关于重构及设计模式的介绍中,经常提到的几个词语是复用及解耦. 模块化之所以被提出,也更多是为了解决这几个问题. 复用可以减少重复造轮子的情况,很容易理解的是,我们经常使用的g ...

  7. travis ci_如何使用Travis CI和GitHub进行Web开发工作流程

    travis ci by Vijayabharathi Balasubramanian 通过Vijayabharathi Balasubramanian 如何使用Travis CI和GitHub进行W ...

  8. Nginx源码分析:master/worker工作流程概述

    nginx源码分析 nginx-1.11.1 参考书籍<深入理解nginx模块开发与架构解析> Nginx的master与worker工作模式 在生成环境中的Nginx启动模式基本都是以m ...

  9. Scrapy框架的概念、作用和工作流程

    1. scrapy的概念         Scrapy是一个Python编写的开源网络爬虫框架.它是一个被设计用于爬取网络数据.提取结构性数据的框架. Scrapy是一个为了爬取网站数据,提取结构性数 ...

最新文章

  1. 数据结构(5)之单链表的操作(补充)
  2. python待遇如何-Python薪资待遇到底是多少?老男孩python学习
  3. Centos5.5上vsftpd安装使用
  4. java面试题28 牛客 下面有关java classloader说法错误的是?
  5. DOS中切换盘符(直接CD不行)
  6. 2.6 相对和绝对路径 2.7 cd命令 2.8 创建和删除目录mkdir/rmdir 2.9 rm命令
  7. 精通JavaScript系列目录
  8. java 港澳台手机号码正则表达式
  9. 电子设计教程42:限流软启动电路
  10. 流量卡之家:拥有边缘计算的物联网才是真正的物联网
  11. oracle 加载dbf文件路径,Oracle 导入DBF故障存储文件
  12. 快递取件码生成软件_一种快递柜取件码生成装置及其使用方法与流程
  13. 【AD-NeRF】音频驱动人脸NeRF
  14. 全网唯一OpenCyphal/UAVCAN教程(10)canfd协议详解
  15. unity 2d摄像机类型_Unity法线水,顺便利用CommandBuffer实现廉价的深度和截屏
  16. win10 ltsc安装linux,Windows 10 LTSC / Server 2016 (Server 2019 ?) 安装WSL(Linux子系统)
  17. 【C语言】初识C语言——开端
  18. AjaxUpLoad.js文件上传插件的使用
  19. 在OpenBSD上架设安全的小型网络
  20. 数据库的发展三阶段以及所了解到的的SQL语言

热门文章

  1. 腾讯笔试——安排机器 【 题目描述】小 Q 的公司最近接到 m 个任务, 第 i 个任务需要 xi 的时间去完成, 难度等级为 yi。 小 Q 拥有 n 台机器, 每台机器最长工作时间 zi, 机器等
  2. ADS3 Inverted File Index
  3. python把一个文件夹内子文件夹下所有文件复制到指定目录下
  4. 在类中找不到 main 方法, 请将 main 方法定义为: public static void main(String[] args)
  5. 【RCV】接收单号丢失处理
  6. 13万人12306信息泄露 小伙挨个发邮件通知
  7. zotero+坚果云实现多pc端及iPad同步管理查看文献【保姆教程】
  8. inter服务器修改ip地址,如何更改您的IP地址(公共IP和本地IP)
  9. mqtt服务器(mosquitto)测试环境的搭建
  10. github加速插件(google浏览器)