maya灯光分类都有哪些,如何打光
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了maya灯光分类都有哪些,如何打光相关的知识,希望对你有一定的参考价值。
1、Point light(泛光灯光源)
又叫点光源,是被使用的最普通的光源。光从一个点光源射向四面八方,所以光线是不平行的,光线相汇点是在灯所在的地方。它模拟一个挂在空间里的无遮蔽的电灯泡。点光源可以投射阴影。点光源投射阴影的形状如下,注意它的形状是向外发散的。
2、Directional Light(平行光源)
远光灯是用来模拟一个非常明亮,非常遥远的光源。所有的光线都是平行的。虽然太阳是一个点光源。可是因为它离我们的距离是如此的遥远,以至于太阳光到达地球后实际上是没有角度的,所以我们用平行光源来模拟太阳光。要注意的是,平行光没有衰减属性。平行光可以投射阴影。平行光投射的阴影如图所示,因为平行光的光线都是平行的,所以它投射的阴影也是平行的,这是它的一大特征
3、Spot Light(聚光灯光源)
聚光灯是具有方向性的灯,所有的光线从一个点并以你定义的圆锥形状向外扩散。可通过使用Cone Angle(锥角)滑块的方法,从顶点开始以度为单位来度量锥体。聚光灯是所有灯光中参数最复杂的灯光。通过调节它的参数可以产生很多类型的照明效果。
Cone Angle 控制光束扩散的程度,通常采用缺省值40度就够了. 不要把Cone Angle设置太大,否则阴影会出现问题.
4、Area Light (面积光源)
区域光是Maya灯光中比较特殊的一种类型。和其它的灯光不同的是,区域光是一种二维的面积光源。
它的亮度不仅和强度相关,还和它的面积大小直接相关。通过Maya的变换工具可以改变它的大小和方向。
区域光可以模拟诸如窗户射入的光线等情况。而且区域光的计算是以物理为基础的。它没有设置衰减选项的必要。
区域光也可以投射阴影。但是如果使用Depth Map Shadow算法来计算区域光的阴影,它的阴影和其它的灯光是没有什么两样。要想得到真实的区域光阴影,必须使用光影追踪算法。
5、Ambient Light(环境光)
顾名思义,环境光能够从各个方向军均匀的照射场景中的所有物体。环境光具有两种相矛盾的属性。它的一部分光是向各个方向照亮物体的(象一个无穷大的球的内表面发出的光),而另一部分光是从光源的位置发出的(象一个点光源)。通过在属性编辑器中设置环境光的Ambient Shade值的大小将这两个相反的参数结合起来。如果Ambient Shade的值大小为1时,环境光就完全成了一个点光源。用一个环境光可以模仿方向光的联合(如太阳和灯),将点光源和漫射光结合起来.环境光也可以投射阴影,但只有光影追踪算法来计算阴影供你使用。
6、Volume Light(体积光源)
用来模拟有体积感的光源,例如:激光。这是一种Maya5.0新加入的灯光类型。
参考技术A 灯光Ambient Light环境光最大的特点是其具有“双重性格”,具体体现在环境光的“Ambient Shade”参数的运用上,通过调节此参数(后文参数解析部分会系统论述)可以使环境光表现出有向性和无向性。环境光在具体使用中最大的作用是模拟大气中的漫反射、对整个场景进行均匀照明。一般情况下,环境光不会被考虑作为场景照明的主光源,环境光一般会和其他光源联合作用(例如环境光有时候可以和平行光共同模拟阳光)
Directional Light
方向光仅在一个方向平均地发射灯光,它的光线是互相平行的,使用方向光可以模仿一个非常远的点光源,例如从地球上看太阳,太阳就相当于一个点光源,所以方向光常用来模拟阳光的照明效果。在一个场景中,同一盏方向光投射的所有阴影都在同一方向上,而且都是该物体的正交投影,所以我们不需要考虑Directional Light和被照射物体的相对位置,唯一要考虑的就是方向光的方向。由于方向光对局部区域的定位或限制没有点光源或聚光灯那样容易,因此它早室内场景的灯光设置中经常做为配合或辅助光源来使用,而不作为主要光源。在大的室外场景中,可以从若干个不同的角度发出多个方向光作为整体的辅助光源,虽然每盏方向光都可能非常微弱,但是他们用此种方法联合作用的时候可以模拟出大气光的效果。代替空气中的太阳光
Point Light
点光源从光源位置处向各个方向平均招生,可以用来模拟灯泡和蜡烛。点光源的投影有透视效果,与Ambient Light和Directional Light不同的是,Point Light有“Decay Rate”,即可以调节灯光的衰减率(Spot Light和Area Light也可以调节衰减)。点光源在很多时候适合用来作辅助光。在许多翻译过来的MAYA资料中可以发现,很多国外作者把点光源的阴影称为“发散阴影”,这正是因为点光源有强烈的透视效果,个人人为,此特性可用于模拟室内场景中透过窗户射向室内的夕阳光
Area Light
我们生活的环境是一个三维世界,在我们生存的空间中,任何一个东西都有自己相对的三维值,也就是说,在我们已知空间中,大多数物质都是三维的。毫无疑问,在现实生活中的光源都是三维的。然而在MAYA软件包里,我们并找不到一个真正意义上的“体积光源”,最接近“三维光源”的就是我们现在要介绍的这个二维光源--面光源,也叫区域光(表面上好象聚光灯也是一个面光源,而实际上MAYA软件定义的聚光灯是一个限定了照射范围的点光源)。正因为面光源与其他光源有着这种本质上的区别,所以面光源的光线质量也与其他光源的光线质量有着本质上的区别。面光源发出的光线质量以及所投射的阴影质量都是MAYA4.0所有默认灯光中最好、最接近真实效果的,但是在做动画项目的时候,面光源存在一个致命缺陷--耗费相对较长的渲染时间。正因为这样,所以面光源一般在做静祯的时候被广泛采用,而做动画片的时候则用聚光灯取代面光源。由于考虑到我们的生产进度,所以在生产过程中尽量不要使用面光源,争取通过细调参数来实现其他灯光对面光源的模拟
Color:
MAYA中灯光的默认颜色都是白色,通过点击颜色选项旁的白色方块,系统会弹出一个选色器,通过选色器可以改变灯光的颜色。在颜色按钮的末端有一个黑白的棋盘格按钮,通过点击这个按钮可以为灯光的颜色加载一张帖图,可以运用这种方式来模拟幻灯机的光线投影。一般情况下为场景打光有一个默认的规则,即不使用纯白色的光,其实在现实的生活中,基本上也不会出现纯白色的光线,所以,当我们每建立一盏新的灯光,最好先将灯光的颜色根据场景的需要设定一种颜色,尽量避免出现纯白色的灯光。
Intensity:
通过调节此参数的大小可以改变灯光的强度,一般情况下,Intensity是和Decay(衰减)参数结合使用的,值得注意的是,在场景的整体照明中,调节灯光的颜色一般会改变灯光的强度,因为不同颜色有着不同的明度,自然地,在灯光照明中,明度大的颜色的照明强度也相对强一些。
Iluminates by Default:
默认情况下,此选项是被勾选的(一旁的小方块中划上了勾),这个选项其实是一个灯光照明开关的作用,当此选项划上勾的时候,灯光对场景内所有的物体都有照明作用,反之,灯光对场景内所有物体都不起照明作用。在进行比较大的场景的灯光设置的时候,一般会经常用到灯光链接,假如想让新建立的一盏灯光只对场景中的某一物体或少部分物体起照明作用的时候,有些组员的习惯是打开灯光关联编辑器,来将灯光和物体进行排除,对于大场景的灯光设置,这显然是一个笨方法,在此种情况下最有效率的排除法是将新建立的那盏灯光的“Illuminatess by Default”选项关掉,然后再同时选择灯光与需要被照明的物体,单击Rendering菜单下的Lighting/Shading子菜单中的Make Light Links命令即可。
Decay Rate:
这一参数是用来调节灯光的衰减率,它由一个下拉菜单构成,下拉菜单中有四个选项目:No Decay(无衰减)、Linear(线性衰减)、Quadratic(平方衰减)和Cubic(立方衰减),默认状况下,灯光的衰减率一般是“No Decay”。在现实生活中,光线的衰减一般呈平方衰减,而在MAYA中,用得比较多的衰减率是线性衰减。另外,要调节灯光的衰减方式还可以为灯光建立一条强度曲线,通过编辑曲线来实现灯光强度的可控性(详见灯光特效部分)。
Cone Angle:
此参数为聚光灯所独有,它用来调节聚光灯的照射角度,默认角度是40度,可调控的范围是:0.006~179.994(度)。
Penumbra Angle:
国内很多作者将这一参数翻译成“半影角”,这一参数控制的是聚光灯投射光线边缘的虚化。在缺省状态下,Penumbra Angle的值为0,此时聚光灯照射区域的边界是“黑白分明”(清晰)的,当Penumbra Angle的值趋向负无穷大时,聚光灯的照射边缘向内虚化,而Penuumbra Angle的值趋向正无穷大时,聚光灯的照射边缘向外虚化。然而Penumbra Angle的值不能真正在正负无穷大这个值域中任意取值,它的值域范围是-189.994到189.994之间。
Dropoff:
Dropoff的值域是0到正无穷大,当Dropoff的值为0时,聚光灯照射区域的光线分布是均匀的,当Dropoff的值趋向于正无穷大时,聚光灯照射区域的亮度由中心向四周递减,其递减的程度与Dropoff的值成正比。
默认情况下,Penumbra Angle和Dropoff的值都为0,当使用聚光灯模拟真实场景的时候,应该给这两项参数赋予非0的值
Shadow Color:
可以通过调节此参数来控制灯光投影的颜色,和大部分参数一样,在投影颜色参数栏后面也有一个棋盘格的贴图按钮,可以通过帖图来让阴影产生特殊效果。
Use Depth Map Shadows:
这项命令是与“Use Ray Trace Shadows”相对应的,Depth Map Shadows(深度帖图阴影)和Ray Trace Shadows(光影跟踪阴影)是两种不同的计算阴影的方式,如果要给灯光加上投射阴影功能,可以勾选其中一项,也只能勾选一项,两者不能同时选择。
Dmap Resolution:
调节这项参数可以理解为调节灯光阴影的渲染解析度,当Dmap Resolution的值设得很低的时候,阴影的边缘会呈现锯齿,而当此项数值设得过高的时候,则会增加渲染的时间。值得注意的是,IPR窗口的即时渲染功能不支持Dmap Resolution值的更新。很多时候我们需要柔和的阴影来体现灯光的柔和,这时可以适当地降低Dmap Resolution的值,这样既达到了我们需要的效果,又可以降低渲染的速度,注意,Dmap Resolution的值最好是2的倍数,为避免阴影周围出现锯齿,Dmap Resolution的值不应该调得过低。
Use Mid Dist Dmap:
有时候被照亮物体的表面有不规则的污点和条纹,这时候将灯光的Use Mid Dist Dmap命令打开,将有效去除这种不正常的阴影。在默认状态下,此参数是打开的。
Use Dmap Auto Fous:
有时候场景中的物体投射的阴影边缘会呈现出锯齿状,这时的一种解决方案是将产生投射阴影的灯光的Use Dmap Auto Fous参数打开,并将场景中不需要投射阴影的物体的Casts Shadows(在物体的Shape属性面板里的Render Stats命令栏下)参数关闭(这样也可以加速渲染),默认状态下,此项命令是打开的。
Dmap Filter Size:
此项参数的默认设置是1,可以通过调节此参数来调节阴影边缘的柔化程度,此项参数设置得越大,阴影的边缘越柔和…
Dmap Bias:
Dmap Bias又叫深度贴图偏心率,调节它可以使阴影和物体表面分离。调节此参数犹如给阴影一个遮挡蒙板,当数值调大的时候,灯光给物体投射的阴影就只剩一下部分,当此参数的数值调到1的时候,物体的阴影就完全消失了。
Fog Shadow Intensity:
在打开灯光雾的时候,场景中物体的阴影颜色会呈现不规则显示(颜色会变浅),会让物体的重量感打折扣……这时可以调节Fog Shadow Intensity参数来调节灯光雾中阴影的强度。
Fog Shadow Samples
雾阴影取样参数,默认值为20。当加了灯光雾后,可以调节此参数来控制物体阴影的颗粒状。
Disk Based Dmaps:
当多次渲染某一祯,而场景中的物体和灯光位置都没有变化,只是对灯光或物体的属性进行了调节的时候,这时深度贴图阴影并没有改变,所以可以重复使用,这时就可以从Disk Based Dmaps的下拉菜单中选择Reuse Existing Dmap(从新使用现有的深度贴图阴影)
当不是渲染单祯而是渲染动画的时候,场景中物体和灯光的位置没有变化,这时,深度贴图也没有改变,仍然可以重新被启用。这时可以从Disk Based Dmaps的下拉菜单中选择Reuse Existing Dmap,并且关闭Dmap Frame Ext开关。
当渲染的动画中,物体和灯光都发生了变化,但是要将此动画渲染若干遍,这时可以把深度贴图存在硬盘里,待多次渲染动画的时候重复使用。此时可以从Disk Based Dmaps的下拉菜单中选择Reuse Existing Dmap,并且打开Dmap Frame Ext开关。
如果在以前的硬盘中有保存的深度贴图,并且在渲染一祯或动画之前移动了灯光或物体,这时深度贴图发生了变化,我们不能再使用以前的深度贴图,此时可以在Disk Based Dmaps的下拉菜单中选择Overwrite Existing Dmap,这样每一次渲染的深度贴图都会覆盖原来在硬盘中保存的深度贴图。
以上几项可以有效节约渲染时间。
如果要渲染一祯或一个动画,但是硬盘里没有以前的保存的深度贴图,或者即使有也不想用,那么这时可以从Disk Based Dmaps下拉菜单中选择Off。
在默认状态下,Disk Based Dmaps指向0ff,这时MAYA没有设置深度贴图,也不会将深度贴图保存在硬盘里。
Use Only Single Dmap:
为了节约渲染速度,有时候一个点光源在某个具体的轴上不需要产生深度贴图,此时可关闭Use Only Single Dmap,同时关闭对应轴的Use Dmap属性(例如“Use X+ Dmap”)。
Use Ray Trace Shadows:
光影追踪(又叫光线追踪)阴影,光线追踪阴影是在光线追踪过程中产生的,在大部分情况下,光线追踪阴影能够提供非常好的效果,然而,用户必须对整个场景来计算光线跟踪阴影,这样将非常耗费时间。有些阴影效果(如透明物体所产生的阴影)深度贴图阴影是模拟不出来的,这时建议使用光线跟踪阴影。
Light Radius:
柔化阴影的边缘,使阴影的边缘不那么硬,但是会是阴影边缘呈现粗糙的颗粒状。
Shadow Rays:
使用Light Radius命令后,阴影边缘会呈现颗粒状,这时加大Shadow Rays的值,可以将阴影边缘的颗粒模糊化,这将使物体阴影看上去更真实。
Ray Depth Limit:
调节此参数可改变灯光光线被反射或折射的最大次数。此参数默认值是1。为提高渲染光线跟踪阴影的速度,当Light Radius的值为非零的时候,尽量将Shadow Rays和Ray Depth Limit的值设小,Ray Depth Limit的值一般情况下设为1。
(Ambient light
Ambient Shade:
Ambient Shade是环境光独有的参数,此参数的可控性也是环境光区别于其他灯光(如点光源)的根本所在。此参数可以体现Ambient Shade的方向性和无向性,在默认状态下,Ambient Shade的值是0.45,当其趋向于0时,环境光的性质就趋向于无向性,当其趋向于1时,环境光的性质就趋向于有向性,当等于1时,环境光可看作是一个点光源。在MAYA中,无向性的环境光效果可以简单、抽象地概括为:整个场景被包围在一个无限大的中空球体中间,灯光从这个球体的内表面发散出来,从各个方向照射场景内的物体。要很好的理解环境光的无向性,以便在实践中很好地对环境光进行调控,最好的捷径就是通过调节Ambient Shade参数来对简单场景中的物体进行各种取值的渲染测试,来对比渲染效果。
文本分类方法都有哪些
参考技术A 文本分类问题: 给定文档p(可能含有标题t),将文档分类为n个类别中的一个或多个
文本分类应用: 常见的有垃圾邮件识别,情感分析
文本分类方向: 主要有二分类,多分类,多标签分类
文本分类方法: 传统机器学习方法(贝叶斯,svm等),深度学习方法(fastText,TextCNN等)
本文的思路: 本文主要介绍文本分类的处理过程,主要哪些方法。致力让读者明白在处理文本分类问题时应该从什么方向入手,重点关注什么问题,对于不同的场景应该采用什么方法。
文本分类的处理大致分为 文本预处理 、文本 特征提取 、 分类模型构建 等。和英文文本处理分类相比,中文文本的预处理是关键技术。
针对中文文本分类时,很关键的一个技术就是中文分词。特征粒度为词粒度远远好于字粒度,其大部分分类算法不考虑词序信息,基于字粒度的损失了过多的n-gram信息。下面简单总结一下中文分词技术:基于字符串匹配的分词方法、基于理解的分词方法和基于统计的分词方法 [1]。
1,基于字符串匹配的分词方法:
过程:这是 一种基于词典的中文分词 ,核心是首先建立统一的词典表,当需要对一个句子进行分词时,首先将句子拆分成多个部分,将每一个部分与字典一一对应,如果该词语在词典中,分词成功,否则继续拆分匹配直到成功。
核心: 字典,切分规则和匹配顺序是核心。
分析:优点是速度快,时间复杂度可以保持在O(n),实现简单,效果尚可;但对歧义和未登录词处理效果不佳。
2, 基于理解的分词方法:基于理解的分词方法是通过让计算机模拟人对句子的理解 ,达到识别词的效果。其基本思想就是在分词的同时进行句法、语义分析,利用句法信息和语义信息来处理歧义现象。它通常包括三个部分:分词子系统、句法语义子系统、总控部分。在总控部分的协调下,分词子系统可以获得有关词、句子等的句法和语义信息来对分词歧义进行判断,即它模拟了人对句子的理解过程。这种分词方法需要使用大量的语言知识和信息。由于汉语语言知识的笼统、复杂性,难以将各种语言信息组织成机器可直接读取的形式,因此目前基于理解的分词系统 还处在试验阶段 。
3,基于统计的分词方法:
过程:统计学认为分词是一个 概率最大化问题 ,即拆分句子,基于语料库,统计 相邻的字组成的词语出现的概率 ,相邻的词出现的次数多,就出现的概率大, 按照概率值进行分词 ,所以一个完整的语料库很重要。
主要的统计模型有: N元文法模型(N-gram),隐马尔可夫模型(Hidden Markov Model ,HMM),最大熵模型(ME),条件随机场模型(Conditional Random Fields,CRF)等。
1, 分词 : 中文任务分词必不可少,一般使用jieba分词,工业界的翘楚。
2, 去停用词:建立停用词字典 ,目前停用词字典有2000个左右,停用词主要包括一些副词、形容词及其一些连接词。通过维护一个停用词表,实际上是一个特征提取的过程,本质 上是特征选择的一部分。
3, 词性标注 : 在分词后判断词性(动词、名词、形容词、副词…),在使用jieba分词的时候设置参数就能获取。
文本分类的核心都是如何从文本中抽取出能够体现文本特点的关键特征,抓取特征到类别之间的映射。 所以特征工程很重要,可以由四部分组成:
1,基于词袋模型的特征表示:以词为单位(Unigram)构建的词袋可能就达到几万维,如果考虑二元词组(Bigram)、三元词组(Trigram)的话词袋大小可能会有几十万之多,因此基于词袋模型的特征表示通常是极其稀疏的。
(1)词袋特征的方法有三种:
(2)优缺点:
2,基于embedding的特征表示: 通过词向量计算文本的特征。(主要针对短文本)
4,基于任务本身抽取的特征:主要是针对具体任务而设计的,通过我们对数据的观察和感知,也许能够发现一些可能有用的特征。有时候,这些手工特征对最后的分类效果提升很大。举个例子,比如对于正负面评论分类任务,对于负面评论,包含负面词的数量就是一维很强的特征。
5,特征融合:对于特征维数较高、数据模式复杂的情况,建议用非线性模型(如比较流行的GDBT, XGBoost);对于特征维数较低、数据模式简单的情况,建议用简单的线性模型即可(如LR)。
6,主题特征:
LDA(文档的话题): 可以假设文档集有T个话题,一篇文档可能属于一个或多个话题,通过LDA模型可以计算出文档属于某个话题的概率,这样可以计算出一个DxT的矩阵。LDA特征在文档打标签等任务上表现很好。
LSI(文档的潜在语义): 通过分解文档-词频矩阵来计算文档的潜在语义,和LDA有一点相似,都是文档的潜在特征。
这部分不是重点,传统机器学习算法中能用来分类的模型都可以用,常见的有:NB模型,随机森林模型(RF),SVM分类模型,KNN分类模型,神经网络分类模型。
这里重点提一下贝叶斯模型,因为工业用这个模型用来识别垃圾邮件[2]。
1,fastText模型: fastText 是word2vec 作者 Mikolov 转战 Facebook 后16年7月刚发表的一篇论文: Bag of Tricks for Efficient Text Classification [3]。
模型结构:
改进:注意力(Attention)机制是自然语言处理领域一个常用的建模长时间记忆机制,能够很直观的给出每个词对结果的贡献,基本成了Seq2Seq模型的标配了。实际上文本分类从某种意义上也可以理解为一种特殊的Seq2Seq,所以考虑把Attention机制引入近来。
过程:
利用前向和后向RNN得到每个词的前向和后向上下文的表示:
词的表示变成词向量和前向后向上下文向量连接起来的形式:
模型显然并不是最重要的: 好的模型设计对拿到好结果的至关重要,也更是学术关注热点。但实际使用中,模型的工作量占的时间其实相对比较少。虽然再第二部分介绍了5种CNN/RNN及其变体的模型,实际中文本分类任务单纯用CNN已经足以取得很不错的结果了,我们的实验测试RCNN对准确率提升大约1%,并不是十分的显著。最佳实践是先用TextCNN模型把整体任务效果调试到最好,再尝试改进模型。
理解你的数据: 虽然应用深度学习有一个很大的优势是不再需要繁琐低效的人工特征工程,然而如果你只是把他当做一个黑盒,难免会经常怀疑人生。一定要理解你的数据,记住无论传统方法还是深度学习方法,数据 sense 始终非常重要。要重视 badcase 分析,明白你的数据是否适合,为什么对为什么错。
超参调节: 可以参考 深度学习网络调参技巧 - 知乎专栏
一定要用 dropout: 有两种情况可以不用:数据量特别小,或者你用了更好的正则方法,比如bn。实际中我们尝试了不同参数的dropout,最好的还是0.5,所以如果你的计算资源很有限,默认0.5是一个很好的选择。
未必一定要 softmax loss: 这取决与你的数据,如果你的任务是多个类别间非互斥,可以试试着训练多个二分类器,也就是把问题定义为multi lable 而非 multi class,我们调整后准确率还是增加了>1%。
类目不均衡问题: 基本是一个在很多场景都验证过的结论:如果你的loss被一部分类别dominate,对总体而言大多是负向的。建议可以尝试类似 booststrap 方法调整 loss 中样本权重方式解决。
避免训练震荡: 默认一定要增加随机采样因素尽可能使得数据分布iid,默认shuffle机制能使得训练结果更稳定。如果训练模型仍然很震荡,可以考虑调整学习率或 mini_batch_size。
知乎的文本多标签分类比赛,给出第一第二名的介绍网址:
NLP大赛冠军总结:300万知乎多标签文本分类任务(附深度学习源码)
2017知乎看山杯 从入门到第二
以上是关于maya灯光分类都有哪些,如何打光的主要内容,如果未能解决你的问题,请参考以下文章