主题:  找点东东来捧场:)

5D荣誉斑竹

职务:普通成员
等级:5
金币:10.0
发贴:1326
注册:2002/2/13 13:21:48
#12003/12/24 20:38:32
Maya问答
Q : 如何在MAYA中渲染模型网格线?((暂定名): MAYA 5渲染技术与艺术一书中对此问题有复杂的多的论述,提供更多,更好

的解决方案)

多边形

使用硬件渲染缓冲 window\render editor\hardware render buffer 。用hardware render buffer\render\

Attributes 来设置渲染参数。

如果希望模型线被遮挡,设置多边形模型显示属性:

display\Custom polygon Display Options \Back face Culling 为on。

如果希望和模型渲染图叠加,可以使用合成软件叠加。如果觉得硬件渲染的网格线太细小,使用合成

技巧,例如: 1,叠加多层网格线,可以使网格线清晰;2,将叠加的一层向左平移一个像素,一层向右平移一个像

素;一层向上平移一个像素;一层向下平移一个像素等等,可以将线型变粗;调整叠加层的对比度、模糊

后调整对比度等等方法。

nurbs模型

给物体一个grid作为透明贴图。设置line color 为黑色。设置filler Color为白色。如果希望模型线

被透视遮挡,设置物体为单面渲染。

Q:什么是深度贴图的 Use Mid Dist Dmap?

A: 以下截取于秦向阳的即将面世的新书:(暂定名): MAYA 5渲染技术与艺术 中的一段。新书的目录先睹为快:这里

深度贴图阴影

某一点从相机点看过去(观察点)是可见的,从灯光所在的位置看过去,被物体挡住了,那么这一点在渲染

出来的图像中应该处于该灯光的阴影中。

那些地方应该落在阴影中,那些不在阴影中,深度贴图阴影计算模式是这样处理的:假设灯光也是一个相机,

从这个相机的视角渲染一张图,渲染这张图的时候不考虑物体的其他外观,只考虑当前渲染的点和相机(灯

光)的距离。这张图纪录的就是深度信息(参考深度通道),我们叫这张图为深度贴图(Depth map),它记

录了从灯光的位置看上去物体的距离,而且它排除了哪些从灯光的位置看不见的点。将这张深度贴图用投影

的方式从灯光的位置投射到物体上,这样我们就可以找到当前渲染的点对应于该深度贴图中的像素;而该像

素的深度值纪录了该点和灯光的距离。需要记住,从灯光点引出一条射线,可能会碰到多个物体,或者一个

物体上的多个点,这些点形成一串,只有这一串点的第一点(距离灯光最近的点)才被深度贴图渲染了,其

他的点被遮挡了,被遮挡的点应该出现在阴影中;正常渲染的时候,当前渲染的点和灯光的距离可以由渲染

器计算出来,从灯光看过去该点的角度在深度贴图中的像素也提供了一个距离,深度贴图提供的距离永远是

从这个角度看过去碰到的第一点的距离,也就是一个最短地距离。如果渲染器计算出的距离大于深度贴图提

供的距离,则该点应该处于阴影中,于是渲染器用我们定义的阴影色shadow color去叠加在该点上,形成阴

影。如果渲染器计算出的距离等于深度贴图提供的距离,则该点不处于阴影中,不叠加阴影色(不存在渲染

器计算出的距离小于深度贴图提供的距离的情况)。这就是深度贴图阴影计算的大致过程。我们在进一步看。

因为深度贴图是一张有限分辨率的图,而物体上的点是无限的。所以将该深度贴图投射到物体上,就会出现

深度贴图上的一个像素覆盖物体上很多点的情况。这样最终渲染出的图像中某点究竟该处于阴影中与否就不

准确了,渲染的图像质量会较差,最终渲染的图像分辨率越高,这种缺陷越明显。如何解决这个问题呢?首

先,还是按照上述的方法计算出深度贴图,将深度贴图投射到物体上,一个像素覆盖很多点,再计算这个像

素覆盖的区域中距离灯光最远的点和最近的点,取得距离,将这个距离计算一个平均值;每一个点都这样重

新计算一次,取得许多的平均值,这些平均值表示的是修正的深度信息,利用这些信息得到另外一张深度贴

图。最终渲染的时候,利用这第二章图对距离作一些修正,提高了图像的质量。修正的时候,如果渲染器计算

出的距离大于修正深度贴图提供的平均距离,则该点应该处于阴影中,于是渲染器用我们定义的阴影色shadow color

去叠加在该点上,形成阴影。在Maya中有一个开关控制渲染器是否作上述的第二步:利用平均距离深度贴图,

该开关是Use Mid Dis Dmap。Maya作上述处理的过程我们可以间接地观察一下:先倾空当前工程目录的

\renderData\depth目录,为了方便,场景中仅仅只开启一盏投射深度贴图阴影的灯光。将该灯光的Disk

Based Dmaps设置为Overwrite Existing Dmap(s),这样渲染器产生深度贴图后会保留在\renderData\depth

目录中,而不会立刻删除,便于我们察看,也便于重复利用。因为Use Mid Dis Dmap缺省是开启的,开启

