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 "7.1 Depth-Based Full-Scene Shadow Mapping" in "Graphics Library [Application Edition]."</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>