Blender Materials
Blender Material
マルチテクスチャ
マルチテクスチャが可能になり、3つまでの Texture が Material 毎に使用可能です。Texture は、Material Texture パネルからアクセスし、Image と Envmap が使用可能です。
それぞれは blending モードの Mix、Add、Subtract、Multiply、Screen でブレンド可能です。Texuture は一つ前の Texture もしくは Material カラーとブレンドされます。
以下がその動作です。
(訳注:原文では previous のユニットの添え字が current と同じですが、前述と矛盾してしまうため、n-1 にしています)previous= texture ユニット(n-1) もしくは material カラー
current = texture ユニット(n)
Mix = interpolate(previous, current, color factor で補間)
Add = previous + current-0.5
Subtract= previous - current
Multiply= previous * current
Screen = previous + current
画像に USEALPHA が設定されている場合:
previous= texture ユニット(n-1) もしくは material カラー
current.alpha = texture unit(n)
Mix = interpolate(previous, current, current.alpha で補間)
Add = previous + current.alpha-0.5
Subtract= previous - current.alpha
Multiply= previous * current.alpha
Screen = previous + current.alpha
もし Image タイプが Envmap であれば、Load オプションで読み込まれた画像により、GL Cube map が生成されます。
使用例もいくつか含まれています。→
Blender 2.41 Game Engine demos- 現在の Scene の鏡面反射マッピング(cube_map.blend)
- 他の Object の位置からのテクスチャ位置生成による、テクスチャライティングエフェクト(dynamic_light.blend)
ミラーボール効果の作成方法(訳注:かなり加筆してます)- EnvMap Texture を Object に設定し、レンダラでレンダリング。
- "Save EnvMap" でレンダリングされた画像を保存し、その画像を(EnvMap の)Load オプションで読み込む。
- Material パネルの 'Map Input' の 'Refl' をセット。
- 球面マップが設定した画像から自動生成されます。
他の Object からの キューブマップテクスチャ座標の生成方法Material パネルの 'Map Input' 内で、'Object' オプションを使用し、コピー元の Object 名を指定します。そして適用される平面を指定します。(X、Y、Z、None)
'Map Input' パネルの 'Size'/'Offs' オプションにより、どんな画像でも、テクスチャ座標のスケーリングとオフセット移動を行うことができます。
マルチ Material
16までの Material を Mesh ごとに使用可能です。それぞれの Material は複数の Texture を持つことができます。また、Material に特有の(GLSL)シェーダを適用することもできます。
Material は Face ごとにEditButtons 内のリンクや Material パネルによって割り当てることができます。単に好きな Material を 'New' で追加し、Material 番号と Face を選択し、'Assign' を押すだけです。
Material アニメーション(Ipo)
Matrial Ipo を Game Engine で扱われる他の Ipo と同じ方法で使用できます。使用したい Ipo を設定し、Ipo Actuator とつないで使用します。
現在使用可能な Ipo:RGB、Alpha、All Color
Ipo は Material パネル上で[I]キーを押して設定します。現時点では、Ipo は Mesh に最初に設定された Material のみで、Mesh 全体に適用されます。
別の UV 座標
Separate UV coordinates
二つめの UV 座標セットを Python で設定できます。好きな座標を設定し、適用する Texture ユニットを選択します。
この機能はライティングエフェクトに便利です。
座標の設定方法:
# --
import GameLogic
cont = GameLogic.getCurrentController()
obj = cont.getOwner()
mesh_index = 0
mesh = obj.getMesh(mesh_index)
while mesh != None:
for mat in range(mesh.getNumMaterials()):
for v_index in range(mesh.getVertexArrayLength(mat)):
vertex = mesh.getVertex(mat, v_index)
uvco = [1.0, 0.0]
unit = 1
vertex.setUV2(uvco, unit)
mesh_index +=1
mesh =obj.getMesh(mesh_index)
# --
他に何も設定されていないと、この二つめの座標系は初回は一つめの物となります。
Blender MaterialsLast update: Jan 26 2006.
This section is maintained by Ton Roosendaal.