渲染后,我们会在\renderData\depth目录中看到两个遗留的深度贴图文件,一个命名类似为

depthmap_spotLightShape1.SM.iff,这是上述步骤中第一步产生的深度贴图。另外一个命名类似于

depthmap_spotLightShape1.MIDMAP.SM.iff,这是上述第二步产生的深度贴图。我们关闭Use Mid Dis Dmap,

删除上述两个文件,再次渲染,我们会看到只有depthmap_spotLightShape1.MIDMAP.SM.iff文件产生。

用Fcheck.exe开启这两个文件,什么也看不见;按键盘的z键,显示深度通道,

depthmap_spotLightShape1.MIDMAP.SM.iff中没有了那些只接受阴影,不投射阴影的面,说明第二次渲染作

了一些优化。当我们按下z键的时候,fcheck.exe的命令行提示图像的深度范围,比较两幅图像的深度范围,

有微小的差距,而且depthmap_spotLightShape1.MIDMAP.SM.iff的范围稍微不同,这是取平均值的结果。

如果将作为接受阴影的物体的物体的cast shadow关闭,不投射阴影,再渲染,两幅图更相似了,深度范围

仍有微小差别。

增大深度贴图的分辨率,或者使用较慢地机器测试,我们可以更加清楚地观察两个深度贴图文件产生的顺序:

*.MIDMAP.*总比另外一个晚一些生成。

以上介绍的是计算的原理,实际使用的时候一般无需要考虑这个参数。一般保持Use Mid Dis Dmap为开启。

Q 投射贴图物体的复制--如何保证纹理附着在物体上。

A (以下截取于秦向阳的即将面世的新书)...........如果有大量的复制的物体,每个物体都需要变形动

画,则需要共享贴图参考物体。我们先做一个实验,创建任意一个NURBS模型,给与一个材质,并且连接一个投

射贴图,点击渲染模块主菜单Texturing\Create Texture reference object为此物体创建贴图参考物体。选择

模型,打开Hypergraph,点及input and output connections展开从属图表,我们可以看到有一个参考复制的

物体(名称后加了_reference的)的message属性连接到模型的referenceObject属性。

 

从中我们了解了贴图参考物体的连接原理。所以我们以后复制模型物体的时候,只有保持共享贴图参考物体就

可以了。选择模型,点击Edit\Duplicate Options,注意勾选Duplicate Input Connections(复制输入连接),点Apply或者

Duplicate复制。如此复制的模型的投射贴图是附着在模型上,无需担心移动缩放旋转变形的时候纹理不随着物体

变形。投射节点的放置节点也无需作为模型的子物体。.........

Q 3.9.2【什么是矩阵:一般的介绍 】

A

作为三维艺术家,你只需要了解矩阵是一组有序的排成矩形阵列的数,它实际上代表了一组省略了未知数的方程式,这些方程式的解描述了三维物体某个特征,所以,我们可以认为,该矩阵代表这个特征,或者属性。例如,某物体的矩阵Matrix代表它在局部坐标系中的位置信息;世界矩阵worldMatrix代表它在世界坐标系中的位置信息;在Maya中,这些矩阵是4行4列的矩阵,不过,Maya的Mel在表示这些矩阵的时侯,将它们写成16个数字的数列。

虽然矩阵运算的具体法则无需深入了解,但是,矩阵是一个非常重要的概念,尤其是以下的公式必须牢记。

3.9.3 【什么是矩阵:深入了解 】



3.9.4 什么是逆矩阵?父矩阵?父逆矩阵?

我们知道,为了动画的方便和父子层次,我们主要面对的位置是所谓局部坐标,通道框(channel box)中的位置信息是局部坐标系坐标。所谓局部坐标系是相对它的父物体的坐标系,局部坐标值是距离父物体的值。如果物体A以上没有上一层父物体,则此物体的局部坐标值和世界坐标值重合。如果物体A有子物体B,则B物体的通道栏中的坐标值(未使用冻位移Freezing transformations)反映是B相对于A的位置信息,移动A,并不会改变B的通道框中的值。所以要得到B在世界坐标系中的坐标值,需要1,A的坐标;2,A旋转的角度;3,B的(局部坐标),

【公式 】



3.9.5 哪些节点有矩阵属性

从第一章节点图表看到,最高节点有一个子节点叫作实体Entry,实体有一个子节点叫作DAG节点。所谓DAG节点就是有空间位置属性的节点,象我们在MAYA中创建的NURBS、多边形物体、粒子、灯光、相机等等。DAG节点有属性:世界矩阵、父矩阵、逆矩阵、父逆矩阵。所有DAG节点的子孙节点都继承这些属性。

本书有大量的有关矩阵属性的实例。内容很多,在此不一一摘录。请关注秦向阳著《Maya渲染节点》



5D荣誉斑竹

职务:普通成员
等级:5
金币:10.0
发贴:1326
注册:2002/2/13 13:21:48
#22003/12/24 20:42:50



5D荣誉斑竹

职务:普通成员
等级:5
金币:10.0
发贴:1326
注册:2002/2/13 13:21:48
#32003/12/24 20:43:53
nick.vicp.net/index.htm

下载maya插件的网站


兄弟们多捧场呀