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>tg-shadow3</TITLE>
9</HEAD>
10<BODY>
11<H1 align="left">tg-shadow3</H1>
12
13<H2>Description</H2>
14<P>This program shows an example of complicated full-scene shadow generation. This demo uses depth buffer-based method, which can also produce self-shadowing effect. (For details, see the <a href="#Algorithm Details">Algorithm Details</a> section.))</P>
15
16<H2>Coverage</H2>
17<P>This list doesn't contain settings for drawing other than full-scene shadows.</P>
18<TABLE border="1" cellpadding="3" cellspacing="0.1" width="640">
19  <TBODY>
20    <TR>
21<TD width="30%" bgcolor="#C0C0C0"><EM><STRONG>Functions</STRONG></EM></TD>
22<TD width="25%" bgcolor="#C0C0C0"><EM><STRONG>Parameters</STRONG></EM></TD>
23<TD width="45%" bgcolor="#C0C0C0"><EM><STRONG>Description</STRONG></EM></TD>
24    </TR>
25    <TR>
26<TD width="30%" rowspan="3"><A href="../../../gx/Transform/GXLoadTexMtxImm.html"><CODE>GXLoadTexMtxImm</CODE></A></TD>
27<TD width="25%"><SPAN class="argument">Matrices</SPAN></TD>
28<TD width="45%">Appropriate projection matrix.</TD>
29    </TR>
30    <TR>
31<TD width="25%"><SPAN class="argument">Matrix destination.</SPAN></TD>
32<TD width="45%"><CODE>GX_TEXMTX0</CODE>, <CODE>GX_TEXMTX1</CODE></TD>
33    </TR>
34    <TR>
35<TD width="25%"><SPAN class="argument">Types</SPAN></TD>
36<TD width="45%"><STRONG><CODE>GX_MTX3x4</CODE></STRONG></TD>
37    </TR>
38    <TR>
39<TD width="30%"><A href="../../../gx/TexCoordGen/GXSetNumTexGens.html"><CODE>GXSetNumTexGens</CODE></A></TD>
40<TD width="25%"><SPAN class="argument">number of texgens</SPAN></TD>
41      <TD width="45%">2</TD>
42    </TR>
43    <TR>
44<TD width="30%" rowspan="4"><A href="../../../gx/TexCoordGen/GXSetTexCoordGen.html"><CODE>GXSetTexCoordGen</CODE></A></TD>
45<TD width="25%"><SPAN class="argument">Destination coordinates.</SPAN></TD>
46<TD width="45%"><CODE>GX_TEXCOORD0</CODE>, <CODE>GX_TEXCOORD1</CODE></TD>
47    </TR>
48    <TR>
49<TD width="25%"><SPAN class="argument">Generation type.</SPAN></TD>
50<TD width="45%"><STRONG><CODE>GX_TG_MTX3x4</CODE></STRONG></TD>
51    </TR>
52    <TR>
53<TD width="25%"><SPAN class="argument">Generation source.</SPAN></TD>
54<TD width="45%"><STRONG><CODE>GX_TG_POS</CODE></STRONG></TD>
55    </TR>
56    <TR>
57<TD width="25%"><SPAN class="argument">Matrix source.</SPAN></TD>
58<TD width="45%"><CODE>GX_TEXMTX0</CODE>, <CODE>GX_TEXMTX1</CODE></TD>
59    </TR>
60    <TR>
61<TD width="30%" rowspan="5"><A href="../../../gx/Texture/GXInitTexObj.html"><CODE>GXInitTexObj</CODE></A></TD>
62<TD width="25%"><SPAN class="argument">Pointer to image data.</SPAN></TD>
63<TD width="45%">Appropriate value.</TD>
64    </TR>
65    <TR>
66<TD width="25%"><SPAN class="argument">Width and height</SPAN></TD>
67<TD width="45%">Some constant values</TD>
68    </TR>
69    <TR>
70<TD width="25%"><SPAN class="argument">Format</SPAN></TD>
71<TD width="45%"><CODE>GX_TF_RGBA8</CODE></TD>
72    </TR>
73    <TR>
74<TD width="25%"><SPAN class="argument">Wrap mode (s, t).</SPAN></TD>
75<TD width="45%"><CODE>GX_CLAMP</CODE></TD>
76    </TR>
77    <TR>
78<TD width="25%"><SPAN class="argument">Mipmap</SPAN></TD>
79<TD width="45%">Always <CODE>GX_FALSE</CODE>.</TD>
80    </TR>
81    <TR>
82<TD width="30%"><A href="../../../gx/Texture/GXLoadTexObj.html"><CODE><CODE>GXLoadTexObj</CODE></CODE></A></TD>
83<TD width="25%"><SPAN class="argument">Destination texture name.</SPAN></TD>
84<TD width="45%"><CODE>GX_TEXMAP0</CODE>, <CODE>GX_TEXMAP1</CODE></TD>
85    </TR>
86    <TR>
87<TD width="30%"><A href="../../../gx/Texture/GXInvalidateTexAll.html"><CODE>GXInvalidateTexAll</CODE></A></TD>
88<TD width="25%"><SPAN class="argument">(No parameter)</SPAN></TD>
89      <TD width="45%"> </TD>
90    </TR>
91    <TR>
92<TD width="30%"><A href="../../../gx/Framebuffer/GXSetTexCopySrc.html"><CODE>GXSetTexCopySrc</CODE></A></TD>
93<TD width="25%"><SPAN class="argument">top / left / width / height</SPAN></TD>
94<TD width="45%">Some constant values</TD>
95    </TR>
96    <TR>
97<TD width="30%" rowspan="3"><A href="../../../gx/Framebuffer/GXSetTexCopyDst.html"><CODE>GXSetTexCopyDst</CODE></A></TD>
98<TD width="25%"><SPAN class="argument">Width and height</SPAN></TD>
99<TD width="45%">Some constant values</TD>
100    </TR>
101    <TR>
102<TD width="25%"><SPAN class="argument">Format</SPAN></TD>
103<TD width="45%"><STRONG><CODE>GX_TF_Z24X8</CODE></STRONG></TD>
104    </TR>
105    <TR>
106<TD width="25%"><SPAN class="argument">Mipmap filter</SPAN></TD>
107<TD width="45%"><CODE><font face="Courier New">GX_FALSE</font>.</CODE></TD>
108    </TR>
109    <TR>
110<TD width="30%" rowspan="2"><A href="../../../gx/Framebuffer/GXCopyTex.html"><CODE>GXCopyTex</CODE></A></TD>
111<TD width="25%"><SPAN class="argument">Pointer to image data.</SPAN></TD>
112<TD width="45%">Appropriate value.</TD>
113    </TR>
114    <TR>
115<TD width="25%"><SPAN class="argument">Clear operation</SPAN></TD>
116<TD width="45%"><STRONG><CODE><font face="Courier New">GX_TRUE</font>.</CODE></STRONG></TD>
117    </TR>
118    <TR>
119<TD width="30%"><A href="../../../gx/Tev/GXSetNumTevStages.html"><CODE><CODE>GXSetNumTevStages</CODE></CODE></A></TD>
120<TD width="25%"><SPAN class="argument">Number of TEV Stages</SPAN></TD>
121<TD width="45%">3 (for 8-bit compare mode),<br> 5 (for 16-bit compare mode)</TD>
122    </TR>
123    <TR>
124<TD width="30%"><A href="../../../gx/Tev/GXSetTevOrder.html"><CODE><CODE>GXSetTevOrder</CODE></CODE></A></TD>
125<TD width="25%"><SPAN class="argument">Each argument</SPAN></TD>
126<TD width="45%"><A href="#Algorithm Details">see algorithm details</A></TD>
127    </TR>
128    <TR>
129<TD width="30%"><CODE><A href="../../../gx/Tev/GXSetTevColorIn.html"><CODE>GXSetTevColorIn</CODE></A></CODE></TD>
130<TD width="25%"><SPAN class="argument">Each argument</SPAN></TD>
131<TD width="45%"><A href="#Algorithm Details">see algorithm details</A></TD>
132    </TR>
133    <TR>
134<TD width="30%"><CODE><A href="../../../gx/Tev/GXSetTevColorOp.html"><CODE>GXSetTevColorOp</CODE></A></CODE></TD>
135<TD width="25%"><SPAN class="argument">Each argument</SPAN></TD>
136<TD width="45%"><A href="#Algorithm Details">see algorithm details</A></TD>
137    </TR>
138    <TR>
139<TD width="30%"><CODE><A href="../../../gx/Tev/GXSetTevAlphaIn.html"><CODE>GXSetTevAlphaIn</CODE></A></CODE></TD>
140<TD width="25%"><SPAN class="argument">Each argument</SPAN></TD>
141<TD width="45%"><A href="#Algorithm Details">see algorithm details</A></TD>
142    </TR>
143    <TR>
144<TD width="30%"><CODE><A href="../../../gx/Tev/GXSetTevAlphaOp.html"><CODE>GXSetTevAlphaOp</CODE></A></CODE></TD>
145<TD width="25%"><SPAN class="argument">Each argument</SPAN></TD>
146<TD width="45%"><A href="#Algorithm Details">see algorithm details</A></TD>
147    </TR>
148    <TR>
149<TD width="30%" rowspan="2"><CODE><A href="../../../gx/Tev/GXSetTevColor.html"><CODE>GXSetTevColor</CODE></A></CODE></TD>
150<TD width="25%"><SPAN class="argument">TEV Color Register</SPAN></TD>
151<TD width="45%"><CODE>GX_TEVREG0</CODE>, <CODE>GX_TEVREG2</CODE></TD>
152    </TR>
153    <TR>
154<TD width="25%"><SPAN class="argument">Color value</SPAN></TD>
155<TD width="45%">Appropriate value.</TD>
156    </TR>
157    <TR>
158<TD width="30%"><CODE><A href="../../../gx/Culling/GXSetCullMode.html"><CODE>GXSetCullMode</CODE></A></CODE></TD>
159<TD width="25%"><SPAN class="argument">culling mode</SPAN></TD>
160<TD width="45%"><CODE>GX_CULL_FRONT</CODE>, <CODE>GX_CULL_BACK</CODE></TD>
161    </TR>
162    <TR>
163<TD width="30%"><CODE><A href="../../../gx/PixelProc/GXSetColorUpdate.html">GXSetColorUpdate</A></CODE></TD>
164<TD width="25%"><SPAN class="argument">color update mode</SPAN></TD>
165<TD width="45%"><CODE>GX_ENABLE</CODE> / <CODE>GX_DISABLE</CODE></TD>
166    </TR>
167    <TR>
168<TD width="30%"><A href="../../../gx/Management/GXPixModeSync.html"><CODE>GXPixModeSync</CODE></A></TD>
169<TD width="25%"><SPAN class="argument">(No parameter)</SPAN></TD>
170      <TD width="45%"> </TD>
171    </TR>
172  </TBODY>
173</TABLE>
174<H2>Using the Demo</H2>
175<P>End the test with START.</P>
176<P>The main stick moves camera position.<br>The sub stick moves light position.</P>
177<P>The A Button changes display modes.<br>The B Button switches the shadow projection type (perspective/orthographic).<br>The Y Button changes the size of shadow map.</P>
178
179<H2>Snapshot</H2>
180<P><IMG src="./images/tg-shadow3-00.jpg" alt="tg-shadow3-00.jpg (56135 bytes)" width="640" height="480"></P>
181
182<H2>Required Data Files</H2>
183<P>None.</P>
184
185<H2><A name="Algorithm Details">Algorithm Details</A></H2>
186<P>See Section &quot;7.1 Depth-Based Full-Scene Shadow Mapping&quot; in &quot;Graphics Library [Application Edition].&quot;</P>
187
188<H2>Revision History</H2>
189<P>
1902006/03/01 Initial version.<br>
191</P>
192
193<hr><p>CONFIDENTIAL</p></body>
194</HTML>