texture{ PATTERN_TYPE texture_map { [ NUM_1 TEXTURE_BODY_1] [ NUM_2 TEXTURE_BODY_2] ... [ NUM_n TEXTURE_BODY_n] } TEXTURE_MODIFIERS... } |
||
texture | テクスチャを指定するキーワード | |
PATTERN_TYPE | パターン・タイプの指定 ⇒「13.1 パターン・タイプ」 | |
texture_map | テクスチャ・マップを指定するキーワード | |
NUM_1〜NUM_n | 各エントリーの範囲の指定、 0.0〜1.0の実数値 | |
TEXTURE_BODY_1 〜TEXTURE_BODY_n |
各エントリーのテクスチャの指定、通常のテクスチャであればどんなものでも使用できる。 texture { } はここでは必要ない。 | |
TEXTURE_MODIFIERS... | 変形などのオプションの指定 ⇒「13.2 テクスチャのオプション」 |
texture { gradient x // パターン・タイプ texture_map { [0.3 pigment{Red} finish{phong 1}] [0.3 T_Wood11] // テクスチャ識別子 [0.6 T_Wood11] [0.9 pigment{DMFWood4} finish{Shiny}] } }
texture { checker texture { T_Wood12 scale .8 } texture { pigment { White_Marble } finish { Shiny } scale .5 } } }
texture { material_map { FILE_TYPE "filename" BITMAP_MODIFIERS... TEXTURE_0 TEXTURE_1 ... TEXTURE_n } TEXTURE_MODIFIERS... } |
||
texture | テクスチャを指定するキーワード | |
material_map | マテリアル・マップを指定するキーワード | |
FILE_TYPE | 2次元画像のファイル形式を次の中から指定する。 gif、tga、iff、ppm、pgm、png、jpeg、tiff、SYS ※SYSは使用するプラットフォーム固有の形式 |
|
FILE_NAME | 2次元画像のファイル名の指定 ※ カレント・ディレクトリとLibrary_pathを指定したディレクトリ以外の場所にあるファイルは、次のようにフルパスで指定しなければならない。 例)DドライブのpovfileディレクトリにあるImage.gifファイルを指定する場合 image_map { gif " d:\povfile\Image.gif " } |
|
BITMAP_MODIFIERS... | ビットマップ修正オプションの指定 ⇒「13.2 テクスチャのオプション」 | |
TEXTURE_0〜TEXTURE_n | 各インデックスに使用するテクスチャの指定 | |
TEXTURE_MODIFIERS... | テクスチャ修正オプションの指定 ⇒「13.2 テクスチャのオプション」 ※ ピグメント、ノーマル、フィニッシュ、haloはここでは修正できない。 これらの修正はマテリアル・マップの中の各テクスチャに個別に行わなければならない。 |
OBJECT { OBJECT_ITEM texture {T1} texture {T2} ... texture {Tn} } |
||
OBJECT、OBJECT_ITEM | レイヤー・テクスチャを使用する物体の指定 | |
texture {T1} 〜texture {Tn} |
各層のテクスチャの指定、 T1 が最下層、Tn が最上層とな る。 ※ T1 以外のテクスチャは透明部分をもたなければならない ※ 特殊テクスチャは使用できない ※ 各テクスチャは texture{} で囲まなければならない。 |
#declare Layered_Examp = texture {T1} texture {T2} texture {T3} object { My_Object texture { Layer_Examp finish { shiny } // これは最下層のテクスチャのみを修正する } }
texture { uv_mapping pigment{ PIGMENT_BODY } | pigment{uv_mapping PIGMENT_BODY } uv_mapping normal { NORMAL_BODY } | normal {uv_mapping NORMAL_BODY } uv_mapping texture{ TEXTURE_BODY } | texture{uv_mapping TEXTURE_BODY } } |
||
uv_mapping | UVマッピングを指定するキーワード | |
pigment | ピグメント(色彩、画像ファイルなど)の指定 ⇒「12.1 ピグメント」 | |
normal | ノーマル(法線ベクトル)の指定 ⇒「12.2 ノーマル」 | |
texture | テクスチャの指定 ⇒「12.テクスチャ1」 |
ベジェ曲面(bicubic_patch) | UV座標軸は、ベジェ曲面定義の座標軸を基本とする。曲面定義領域に伸縮して貼り付けられる。 |
メッシュ(mesh) メッシュ2(mesh2) |
UVマッピングは各頂点と対応して行われる。 |
回転体(lathe) 簡易回転体(sor) |
回転軸を包み込むようにマッピングされる。 |
球(sphere) | 球を包み込むようにマッピングされる。 |
ボックス(box) | 下図12.7aに示すような形式で画像部分がマッピングされる。 |
UVマッピングと通常マッピングの比較例
(1)ベジェ曲面
![]() |
bicubic_patch{ type 1 flatness 0 u_steps 4 v_steps 4 <-2,-5,-2>,<1,0,1>,<2,0,1>,<3,0,0> <0,1,1>,<1,1,1>,<2,1,1>,<3,1,1> <0,2,1>,<1,2,1>,<2,2,1>,<3,2,1> <0,3,-2>,<1,3,1>,<2,3,1>,<4,3,5> uv_mapping pigment{image_map{png "glass.png"}} } bicubic_patch{ type 1 flatness 0 u_steps 4 v_steps 4 <-2,-5,-2>,<1,0,1>,<2,0,1>,<3,0,0> <0,1,1>,<1,1,1>,<2,1,1>,<3,1,1> <0,2,1>,<1,2,1>,<2,2,1>,<3,2,1> <0,3,-2>,<1,3,1>,<2,3,1>,<4,3,5> pigment{image_map{png "glass.png"} scale 3} translate <5,0,0> } |
(2)回転体
![]() |
lathe{ cubic_spline 12, <1,0>,<1,0.1>,<0.5,0.4>,<1,1.5>,<0.5,2>,<0.4,2>, <0.9,1.5>,<0.4,0.4>,<0.8,0>,<1,0>,<1,0.1>,<0.5,0.4> pigment{image_map{png "glass.png"} rotate 0*y scale 2} finish{phong 1 reflection 0.1} rotate x*90 scale<0.5,0.5,1> } lathe{ cubic_spline 12, <1,0>,<1,0.1>,<0.5,0.4>,<1,1.5>,<0.5,2>,<0.4,2>, <0.9,1.5>,<0.4,0.4>,<0.8,0>,<1,0>,<1,0.1>,<0.5,0.4> uv_mapping pigment{image_map{png "glass.png"} scale 0.5} finish{phong 1 reflection 0.1} rotate x*90 scale<0.5,0.5,1> translate x*1.5 } |
(3)球
![]() |
sphere{ 0,1 pigment {image_map{png "glass.png"}} } sphere{ <2.5,0,0>,1 uv_mapping pigment{ image_map{png "glass.png"} scale 0.5} } |
(4)ボックス
![]() |
box{ <0,0,0>,<1,1,1> pigment {image_map{png "glass.png"}} } box{ <0,0,0>,<1,1,1> uv_mapping pigment{ image_map{png "glass.png"} scale 0.5} translate<1.5,0,0> } |
mesh{ triangle { <Corner_1>,<Corner_2>,<Corner_3> texture_list { TEXTURE_1 TEXTURE_2 TEXTURE_3 } ............... triangle { <Corner_1>,<Corner_2>,<Corner_3> texture_list { TEXTURE_1 TEXTURE_2 TEXTURE_3 } } |
||
mesh | メッシュを指定するキーワード | |
triangle | 三角形を指定するキーワード、smooth_triangle も使用可 | |
<Corner_1>,<Corner_2>,<Corner_3> | 三角形の各頂点 | |
texture_list | 三角形のテクスチャ補間のキーワード | |
TEXTURE_1 TEXTURE_2 TEXTURE_3 | 三角形各頂点のテクスチャ |
mesh{ triangle{x,y,z texture_list { T_Stone30 T_Stone40 T_Stone21 }} triangle{y,-x,z texture_list { T_Stone40 T_Stone30 T_Stone21 }} triangle{-x,-y,z texture_list { T_Stone30 T_Stone40 T_Stone21 }} triangle{-y,x,z texture_list { T_Stone40 T_Stone30 T_Stone21 }} scale z*0.8 }
object { texture { TEXTURE_ITEMS } interior_texture { TEXTURE_ITEMS } } |
||
texture | 物体表面へのテクスチャ・マッピング | |
interior_texture | 物体内側へのテクスチャ・マッピング |
cylinder { <0, 0, 0>, <0, 0, 4>, 4 open texture { PinkAlabaster } interior_texture { Red_Marble } }
intersection | difference { OBJECT_1_WITH_TEXTURES OBJECT_2_WITH_NO_TEXTURE cutaway_textures } |
||
intersection | difference | 論理積または論理差の指定 | |
OBJECT_1_WITH_TEXTURES | 論理演算を実行する物体1(テクスチャの指定あり) | |
OBJECT_2_WITH_NO_TEXTURE | 論理演算を実行する物体2(テクスチャの指定なし) | |
cutaway_textures | 論理演算テクスチャ指定のキーワード |
difference { box{<0, 0, 0>, <4,5,4> texture {T_Wood7} } sphere{<3.5,1.5,3>,2 } cutaway_textures }