【学习填坑之路】VRay渲染之材质和贴图初步使用

it2022-05-05  171

材质material

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:此纹理使用来自位图缓冲区的数据以及一些其他参数,如颜色乘数,平铺等。

compatibility_with 用于区分从不同应用程序导出的纹理alpha_from_intensity 如果为2的话alpha被强制为1.0f; 为1得到的alpha是颜色强度(如果compatibility_with为0)或颜色亮度(如果compatibility_with为1); 为0的话alpha取自位图alphainvert 如果为true,则生成的纹理颜色将被反转

BitmapBuffer:此插件加载图像文件。支持大量格式 - 有损/无损,从8位到32位。这不是纹理插件,其唯一目的是将数据提供给TexBitmap。它有一些过滤和伽玛选项。目前支持的格式是HDR,EXR,PNG,BMP,TGA,SGI,JPG,PIC,TIF,PSD,VRIMG。还支持IFL文件形式的图像文件列表。

filter_type - 1 - nearest; 0 - 没有过滤; 1 - mip-map过滤; 2 - 求和区域表过滤filter_blur - 用于过滤的blur参数color_space - 指定.hdr图像的颜色空间,以便可以应用反向曲线以使图像处于线性颜色空间gamma - 图像的伽马校正值。例如,如果使用2.2伽马校正将位图保存到磁盘,则需要输入0.4545以删除渲染的校正。 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中


最新回复(0)