Qt Design Studio编写3D界面的一点总结(二)Principled Matesials Example例子学习

这个例子是展示渲染功能的例子,允许您使用金属/粗糙度工作流程定义 3D 项目的材质,主要是金属/粗糙度材料方面的渲染。

Glossy有光泽和Roughness无光泽。

Roughness无光泽状态下:可定义颜色纹理(map)(照片贴在模型上)

Metalness:材料的基色???拉到1时,更加具有金属材质。Metalness (Map)对某个颜色通道或者灰度进行处理,

 Roughness粗糙度:

粗糙度属性定义了物体表面的不规则程度一个材料。表面越不规则,反射的光就越多它的一部分会扩散并引起光扩散。如果表面是光滑的很少有表面不规则,然后光将反射在一个更集中和激烈的方式。值为0.0表示表面光滑且反射为一面镜子,值为1.0意味着表面非常粗糙,

Roughness(Map)粗糙度贴图:属性指定一个属性来采样粗糙度值。由于粗糙度属性只是一个浮点值之间0.0和1.0,只需要使用图像的单个颜色通道,或者灰度图像。

Glossy有光泽状态下(镜面):其余的和Roughness无光泽状态下的属性相同。调颜色加纹理

增加了调整镜面颜色,镜面纹理(这个占主要),Glossiness光泽度与粗糙度的效果相反。

Alpha(透明度)页面属性:

材料透明度可以通过Alpha的属性来实现,

Alpha Mode 决定了透明的不同模式:Blend:透明.default:方格子,要对3D场景进行Alpha混合opaque:不透明.Mask:它与Alpha Cutoff属性一起工作。如果Alpha值大于Alpha截断值,则将渲染它,如果不是,那就不会。

Alpha Cutoff:使用后会渐变透明

Culling(face透明):去掉一部分模型查看模型内部情况

Depth Draw Mode(深度绘制模式)(将内部也进行绘制)

也许你注意到,当混合Alpha模式被启用时,其中一个根据观察的角度,模型并不总是看起来正确。这是因为虽然各个模型的呈现顺序是基于它们与相机的距离,所以模型有多个部分,它们是怎样的渲染取决于三角形出现的顺序。这对于每个模型都是可以修正的,所以我们使用了一个叫做深度的特征缓冲区。但是,对于透明项,我们通常不会写入深度缓冲区,但有时仍然需要得到正确的渲染
默认模式是*Opaque Only*,这意味着材质只会写入深度缓冲,如果材料不使用透明度。
*Always*意味着无论它做什么,材料都将写入深度缓冲区。
*Never*意味着材料永远不会写入深度缓冲区,即使它可能是不透明的。特殊的模式,一个可能最适合修复Alpha截止相关的深度

errors是*Opaque Prepass*。在这种情况下,在渲染任何项目之前,会有一个单独的通道

在跳过时,材质将不透明像素写入深度缓冲区任何透明像素。然后在主通道中,一切都像往常一样完成,但现在将正确渲染。

Opacity(不透明度)

透明度的另一个选择是通过不透明度属性。最影响可以仅使用上述属性来实现。这也很重要指出使用任何这些不透明度属性将强制alpha混合。”

Opacity(Map)(不透明度纹理)贴上图,依照图进行透明度处理。

不透明度贴图属性指定一个纹理来采样不透明度值从。因为不透明度属性只有一个浮点值

0.0和1.0,只需要使用图像的单个颜色通道,或者灰度图像。默认情况下PrincipledMaterial将使用alpha中的值通道,但可以更改使用的颜色通道。当使用不透明度map时,从map文件中采样的值乘以不透明度属性的值。

Material Details材料细节,添加材质细节让模型更加接近实物

Normal Map(法线贴图):法线贴图是一种存储方向(法线)的特殊纹理作为颜色值。这些方向由材质从法线贴图中采样并结合模型的几何方向来调整光照的方式与材料相互作用。

Height:操纵纹理映射到几何体的方式来产生错觉更有深度.它有一个限制,那就是它只适用于平坦的表面,而且确实如此不要改变模特的轮廓(从侧面看)所以在我们的例子中,你添加的任何高度贴图都只会有你想要的效果立方体,只有当其他纹理存在时。

Ambient Occlusion

闭塞是关于遮挡光线或阴影。如果有东西被堵塞了,它就不能接收光,会比未被遮挡的部分显得更暗。

Ambient Occlusion Map

环境遮挡贴图在3D内容创建工具中为每个模型烘烤使用光线追踪。

Emissive Factor:某个颜色发光EmissiveMap:有图的地方更暗

Clearcoat

启用透明涂层,会在顶部显示另一层保护层现有的材料。加一层透明漆clearcoat amount大于0即可启用

Clearcoat Roughness给漆添加粗糙度

Clearcoat Normal Map增加纹理

Refraction折射(玻璃材质使用)

Transmission:透光率,控制通过的光的百分比材料表面TransmissionMap按照图进行透光率调整,根据图中的不同的颜色调整。

