色、輝き、透明度の変更

 

【文法】 VRMLで行える設定は次の5種類です。

diffuseColor 1.0 0.0 0.0  
表面の色を設定する
色はR, G, B で指定する(各色の間をスペースで区切る) 
各色とも、値は0.0〜1.0で指定する
 
emissiveColor 1.0 0.0 0.0  
発光色を設定する(物体が発行しているような質感になる)
色はR, G, B で指定する(各色の間をスペースで区切る) 
各色とも、値は0.0〜1.0で指定する
 
specularColor 1.0 0.0 0.0  
物体が光を反射する時の、反射光の色を設定する
色はR, G, B で指定する(各色の間をスペースで区切る) 
各色とも、値は0.0〜1.0で指定する
 
shininess 0.2  
輝きの鋭さ(輝点の大きさ)を設定する
shininessを設定する時は、specularColorと組み合わせて使う。
値は0.0〜1.0で指定する
値が大きいほど鋭い輝きになる(輝点が小さくなる)
 
transparency 0.5  
透明度を設定する
値は0.0〜1.0で指定する
値が大きいほど透明度は高くなる(透明になる)
 

 


RGB値と色の関係

色の指定はR(赤)、G(緑)、B(青)の値を指定することで行う。
RGBの値は、0.0〜1.0の間で指定します。
代表的な色のRGB値を以下の表に載せておくので参考にしてください。

他の色を使いたい場合は、ネットで「Webカラー 10進数」と検索してください。RGB値の10進数表記が載っているページが見つかるはずです。
WebカラーのRGB値は0〜255の値をとります。
VRMLでは0.0〜1.0となりますので、Webカラーの値をVRMLで使用する値に変換してからプログラムに入れてください。

0.0

0.0

0.0

黒色

1.0

0.0

0.0

赤色

0.0

1.0

0.0

緑色

1.0

1.0

0.0

黄色

0.0

0.0

1.0

青色

1.0

0.0

1.0

紫色

0.0

1.0

1.0

水色

1.0

1.0

1.0

白色


 


【記述場所】 Materialノードに必要なフィールド(色、輝き、透明度)を記述する  

Shape{
  appearance Appearance{
    material Material{
      diffuseColor 1.0 0.0 0.0
      emissiveColor 1.0 0.0 0.0
      specularColor 1.0 0.0 0.0
      shininess 0.2
      transparency 0.5
    }
  }
  geometry Sphere{
    radius 2.0
  }
}
Materialノードには、diffuseColorやemissiveColorなど、複数のフィールドを列記することができる。
 
 
 
 
 
 

 



【例】緑色の球を表示する。

#VRML V2.0 utf8
Shape{
  appearance Appearance{
    material Material{
      diffuseColor 0.0 1.0 0.0
    }
  }
  geometry Sphere{
    radius 2.0
  }
}

実行例

 


【例】色を省略することもできる。その場合は灰色になる。

#VRML V2.0 utf8
Shape{
  appearance Appearance{
    material Material{

    }
  }
  geometry Sphere{
    radius 2.0
  }
}

実行例

 


【例】緑色の球を発光させる。

#VRML V2.0 utf8
Shape{
  appearance Appearance{
    material Material{
      emissiveColor 0.0 1.0 0.0
    }
  }
  geometry Sphere{
    radius 2
  }
}

実行例



【例】緑色の球を表示し、反射光を青色にする。

#VRML V2.0 utf8
Shape{
  appearance Appearance{
    material Material{
      diffuseColor 0.0 1.0 0.0
      specularColor 0.0 0.0 1.0
    }
  }
  geometry Sphere{
    radius 2.0
  }
}

実行例



【例】緑色の球を表示し、反射光を青色にする。
   この時、反射光の輝きを鋭くする。

#VRML V2.0 utf8
Shape{
  appearance Appearance{
    material Material{
      diffuseColor 0.0 1.0 0.0
      specularColor 0.0 0.0 1.0
      shininess 1.0
    }
  }
  geometry Sphere{
    radius 2.0
  }
}

実行例



【例】半透明の赤色の箱の中に緑色の球を表示する。

#VRML V2.0 utf8
#透明な箱
Shape{
  appearance Appearance{
    material Material{
      diffuseColor 1.0 0.0 0.0
      transparency 0.8
    }
  }
  geometry Box{
    size 4.0 4.0 4.0
  }
}

#緑色の球
Shape{
  appearance Appearance{
    material Material{
      diffuseColor 0.0 1.0 0.0
    }
  }
  geometry Sphere{
    radius 2.0
  }
}
実行例



【問題】 球を2つ表示しなさい。
 1つ目の球: 直径は2、 座標は原点、 色は緑、 透明度は0.5
 2つ目の球: 直径は2、 座標は 0.0 2.0 −3.0、 色は赤

実行例

 

【問題】時計を作りなさい
  

実行例


【問題】 ランプを作りなさい。

実行例


【問題】懐中電灯を作りなさい。

実行例

 

 

【問題】雪だるまを作りなさい。

実行例


 

【問題】球を9個作りなさい。

実行例