1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2<HTML>
3<HEAD>
4<META http-equiv="Content-Type" content="text/html; charset=windows-1252">
5<META name="GENERATOR" content="Microsoft FrontPage 5.0">
6<META http-equiv="Content-Style-Type" content="text/css">
7<LINK rel="stylesheet" type="text/css" href="../../../CSS/revolution.css">
8<TITLE>tev-complex</TITLE>
9</HEAD>
10<BODY>
11<H1 align="left">tev-complex</H1>
12
13<H2>Description</H2>
14<P>This program is an example of multitexture processing that uses complex TEV settings. A torus is displayed using textures like material texture, bump, reflection, and diffusion map. Two color channels are also used.. (One for diffuse and one for specular usage.)</P>
15<H2>Coverage</H2>
16<TABLE border="1" cellpadding="3" cellspacing="0.1" width="640">
17  <TBODY>
18    <TR>
19<TD width="30%" bgcolor="#C0C0C0"><EM><STRONG>Function</STRONG></EM></TD>
20<TD width="25%" bgcolor="#C0C0C0"><EM><STRONG>Parameters</STRONG></EM></TD>
21<TD width="45%" bgcolor="#C0C0C0"><EM><STRONG>Description</STRONG></EM></TD>
22    </TR>
23    <TR>
24<TD width="30%" rowspan="5"><A href="../../../gx/Texture/GXInitTexObj.html"><CODE>GXInitTexObj</CODE></A></TD>
25<TD width="25%">Pointer to image data.</TD>
26<TD width="45%">Appropriate value.</TD>
27    </TR>
28    <TR>
29<TD width="25%">Width  and height</TD>
30<TD width="45%">Appropriate value.</TD>
31    </TR>
32    <TR>
33<TD width="25%">Format</TD>
34<TD width="45%">Appropriate value.</TD>
35    </TR>
36    <TR>
37<TD width="25%">Wrap mode(s, t)</TD>
38<TD width="45%">Appropriate value.</TD>
39    </TR>
40    <TR>
41<TD width="25%">Mipmap</TD>
42<TD width="45%"><FONT face="Courier New">GX_FALSE</FONT></TD>
43    </TR>
44    <TR>
45<TD width="30%"><A href="../../../gx/Texture/GXLoadTexObj.html"><CODE>GXLoadTexObj</CODE></A></TD>
46<TD width="25%">Destination texture name</TD>
47<TD width="45%"><FONT face="Courier New">GX_TEXMAP0</FONT> - <FONT face="Courier New">GX_TEXMAP3</FONT></TD>
48    </TR>
49    <TR>
50<TD width="30%"><A href="../../../gx/Lighting/GXSetNumChans.html"><CODE>GXSetNumChans</CODE></A></TD>
51<TD width="25%">Number of color channels.</TD>
52      <TD width="45%">2</TD>
53    </TR>
54    <TR>
55<TD width="30%" rowspan="7"><A href="../../../gx/Lighting/GXSetChanCtrl.html"><CODE>GXSetChanCtrl</CODE></A></TD>
56<TD width="25%">Channel ID</TD>
57<TD width="45%"><FONT face="Courier New">GX_COLOR0A0</FONT>, <FONT face="Courier New">GX_COLOR1A1</FONT>.</TD>
58    </TR>
59    <TR>
60<TD width="25%">Channel enable</TD>
61<TD width="45%">Always <FONT face="Courier New">GX_ENABLE</FONT>.</TD>
62    </TR>
63    <TR>
64<TD width="25%">Ambient color source</TD>
65<TD width="45%">Always <FONT face="Courier New">GX_SRC_REG</FONT>.</TD>
66    </TR>
67    <TR>
68<TD width="25%">Material color source</TD>
69<TD width="45%">Always <FONT face="Courier New">GX_SRC_REG</FONT>.</TD>
70    </TR>
71    <TR>
72<TD width="25%">Light mask</TD>
73<TD width="45%"><FONT face="Courier New">GX_LIGHT0</FONT> (for channel 0)<BR> <FONT face="Courier New">GX_LIGHT1</FONT> (for channel 1)</TD>
74    </TR>
75    <TR>
76<TD width="25%">Diffusion function</TD>
77<TD width="45%"><FONT face="Courier New">GX_DF_CLAMP</FONT> (for channel 0)<BR> <FONT face="Courier New">GX_DF_NONE</FONT> (for channel 1)</TD>
78    </TR>
79    <TR>
80<TD width="25%">Attenuation function</TD>
81<TD width="45%"><FONT face="Courier New">GX_AF_NONE</FONT> (for channel 0)<BR> <FONT face="Courier New">GX_AF_SPEC</FONT> (for channel 1)</TD>
82    </TR>
83    <TR>
84<TD width="30%"><A href="../../../gx/TexCoordGen/GXSetNumTexGens.html"><CODE>GXSetNumTexGens</CODE></A></TD>
85<TD width="25%">Number of texture coordinates</TD>
86      <TD width="45%">5</TD>
87    </TR>
88    <TR>
89<TD width="30%" rowspan="4"><CODE><A href="../../../gx/TexCoordGen/GXSetTexCoordGen.html">GXSetTexCoordGen</A></CODE></TD>
90<TD width="25%">Texture coordinate ID</TD>
91<TD width="45%"><FONT face="Courier New">GX_TEXCOORD0</FONT> - <FONT face="Courier New">GX_TEXCOORD4</FONT></TD>
92    </TR>
93    <TR>
94<TD width="25%">Type of texture coordinate generation</TD>
95<TD width="45%"><FONT face="Courier New">GX_TG_MTX2x4</FONT>, <FONT face="Courier New">GX_TG_BUMP0</FONT></TD>
96    </TR>
97    <TR>
98<TD width="25%">Source parameter of texture coordinate generation</TD>
99<TD width="45%"><FONT face="Courier New">GX_TG_TEX0</FONT>, <FONT face="Courier New">GX_TG_NRM</FONT>, <FONT face="Courier New">GX_TG_TEXCOORD1</FONT></TD>
100    </TR>
101    <TR>
102<TD width="25%">Matrix index</TD>
103<TD width="45%">Appropriate matrix index</TD>
104    </TR>
105    <TR>
106<TD width="30%"><A href="../../../gx/Tev/GXSetNumTevStages.html"><CODE>GXSetTevStages</CODE></A></TD>
107<TD width="25%">Number of TEV stages</TD>
108      <TD width="45%">5</TD>
109    </TR>
110    <TR>
111<TD width="30%" rowspan="2"><A href="../../../gx/Tev/GXSetTevColor.html"><CODE>GXSetTevColor</CODE></A></TD>
112<TD width="25%">Output color register ID</TD>
113<TD width="45%"><FONT face="Courier New">GX_TEVREG0</FONT> - <FONT face="Courier New">GX_TEVREG2</FONT></TD>
114    </TR>
115    <TR>
116<TD width="25%">Color</TD>
117<TD width="45%">Appropriate value.</TD>
118    </TR>
119    <TR>
120<TD width="30%" rowspan="2"><A href="../../../gx/Tev/GXSetTevColorIn.html"><CODE>GXSetTevColorIn</CODE></A></TD>
121<TD width="25%">TEV stage ID</TD>
122<TD width="45%"><FONT face="Courier New">GX_TEVSTAGE0</FONT> - <FONT face="Courier New">GX_TEVSTAGE4</FONT></TD>
123    </TR>
124    <TR>
125<TD width="25%">Input variable A/B/C/D</TD>
126<TD width="45%">Appropriate value (use fixed value)</TD>
127    </TR>
128    <TR>
129<TD width="30%" rowspan="4"><A href="../../../gx/Tev/GXSetTevColorOp.html"><CODE>GXSetTevColorOp</CODE></A></TD>
130<TD width="25%">TEV stage ID</TD>
131<TD width="45%"><FONT face="Courier New">GX_TEVSTAGE0</FONT> - <FONT face="Courier New">GX_TEVSTAGE4</FONT></TD>
132    </TR>
133    <TR>
134<TD width="25%">Operator/bias/scale</TD>
135<TD width="45%">Appropriate value (use fixed value)</TD>
136    </TR>
137    <TR>
138<TD width="25%">Clamp</TD>
139<TD width="45%"><FONT face="Courier New">GX_FALSE</FONT></TD>
140    </TR>
141    <TR>
142<TD width="25%">Output register ID</TD>
143<TD width="45%"><FONT face="Courier New">GX_TEVREG2</FONT>, <FONT face="Courier New">GX_TEVPREV</FONT></TD>
144    </TR>
145    <TR>
146<TD width="30%" rowspan="2"><A href="../../../gx/Tev/GXSetTevAlphaIn.html"><CODE>GXSetTevAlphaIn</CODE></A></TD>
147<TD width="25%">TEV stage ID</TD>
148<TD width="45%"><FONT face="Courier New">GX_TEVSTAGE0</FONT> - <FONT face="Courier New">GX_TEVSTAGE4</FONT></TD>
149    </TR>
150    <TR>
151<TD width="25%">Input variable A/B/C/D</TD>
152<TD width="45%">Appropriate value (use fixed value)</TD>
153    </TR>
154    <TR>
155<TD width="30%" rowspan="4"><A href="../../../gx/Tev/GXSetTevAlphaOp.html"><CODE>GXSetTevAlphaOp</CODE></A></TD>
156<TD width="25%">TEV stage ID</TD>
157<TD width="45%"><FONT face="Courier New">GX_TEVSTAGE0</FONT> - <FONT face="Courier New">GX_TEVSTAGE4</FONT></TD>
158    </TR>
159    <TR>
160<TD width="25%">Operator/bias/scale</TD>
161<TD width="45%">Appropriate value (use fixed value)</TD>
162    </TR>
163    <TR>
164<TD width="25%">Clamp</TD>
165<TD width="45%"><FONT face="Courier New">GX_FALSE</FONT></TD>
166    </TR>
167    <TR>
168<TD width="25%">Output register ID</TD>
169<TD width="45%"><FONT face="Courier New">GX_TEVREG2</FONT>, <FONT face="Courier New">GX_TEVPREV</FONT></TD>
170    </TR>
171    <TR>
172<TD width="30%" rowspan="4"><A href="../../../gx/Tev/GXSetTevOrder.html"><CODE>GXSetTevOrder</CODE></A></TD>
173<TD width="25%">TEV stage ID</TD>
174<TD width="45%"><FONT face="Courier New">GX_TEVSTAGE0</FONT> - <FONT face="Courier New">GX_TEVSTAGE4</FONT>,</TD>
175    </TR>
176    <TR>
177<TD width="25%">Texture coordinate ID</TD>
178<TD width="45%"><FONT face="Courier New">GX_TEXCOORD0</FONT> - <FONT face="Courier New">GX_TEXCOORD4</FONT>,</TD>
179    </TR>
180    <TR>
181<TD width="25%">Texture map ID</TD>
182<TD width="45%"><FONT face="Courier New">GX_TEXMAP0</FONT> - <FONT face="Courier New">GX_TEXMAP3</FONT></TD>
183    </TR>
184    <TR>
185<TD width="25%">Color channel ID</TD>
186<TD width="45%"><FONT face="Courier New">GX_COLOR0A0</FONT>, <FONT face="Courier New">GX_COLOR1A1</FONT>.</TD>
187    </TR>
188  </TBODY>
189</TABLE>
190<H2>Operation Method</H2>
191<P>End the test with START.</P>
192<P>Rotate the model with the Control Stick.</P>
193<P>Move the light location that is centered at the model with the C Stick.</P>
194<H2>Snapshot</H2>
195<P><IMG src="./images/tev-complex-0.jpg" alt="tev-complex-0.jpg (26520 bytes)" width="640" height="480"></P>
196<H2>Algorithm Details</H2>
197<P>This multitexture effect uses 2 color channels, 4 textures, and 5 TEV stages.</P>
198<TABLE border="0" cellspacing="0" cellpadding="0" width="640">
199  <TBODY>
200    <TR>
201<TD width="20%">Color channel 0</TD>
202<TD width="80%">Diffuse light color. (Cd)</TD>
203    </TR>
204    <TR>
205<TD width="20%">Color channel 1</TD>
206<TD width="80%">Specular light color. (Cs)</TD>
207    </TR>
208    <TR>
209<TD width="20%">Texture map 0</TD>
210<TD width="80%">Bump texture. (Tb)</TD>
211    </TR>
212    <TR>
213<TD width="20%">Texture map 1</TD>
214<TD width="80%">Base material texture. (Tm)</TD>
215    </TR>
216    <TR>
217<TD width="20%">Texture map 2</TD>
218<TD width="80%">Reflection map. (Tr)</TD>
219    </TR>
220    <TR>
221<TD width="20%">Texture map 3</TD>
222<TD width="80%">Gloss map (Tg) : actually (1-Tg) is used in the specular calculation.</TD>
223    </TR>
224    <TR>
225<TD width="20%">TEV stage 0</TD>
226<TD width="80%">Rprev = Cd + Sb*Tb</TD>
227    </TR>
228    <TR>
229<TD width="20%">TEV stage 1</TD>
230<TD width="80%">Rprev = Rprev - Sb*Tb (perturb for embossing)</TD>
231    </TR>
232    <TR>
233<TD width="20%">TEV stage 2</TD>
234<TD width="80%">Reg2 = Rprev * Tm</TD>
235    </TR>
236    <TR>
237<TD width="20%">TEV stage 3</TD>
238<TD width="80%">Rprev = Cs + Sr*Tr</TD>
239    </TR>
240    <TR>
241<TD width="20%">TEV stage 4</TD>
242<TD width="80%">Rprev(final output) = Tg*Reg2 + (1-Tg)Rprev</TD>
243    </TR>
244  </TBODY>
245</TABLE>
246<P>(Sb and Sr are scale constants stored in TEV register 0 and 1.)</P>
247<H2>Required Data Files</H2>
248<P><CODE>$REVOLUTION_SDK_ROOT/dvddata/gxTests/tev-03.tpl</CODE></P>
249<H2>Revision History</H2>
250<P>2006/03/01 Initial version.</P>
251<hr>
252<P>CONFIDENTIAL</p>
253</BODY>
254</HTML>