material 材质分为MtlDiffuse和MtlSingleBRDF,前者不推荐使用。漫射材料(diffiuse)是不透明的即光线照射到表面并反弹,它们也没有镜面反射成分,因为它们的分子分布非常混乱。在自然界中,虽然许多真实材料包含一些镜面反射成分。该材料允许在场景中更好的进行物理校正照明(能量分布),更快的渲染以及更方便的反射和折射参数。在BRDFVRayMtl中,我们可以应用不同的纹理贴图,控制反射和折射,添加凹凸和置换贴图,强制直接GI计算,以及为材质选择BRDF。
通用BRDFVRayMtl还可以模拟半透明度 - 折射值(光泽度)和吸收(雾)可以参数化以创建逼真的材料。这些材料有很多我们现在要介绍的参数。
参数:
Diffuse扩散–diffuse和roughness
Reflection反射–reflect、fresnel 等
Refraction折射–refract_ior、fog_color等
Translucency半透明–translucency_color 、type等
Self-Illumination自发光–self_illumination_gi 等
ex:
# Create a new BRDFLight
newBRDF = renderer.classes.BRDFLight()
# We specify solid red color
newBRDF.color = vray.Color(1.0, 0.0, 0.0)
newMaterial = renderer.classes.MtlSingleBRDF()
newMaterial.brdf = newBRDF
newNode = renderer.classes.Node()
newNode.material = newMaterial
newNode.geometry = mesh
newNode.transform = vray.Transform(vray.Matrix(vray.Vector(1.0, 0.0, 0.0),
vray.Vector(0.0, 1.0, 0.0),
vray.Vector(0.0, 0.0, 1.0)), vray.Vector(-20.6777, 131.6402, 0))
BRDF(双向反射分布函数)-将这些连接到MtlSingleBRDF。就可以实现不同类型的着色,并将不同的颜色和纹理作为参数。对象着色一个点时,从光上采样一个点并通过它们跟踪光线。在计算了该点中来自该光的光量之后,BRDF就可以表示这些光是如何在各个方向上分布的。包括BRDFBlinn,BRDFWard,
BRDFGGX,BRDFCookTorrance,BRDFGlass和BRDFMirror
# Create a new BRDFBlinn
diffuseBRDF = renderer.classes.BRDFBlinn()
# Specify a golden color
diffuseBRDF.color = vray.Color(1.0, 1.0, 0.0)
newMaterial = renderer.classes.MtlSingleBRDF()
newMaterial.brdf = diffuseBRDF
即以各种方式加载和呈现不同文件格式的V-Ray纹理,还使用UVW生成器插件生成UVW贴图坐标或修改几何源中的原始数据。使用UVWGen插件不是强制性的。
TexBitmap:此纹理使用来自位图缓冲区的数据以及一些其他参数,如颜色乘数,平铺等。
BitmapBuffer:此插件加载图像文件。支持大量格式 - 有损/无损,从8位到32位。这不是纹理插件,其唯一目的是将数据提供给TexBitmap。它有一些过滤和伽玛选项。目前支持的格式是HDR,EXR,PNG,BMP,TGA,SGI,JPG,PIC,TIF,PSD,VRIMG。还支持IFL文件形式的图像文件列表。
newBitmap = renderer.classes.BitmapBuffer()
newBitmap.file = '图片位置'
newTexture = renderer.classes.TexBitmap()
newTexture.bitmap = newBitmap
newBitmap2 = renderer.classes.BitmapBuffer()
newBitmap2.file = '图片位置'
newTexture2 = renderer.classes.TexBitmap()
newTexture2.bitmap = newBitmap2
# Create a new TexAColorOp to combine the textures
combinedTexture = renderer.classes.TexAColorOp()
# Assign the input textures
combinedTexture.color_a = newTexture
combinedTexture.color_b = newTexture2
combinedTexture.mode = 2 # product mode
diffuseBRDF = renderer.classes.BRDFDiffuse()
diffuseBRDF.color_tex = combinedTexture
RawBitmapBuffer与BitmapBuffer相同,但使用内存中的未压缩数据,而不是磁盘上的文件。
TexAColorOp最常用的组合插件之一。它有两个输入AColor纹理,两个可选的乘法器纹理,一个可选的单独alpha通道输入纹理和许多输出纹理:总和,差异,产品,分割,最小,最大,强度,功率和单色通道输出。
具体还有:
TexChecker:此纹理生成棋盘图案。两种交替的颜色也是可纹理的
TexCloth
V-Ray布料纹理贴图可用于生成程序布料纹理。它提供了高水平的控制,使其成为松散或紧密编织布料的外观。它还允许控制随机编织失真量,并且其通道可以连接到纹理贴图。
TexCellular
程序性细胞噪声模式。支持不同类型的细胞,包括分形。
TexCurvature:可以有效地对曲线的底层网格进行采样。每个阴影点周围的区域使用额外的光线(类似于VRayDirt)进行采样,并且所有其他法线被平均以在原始点处获得“平滑”法线。此法线用于计算颜色。每个阴影点的颜色是灰度值:较暗的值是凹痕(或孔),较亮的值是峰值。应该通过跟踪和错误来调整参数,因为它们通常取决于所使用的比例,因此在某些情况下默认值可能根本不合适。
TexDirt:是一种纹理贴图,可用于模拟各种效果:例如,物体裂缝周围的污垢,或产生环境遮挡通道。
TexFresnel:如果您不使用BRDFVRayMtl,则用于生成菲涅耳反射颜色。V-Ray Fresnel是一个简单的纹理贴图,允许您根据视角和折射率混合两种颜色或贴图。例如,您可以将TexFresnel纹理连接到普通材质的镜面反射颜色,以创建菲涅耳反射。
TexLeather:V-Ray皮革纹理贴图允许您生成程序皮革纹理。它使用两个颜色通道,可以更改或用户分配给纹理贴图。
V-Ray Marble Texture:贴图可用于生成程序大理石纹理。它使用两种颜色,可以由用户更改,也可以为其分配纹理贴图。
TexRock:V-Ray岩石纹理贴图可用于生成程序岩石纹理。它使用两种颜色,可以由用户更改,也可以为其分配纹理贴图。
TexSmoke:V-Ray烟雾纹理贴图可用于生成程序纹理,从而产生类似烟雾的效果。它使用两种颜色,可以由用户更改,也可以为其分配纹理贴图。
TexSnow:V-Ray雪纹理贴图可用于生成程序雪纹理效果。它使用两种颜色,可以由用户更改,也可以为其分配纹理贴图。将雪色表面覆盖到某个法向矢量阈值。
TexWater:V-Ray水纹理贴图可用于生成程序水纹理。它使用许多值,这些值可以由用户更改,也可以为其分配纹理贴图。它还允许用户选择使用的分辨率。它可以与Vector Displacement(其他类型的位移不起作用)一起使用,以模拟水面上的波浪。
TexWood的TexBerconWood:V-Ray Bercon Wood纹理贴图可用于生成程序木材纹理。它使用三种颜色,可以由用户更改,也可以为其分配纹理贴图。它允许用户在四种木材图案类型之间进行选择:径向木材,Perlin木材,单面木材和线性木材
以及茶杯:
UVWGens:即UVW坐标生成器,或简称UVWGens。通常,UVW数据存储在几何体GeomStaticMesh::map_channels中