WNJXYK
Thanks to the cruel world.
WNJXYKのBlog
VRML 空间与造型
VRML 空间与造型

VRML空间

VRML的空间模型是一个以VRML空间坐标系原点为中心的无限大球体空间,其中Z-X平面是地面,Y轴直接指向天空,Y轴的负半轴指向地面。

由此,就引出了两种不同的角度衡量方式:天空角与地面角。天空角为点到原点的连线与Y轴负半轴的夹角,地面角为其与负半轴的夹角。一般来说他们都在[0, \frac{PI}{2}]范围内。

https://blog.wnjxyk.cn/wp-content/uploads/2018/12/img_0013.jpg
使用背景节点就可以通过设置天空角与对应的颜色来设置整个场景。

Background{
    skyAngle[天空角1, 天空角2, ...]
    skyColor[天空颜色0, 天空颜色1, 天空颜色2, ...]
    groundAngle[地面角1, 地面角2, ...]
    groundColor[地面颜色0, 地面颜色1, 地面颜色2, ...]
}

其中颜色使用r g b的形式来表达,每种颜色分量的范围是[0, 1]

代码例子与效果

Background{
    skyAngle[1.308, 1.570]
    skyColor[0.0 0.2 0.7, 0.0 0.5 1.0, 1.0 0.0 1.0]
    groundAngle[1.308, 1.570]
    groundColor[0.0 0.2 0.7, 0.0 0.5 1.0, 1.0 0.0 1.0]
}

https://blog.wnjxyk.cn/wp-content/uploads/2018/12/%E5%B1%8F%E5%B9%95%E5%BF%AB%E7%85%A7-2018-12-03-%E4%B8%8B%E5%8D%8811.30.22-1024x624.png

造型节点

我们可以通过实物造型节点来创造结合造型,也就是Shape节点。它的结构如下。

Shape{
    appearance 外观域
    geometry 几何造型域
}

外观域可以设置这个实物节点的材质与贴图,几何造型域可以说明这个造型节点的基本几何形状。

几何域

有以下几种比较常用的类型:长方体(Box)、圆锥体(Cone)、圆柱体(Cylinder)与球体(Sphere),语法分别如下所示。

Box{ 
    size 2.0 2.0 2.0 # 长 高 宽
} 
Cone{ 
    bottomRadius 1.0 # 圆锥底部半径 
    height 2.0 # 圆锥的高 
    side TRUE # 是否创建圆锥的锥面 
    bottom TRUE # 是否创建圆锥的底 
}
Cylinder{ 
    radius 1.0 # 园柱底的半径 
    height 2.0 # 园柱高 
    side TRUE # 是否创建园柱曲面 
    top TRUE # 是否创建园柱顶 
    bottom TRUE # 是否创建园柱底 
} 
Sphere{ 
    radius 1.0 # 球体的半径 
}

外观域

外观域中有两种固定属性:材质域与贴图域。

Appearance{
    material 材质域节点
    texture 贴图域节点
}

其中材质域有以下这些属性,diffuseColor表示材料的漫反射颜色,specularColor表示材料的镜面反射材料,shininess表示材料表面的亮度,ambientIntensity说明材料的对比度,emissiveColor是材料的发光颜色,transparency是材料的透明度。

Material{
    diffuseColor 0.8 0.8 0.8
    specularColor 0.0 0.0 0.0
    shininess 0.2
    ambientIntensity 0.2
    emissiveColor 0.0 0.0 0.0
    transparency 0.0
}

这是一个材质域的演示例子。

Shape
{
    appearance Appearance
    {
        material Material
        {
            diffuseColor .353 .663 .827
            specularColor .588 0 .122
            ambientIntensity .624
            shininess .122
            transparency .322
        }
    }
    geometry Cylinder
    {
        radius 2.0
        height 5.0
    }
}

https://blog.wnjxyk.cn/wp-content/uploads/2018/12/%E5%B1%8F%E5%B9%95%E5%BF%AB%E7%85%A7-2018-12-03-%E4%B8%8B%E5%8D%8811.45.46-1024x671.png

贴图域的使用非常简单,只需要设置文件的url即可,一般来说有的材质域节点有ImageTexture与MoiveTexture,分别可以设定贴图与视频。

ImageTexture{ url "文件名"}
MoiveTexture{ url "文件名"}
赞赏
https://secure.gravatar.com/avatar/f83b57c055136369e9feba5d6671d6b5?s=256&r=g

WNJXYK

文章作者

一个蒟蒻

推荐文章

发表评论

textsms
account_circle
email

WNJXYKのBlog

VRML 空间与造型
VRML空间 VRML的空间模型是一个以VRML空间坐标系原点为中心的无限大球体空间,其中Z-X平面是地面,Y轴直接指向天空,Y轴的负半轴指向地面。 由此,就引出了两种不同的角度衡量方式:天…
扫描二维码继续阅读
2018-12-03
<--! http2https -->