質問編集履歴

1

追記

2022/02/16 18:54

投稿

futon03
futon03

スコア33

test CHANGED
File without changes
test CHANGED
@@ -15,12 +15,51 @@
15
15
 
16
16
  ```HLSL
17
17
  // ピクセルシェーダ
18
+
19
+ // グローバル
20
+ cbuffer global : register(b0) {
21
+ matrix g_mtxWVP; // ワールド×ビュー×射影行列
22
+ matrix g_mtxWorld; // ワールド行列
23
+ matrix g_mtxTexture; // テクスチャ行列
24
+ float4 g_vCameraPos; // 視点座標(ワールド空間)
25
+ float4 g_vLightDir; // 光源方向(ワールド空間)
26
+ float4 g_vLightAmbient; // 環境光
27
+ float4 g_vLightDiffuse; // 拡散光
28
+ float4 g_vLightSpecular; // 鏡面反射光
29
+
30
+ float4 g_vLightPos; // ライト位置
31
+ float g_vLightRange; // ライト範囲
32
+ float4 g_vLightAtt; // ライト減衰
33
+ };
34
+
35
+ // マテリアル
36
+ cbuffer global2 : register(b1) {
37
+ float4 g_Ambient; // 環境色
38
+ float4 g_Diffuse; // 拡散色+アルファ
39
+ float4 g_Specular; // 鏡面反射色+強度
40
+ float4 g_Emissive; // 発光色
41
+ float4 g_Flags; // 拡散色テクスチャ有無, 発光色テクスチャ有無, 透過テクスチャ有無
42
+ };
43
+
44
+ Texture2D g_texture : register(t0); // テクスチャ
45
+ Texture2D g_texEmissive : register(t1); // 発光テクスチャ
46
+ Texture2D g_texTransparent : register(t2); // 透過テクスチャ
47
+ Texture2D g_texSpecular : register(t3); // 鏡面反射テクスチャ
48
+ SamplerState g_sampler : register(s0); // サンプラ
49
+
50
+ // パラメータ
51
+ struct VS_OUTPUT {
52
+ float4 Pos : SV_Position;
53
+ float2 Tex : TEXCOORD0;
54
+ float3 Normal : TEXCOORD1;
55
+ float3 PosForPS : TEXCOORD2;
56
+
57
+ float4 WorldPos : POSITION;
58
+ };
59
+
18
60
  float4 main(VS_OUTPUT input) : SV_Target0
19
61
  {
20
62
  float3 Diff = g_Diffuse.rgb;
21
-
22
- // ライトの色の設定
23
- Diff = g_vLightColor;
24
63
 
25
64
  float Alpha = g_Diffuse.a;
26
65