Thickness厚度,表示折射率材料的厚度,玻璃有多厚

ThicknessMap厚度贴图是一个单一通道(灰度)纹理定义网格的厚度(或体积)中采样的值厚度映射乘以厚度因子的值为在网格坐标中获得表面下网格的厚度空间.

Attenuation衰减

当光通过一个体积时,它会受到吸收和散射。控制每种光的通过率。

 Attenuation Distance:衰减长度。定义材料密度

Special Stuff一些其他影响的因素

 Lighting Mode:材质处理阴影,关了后什么效果都没了

Non Triangle Primitive Sizes:一般三维模型的图元是三角形,所以这个没用,当图元是line或者point时,才有用

Specular Overrides镜面覆盖:用物理渲染模型,想让模型更接近实际的话别用这个属性。想让模型有艺术风格的话可以。

Specular Amount:镜面数量,减少反射

Specular Tint高光色属性定义了材质的基本颜色的多少有助于镜面反射。属性上升,反射减少

Specular Reflection Map镜面反射图:使用环境贴图的方式实现反射效果,图贴上,想是反射的一样。

  • 21
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,以下是在Blender下用Python编写代码完成一个花瓶的建模的示例代码: ```python import bpy # 创建一个新的圆柱体,作为花瓶的主体 bpy.ops.mesh.primitive_cylinder_add(radius=1, depth=2) # 将圆柱体沿着Z轴平移1个单位 bpy.ops.transform.translate(value=(0, 0, 1)) # 对圆柱体进行缩放,使其成为一个花瓶的形状 bpy.ops.transform.resize(value=(0.8, 0.8, 1.2)) # 选择圆柱体的顶部面,用于创建花瓶口 bpy.ops.object.mode_set(mode='EDIT') bpy.ops.mesh.select_all(action='DESELECT') bpy.ops.mesh.select_mode(use_extend=False, use_expand=False, type='FACE') bpy.ops.mesh.select_nth(nth=2, offset=0) bpy.ops.mesh.select_nth(nth=2, offset=1) bpy.ops.mesh.select_nth(nth=2, offset=2) bpy.ops.mesh.select_nth(nth=2, offset=3) bpy.ops.mesh.select_nth(nth=2, offset=4) bpy.ops.mesh.select_nth(nth=2, offset=5) bpy.ops.mesh.select_nth(nth=2, offset=6) bpy.ops.mesh.select_nth(nth=2, offset=7) bpy.ops.mesh.select_nth(nth=2, offset=8) bpy.ops.mesh.select_nth(nth=2, offset=9) bpy.ops.mesh.select_nth(nth=2, offset=10) bpy.ops.mesh.select_nth(nth=2, offset=11) bpy.ops.mesh.extrude_region_move(TRANSFORM_OT_translate={"value":(0, 0, 0.2)}) bpy.ops.mesh.select_all(action='DESELECT') # 创建一个新的圆锥体,作为花瓶的底部 bpy.ops.mesh.primitive_cone_add(radius1=1, radius2=0, depth=0.5, location=(0, 0, 0)) # 对圆锥体进行缩放,使其与圆柱体底部相匹配 bpy.ops.transform.resize(value=(0.8, 0.8, 1)) # 将圆锥体沿着Z轴平移0.25个单位,与圆柱体底部对齐 bpy.ops.transform.translate(value=(0, 0, -0.25)) # 将圆锥体与圆柱体合并,创建花瓶 bpy.ops.object.mode_set(mode='OBJECT') bpy.ops.object.select_all(action='DESELECT') obj1 = bpy.data.objects["Cylinder"] obj2 = bpy.data.objects["Cone"] obj1.select_set(True) obj2.select_set(True) bpy.context.view_layer.objects.active = obj2 bpy.ops.object.join() # 将花瓶的材质设置为玻璃材质 mat = bpy.data.materials.new(name="Glass") mat.use_nodes = True nodes = mat.node_tree.nodes links = mat.node_tree.links bsdf = nodes["Principled BSDF"] bsdf.inputs[0].default_value = (0.04, 0.04, 0.04, 1) bsdf.inputs[4].default_value = 1.45 bsdf.inputs[7].default_value = 0.05 output = nodes["Material Output"] links.new(bsdf.outputs[0], output.inputs[0]) bpy.context.object.data.materials.append(mat) ``` 这段代码使用了Blender的Python API,通过调用相应的函数来实现花瓶的建模。首先创建一个圆柱体作为花瓶的主体,然后平移和缩放圆柱体,使其成为一个花瓶的形状。接着选择圆柱体的顶部面,用于创建花瓶口,并创建一个圆锥体作为花瓶的底部,对圆锥体进行缩放和平移,使其与圆柱体底部相匹配。最后将圆锥体与圆柱体合并,创建花瓶,并将其材质设置为玻璃材质。 请注意,在代码中,我们创建的花瓶是使用默认的单位尺寸和位置创建的。如果需要调整花瓶的尺寸和位置,请在代码中相应地修改平移和缩放的值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值