1// ---------------------------------------------------------------------------
2//  Project:  NintendoWare
3//  File:     gfx_UserShader0.vsh
4//
5//  Copyright (C)2009-2010 Nintendo Co., Ltd.  All rights reserved.
6//
7//  These coded instructions, statements, and computer programs contain
8//  proprietary information of Nintendo of America Inc. and/or Nintendo
9//  Company Ltd., and are protected by Federal copyright law.  They may
10//  not be disclosed to third parties or copied or duplicated in any form,
11//  in whole or in part, without the prior written consent of Nintendo.
12//
13//  $Revision:$
14// ---------------------------------------------------------------------------
15
16#include "ShaderConfig.h"
17#include "VertexShader.h"
18
19//#define IS_PROCEDURAL_TEXTURE_ENABLED
20
21//----------------------------------------
22//! @name ���̓��W�X�^
23//@{
24
25#pragma bind_symbol(aPosition.xyz, v0, v0)
26#pragma bind_symbol(aNormal.xyz, v1, v1)
27#pragma bind_symbol(aTangent.xyz, v2, v2)
28#pragma bind_symbol(aColor, v3, v3)
29#pragma bind_symbol(aTexCoord0.xy, v4, v4)
30#pragma bind_symbol(aTexCoord1.xy, v5, v5)
31#pragma bind_symbol(aTexCoord2.xy, v6, v6)
32#pragma bind_symbol(aBoneIndex, v7, v7)
33#pragma bind_symbol(aBoneWeight, v8, v8)
34#pragma bind_symbol(aUserAttribute0.xyz, v9, v9)
35#pragma bind_symbol(aUserAttribute1.xyz, v10, v10)
36#pragma bind_symbol(aUserAttribute2.xyz, v11, v11)
37
38//@}
39
40//----------------------------------------
41//! @name �R���X�^���g���W�X�^
42//@{
43
44#pragma bind_symbol(WrldMtx, c0, c2)
45#pragma bind_symbol(NormMtx, c3, c5)
46#pragma bind_symbol(PosOffs.xyz, c6, c6)
47#pragma bind_symbol(IrScale, c7, c8)
48#pragma bind_symbol(TexcMap.xyz, c10, c10)
49#pragma bind_symbol(TexMtx0, c11, c13)
50#pragma bind_symbol(TexMtx1, c14, c16)
51#pragma bind_symbol(TexMtx2, c17, c18)
52#pragma bind_symbol(TexTran, c19, c19)
53#pragma bind_symbol(MatAmbi, c20, c20)
54#pragma bind_symbol(MatDiff, c21, c21)
55
56////////////////////////////////////////////////////////////////
57// �������C�g�̃��W�X�^�����[�U�[���W�X�^�ɕς��ė��p���܂��B //
58////////////////////////////////////////////////////////////////
59#pragma bind_symbol(NDeform, c22, c22)
60
61#pragma bind_symbol(HslSCol, c23, c23)
62#pragma bind_symbol(HslSDir, c24, c24)
63
64/////////////////////////////////////////////////////////////////////////////////////////
65// ���[�U�[���W�X�^�̊J�n�I�t�Z�b�g��O�ɂ��炵���ׂ�c74-c84�͋����W�X�^�ɂȂ�܂��B //
66/////////////////////////////////////////////////////////////////////////////////////////
67#pragma bind_symbol(UnivReg, c25, c73)
68
69////////////////////////////////////
70// ���[�U�[���W�X�^��lj����܂��B //
71////////////////////////////////////
72#pragma bind_symbol(ExColor, c74, c74)
73
74// #pragma bind_symbol(reserved, c85, c85)
75#pragma bind_symbol(ProjMtx, c86, c89)
76#pragma bind_symbol(ViewMtx, c90, c92)
77
78#pragma bind_symbol(IsSmoSk, b1, b1)
79#pragma bind_symbol(IsRgdSk, b2, b2)
80#pragma bind_symbol(IsHemiL, b5, b5)
81#pragma bind_symbol(IsHemiO, b6, b6)
82#pragma bind_symbol(IsVertA, b7, b7)
83#pragma bind_symbol(IsBoneW, b8, b8)
84#pragma bind_symbol(UvMap0, b9, b9)
85#pragma bind_symbol(UvMap1, b10, b10)
86#pragma bind_symbol(UvMap2, b11, b11)
87#pragma bind_symbol(IsVertL, b12, b12)
88#pragma bind_symbol(IsTex1,  b13, b13)
89#pragma bind_symbol(IsTex2,  b14, b14)
90#pragma bind_symbol(IsQuate, b15, b15)
91
92//@}
93
94//----------------------------------------
95//! @name �������W�X�^
96//@{
97
98#pragma bind_symbol(LightCt, i0, i0)
99
100//@}
101
102//----------------------------------------
103//! @name �o�̓��W�X�^
104//@{
105
106#pragma output_map(position, o0)
107#pragma output_map(quaternion, o1)
108#pragma output_map(view, o2)
109#pragma output_map(color, o3)
110#pragma output_map(texture0, o4.xy)
111#pragma output_map(texture0w, o4.z)
112#pragma output_map(texture1, o5.xy)
113#pragma output_map(texture2, o6.xy)
114
115//@}
116
117
118//-----------------------------------------------------------------------------
119// @brief        ���C���֐��ł��B
120//-----------------------------------------------------------------------------
121main:
122    // TODO: �����ɒ��_�ό`������lj�����\��ł��B
123
124    //------------------------------------------
125    // ���_���W
126    //------------------------------------------
127    call l_transform_matrix
128
129    //------------------------------------------
130    // �J���[
131    //------------------------------------------
132    call l_calc_color
133
134    //------------------------------------------
135    // �e�N�X�`�����W�v�Z
136    //------------------------------------------
137    // �e�N�X�`�����W0
138    call l_calc_texcoord0
139
140    // �e�N�X�`�����W1
141    call l_calc_texcoord1
142
143    // �e�N�X�`�����W2
144    call l_calc_texcoord2
145
146    end
147endmain:
148