FXComposer超入門2
以前のFXComposer超入門の板にテクスチャを貼ってみる。
テクスチャはファイル指定できるようにする。
1.前のプロジェクトを開く。
2.左側の[Effects]→[Floor]→[Floor.cgfx]を選ぶ。
3.中央にcgfxファイルが開く。
4.下のコード1になるように変更する。
/* % Description of my shader. % Second line of description for my shader. keywords: material classic date: YYMMDD */ // My Add float4x4 WorldViewProj : WorldViewProjection; float4 FloorColor : Color < string UIName = "Floor Color"; string UIWidget = "Color"; > = { 0.1f, 0.8f, 0.1f, 1.f }; texture FloorTexture : Diffuse < string ResourceName = "rockwall.jpg"; string ResourceType = "2D"; string UIName = "Surface Texture"; >; sampler2D FloorSampler = sampler_state { Texture = <FloorTexture>; MinFilter = LinearMipMapLinear; MagFilter = Linear; }; //----------------------------------------------- // Struct //----------------------------------------------- // input data from vertex buffer struct appdata { float4 Position : POSITION; float2 UV : TEXCOORD0; }; // pass from vertex program to pixel program struct VertexOutput { float4 Position : POSITION; float2 TexCoord : TEXCOORD0; }; // vertex shader entry point VertexOutput mainVS( appdata IN ) { VertexOutput OUT = (VertexOutput)0; OUT.Position = mul( WorldViewProj, IN.Position ); OUT.TexCoord = IN.UV; return OUT; } // pixel shader entry point float4 mainPS( VertexOutput IN ) : COLOR { // My Add float4 color = tex2D( FloorSampler, IN.TexCoord ); return color * FloorColor; } technique technique0 { pass p0 { CullFaceEnable = false; VertexProgram = compile vp40 mainVS(); FragmentProgram = compile fp40 mainPS(); } }
5.下の絵1の状態になっていることを確認する。
6.左側の[Materials]→[Floor_Material]を選ぶ。
7.右側のFloor_Materialにある[Surface Texture]を押して四角を出す。
8.四角を押して[Image]を押す。
9.新しく出てくるウィンドウのバーにあるプラスを押す。
10.テクスチャを選ぶ。ここでは「nvidia1.dds」を選ぶ。
11.下の絵2の状態になっていることを確認する
12.ウィンドウに追加された「nvidia1.dds」を選び、[OK]を押す。
13.下の絵3の状態になっていることを確認する。
14.「nvidia」と書かれたテクスチャが板に貼られたことを確認する。
15.[Floor Color]も変更できます。
16.おしまいです。