0001: // ------------------------------------------------------------- 0002: // 3Dモデルを定数色で表示する 0003: // 0004: // Copyright (c) 2002,2003 IMAGIRE Takashi. All rights reserved. 0005: // ------------------------------------------------------------- 0006: 0007: // ------------------------------------------------------------- 0008: // グローバル変数 0009: // ------------------------------------------------------------- 0010: float4x4 mWVP; // ローカルから射影空間への座標変換 0011: 0012: // ------------------------------------------------------------- 0013: // 頂点シェーダからピクセルシェーダに渡すデータ 0014: // ------------------------------------------------------------- 0015: struct VS_OUTPUT 0016: { 0017: float4 Pos : POSITION; 0018: float4 Col : COLOR0; 0019: }; 0020: 0021: // ------------------------------------------------------------- 0022: // 頂点シェーダプログラム 0023: // ------------------------------------------------------------- 0024: VS_OUTPUT VS( 0025: float4 Pos : POSITION, // モデルの頂点 0026: float3 Normal : NORMAL // モデルの法線 0027: ){ 0028: VS_OUTPUT Out = (VS_OUTPUT)0; // 出力データ 0029: float4 diffuse = { 1.0f, 0.0f, 0.0f, 1.0f}; 0030: float4 amb = { 0.3f, 0.3f, 0.3f, 1.0f}; 0031: float3 dir = {-0.6f, 0.6f,-0.6f}; 0032: 0033: Out.Pos = mul(Pos, mWVP); // 座標変換 0034: Out.Col = diffuse * max( dot(dir, Normal), 0) + amb; // 定数色 0035: 0036: return Out; 0037: } 0038: // ------------------------------------------------------------- 0039: // ピクセルシェーダプログラム 0040: // ------------------------------------------------------------- 0041: float4 PS( 0042: float4 Col : COLOR0 ) : COLOR 0043: { 0044: return Col; 0045: } 0046: 0047: // ------------------------------------------------------------- 0048: // テクニック 0049: // ------------------------------------------------------------- 0050: technique TShader 0051: { 0052: pass P0 0053: { 0054: // シェーダ 0055: VertexShader = compile vs_1_1 VS(); 0056: PixelShader = compile ps_1_1 PS(); 0057: } 0058: } 0059: