实验目的:
熟练掌握Extrusion挤出造型节点
实验三:
创建一个截面轮廓线为封闭三角形,龙骨线为封闭的正六边形的折线,挤压一个三棱柱边框的挤压造型,可以设定挤压时截面的放大缩小以及旋转形成不同的造型,并使用材质节点实现着色,并保存。
代码:
Shape { appearance Appearance { material Material { diffuseColor 0 0.8 0.2 ambientIntensity 0.2 specularColor 0 0.8 0.5 emissiveColor 0 0.2 0.5 shininess 0.1 } } geometry Extrusion { crossSection #截面 [ 0.9 0.9 0 -0.9 -0.9 0.9 0.9 0.9 ] spine # 折线路径 (骨架) [ 2 0 0 #1 1 0 1.732 #2 -1 0 1.732 #3 -2 0 0 #4 -1 0 -1.732 #5 1 0 -1.732 #6 2 0 0 #7 ] solid TRUE scale #缩放[x z] [ 2 1 1 1 2 1 1 1 2 1 1 1 2 1 ] creaseAngle 0.9 #折痕角(平滑) orientation #旋转[x,y,z,r] [ 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 ] } }
解释:
Extrusion:挤出造型节点
crossSection [ x z ]:截面
Spine [x y z ]:龙骨线
scale [x z]:缩放
orientation [x y z r]:旋转
solid TRUE/FALSE:设定挤出造型是否构成实体。
creaseAngle 0 :设定褶痕角的阈值。若相邻面法线夹角小于设定域值则做平滑处理,否则不处理
diffuseColor 0 0 0:漫反光色
ambientIntensity 0 :材料表面的对比度
specularColor 0 0 0:材质的镜面反射光色
emissiveColor 0 0 0:材料的发射光色
shininess 0 :材料表面亮度
挤出造型节点固定语法结构:
Shape
{
appearance Appearance
{
material Material{}
}
geometry Extrusion {}
}
crossSection 域值说明:
crossSection
[0.9 0.9
0 -0.9
-0.9 0.9
0.9 0.9
]crossSection[ x z ]: 指截面的形状(二维),本题指封闭的三角形。取的是坐标上x与z的点。
![]()
截面——封闭三角形
1-1示意图如1-1示意图,随机取三个点,然后依次连接圈1至圈3坐标点,得到一条封闭的折线,作为放样的截面轮廓线。
![]()
截面
效果示意图
spine 域值说明:
spine # 折线路径 (骨架)
[
2 0 0 #1
1 0 1.732 #2
-1 0 1.732 #3
-2 0 0 #4
-1 0 -1.732 #5
1 0 -1.732 #6
2 0 0 #7]
spine [ x y z ]:是一组三维路径,由crossSection定义截面,截面的几何中心点会沿着这个路径画出来。
![]()
龙骨线——正六边形折线
1-2示意图如1-2示意图,随机取边长,由勾股定理计算出6个点的位置,然后有序的连接这些点,得到一条封闭的正六边形的折线,这就是挤出造型的牵引轨迹,也叫龙骨线。
注意:这里龙骨线的坐标点的数目是7个。
![]()
龙骨线
效果示意图
scale 域值说明:
scale #缩放[x z]
[
2 1
1 1
2 1
1 1
2 1
1 1
2 1
]scale[x z]:设定二维截面轮廓线的x和z方向上的缩放系数。他的缩放比例系数要与spine域设定的龙骨线坐标点一一对应。(取值必须大于等于0)
这里龙骨线的坐标点的数目是7个,所以缩放系数也应该有7个
这里我采用的是一个点 x放大(2 1),另一个不缩放(1 1),依次交叉着来。
![]()
缩放后
效果示意图
orientation 域值说明:
orientation #旋转
[
1 0 1 1
1 0 1 1
1 0 1 1
1 0 1 1
1 0 1 1
1 0 1 1
1 0 1 1
]orientation[x,y,z,r]:设定沿龙骨线坐标点的挤出造型的旋转参数。取4个值,前面3个是一个旋转轴,第四个是旋转的角度(弧度)。
注意:旋转的参数要与龙骨线坐标点的数目相同。
这里龙骨线的坐标点的数目是7个,所以旋转参数也应该有7个。
![]()
旋转后
效果示意图
有误欢迎指出!!!