如何用unity3D shader修改渲染设置 使空缺贴图显示透明而不是白色
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用unity3D shader修改渲染设置 使空缺贴图显示透明而不是白色相关的知识,希望对你有一定的参考价值。
修改对象为unity5手游
拆包后哪类文件是渲染设置
Blend SrcAlpha OneMinusSrcAlpha
如何用maya 渲染论文彩图 (occulusion效果)
本文指导如何使用Maya来渲染一些用于论文的彩图,效果如下:![](https://it.cha138.com/file/image/no.jpg)
步骤如下: 一、初始环境设置 1.打开 maya , 在新场景 ,确保一些环境设置。
![](https://it.cha138.com/file/image/no.jpg)
![](https://it.cha138.com/file/image/no.jpg)
![](https://it.cha138.com/file/image/no.jpg)
![](https://it.cha138.com/file/image/no.jpg)
![](https://it.cha138.com/file/image/no.jpg)
![](https://it.cha138.com/file/image/no.jpg)
![](https://it.cha138.com/file/image/no.jpg)
![](https://it.cha138.com/file/image/no.jpg)
![](https://it.cha138.com/file/image/no.jpg)
![](https://it.cha138.com/file/image/no.jpg)
![](https://it.cha138.com/file/image/no.jpg)
![](https://it.cha138.com/file/image/no.jpg)
![](https://it.cha138.com/file/image/no.jpg)
二、顶点上色
由于脚本中使用的命名的原因,要到如的obj应该按照图中的格式 ,从mesh_0000.obj 开始
![](https://it.cha138.com/file/image/no.jpg)
![](https://it.cha138.com/file/image/no.jpg)
下面说下如何上色: 由于 这里使用的网格顶点数都相同,可以都用同一个颜色文件,格式如下:
![](https://it.cha138.com/file/image/no.jpg)
countmax 这里设为100000 ,是假定网格顶点的数量不超过100000
mel.
eval
(
'select -r mesh_000%d:MeshShape;'
%
frameid) 这里涉及到 mesh的名称,可以看到里面的名称
是与网格的名称对应的,如果你不按照 mesh_0000.obj的命名,那么脚本中相关的名称要改一下
![](https://it.cha138.com/file/image/no.jpg)
![](https://it.cha138.com/file/image/no.jpg)
![](https://it.cha138.com/file/image/no.jpg)
![](https://it.cha138.com/file/image/no.jpg)
import
re
import
maya.api.OpenMaya as api
import
maya.mel as mel
global
cnt
global
framenum
framenum
=
3
cnt
=
0
global
countmax
countmax
=
100000
global
labelColorFilePath
labelColorFilePath
=
r
'D:\\zzb\\squat2\\squat2_coloring.seg'
def
paintColor():
for
frameid
in
range
(framenum):
mel.
eval
(
'select -r mesh_000%d:MeshShape;'
%
frameid)
mel.
eval
(
'polyColorPerVertex -r 0.5 -g 0.5 -b 0.5 -a 1 -cdo;'
)
fColor
=
open
(labelColorFilePath,
'r'
)
lineColor
=
fColor.readline()
p
=
re.
compile
(
'\\s+'
)
count
=
0
rgbVal
=
[
1.0
,
0.0
,
0.0
,
1.0
]
selectionList
=
api.MGlobal.getActiveSelectionList()
nodeDagPath
=
selectionList.getDagPath(
0
)
mfnMesh
=
api.MFnMesh(nodeDagPath)
cArray
=
[]
while
lineColor:
lineColor
=
lineColor.strip(
' '
)
lineColor
=
lineColor.strip(
'\\n'
)
splitesult
=
p.split(lineColor)
#cmds.select('MeshShape.vtx[%d]' % count)
rgbVal[
0
]
=
(
float
(splitesult[
0
]))
rgbVal[
1
]
=
(
float
(splitesult[
1
]))
rgbVal[
2
]
=
(
float
(splitesult[
2
]))
#cmds.polyColorPerVertex( rgb = rgbVal , notUndoable = True)
c
=
api.MColor(rgbVal)
cArray.append(c)
count
+
=
1
lineColor
=
fColor.readline()
if
count > countmax:
break
fColor.close()
iArray
=
[i
for
i
in
xrange
(count)]
mfnMesh.setVertexColors(cArray, iArray)
global
cnt
cnt
+
=
1
print
cnt
paintColor()
|
![](https://it.cha138.com/file/image/no.jpg)
![](https://it.cha138.com/file/image/no.jpg)
![](https://it.cha138.com/file/image/no.jpg)
![](https://it.cha138.com/file/image/no.jpg)
![](https://it.cha138.com/file/image/no.jpg)
三、导出mesh颜色到材质并渲染
由于本文中脚本的所用的节点的命名问题,请确保此时Hypershade中的 材质节点是初始的,这样保证后面创建新的材质节点时命名不会出问题
![](https://it.cha138.com/file/image/no.jpg)
![](https://it.cha138.com/file/image/no.jpg)
![](https://it.cha138.com/file/image/no.jpg)
选择人物,再点节点编辑器
![](https://it.cha138.com/file/image/no.jpg)
![](https://it.cha138.com/file/image/no.jpg)
![](https://it.cha138.com/file/image/no.jpg)
![](https://it.cha138.com/file/image/no.jpg)
说下下面的脚本,主要是做一些 渲染节点 的创建和连接 ,由于涉及到节点的名称的关系,为了保证名字的正确,在运行这个脚本之前就不要创建其他材质。 framenum 是场景中mesh(也就是本例子中的人)的个数
![](https://it.cha138.com/file/image/no.jpg)
import
re
import
maya.cmds as cmds
import
maya.mel as mel
global
count
count
=
0
global
framenum
framenum
=
3
for
frameid
in
range
(
0
, framenum):
print
count
unity3d 怎么建shader
|