<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://msmvps.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Search results for 'app:weblogs' matching tag 'Special Effects'</title><link>http://msmvps.com/search/SearchResults.aspx?q=app:weblogs&amp;tag=Special+Effects&amp;orTags=0&amp;o=DateDescending</link><description>Search results for 'app:weblogs' matching tag 'Special Effects'</description><dc:language>en-US</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>Smart Terrain Rendering with Xna using Billod algorithm</title><link>http://msmvps.com/blogs/valentin/archive/2008/09/30/smart-terrain-rendering-with-xna.aspx</link><pubDate>Tue, 30 Sep 2008 05:00:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1649604</guid><dc:creator>valentin</dc:creator><description>&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;background-color:#ffff00;"&gt;Version Fran&amp;ccedil;aise &lt;a target="_blank" href="http://msdn.microsoft.com/fr-fr/directx/msdn.xna.billod.aspx"&gt;ici&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;If you&amp;#39;re a game developer you&amp;#39;ve already worked on terrain rendering. It is, in my opinion the critical point of a game. Not because conceptually speaking it is the most important visible thing on the screen but because it is the main factor playing on the performance and quality of your application. It is therefore important to use techniques designed to minimize the burden borne by your game to view the ground while preserving its quality display. This article shows a way that attempts to answer this question in XNA. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;Conducting a study of game engine designed to help game developers in the Imagine Cup competition, I naturally preferred this important aspect in seeking a way to display a 3D world unlimited real size with an acceptable level of detail. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;There are many techniques for displaying world explained by interesting articles. These are often based on a compromise uncomfortable wearing a choice between the size of land or quality level. In addition, they are often prohibitive algorithms. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;This article does not appear as the only possible response to the display ground XNA but would just provide an effective solution running for this technology knowing that most of the examples existing on the Web are made in DirectX and OpenGL. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;We will split our study in several phases: &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpFirst"&gt;&lt;span style="font-family:Symbol;mso-ansi-language:EN-US;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;&amp;middot;&lt;/span&gt; &lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;First we describe the problems posed by the display of land and explain the need for optimization. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="font-family:Symbol;mso-ansi-language:EN-US;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;&amp;middot;&lt;/span&gt; &lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;We then describe the method used to cut our land into a QuadTree. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="font-family:Symbol;mso-ansi-language:EN-US;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;&amp;middot;&lt;/span&gt; &lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;We will explain how we reduce the retail field at distance while keeping up its appearance nearby. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="font-family:Symbol;mso-ansi-language:EN-US;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;&amp;middot;&lt;/span&gt; &lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;We will describe a more technical implementation of this technique &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpLast"&gt;&lt;span style="font-family:Symbol;mso-ansi-language:EN-US;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;&amp;middot;&lt;/span&gt; &lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;Finally we will see possible optimizations offered to the reader. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;&amp;nbsp;&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" align="center"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="font-size:14pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;The problem &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;Let&amp;#39;s say we wanted to model a land about 10 km by&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;10km with a degree of detail about 1 meter (1 kilometer = 1000 meters). So we have (without optimization)&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;a grid of 100000 * 100000 to show. We have to specify that that each vertex of the grid has a memory size equal to approximately 40 bytes. It reaches&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;about 4 gigabytes of data to display. The hardware of a lambda PC cannot handle such loads memory. Another problem, such a field modeled in a grid rendering static demand of 200 million triangles per frame. This is a disaster. From the moment the size of the field becomes important and where we add the ground ingredients of usual games, as 3D models, an user interface, animations,&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;performance of a game can no longer follow. This is here, that we have to manage a smart rendering. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;It is therefore important that the CPU and / or GPU taken by the display field is as low as possible to keep processing time for other needs of the game. The virtual world offered by most modern games are huge and cannot be done with a simple static grid &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;The need for optimization is therefore evident. I invite readers to visit http://ww.vterrain.org to discover some presentations techniques other than that presented here. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;If we had a specification to comply, we would have: &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpFirst"&gt;&lt;span style="font-family:Symbol;mso-ansi-language:EN-US;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;&amp;middot;&lt;/span&gt; &lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;Keep the appearance of the ground up by reducing as much as possible the burden with its display. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="font-family:Symbol;mso-ansi-language:EN-US;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;&amp;middot;&lt;/span&gt; &lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;Make the management of land by the code clean and accessible. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="font-family:Symbol;mso-ansi-language:EN-US;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;&amp;middot;&lt;/span&gt; &lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;Using a technique efficient, simple and fast. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpLast"&gt;&lt;span style="font-family:Symbol;mso-ansi-language:EN-US;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;&amp;middot;&lt;/span&gt; &lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;Respecting a QuadTree to optimize performance and meet the needs of treatment games. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" align="center"&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;a target="_blank" href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article1.png"&gt;&lt;img src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article1small.png" style="vertical-align:middle;border:2px solid black;" alt="" /&gt; &lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;Keep appearance with 100 times less resources, is a beautiful goal!. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;&amp;nbsp;&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" align="center"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="font-size:14pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;The QuadTree &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;The first step is to manage our future terrain through a QuadTree. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;A QuadTree is a data type tree in which each node can have up to four children. The Quadtrees are most often used to split a two-dimensional (3D abscissa and depth) by recursively subdivided into four knots. Each node has 4 children and so on. The route of such a tree is simple and takes on average the same time : for each level, there is a maximum of 4 tests to be &amp;quot;allowed&amp;quot; to navigate into lower level.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;This is important given the task before us here: &amp;quot;Show ground with maximum details using minimal resources.&amp;quot;. The goal is to minimize the course of such a tree through its hubs in making these tests smart and simple. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="font-size:12pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;Principle &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;The QuadTree (often used for rendering the field) provides an intelligent answer to the problem of optimization. First it loads the data only when needed. Then, the burden caused by the representation of a node on the screen depends on the depth of the node in the tree. Therefore, the sooner it is estimated that a node not be displayed in the course of a tree, the greater the optimization of display is realized (we limit the same time the number of triangles to display ). We will explain it all over this article. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" align="center"&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;a target="_blank" href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article19.png"&gt;&lt;img src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article19.png" style="vertical-align:middle;border:2px solid black;" alt="" /&gt; &lt;/a&gt;&lt;br /&gt;More on sinking into the tree, more precision displayed with refined detail. &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;The real question to be asked to optimize the display of our tree is &amp;quot;what tests should be performed to determine the appropriateness of displaying a node on the screen&amp;rdquo;. We will see this as soon as possible. For now let us concentrate on how we manage the tree in our code. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="font-size:12pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;Display the tree &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;Initially our terrain is only rendered by a single node (see picture above). The node size will be equals to the size of the terrain. A node on the screen corresponds to a surface composed of 9 square vertices: &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;1. Nord North &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;2. Nord Est North East &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;3. Est East &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;4. Sud Est South East &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;5. Sud South &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;6. Sud Ouest South West &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;7. Ouest West &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;8. Nord Ouest North West &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;9. Centre Center &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;&amp;nbsp;&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" align="center"&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;a target="_blank" href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article3.png"&gt;&lt;img height="273" width="273" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article3.png" style="vertical-align:middle;border:2px solid black;" alt="" /&gt; &lt;/a&gt;&lt;br /&gt;A node is composed of 9 vertices &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;The QuadTree will be based on a heightfield (a two-dimensional array containing all the heights of each vertex Y on the screen). Each vertex of each node in the QuadTree has a height whose value is drawn from the heightfield. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;Initially, only the corner of&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;a node are visible, namely: North East, South East, North West, South West. Its rendering is similar to the following picture: &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" align="center"&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;a target="_blank" href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article4.png"&gt;&lt;img height="273" width="273" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article4.png" style="vertical-align:middle;border:2px solid black;" alt="" /&gt; &lt;/a&gt;&lt;br /&gt;The shaded vertices are visible vertices &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;These four vertices displayed allow us to draw two triangles form the surface of square knot. For each update of the terrain, for each node currently visible, we calculate the visibility of each of the vertices. Each update of a node is accompanied by a redrawing of triangles that make it up. he following picture explicit some possible configurations for a node: &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" align="center"&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;a target="_blank" href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article5.png"&gt;&lt;img src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article5small.png" style="vertical-align:middle;border:2px solid black;" alt="" /&gt; &lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;The algorithm for this part would be: &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;"&gt;/ / For each of the vertices North, East, South, West &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;"&gt;If ( !Vertex.Visible &amp;amp;&amp;amp; VertexTest()) &lt;/span&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Vertex.Visible = true ; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;"&gt;Else if (Vertex.Visible &amp;amp;&amp;amp; !VertexTest()) &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Vertex.Visible = false; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;&amp;nbsp;&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;The test of this algorithm takes into account the distance of the vertex from the camera and the growing need for detail as the camera approached it. We will see the nature of this test later. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;In a second step it is necessary to calculate the visibility of children of current node. A node consists of four children as the next picture shows: &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" align="center"&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;a target="_blank" href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article6.png"&gt;&lt;img src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article6.png" style="vertical-align:middle;border:2px solid black;" alt="" /&gt; &lt;/a&gt;&lt;br /&gt;Here we have shown the North East of child root node, then the child South East of it, then the child of the South East last child finally North West of it. &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;The more one penetrates deep into the QuadTree over the mesh tightens and will display a more detailed terrain. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;The algorithm for this part at this stage of our study would be: &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;"&gt;// For each of the four children North West, North East, South West, South East &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;"&gt;If ( !Child.Visible &amp;amp;&amp;amp; ChildTest()) &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Child.Visible = true ; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;"&gt;Else if (Child.Visible &amp;amp;&amp;amp; ! ChildTest()) &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Child.Visible = false; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;Once again, the test of this algorithm takes into account the distance to which the child and the growing need for detail as the camera approached it. We will see the nature of this test later. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;When a child is exposed, its vertices and his own children are subject to two algorithms that we have just seen. We are therefore in a principle of recursion. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;We compute the triangles that&amp;rsquo;s makes a node by not taking into account the parts overshadowed by children: &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" align="center"&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;a target="_blank" href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article8.png"&gt;&lt;img src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article8.png" style="vertical-align:middle;border:2px solid black;" alt="" /&gt; &lt;/a&gt;&lt;br /&gt;We note here that the vertices North and East of the parent shared with the vertices North West and South West of the child. We will see that later. &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;The basic principle of the Billod algorithm is relatively simple. &lt;/span&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;Vertices et enfants &amp;agrave; afficher sont soumis &amp;agrave; chaque mise &amp;agrave; jour du terrain &amp;agrave; un ensemble de tests qui d&amp;eacute;terminent leur visibilit&amp;eacute;. &lt;/span&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;Vertices and children are subjected, at each updated of the terrain, to a set of tests that determine their visibility. The display of a node node is a recursive set of instructions that&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;goes through the&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;QuadTree along the root node to each leaf node of each branch. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="font-size:12pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;Improvements &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;We talked previously shared vertices between a child and a parent. The previous image illustrates this point. This may cause an unpleasant graphic bug illustrated by the image below: &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" align="center"&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;a target="_blank" href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/image50.png"&gt;&lt;img src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/image50small.png" style="vertical-align:middle;border:2px solid black;" alt="" /&gt; &lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;Or, with wireframe: &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" align="center"&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;a target="_blank" href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/image48.png"&gt;&lt;img src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/image48.png" style="vertical-align:middle;border:2px solid black;" alt="" /&gt; &lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;This problem is due to the non-activation of a vertex in the neighboring node. The nodes affected by this bug are: &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" align="center"&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;a target="_blank" href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article10.png"&gt;&lt;img src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article10.png" style="vertical-align:middle;border:2px solid black;" alt="" /&gt; &lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;So in reality: &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" align="center"&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;a target="_blank" href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article25.png"&gt;&lt;img src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article25.png" style="vertical-align:middle;border:2px solid black;" alt="" /&gt; &lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt; &lt;span style="font-size:small;"&gt;The West vertex of the child red is activated but not the vertex of the yellow child. There is therefore a delta between the two sides of the two children. To resolve this bug simply validate the vertex of the child is yellow:
&lt;p class="MsoNormal" align="center"&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;a target="_blank" href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article11.png"&gt;&lt;img height="273" width="273" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article11.png" style="vertical-align:middle;border:2px solid black;" alt="" /&gt; &lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;Finally we get a perfect continuity:
&lt;p class="MsoNormal" align="center"&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;a target="_blank" href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/image49.png"&gt;&lt;img src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/image49.png" style="vertical-align:middle;border:2px solid black;" alt="" /&gt; &lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt; &lt;span style="font-size:small;"&gt;Now imagine that the southern vertex of the yellow child becomes visible. The parent node has only two children north west and north east. Activating this vertex pose the same problem as before graph:
&lt;p class="MsoNormal" align="center"&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;a target="_blank" href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article12.png"&gt;&lt;img height="273" width="273" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article12.png" style="vertical-align:middle;border:2px solid black;" alt="" /&gt; &lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt; &lt;span style="font-size:small;"&gt;Unfortunately, unlike the previous case, there are no children in the South West. It is therefore necessary to create a child to this position (although the &amp;quot;ChildTest&amp;rdquo; of our algorithm for that child returns false) and to activate its North vertex: &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" align="center"&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;a target="_blank" href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article13.png"&gt;&lt;img src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article13.png" style="vertical-align:middle;border:2px solid black;" alt="" /&gt; &lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;The addition of southern vertex of the white child led to the creation of the Child South West and the activation of southern vertex parent node. The vertex South may itself cause the modification of neighboring nodes. There are, here, some cascading effects that are not really controllable but, fortunately, limited. The following image shows the impact of activation of several children deep into the QuadTree at the bottom right of the terrain. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" align="center"&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;a target="_blank" href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article10.png"&gt;&lt;img src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article10.png" style="vertical-align:middle;border:2px solid black;" alt="" /&gt; &lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;We note that the nodes located at the opposite are impacted. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;&amp;nbsp;&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" align="center"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="font-size:14pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;Managing nodes in the QuadTree &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;Some years ago I read an excellent article by a person named Stan Melax author of an ingenious technique for calculating a dynamic aspect of a 3D model at different levels of resolution. The articles on progressive meshes are subject to the same laws as those on land: either the reduction algorithm is too complicated or it is inappropriate. Stan Melax found a clever way to solve this problem. He studies the cost the disappearance of each vertex by studying their impact on the overall shape. He is then able to gradually reduce the resolution of the 3D model by removing&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;vertices in a logical order with the less impact. &lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;Its strength lies in the calculation of the cost of a vertex which proves to be a simple and effective. We will proceed the same way. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="font-size:12pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;The curve : Element to remember &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;To explain simply&amp;nbsp;: &lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;We measure a terrain to its forms. We measure a form to its curves. The question is then: how to define a curve ?. Answering this question would determine the locations of the terrain where we must keep an important retail level and those that can be degraded. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;There are many techniques to transform a curve into a mathematical function. We return in this case to the beginning problem: Do not overload the processor too much. We have seen, it is necessary to execute the formula found at all vertices and all children nodes. A formula that generates a lot of instructions will deteriorate application performance. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;The solution is simple. We have said that our land is splitted into a set of nodes belonging to a tree. Each curve of the land therefore consists of nodes that are actually surfaces square whose size varies &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" align="center"&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;a target="_blank" href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article2.png"&gt;&lt;img src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article2small.png" style="vertical-align:middle;border:2px solid black;" alt="" /&gt; &lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" align="center"&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;br /&gt;The terrain is a set of curves visible on the screen. Each curve is an assembly of square knots coast to coast glued. &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="font-size:12pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;The normal, order of magnitude of a curve &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;Plus la courbe est importante, plus les n&amp;oelig;uds qui la composent forment un angle important. &lt;/span&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;The greater the curve is, the greater the angles made by its nodes are important. Take for example a curve : &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" align="center"&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;a target="_blank" href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article18.png"&gt;&lt;img src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article18.png" style="vertical-align:middle;border:2px solid black;" alt="" /&gt; &lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;It shows all nodes glued side by side. At the place where the curve is really important we find nodes that form an angle. In contrast to where there is no curve, but a simple slope, nodes coast to coast appear to belong to the same plane. We noticed even more if we show each normals nodes: &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" align="center"&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;a target="_blank" href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article24.png"&gt;&lt;img src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article24.png" style="vertical-align:middle;border:2px solid black;" alt="" /&gt; &lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;We are now close to finding the formula! All the students know that the mathematical function that measures the angle between two vectors is the dot product. &lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" align="center"&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;a target="_blank" href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article20.png"&gt;&lt;img src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article20small.png" style="vertical-align:middle;border:2px solid black;" alt="" /&gt; &lt;/a&gt;&lt;br /&gt;The inner product of two vectors represented by non-zero vectors A and B is the actual number ABcos (&amp;theta;) if the angle &amp;theta; is the angle formed between the two lines whose direction are represented by the two vectors. &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;The maximum angle that can be found in a curve of land as we conceive it tends to 90 degrees (90 degrees value cannot be achieved because nodes can&amp;rsquo;t overlap). Cos 90 equal 0 so we can infer that when the curve formed by the vectors is important, their dot product approach 0 (A * B * Cos (90) = A * B * 0 = 0). On the contrary if the value of inner product increases, is that the curve formed by the two nodes tend toward the &amp;quot;right&amp;quot; (A * B * Cos (0) = A * B * 1 = AB).&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;See this picture: &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" align="center"&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;a target="_blank" href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article16.png"&gt;&lt;img src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article16.png" style="vertical-align:middle;border:2px solid black;" alt="" /&gt; &lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;The inner product between the normal parent and child will return here a value far away from 0 : we are on a surface, certainly inclined, but plane. Needless to cut the node. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;Consider now a pronounced curve : &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" align="center"&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;a target="_blank" href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article23.png"&gt;&lt;img src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article23.png" style="vertical-align:middle;border:2px solid black;" alt="" /&gt; &lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;The angle between the three normals is more pronounced. The original node (symbolized by the black dotted line) should be divided into sub-nodes. We can found in this process a certain logic: a flat surface is easily modeled with few polygons. A curved surface ask for much. Here to complete the wireframe curve: &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" align="center"&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;a target="_blank" href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article17.png"&gt;&lt;img src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article17small.png" style="vertical-align:middle;border:2px solid black;" alt="" /&gt; &lt;/a&gt;&lt;br /&gt;Where the curve is more pronounced, our technique uses more primitives &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt; &lt;/span&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="font-size:12pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;Activation &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;Child Test method should compare the normal of the children to test with the normal of the parent node to which it belongs. If the angle between the two normal exceeds a threshold when the method returns true. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="font-size:12pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;Disabling &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;Disabling a child occurs when a series of factors are met: &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpFirst"&gt;&lt;span style="font-family:Symbol;mso-ansi-language:EN-US;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;&amp;middot;&lt;/span&gt; &lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;The child has no longer visible vertices &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="font-family:Symbol;mso-ansi-language:EN-US;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;&amp;middot;&lt;/span&gt; &lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;The child has more sub-children &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpLast"&gt;&lt;span style="font-family:Symbol;mso-ansi-language:EN-US;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;&amp;middot;&lt;/span&gt; &lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;The test method returns false. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" align="center"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="font-size:14pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" align="center"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="font-size:14pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;Enable/Disable switch node in the vertex &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="font-size:12pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;Interpolated to real &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;La gestion de la visibilit&amp;eacute; des vertices ne suit pas la m&amp;ecirc;me logique que celle d&amp;eacute;crite pr&amp;eacute;c&amp;eacute;demment. &lt;/span&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;The management of the vertices visibility does not follow the same logic as that described above. Here there is no curves but delta.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Only vertices on the sides of a node are to be tested. So the North, East, South, West vertices. When a node is created, this vertices are not visible. But they are located between two vertices on node edge and so, we can deduce their height easily. Here is an example of node viewed from the side: &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" align="center"&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;a target="_blank" href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article21.png"&gt;&lt;img src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article21.png" style="vertical-align:middle;border:2px solid black;" alt="" /&gt; &lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;It shows the vertices North West and South West enabled (visible)) and West&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertex disabled. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;The West vertex seems to be on the right along the two summits. In real, it may not. For now we have interpolated (deducted) its position (If South West is at a height of 10 and North West at a height of 20, it is reasonable to assume that the West vertex will be at a height of 15). Yet in reality, it is may be at another height: &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" align="center"&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;a target="_blank" href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article22.png"&gt;&lt;img src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article22.png" style="vertical-align:middle;border:2px solid black;" alt="" /&gt; &lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;There is a distance between the delta position of vertex West interpolated its actual position. This difference in height measures the degree of reality of the node currently displayed with a more detailed version. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;View node with only the 4 vertices summits displayed therefore does not adequately reflect the reality on the ground displayed by the node. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="font-size:12pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;Way of activation &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;The activation method is very simple, we only need to determine the Delta value (a simple difference of heights) and determine if it exceeds a threshold too. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="font-size:12pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;Test of disabling &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;Disabling a vertex is only when a series of factors are met: &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpFirst"&gt;&lt;span style="font-family:Symbol;mso-ansi-language:EN-US;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;&amp;middot;&lt;/span&gt; &lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;The vertex is used by a child node &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpLast"&gt;&lt;span style="font-family:Symbol;mso-ansi-language:EN-US;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;&amp;middot;&lt;/span&gt; &lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;The test method returns false. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" align="center"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="font-size:14pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;Progressive Details &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;It was one of the prerequisites for our technology, we must optimize the display according to the camera position. At this point, our two functions tests (for vertices and children nodes) do not take into account the camera position and the position of the element to test. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;We have seen in the two algorithms dedicated to the vertices and nodes, that test is performed to determine if a vertex or child should be displayed or not. The land must be displayed according to the camera position for the comfort of the player. The more an area of land is close to the camera the more it have to be detailed. It also aims to preserve up to the appearance of the terrain away with a minimum of vertices and gradually detail when the camera comes. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" align="center"&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;a target="_blank" href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article14.png"&gt;&lt;img src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article14small.png" style="vertical-align:middle;border:2px solid black;" alt="" /&gt; &lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="font-size:12pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;Detail for progressive QuadTree &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;For the time the testing method is based on the angle made between the normal of a child with its parent.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;This procedure is not necessarily relevant distance. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;If a few degrees angle is visible when you are close to the nodes that make up this angle is not necessarily detectable at a distance It is not necessary to activate the child. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;Here is the implementation of this test method: &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;color:#0000ff;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;private&lt;/span&gt; &lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;span style="color:#0000ff;"&gt;bool&lt;/span&gt; ChildTest(&lt;span style="color:#2b91af;"&gt;Vector3&lt;/span&gt; childNormal, &lt;span style="color:#2b91af;"&gt;BoundingBox&lt;/span&gt; boundingBox, &lt;span style="color:#2b91af;"&gt;Vector3&lt;/span&gt; cameraPosition) &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;{ &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#008000;"&gt;//by default, the four childs of the root node are visible. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (&lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.Depth &amp;lt; 1) &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#008000;"&gt;//get the closest point to the camera and check the distance &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;float&lt;/span&gt; distanceCameraToPoint = &lt;span style="color:#2b91af;"&gt;Vector3&lt;/span&gt;.Distance(GetBoundingBoxClosestPointToPoint(boundingBox, cameraPosition), cameraPosition); &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#008000;"&gt;//compute the dot product between parent normal and child normal &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;float&lt;/span&gt; dotprod = 1 - &lt;span style="color:#2b91af;"&gt;Vector3&lt;/span&gt;.Dot(childNormal, &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.CenterVertex.Value.Normal); &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#008000;"&gt;//check with the threshold &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; (distanceCameraToPoint / &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.ParentTree.QuadTreeDetail) &amp;lt; (dotprod); &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;}&lt;/span&gt; &lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;By default nodes at the top of the tree are made visible. We then determine the distance between the camera position and the nearest point of it in the BoundingBox encompassing child. The dot product is then calculated. We test the division of this distance by an adjustable threshold is below the dot product. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;Note that this method of testing may well be adapted to submit the QuadTree to another technique optimization. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="font-size:12pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;Progressive detail for the vertex &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;Again, the testing method for vertices does not take into account the distance to the camera. &lt;/span&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;We must determine if the distance between the actual position of the vertex and its position interpolated exceeds a threshold configurable. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;Here is the testing method: &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;bool&lt;/span&gt; VertexTest(&lt;span style="color:#2b91af;"&gt;Vector3&lt;/span&gt; vertexPosition, &lt;span style="color:#2b91af;"&gt;Sides&lt;/span&gt; side, &lt;span style="color:#2b91af;"&gt;Vector3&lt;/span&gt; cameraPosition) &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;{ &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#008000;"&gt;//get the distance between interpolated height position and real height position &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;float&lt;/span&gt; lengthToTest = &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;._realToInterpolatedVertexHeight[(&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;)side]; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#008000;"&gt;//get the distance from the camera position to the vertex position &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;float&lt;/span&gt; distanceCameraToPoint = &lt;span style="color:#2b91af;"&gt;Vector3&lt;/span&gt;.Distance(vertexPosition, cameraPosition); &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#008000;"&gt;//check with the threshold &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; lengthToTest * &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.ParentTree.VertexDetail &amp;gt; distanceCameraToPoint; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;} &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;span style="font-size:small;"&gt;&amp;nbsp;&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;The delta between the two vertices (interpolated and real) is stored in memory. We then determine the distance between the vertex and the camera. A test is then conducted to determine if the Delta exceeds the threshold distance to the camera. Like earlier this test method may well be adapted to submit the vertices of each node to another technique optimization. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" align="center"&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;a target="_blank" href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article15.png"&gt;&lt;img src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article15small.png" style="vertical-align:middle;border:2px solid black;" alt="" /&gt; &lt;/a&gt;&lt;br /&gt;A field at different level of detail, from left to right: 7500, 3000, 1500, 300 150 vertices &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;&amp;nbsp;&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" align="center"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="font-size:14pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;Improvements &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;Our algorithm at this stage works perfectly: it displays the details where they are relevant, frees up resources and uses a quadtree. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;Remember that time, the relevance of viewing a node is measured using the dot product of its normal with normal direct its parent. This is rather good, but we can improve. The following pictures illustrate a graphic unpleasant bug that modifies the appearance of ground within walking distance:&amp;nbsp;&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" align="center"&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;a target="_blank" href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article60.png"&gt;&lt;img src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article60.png" style="vertical-align:middle;border:2px solid black;" alt="" /&gt; &lt;/a&gt;&lt;br /&gt;In front of us: a slight bump on the ground &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" align="center"&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;a target="_blank" href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article61.png"&gt;&lt;img src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article61.png" style="vertical-align:middle;border:2px solid black;" alt="" /&gt; &lt;/a&gt;&lt;br /&gt;The hump has been truncated &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;&amp;nbsp;&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;Note that the bump on the first visible image is greatly reduced by the mere fact of having moved slightly camera. But our algorithm has worked here perfectly. We simply validated a threshold requiring a node to be cut. So we need to reduce the implementation of our algorithm close to the camera. We will therefore introduce a second threshold that will represent what we mean by &amp;quot;proximity&amp;quot;. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;The new test function is thus as follows: &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;bool&lt;/span&gt; ChildTest(&lt;span style="color:#2b91af;"&gt;Vector3&lt;/span&gt; childNormal, &lt;span style="color:#2b91af;"&gt;BoundingBox&lt;/span&gt; childBoundingBox, &lt;span style="color:#2b91af;"&gt;Vector3&lt;/span&gt; cameraPosition) &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{ &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#008000;"&gt;//by default, the four childs of the root node are visible. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (&lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.Depth &amp;lt; &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.ParentTree.MinimalDepth) &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#008000;"&gt;//get the closest point to the camera and check the distance &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;float&lt;/span&gt; distanceCameraToPoint = &lt;span style="color:#2b91af;"&gt;Vector3&lt;/span&gt;.Distance(GetBoundingBoxClosestPointToPoint(childBoundingBox, cameraPosition), cameraPosition); &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#008000;"&gt;//compute the dot product between parent normal and child normal &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;float&lt;/span&gt; dotprod = 1 - &lt;span style="color:#2b91af;"&gt;Vector3&lt;/span&gt;.Dot(childNormal, &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.CenterVertex.Value.Normal); &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#008000;"&gt;//check with the threshold &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; ((distanceCameraToPoint &lt;b style="mso-bidi-font-weight:normal;"&gt;- &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.ParentTree.QuadTreeDetailAtFront &lt;/b&gt;) / &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.ParentTree.QuadTreeDetailAtFar) &amp;lt; (dotprod); &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;} &lt;/span&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;We now have two thresholds, a threshold of visibility for &amp;ldquo;near displays&amp;rdquo; to maximize the details close to the camera and a threshold of &amp;ldquo;far display&amp;rdquo; that manages the details beyond the previous threshold according to a affine function as we did until now. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;The advantage is undeniable. For proof, just take a look at the picture below: &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" align="center"&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;a target="_blank" href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article58.png"&gt;&lt;img src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article58small.png" style="vertical-align:middle;border:2px solid black;" alt="" /&gt; &lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;I went to the center of the terrain, I stopped the implementation of the algorithm (similar to a pause in the Update of the QuadTree) and take some the altitude. We notice that the details seem to diminish when away from the center. This is indeed the case: &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" align="center"&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;a target="_blank" href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article59.png"&gt;&lt;img src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article59small.png" style="vertical-align:middle;border:2px solid black;" alt="" /&gt; &lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;At the center of the screen near the crater, the details are at maximum. If we were on the ground, we do not see any ground near bump be changed by moving the camera. On the contrary, the far away details keeps the overall look of the land. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;It&amp;#39;s not all, we are now able to generate a climate and geographical well known: a mountain line (sorry I do not know the English term for &amp;ldquo;ligne bleue&amp;rdquo;). Look at this picture: &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" align="center"&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;a target="_blank" href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article62.png"&gt;&lt;img src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article62small.png" style="vertical-align:middle;border:2px solid black;" alt="" /&gt; &lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;It is the blue line Vosges clearly visible from the north of &amp;ldquo;Franche-Comte&amp;rdquo; in France. Plus on regarde. The more one looks far more mist arises in a bluish tint. By applying our algorithm and a modified fog we are able to generate a skyline purified up to cut a new notch resources taken by the displayed terrain. Return on our field, but this time by being near the ground:&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" align="center"&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;a target="_blank" href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article56.png"&gt;&lt;img src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article56small.png" style="vertical-align:middle;border:2px solid black;" alt="" /&gt; &lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" align="center"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;&amp;nbsp;&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;We&amp;#39;ve added a blue fog to simulate this. The remote mountains are visible thanks to the difference in color the fog gives them. Now the same view but with a threshold of visibility at distance greatly reduced: &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" align="center"&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;a target="_blank" href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article57.png"&gt;&lt;img src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.Billod/article57small.png" style="vertical-align:middle;border:2px solid black;" alt="" /&gt; &lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;We get a display similar but with 1300 primitives less! &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;&amp;nbsp;&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" align="center"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="font-size:14pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;Code and optimization &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;The code given with this article is deliberately sketchy for the sake of understanding. Son but est de tester la technique Billod Its purpose is to test the Billod technique described here &lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;with no optimization. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="font-size:12pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;Description of the &amp;quot;business&amp;quot; classes &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;Four classes are really business: &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpFirst"&gt;&lt;span style="font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;&amp;middot;&lt;/span&gt; &lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;The terrain is naturally managed by a class called Terrain. We will return later on its possible usefulness. Terrain is a container for Quadtrees. &lt;/span&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;It represents the whole ground. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="font-family:Symbol;mso-ansi-language:EN-US;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;&amp;middot;&lt;/span&gt; &lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;The tree is represented by an instance of QuadTree class. QuadTree represents a part of Terrain. It is a container of QuadNodes. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="font-family:Symbol;mso-ansi-language:EN-US;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;&amp;middot;&lt;/span&gt; &lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;The nodes of the tree are created using the QuadNode class. &lt;/span&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;It is a container of TerrainVertex. &lt;/span&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;QuadNode represents a node. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpLast"&gt;&lt;span style="font-family:Symbol;mso-ansi-language:EN-US;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;&amp;middot;&lt;/span&gt; &lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;Finally the 9 vertices of a node are TerrainVertex. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;Most treatment is within the class QuadNode. This has two important methods: Initialize and Update.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;The Initialize method handles load the node with all information related to its position in the QuadTree. It makes visible its four edges, it determines the neighboring nodes (for sharing vertices). It also calculates the deltas, normals, BoundingBox. It is called once every creation of a node. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;The Update method performs tests on the four vertices &amp;quot;sides&amp;quot; (North, East, South, West) and four children on the potential (North West, North East, South West, South East) to each update of the tree . &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;This is the class QuadTree which initializes the first node and start treatment on the tree. Every x seconds (adjustable) it launches an asynchronous update on all the nodes instantiated to update the tree depending on the position of the camera. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;The instantiation of a QuadTree is achieved by specifying the size of it, its depth and its location: &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;color:#2b91af;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;QuadTree&lt;/span&gt; &lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;tree = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;QuadTree&lt;/span&gt;(treeDepth, rootNodeSize, location); &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;&amp;nbsp;&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;The structure TerrainVertex contains the vertex to display. A vertex can be shared on multiple nodes. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;The code of this four major classes has been simplified in the extreme and widely commented. If there are still black spots do not hesitate to contact me. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="font-size:12pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;Update Thread &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;A quick and easy (dirty ?) solution has been &lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;implemented to update the field. A BackgroundWorker is launched when you start the application and handle the updating of the field asynchronously. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;This procedure avoids any slowdown of the game during the update. The data displays (VertexBuffer and IndexBuffer) are stored in a stack and used in the Render method. In the example provided with this article, we do an update that every 4 seconds. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="font-size:12pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;Optimizations &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;Apart from improvements to the code, here are some ideas to increase the quality of reporting and the power of technology Billodes. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpFirst"&gt;&lt;span style="font-family:Symbol;mso-ansi-language:EN-US;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;&amp;middot;&lt;/span&gt; &lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;We do two courses of the shaft each Update (one to update the tree, the other to extract the list to display triangles). There &amp;#39;may be a point to improve here. &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;
&lt;p class="MsoListParagraphCxSpFirst"&gt;&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="font-family:Symbol;mso-ansi-language:EN-US;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;&amp;middot;&lt;/span&gt; &lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;The updated every X seconds is not necessarily the best solution. There are several other possible avenues to update, for example when the camera is moved or predicting the movement of the player and update accordingly. Finally, it should be noted that the final status of a tree is not achieved in a single Update It may be preferable in some cases to await the final version of the tree by calling the Update method as many times as necessary. You shlould prefer update the tree by little part each frame.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="font-family:Symbol;mso-ansi-language:EN-US;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;&amp;middot;&lt;/span&gt; &lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;Some thresholds for activation or deactivation of a child or a vertex are very low. We can consider that they will never be activated. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="font-family:Symbol;mso-ansi-language:EN-US;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;&amp;middot;&lt;/span&gt; &lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;When a node is cut or merged, or when a vertex changes state (visible / hidden), the transition is visible.It may be useful to cut this transition more gradual steps to soften the visual changes. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="font-family:Symbol;mso-ansi-language:EN-US;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;&amp;middot;&lt;/span&gt; &lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;Relying on the Terrain class. In this sample we render only a single tree. The Terrain class field can be a serious springboard to try to manage several trees that will be linked one to another.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;&amp;middot;&lt;/span&gt; &lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;We load the entire Heightfield from the start by analyzing a black and white. It is an effective way to proceed to achieve an example but not to make a &lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;game. It might be wise to store the array of heights in a file and read what the QuadTree needs at each Update. &lt;/span&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpLast"&gt;&lt;span style="font-family:Symbol;mso-ansi-language:EN-US;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;&amp;middot;&lt;/span&gt; &lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;The source code has not been optimized for readability. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" align="center"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="font-size:14pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;The example program &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;This program is just one example of a rapid implementation of the land Billodes. The business classes are quickly adaptable to individual needs. The project is XNA 3.0. &lt;/span&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;Il est toutefois adaptable au 2.0. &lt;/span&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;However, it is adaptable to 2.0. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;Commands to interact with the world are: &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpFirst"&gt;&lt;span style="font-family:Symbol;mso-ansi-language:EN-US;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;&amp;middot;&lt;/span&gt; &lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;Mouse: Click to turn the camera. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="font-family:Symbol;mso-ansi-language:EN-US;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;&amp;middot;&lt;/span&gt; &lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;Arrow keys: moving the camera in the current direction. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="font-family:Symbol;mso-ansi-language:EN-US;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;&amp;middot;&lt;/span&gt; &lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;Key W: Wireframe Mode On / Off. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="font-family:Symbol;mso-ansi-language:EN-US;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;&amp;middot;&lt;/span&gt; &lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;Page Up / Page Down: Change the Far Threshold Test. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="font-family:Symbol;mso-ansi-language:EN-US;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;&amp;middot;&lt;/span&gt; &lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;Key left Shift + Page Up / Page Down: Near Threshold Test. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="font-family:Symbol;mso-ansi-language:EN-US;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;&amp;middot;&lt;/span&gt; &lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;Left Key Shift + arrow keys: fast move. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpLast"&gt;&lt;span style="font-family:Symbol;mso-ansi-language:EN-US;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;&amp;middot;&lt;/span&gt; &lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;Left Key Alt + arrow keys: moving slow. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;To test the Billod algorithm, simply move on the ground and studying the evolution of the field. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;Note that it is possible to modify some parameters affecting the display using the configuration file of the application. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;You can reuse the source code as you want. I just ask to refer me in your &amp;quot;credits&amp;quot;. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;&amp;nbsp;&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" align="center"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="font-size:14pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;References / Credits &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;The Web site of Stan Melax: &lt;/span&gt;&lt;a href="http://www.melax.com/"&gt;&lt;span style="font-size:small;color:#0000ff;"&gt;http://www.melax.com&lt;/span&gt; &lt;/a&gt;&lt;span style="font-size:small;"&gt;. A very pragmatic man at the root of a technical Progressive Mesh very smart on which I based my algorithm. I take this article to thank him for his kindness and his exchange at the time or I was working on progressive meshes in XNA. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;&amp;quot;Continuous LOD Terrain Meshing Using Adaptive Quadtrees&amp;quot; by Thatcher Ulrich. A method quite similar to mine but more research-oriented to deltas. This is one of the few methods available on the web that can be used for a game. My algorithm has a QuadTree quite similar to his &amp;quot;Adaptive QuadTree&amp;quot; but his management heightfield is much more intelligent than mine. His details management is, in my opinion less &lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;good than mine. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;The page Hugues Hoppe: http://research.microsoft.com/ ~ hoppe. One of the masters of the terrain rendering. Everything is so great but illegible for novices and not necessarily adapted to the world of video gaming. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;Virtual Terrain Project: http://www.vterrain.org/ . Website with a great set of publications around the management of terrain. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;And on a more personal way Mathieu Laussel, a French friend 3D modeler (engineering) with whom I realize an editor of the world and who kindly wait as I write this article. And Boris Driss student that like game development and with who, talking is very interresting. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;font-family:Segoe UI;"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;&amp;nbsp;&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" align="center"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="font-size:14pt;line-height:115%;font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;Downloads&lt;/span&gt; &lt;/b&gt;&lt;/p&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-size:small;"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;You can downalod the C# project &lt;a target="_blank" href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/valentin.ContentPipeline/8037.BilLOD.zip"&gt;here&lt;/a&gt;. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Annexe : Progressive Mesh en Xna</title><link>http://msmvps.com/blogs/valentin/archive/2007/04/05/annexe-progressive-mesh-en-xna.aspx</link><pubDate>Thu, 05 Apr 2007 05:00:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:757384</guid><dc:creator>valentin</dc:creator><description>&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;font style="BACKGROUND-COLOR:#ffff00;"&gt;&lt;img style="WIDTH:24px;HEIGHT:24px;" height="24" src="http://msmvps.com/photos/valentin/images/887626/original.aspx" width="24" align="absMiddle" border="1" alt="" /&gt;&lt;font face="Arial"&gt;Retourner au &lt;/font&gt;&lt;a class="" href="http://msmvps.com/blogs/valentin/archive/2007/03/30/tutoriaux-xna-sommaire-g-n-ral.aspx"&gt;&lt;font style="BACKGROUND-COLOR:#ffff00;" face="Arial"&gt;sommaire des cours&lt;/font&gt;&lt;/a&gt;&lt;font face="Arial"&gt;&amp;nbsp;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font style="BACKGROUND-COLOR:#ffff00;"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;font style="BACKGROUND-COLOR:#ffff00;"&gt;Avant toutes choses je tiens&amp;nbsp;à remercier Stan Melax qui m&amp;#39;a gentiment aidé à passer son algorithme en DirectX et Xna et m&amp;#39;a laissé la possibilité d&amp;#39;utiliser pour ce cours&amp;nbsp;quelque&amp;nbsp;schémas qu&amp;#39;il avait réalisé.&lt;/font&gt;&amp;nbsp;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;em&gt;L&amp;#39;utilisation de MRM est une véritable merveille pour accroître de manière significative les performances de ses applications. Le principe est simple&amp;nbsp;: transformer un model 3D détaillé et formé de très nombreux polygones en une version allégée utilisant moins de faces mais aillant un aspect aussi similaire que possible.&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;em&gt;Cette technique est la plupart du temps couplée avec la camera pour réduire proportionnellement la qualité du modèle 3D en fonction de la distance à laquelle il se trouve de la camera.&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;em&gt;Au final, nous pouvons ainsi grappiller des FPS et libérer le GPU en lui évitant d’afficher des modèles détaillés au loin, là ou une version grandement allégée donne le même résultat à l’écran. &lt;/em&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;em&gt;L&amp;#39;image suivante explicite cela :&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;em&gt;&lt;/em&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;em&gt;&lt;img title="La porche a 25% donne le même affichage a grande distance que le modèle a 100%." style="WIDTH:650px;HEIGHT:172px;" height="172" alt="La porche a 25% donne le même affichage a grande distance que le modèle a 100%." src="http://msmvps.com/photos/valentin/images/458037/original.aspx" width="650" align="absMiddle" border="2" /&gt;&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;&lt;font face="verdana,geneva"&gt;&lt;em&gt;&amp;nbsp;&lt;/em&gt;&lt;/font&gt;&lt;font face="verdana,geneva"&gt;&lt;em&gt;On y voir l&amp;#39;affichage d&amp;#39;une voiture sous différentes résolutions (le poucentage indiqué au dessus de chaque modèle correspond au nombre de vertices utilisé par rapport à l&amp;#39;original). Le modèle à 10% reste tout à fait acceptable et similaire à l&amp;#39;original. Il est donc tout à fait imaginable de l&amp;#39;utiliser à grande distance à la place d&amp;#39;un modèle plus &amp;quot;complet&amp;quot; et plus lourd à manipuler.&lt;/em&gt;&lt;/font&gt; 
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;em&gt;&lt;/em&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;em&gt;&lt;font face="verdana,geneva"&gt;Les MRM&amp;nbsp; (multi resolution mesh) occupent une place prépondérante dans les moteurs 3D : Utilisés pricipalement pour libérer du traitement GPU sur l’affichage des objets lointains&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;il est aussi employé&lt;/span&gt; dans l&amp;#39;occlusion culling (l&amp;#39;occlusion consiste à supprimer de l&amp;#39;affichage les objets qui sont cachés par d&amp;#39;autres objets nous y reviendrons dans un autre post).&amp;nbsp;&lt;/font&gt;&lt;font face="verdana,geneva"&gt;&amp;nbsp;&lt;/font&gt;&lt;/em&gt;&lt;font face="verdana,geneva"&gt;&lt;em&gt;&amp;nbsp;&lt;/em&gt;&lt;/font&gt;&lt;em&gt;&lt;font face="Verdana"&gt;Nous allons donc dans ce cours chercher un moyen pour&amp;nbsp;créer&amp;nbsp;et utiliser des MRM dans nos applications. Ce moyen, c&amp;#39;est bien evidemment un algorithme qui va etre en mesure de calculer la réduction du nombre de vertices dans une forme 3D en sauvegardant au maximum son aspect général lors de cette transformation.&lt;/font&gt;&amp;nbsp;&lt;/em&gt;&amp;nbsp;&lt;font face="verdana,geneva"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;font face="verdana,geneva"&gt;&lt;font size="4"&gt;L&amp;#39;algorithme&lt;/font&gt;&lt;/font&gt;&lt;/b&gt;&lt;font face="verdana,geneva"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt; 
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;font size="3"&gt;&lt;strong&gt;Une complexité qui rebute&lt;/strong&gt;&lt;/font&gt;&amp;nbsp;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;Si on se tourne vers les moteurs de recherche sur le net (live.com, google.fr) à l&amp;#39;aide des mots clés &amp;quot;&lt;i style="mso-bidi-font-style:normal;"&gt;MRM algorithme&lt;/i&gt;&amp;quot; on trouve un grand nombre&amp;nbsp;de travaux de chercheurs et de passionnés sur ce sujet. Pourtant la plupart des algorithmes qu&amp;#39;on y trouve sont inexploitables : soit ils sont trop gourmants en calculs et donc inexploitable en temps réel, soit le resultat change l&amp;#39;aspect de la forme 3D ou bien encore la complexité est telle qu&amp;#39;il est tout bonnement incompréhensible.&amp;nbsp;Quelques pasionnés ont toutefois trouvé un moyen de réaliser des réductions de résolutions relativement simplement. Nous retiendrons ainsi&amp;nbsp;la méthode&amp;nbsp;utilisé par Stan Melax parce qu&amp;#39;à priori la meilleure et, cerise sur le gâteau, l&amp;#39;une des plus simples. &lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana" size="3"&gt;&lt;strong&gt;Réduction par Fusion de Meshs&lt;/strong&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;Melax se base lui-même sur les travaux de H.Hoppes, un développer de MSR (Microsoft Research) dont est issue vraisemblablement l&amp;#39;algorithme se trouvant derrière la classe ProgressiveMesh de Direct3D. Cet algorithme vise a réduire la complexité d&amp;#39;un model 3D par l&amp;#39;intermédiaire de fusions de vertices. Le principe est trivial : à chaque réduction de résolution on fusionne deux vertices (que nous nommerons ici u et v).S&amp;#39;ensuit :&lt;/font&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;La suppression des triangles qui possèdent à la fois les vertices &lt;i style="mso-bidi-font-style:normal;"&gt;u&lt;/i&gt; et &lt;i style="mso-bidi-font-style:normal;"&gt;v&lt;/i&gt;.&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;La mise à jour des triangles qui utilisaient &lt;i style="mso-bidi-font-style:normal;"&gt;u&lt;/i&gt; sur l&amp;#39;un de leurs trois points afin qu&amp;#39;ils utilisent &lt;i style="mso-bidi-font-style:normal;"&gt;v&lt;/i&gt; à la place.&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;La suppression du vertex &lt;i style="mso-bidi-font-style:normal;"&gt;u&lt;/i&gt;.&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;font face="verdana,geneva"&gt;&amp;nbsp;&lt;/font&gt;&lt;font face="verdana,geneva"&gt;&amp;nbsp;&lt;/font&gt;&lt;font face="verdana,geneva"&gt;&lt;img title="A chaque réduction de complexité, deux vertices u et v sont sélectionnés et l&amp;#39;un deux est &amp;quot;fusionné&amp;quot; avec l&amp;#39;autre (ici respectivement u et v). " style="WIDTH:476px;HEIGHT:766px;" height="766" alt="A chaque réduction de complexité, deux vertices u et v sont sélectionnés et l&amp;#39;un deux est &amp;quot;fusionné&amp;quot; avec l&amp;#39;autre (ici respectivement u et v). " src="http://msmvps.com/photos/valentin/images/458021/original.aspx" width="476" /&gt;&lt;/font&gt;&lt;font face="verdana,geneva"&gt;&amp;nbsp;&lt;/font&gt;&lt;font face="verdana,geneva"&gt;&amp;nbsp;&lt;/font&gt;&lt;font face="verdana,geneva"&gt;Le schéma ci-dessus explicite tout cela. La figure A montre l&amp;#39;état du modèle avant la baisse de résolution. La figure B montre le même modèle après la&amp;nbsp;fusion de deux de ces vertices. Le modèle garde son aspect mais en utilisant un vertex et deux faces en moins.&lt;/font&gt; 
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;Ce processus est répété jusqu&amp;#39;à atteindre le nombre de vertices ou de faces voulu.&lt;/font&gt;&lt;/p&gt;&lt;font face="verdana,geneva"&gt;&amp;nbsp;&lt;/font&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;font face="verdana,geneva"&gt;&lt;font size="3"&gt;Choix de u et v&lt;/font&gt;&lt;/font&gt;&lt;/b&gt;&lt;font face="verdana,geneva"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;Cette méthode est relativement simple sur le papier et réduit effectivement sans grandes difficultés un model 3D. Il ne faut pourtant pas crier victoire trop vite : comme dit précédemment, il est primodial que le model &amp;quot;réduit&amp;quot; garde une apparence similaire au model complexe originel. Il convient donc de choisir avec intelligence les sommets u et v à fusionner afin de provoquer la plus fine modification visuelle à l&amp;#39;écran. L&amp;#39;image suivante illustre celà :&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&amp;nbsp;&lt;img title="Le choix du vertex est important !" style="WIDTH:673px;HEIGHT:510px;" height="510" alt="Le choix du vertex est important !" src="http://msmvps.com/photos/valentin/images/464808/original.aspx" width="673" align="middle" /&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;font size="1"&gt;&lt;em&gt;Le choix du sommet à supprimer est important pour garder une apparence aussi similaire que possible à l&amp;#39;original (image extraite de l&amp;#39;article de Stan Melax avec l&amp;#39;aimable autorisation de l&amp;#39;auteur)&lt;/em&gt;&lt;/font&gt;&lt;font size="1"&gt;.&lt;/font&gt;&amp;nbsp;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;C&amp;#39;est là ou le bat blesse : la plupart des algorithmes propose pour ce choix des calculs lourds et inutilisables en temps réel. Sur ce point, Stan Melax a montré son savoir faire. Il part d&amp;#39;un principe élémentaire : les surfaces coplanaires ne demandent pas autant de vertices pour être rendue à l&amp;#39;écran que les surfaces avec un relief prononcé (comme les courbes). Il est plus facile de réduire la complexité des premières, que celle des secondes. Le coût pour la disparition d&amp;#39;un sommet pourrait se traduire ainsi : c&amp;#39;est le résultat de la multiplication de la taille du sommet par l&amp;#39;importance dans la courbe sur laquelle il se trouve. &lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;Pour la fusion uv, visant à déplacer &lt;em&gt;u&lt;/em&gt; vers &lt;em&gt;v&lt;/em&gt; nous avons l&amp;#39;algorithme :&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;Calculer la taille du sommet (distance &lt;em&gt;u&lt;/em&gt; à &lt;em&gt;v&lt;/em&gt;).&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;Déterminer l&amp;#39;ensemble des triangles qui possède à la fois &lt;em&gt;u&lt;/em&gt; et &lt;em&gt;v&lt;/em&gt;.&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;Pour chacun des triangles connectés à u :&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;Calculer le produit orthonormé de la normal du triangle courant avec chacun des triangles qui possèdent à la fois &lt;em&gt;u&lt;/em&gt; et &lt;em&gt;v&lt;/em&gt;. En extraire le plus petit produit.&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;Calculer le plus gros des plus petits produits : C&amp;#39;est la coùt de la fusion.&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;La formule mathématique pour calculer ce cout est la suivante est la suivante :&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;font size="1"&gt;&lt;img title="where Tu is the set of triangles that contain u and Tuv is the set of triangles that contain both u and v." style="WIDTH:670px;HEIGHT:90px;" height="90" alt="where Tu is the set of triangles that contain u and Tuv is the set of triangles that contain both u and v." src="http://msmvps.com/photos/valentin/images/464803/original.aspx" width="670" align="middle" /&gt;&lt;br /&gt;&lt;/font&gt;&lt;i&gt;&lt;font size="1"&gt;où Tu &lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="verdana,geneva"&gt;&lt;font size="1"&gt;est l&amp;#39;ensemble des triangles qui possèdent &lt;/font&gt;&lt;i&gt;&lt;font size="1"&gt;u &lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="verdana,geneva"&gt;&lt;font size="1"&gt;and &lt;/font&gt;&lt;i&gt;&lt;font size="1"&gt;Tuv &lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="verdana,geneva"&gt;&lt;font size="1"&gt;l&amp;#39;ensemble des triangles&amp;nbsp;qui contiennent à la fois&amp;nbsp;&lt;/font&gt;&lt;i&gt;&lt;font size="1"&gt;u et&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="verdana,geneva"&gt;&lt;font size="1"&gt; &lt;/font&gt;&lt;i&gt;&lt;font size="1"&gt;v &lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1"&gt;&lt;font face="verdana,geneva"&gt;&lt;em&gt;(image extraite de l&amp;#39;article de Stan Melax avec l&amp;#39;aimable autorisation de l&amp;#39;auteur)&lt;/em&gt;&lt;font size="1"&gt;.&lt;/font&gt;&lt;font size="2"&gt;&amp;nbsp;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;Le principe peut se résumer ainsi : on parcourt tous les triangles connectés à &lt;em&gt;u&lt;/em&gt;. Il est nécessaire,&amp;nbsp;pour chacun de ces triangles, d&amp;#39;analyser le cout de la fusion avec&amp;nbsp;&lt;em&gt;v&lt;/em&gt;. On calcul celà&amp;nbsp;en analysant l&amp;#39;impacte de&amp;nbsp;la transformation des triangles afin de déterminer l&amp;#39;ampleur de la modification. Il y&amp;#39;a deux types de modifications : Soit les triangles sont connectés uniquement à u, et, dans ce cas ils sont modifiés pour être reliés à v, soit les triangles sont liés à u et v à la fois et doivent etre supprimés du modèle. La figure A et B au début de cette annexe illustre celà parfaitement.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;strong&gt;&lt;font face="verdana,geneva" size="4"&gt;Passons aux choses sérieuses&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;Pour l&amp;#39;heure la classe &lt;font face="Courier New" color="#008080"&gt;ProgressiveMesh&lt;/font&gt; que vous pouvez reprendre est industrialisable mais est encore améliorable : &lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;Il reste à&amp;nbsp;associer un poid à chaque vertex pour la transformation. &lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;A réaliser un tris sur la&amp;nbsp;liste de vertices pour classer par ordre de coût de transformation.&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;A réaliser des méthodes d&amp;#39;optimisation&amp;nbsp;comme dans la classe Mesh de Direct3DX&amp;nbsp;(fusionner les vertices qui sont assez proches pour ne faire qu&amp;#39;un).&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;/font&gt;Passons maintenant au code.&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;Celui-ci se trouve à l&amp;#39;intérieur d&amp;#39;une DLL nommée ArcaneEngine.Objects.&amp;nbsp;Deux types de données&amp;nbsp;nous interesse&amp;nbsp;:&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol&gt;
&lt;li class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;font face="Courier New" color="#008080"&gt;ProgressiveMesh&amp;lt;T&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/li&gt;
&lt;li class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="COLOR:teal;"&gt;&lt;font face="Courier New"&gt;Resolution&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;La création d&amp;#39;un mesh progressif et son affichage se fait en trois étapes.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;Tout d&amp;#39;abord la création de l&amp;#39;objet (étape pouvant être asynchrone) en passant au constructeur la liste des vertices qui composent le mesh, la liste des indices pour relier les vertices et enfin les poids associés aux vertices (un tableau de booléens pour l&amp;#39;heure)&amp;nbsp;:&lt;/font&gt;&lt;/p&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font face="courier new,courier"&gt;&lt;font color="#008080" size="2"&gt;ProgressiveMesh&lt;/font&gt;&lt;font size="2"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#008080" size="2"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:teal;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;mso-ansi-language:FR;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:FR;mso-bidi-language:AR-SA;"&gt;VertexPositionNormalTexture&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&amp;gt; mesh = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#008080" size="2"&gt;ProgressiveMesh&lt;/font&gt;&lt;font size="2"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#008080" size="2"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:teal;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;mso-ansi-language:FR;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:FR;mso-bidi-language:AR-SA;"&gt;VertexPositionNormalTexture&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&amp;gt;(vertices, ints, null);&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;Puis le chargement des buffers 3D lorsque le device a été créé&lt;/font&gt;&lt;/p&gt;&lt;font face="Times New Roman"&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;mesh.Load(&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="courier new,courier"&gt;&lt;font color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;font size="2"&gt;._device);&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;Enfin l&amp;#39;affichage du mesh&lt;/font&gt;&lt;/p&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font face="courier new,courier" color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="courier new,courier"&gt;.mesh.Render();&lt;/font&gt; &lt;/p&gt;&lt;/font&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;La gestion des MRM est beaucoup plus simple qu&amp;#39;avec la classe de Direct3DX. &lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;Revenons sur la généricité de la classe. Le développeur doit indiquer un argument de spécificité a la classe générique &lt;font face="Courier New" color="#008080"&gt;ProgressiveMesh&lt;/font&gt; (ici &lt;span style="FONT-SIZE:10pt;COLOR:teal;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;mso-ansi-language:FR;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:FR;mso-bidi-language:AR-SA;"&gt;VertexPositionNormalTexture&lt;/span&gt;). Il s&amp;#39;agit en fait de la classe utilisée pour le type de vertices.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;A partir de cet argument, la classe pourra extraire les positions de chaque vertices et, avec les indices, calculer les différentes résolutions. Elle pourra en outre extraire le format des vertices pour l&amp;#39;affichage, elle pourra aussi renvoyer à l&amp;#39;utilisateur pour chaque resolution les buffers et array de vertices actuellement affichés.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;Pour changer la résolution deux choix. Soit vous utilisez la propriété &lt;em&gt;NumberOfVertices&lt;/em&gt; pour indiquer directement le nombre de vertices a afficher. Soit vous utilisez la property &lt;em&gt;Resolution&lt;/em&gt; en donnant un membre de l&amp;#39;énumération :&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&amp;nbsp;&lt;/p&gt;&lt;font face="Times New Roman"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;mso-ansi-language:EN-GB;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;enum&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Resolution&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;summary&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;No resolution : no mesh rendered.&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/para&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;None = 0,&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;summary&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;No resolution : no mesh rendered.&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/para&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Dynamic = -1,&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;summary&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;Ten percents of the mesh&amp;#39;s vertices used to render it.&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/para&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Lowest = 10,&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;summary&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;Twenty five percents of the mesh&amp;#39;s vertices used to render it.&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/para&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Low = 25,&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;summary&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;Fivety percents of the mesh&amp;#39;s vertices used to render it.&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/para&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Medium = 50,&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;summary&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;Seventy five percents of the mesh&amp;#39;s vertices used to render it.&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/para&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;High = 75,&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;summary&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;One hundred percents of the mesh&amp;#39;s vertices used to render it.&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/para&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;remarks&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;Full vertices are used.&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/remarks&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Full = 100&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt; 
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;Le changement de la résolutiond&amp;#39;un mesh demande un leger temps de calcul à priori invisible à l&amp;#39;écran.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;Nous n&amp;#39;analyserons pas ici le code qui reste assez simple. A l&amp;#39;intérieur de la classe &lt;font face="Courier New" color="#008080"&gt;ProgressiveMesh&lt;/font&gt;&amp;nbsp;se trouve la region &amp;quot;&lt;font size="2"&gt;Multi resolution computing&lt;/font&gt;&amp;quot;&amp;nbsp; qui contient les méthodes liées au calcul de la resolution. La méthode&amp;nbsp;&lt;font size="2"&gt;ComputeEdgeCostAtVertex détermine le cout de la fusion d&amp;#39;un vertex, la méthode &lt;font size="2"&gt;Collapse réalise cette fusion et &lt;font size="2"&gt;MinimumCostEdge permet de trouver le vertex ayant le coût le plus bas pour une fusion. A noter que la classe &lt;font face="Courier New" color="#008080"&gt;ProgressiveMesh&lt;/font&gt;&amp;nbsp;possède deux types internes : Vertex et Triangle qui permettent d&amp;#39;opérer sur les vertices et les faces plus facilement.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;font face="verdana,geneva"&gt;Une analyse du code par vos propres moyens devrait eclaircir tous les points encore obscurs à vos yeux.&amp;nbsp; N&amp;#39;hesitez pas a poster des commentaires pour toutes questions.&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;A l&amp;#39;intérieur de la classe &lt;font face="Courier New" color="#008080"&gt;Game1&lt;/font&gt; se trouve le code qui montre comment utiliser notre classe &lt;font color="#008080"&gt;&lt;font face="Courier New"&gt;ProgressiveMesh&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt;. L&amp;#39;application principale contient en outre un ensemble de classes statiques &lt;font face="verdana,geneva"&gt;qui contiennent des ensembles de vertices et d&amp;#39;indices permettant de charger un MRM. Elles héritent toutes de l&amp;#39;interface IData qui permet une utilisation générique de ces dernières.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva" size="4"&gt;&lt;strong&gt;Les liens&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;&amp;nbsp; &lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;font face="verdana,geneva"&gt;Evidemment en&lt;/font&gt; première place le site de Stan Melax&amp;nbsp;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;a href="http://www.melax.com/polychop/"&gt;&lt;font face="verdana,geneva"&gt;http://www.melax.com/polychop/&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;Ensuite le site de Hugues Hoppes&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;a href="http://research.microsoft.com/~hoppe/"&gt;&lt;font face="verdana,geneva"&gt;http://research.microsoft.com/~hoppe/&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;(déprimant parcequ&amp;#39;on voit qu&amp;#39;il fait des trucs super, mais on comprend rien)&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;a href="http://www.aisto.com/roeder/dotnet/"&gt;&lt;font face="verdana,geneva"&gt;&lt;/font&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;font face="verdana,geneva" size="4"&gt;&lt;strong&gt;Sample&amp;nbsp;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;font face="verdana,geneva"&gt;
&lt;p&gt;&lt;img title="telecharger" style="WIDTH:24px;HEIGHT:24px;" height="24" alt="telecharger" src="http://www.adcworks.com/images/content/icon-download.gif" width="24" align="middle" /&gt;&lt;font style="BACKGROUND-COLOR:#ffff00;" face="Verdana"&gt;&amp;nbsp;Vous pouvez télécharger les trois&amp;nbsp;samples &lt;/font&gt;&lt;a class="" href="http://msmvps.com/files/folders/valentin/entry757367.aspx" target="_blank"&gt;&lt;font style="BACKGROUND-COLOR:#ffff00;" face="Verdana" color="#006ff7"&gt;ici&lt;/font&gt;&lt;/a&gt;&lt;font face="Verdana"&gt;&lt;font style="BACKGROUND-COLOR:#ffff00;" color="#000000"&gt;.&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;strong&gt;&lt;font face="verdana,geneva" size="4"&gt;Conclusion&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;L&amp;#39;application au final se présente ainsi :&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;img style="WIDTH:604px;HEIGHT:474px;" height="474" src="http://msmvps.com/photos/valentin/images/757272/original.aspx" width="604" align="absMiddle" border="2" alt="" /&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;L&amp;#39;interface graphique est rudimentaire mais nous l&amp;#39;améliorerons avec l&amp;#39;arrivée de l&amp;#39;annexe portant sur l&amp;#39;UI. Les touches Page Haut et Page Bas permettent de passer d&amp;#39;une résolution à une autre. Les touches + et - permettent de modifier la resolution plus finnement en changeant le nombre de vertices affichés. La souris permet de déplacer la camera autour du mesh affiché. Enfin la touche espace permet de changer de modèle. L&amp;#39;application affiche&amp;nbsp;6 modèles :&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;Beethoven&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;Fourmi&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;Un terrain&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;Porsche&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;Vache&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;Lapin&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;A noter que le modèle terrain sert à voir l&amp;#39;utilité du tableau de poids passé au constructeur. Sans ce poid, la portion de terrain &amp;quot;s&amp;#39;arrondit&amp;quot; au fil de la réduction de résolution en perdant ainsi tout son aspect. Notez de même que le modèle fourmi montre les limites de notre système sur les formes 3D disposant de peu de vertices ...&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;A bientôt sur ce Blog !&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;Valentin Billotte&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;N&amp;#39;hesitez surtout pas à me faire part de vos incomprehensions afin de pemettre d&amp;#39;améliorer ce cours pour le rendre plus accessible aux autres (trèèèès important)!&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;img title="telecharger" style="WIDTH:24px;HEIGHT:24px;" height="24" alt="telecharger" src="http://www.adcworks.com/images/content/icon-download.gif" width="24" align="middle" /&gt;&lt;font style="BACKGROUND-COLOR:#ffff00;" face="Verdana"&gt;&amp;nbsp;Vous pouvez télécharger les trois&amp;nbsp;samples &lt;/font&gt;&lt;a class="" href="http://msmvps.com/files/folders/valentin/entry757367.aspx" target="_blank"&gt;&lt;font style="BACKGROUND-COLOR:#ffff00;" face="Verdana" color="#006ff7"&gt;ici&lt;/font&gt;&lt;/a&gt;&lt;font face="Verdana"&gt;&lt;font style="BACKGROUND-COLOR:#ffff00;" color="#000000"&gt;.&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;img style="WIDTH:24px;HEIGHT:24px;" height="24" src="http://msmvps.com/photos/valentin/images/887626/original.aspx" width="24" align="absMiddle" border="1" alt="" /&gt;&lt;font style="BACKGROUND-COLOR:#ffff00;"&gt;Retourner au &lt;/font&gt;&lt;a class="" href="http://msmvps.com/blogs/valentin/archive/2007/03/30/tutoriaux-xna-sommaire-g-n-ral.aspx"&gt;&lt;font style="BACKGROUND-COLOR:#ffff00;"&gt;sommaire des cours&lt;/font&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Annexe : Billboard en Xna</title><link>http://msmvps.com/blogs/valentin/archive/2007/03/09/annexe-billboard-en-xna.aspx</link><pubDate>Fri, 09 Mar 2007 06:00:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:659693</guid><dc:creator>valentin</dc:creator><description>&lt;p&gt;&lt;em&gt;&lt;img style="WIDTH:24px;HEIGHT:24px;" height="24" src="http://msmvps.com/photos/valentin/images/887626/original.aspx" width="24" align="absMiddle" border="1" alt="" /&gt;&lt;/em&gt;&lt;font style="BACKGROUND-COLOR:#ffff00;"&gt;Retourner au &lt;/font&gt;&lt;a class="" href="http://msmvps.com/blogs/valentin/archive/2007/03/30/tutoriaux-xna-sommaire-g-n-ral.aspx"&gt;&lt;font style="BACKGROUND-COLOR:#ffff00;"&gt;sommaire des cours&lt;/font&gt;&lt;/a&gt;&amp;nbsp;&lt;em&gt;&amp;nbsp;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Le billboard est un élément essentiel pour décharger le GPU de l&amp;#39;affichages de formes complexes.&amp;nbsp;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Un billboard (en français&amp;nbsp;&amp;quot;panneau&amp;quot;) est un plan&amp;nbsp;simulant un objet 3D. Le principe des billboards est de toujours faire face à la caméra : ainsi quelque soit l&amp;#39;endroit d&amp;#39;où on les regarde, ils donneront toujours&amp;nbsp; l&amp;#39;illusion que l&amp;#39;image qui les texture est une forme 3D.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;L&amp;#39;avantage est de réduire énormément la complexité de la scène, puisque l&amp;#39;on va pouvoir remplacer des objets potentiellement complexes par deux simples triangles texturés formant le carré (ou plan). La texture bien entendu doit être de qualité et si possible faire partie d&amp;#39;une animation.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Les billboards sont utilisés pour la végétation, les explosions, les effets météorologique (nuages, ...), ou encore des objets très lointains pour lesquels on ne pourra que très difficilement déceler le trucage.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Jusqu&amp;#39;à présent avec DirectX pour créer un billboard on devait travailler sur la matrice de vue ou créer de toute pièce une matrice de transformation&amp;nbsp;à partir de la position de la caméra. En Xna tout est plus simple, il nous suffit d&amp;#39;appeller une méthode&lt;/em&gt;&lt;font color="#000000"&gt;&lt;em&gt; statique de la classe &lt;/em&gt;&lt;font face="Courier New"&gt;&lt;span style="COLOR:teal;"&gt;Matrix&lt;/span&gt;&lt;/font&gt;&lt;em&gt;&amp;nbsp;nommée&lt;/em&gt;&lt;/font&gt;&lt;font color="#cc0000"&gt;&lt;em&gt; &lt;/em&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;font face="Courier New"&gt;CreateBillboard&lt;/font&gt;&lt;em&gt;.&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Nous verrons trois samples pour mettre en évidence l&amp;#39;utilité de cette technique.Un sample de présentation qui va montrer de manière explicite le billboard en action, un sample qui mettra en évidence l&amp;#39;effet réaliste que produit le billboarding (nous repredrons un sample du SDK Direct) et enfin un sample identique au précédent mais avec des animations.&lt;/em&gt;&lt;/p&gt;&lt;em&gt;&lt;em&gt;
&lt;p&gt;&lt;em&gt;&lt;/em&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;font style="BACKGROUND-COLOR:#ffff00;"&gt;&lt;strong&gt;Vous devez avoir lu les tutoriaux Xna jusqu&amp;#39;au chapitre 8 pour comprendre ce cours.&lt;/strong&gt;&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;&lt;/em&gt;
&lt;p&gt;&lt;em&gt;&lt;font style="BACKGROUND-COLOR:#ffff00;"&gt;&lt;strong&gt;Les billboards utilisés ici exploitent la méthode CreateBillboard de la classe Matrix et n&amp;#39;utilisent en rien les fichiers effets.&lt;/strong&gt;&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;&lt;/em&gt;&lt;em&gt;&lt;/em&gt;
&lt;p&gt;&lt;font size="4"&gt;&lt;strong&gt;Premier sample&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;Dans ce premier sample nous allons afficher deux objets : un cube tout d&amp;#39;abord dont la taille sera augmentée de telle sorte que la camera se trouvera à l&amp;#39;intérieur. Ses parois serviront alors de référence lorsque nous déplacerons la caméra à l&amp;#39;aide de la souris. Ensuite un objet billboard. Il s&amp;#39;agira tout simplement d&amp;#39;une face carrée composée de deux triangles. En &amp;quot;marche&amp;quot; normale, ce billboard sera desactivé et tournera de manière solidaire avec le cube lorsque la caméra sera déplacée. Mais lorsqu&amp;#39;on appuyera sur la touche &amp;quot;Espace&amp;quot;, le billboard présentera toujours sa face texturée à la caméra, et ceci, quelque soit la position de cette dernière.&lt;/p&gt;
&lt;p&gt;&lt;font size="3"&gt;&lt;strong&gt;La classe Billboard&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;Sur le plan technique 3D notre classe sera relativement simple. Elle n&amp;#39;aura pour tâche que d&amp;#39;afficher un simple plan 3D composé de deux triangles isocèles rectangles. Le plan sera texturé et de couleur paramétrable. La classe disposera d&amp;#39;une méthode Update permettant au billboard de se repositionner par rapport à la position de la caméra, par rapport au point vers lequel la caméra regarde et enfin par rapport à la normale de la caméra. Enfin une propriété sera ajoutée -pour les besoins de l&amp;#39;exemple-&amp;nbsp;permettant d&amp;#39;activer ou de desactiver le billboard. Terminons en ajoutant qu&amp;#39;elle hérite de la classe mère &lt;span style="COLOR:teal;"&gt;&lt;font face="Courier New"&gt;TransformBase&lt;/font&gt;&lt;/span&gt;&amp;nbsp;qui a été présentée &lt;a class="" href="http://msmvps.com/blogs/valentin/archive/2007/02/05/azrr.aspx" target="_blank"&gt;ici&lt;/a&gt;. 
&lt;p&gt;Analysons son code :&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;///&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;lt;summary&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;///&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;Defines a billboard object.&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;lt;/para&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;///&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;lt;/summary&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;///&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;lt;remarks&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;A billboard object always present its face in front of the camera.&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;lt;/remarks&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;public&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;class&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Billboard&lt;/span&gt;&lt;font color="#000000"&gt; : &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;TransformBase&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;{&lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;GraphicsDevice&lt;/span&gt;&lt;font color="#000000"&gt; _device;&lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;VertexBuffer&lt;/span&gt;&lt;font color="#000000"&gt; _vertexBuffer = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;null&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Color&lt;/span&gt;&lt;font color="#000000"&gt; _color = &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Color&lt;/span&gt;&lt;font color="#000000"&gt;.TransparentWhite;&lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Texture2D&lt;/span&gt;&lt;font color="#000000"&gt; _texture;&lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;BasicEffect&lt;/span&gt;&lt;font color="#000000"&gt; _effect;&lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;bool&lt;/span&gt;&lt;font color="#000000"&gt; _activated;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Matrix&lt;/span&gt;&lt;font color="#000000"&gt; _billboardMatrix = &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Matrix&lt;/span&gt;&lt;font color="#000000"&gt;.Identity;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;Gets or sets a value indicating if the biilboard is activated.&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/para&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;bool&lt;/span&gt;&lt;font color="#000000"&gt; Activated&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;get&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;return&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._activated;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;set&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._activated = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;value&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;Gets or sets the cube&amp;#39;s texture.&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/para&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Texture2D&lt;/span&gt;&lt;font color="#000000"&gt; Texture&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;get&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;return&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._texture;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;set&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._texture = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;value&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._effect.Texture = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;value&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;Gets the cube&amp;#39;s effect.&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/para&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;BasicEffect&lt;/span&gt;&lt;font color="#000000"&gt; Effect&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;get&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;return&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._effect;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;Gets or sets the Cube&amp;#39;s color.&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/para&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Color&lt;/span&gt;&lt;font color="#000000"&gt; Color&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;get&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;return&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._color;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;set&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._color = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;value&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;void&lt;/span&gt;&lt;font color="#000000"&gt; Load(&lt;/font&gt;&lt;span style="COLOR:teal;"&gt;GraphicsDevice&lt;/span&gt;&lt;font color="#000000"&gt; device)&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device = device;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.InitializeVertices();&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.InitializeEffect();&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;void&lt;/span&gt;&lt;font color="#000000"&gt; InitializeEffect()&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._effect = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;BasicEffect&lt;/span&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device, &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;null&lt;/span&gt;&lt;font color="#000000"&gt;);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._effect.VertexColorEnabled = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;true&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._effect.TextureEnabled = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;true&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;void&lt;/span&gt;&lt;font color="#000000"&gt; InitializeVertices()&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:teal;"&gt;VertexPositionColorTexture&lt;/span&gt;&lt;font color="#000000"&gt;[] vertices = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;VertexPositionColorTexture&lt;/span&gt;&lt;font color="#000000"&gt;[4];&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[0].Position = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;(-100.5f, 100.5f, 0);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[0].Color = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Color;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[0].TextureCoordinate = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;&lt;font color="#000000"&gt;(0, 0);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[1].Position = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;(100.5f, 100.5f, 0);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[1].Color = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Color;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[1].TextureCoordinate = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;&lt;font color="#000000"&gt;(1, 0);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[2].Position = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;(100.5f, -100.5f, 0);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[2].Color = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Color;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[2].TextureCoordinate = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;&lt;font color="#000000"&gt;(1, 1);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[3].Position = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;(-100.5f, -100.5f, 0);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[3].Color = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Color;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[3].TextureCoordinate = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;&lt;font color="#000000"&gt;(0, 1);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._vertexBuffer = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;VertexBuffer&lt;/span&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device,&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;typeof&lt;/span&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;span style="COLOR:teal;"&gt;VertexPositionColorTexture&lt;/span&gt;&lt;font color="#000000"&gt;),&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;4,&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:teal;"&gt;ResourceUsage&lt;/span&gt;&lt;font color="#000000"&gt;.WriteOnly,&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:teal;"&gt;ResourceManagementMode&lt;/span&gt;&lt;font color="#000000"&gt;.Automatic);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._vertexBuffer.SetData(vertices);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;Render the cube on the device.&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/para&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;void&lt;/span&gt;&lt;font color="#000000"&gt; Render()&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device.RenderState.CullMode = &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;CullMode&lt;/span&gt;&lt;font color="#000000"&gt;.None;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._effect.Begin();&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._effect.World = (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._activated ? &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._billboardMatrix : &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Matrix&lt;/span&gt;&lt;font color="#000000"&gt;.Identity)*&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Transform;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;foreach&lt;/span&gt;&lt;font color="#000000"&gt; (&lt;/font&gt;&lt;span style="COLOR:teal;"&gt;EffectPass&lt;/span&gt;&lt;font color="#000000"&gt; pass &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;in&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._effect.CurrentTechnique.Passes)&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;pass.Begin();&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device.Textures[0] = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Texture;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device.Vertices[0].SetSource(&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._vertexBuffer, 0, &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;VertexPositionColorTexture&lt;/span&gt;&lt;font color="#000000"&gt;.SizeInBytes);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device.VertexDeclaration = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;VertexDeclaration&lt;/span&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device, &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;VertexPositionColorTexture&lt;/span&gt;&lt;font color="#000000"&gt;.VertexElements);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device.DrawPrimitives(&lt;/font&gt;&lt;span style="COLOR:teal;"&gt;PrimitiveType&lt;/span&gt;&lt;font color="#000000"&gt;.TriangleFan, 0, 2);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;pass.End();&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._effect.End();&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device.RenderState.CullMode = &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;CullMode&lt;/span&gt;&lt;font color="#000000"&gt;.CullClockwiseFace;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;void&lt;/span&gt;&lt;font color="#000000"&gt; Update(&lt;/font&gt;&lt;span style="COLOR:teal;"&gt;GameTime&lt;/span&gt;&lt;font color="#000000"&gt; gameTime, &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt; cameraPosition, &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt; cameraLookAt, &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt; cameraUpVector)&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;_billboardMatrix = &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Matrix&lt;/span&gt;&lt;font color="#000000"&gt;.CreateBillboard(&lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;.Zero, &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Position - cameraPosition, cameraUpVector, cameraLookAt);&lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/span&gt; 
&lt;p&gt;Aucune réelle difficulté pour comprendre ce code. Seules deux instructions seront portées à notre attention. La première se trouve dans la méthode Update :&lt;/p&gt;&amp;nbsp;&lt;font face="Courier New"&gt;_billboardMatrix = &lt;span style="COLOR:teal;"&gt;Matrix&lt;/span&gt;.CreateBillboard(&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;.Zero, &lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.Position-cameraPosition, cameraUpVector, cameraLookAt);&lt;/font&gt; 
&lt;p&gt;&amp;nbsp;Elle charge dans la variable &lt;font face="Courier New"&gt;_billboardMatrix&amp;nbsp;&lt;/font&gt;&amp;nbsp;une matrice de billboard renvoyée par la méthode &lt;font face="Courier New"&gt;&lt;span style="COLOR:teal;"&gt;Matrix&lt;/span&gt;.CreateBillboard&lt;/font&gt;. Comment savoir vers où diriger la face du billboard ? En y reflechissant bien, nous n&amp;#39;avons besoin de connaître que quatre propriétés : &lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;div&gt;La position de l&amp;#39;objet.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;La position de la caméra.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Le point vers lequel regarde la caméra&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;La normale de la caméra.&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;C&amp;#39;est justement ce que demande cette méthode. Pour l&amp;#39;heure (10/03/07)&amp;nbsp;elle semble être bugguée. Normalement on lui passe la position de l&amp;#39;objet courant en premier paramètre, la position de la caméra en second paramètre, la normale de la caméra en avant dernier paramètre et enfin le point vers lequel la caméra regarde. Faire cela ne fonctionne que si votre objet se trouve en (0, 0, 0). Pas terrible... Si l&amp;#39;objet se trouve ailleur vous vous retrouvez avec un décallage équivalent à deux fois la distance de l&amp;#39;objet à l&amp;#39;origine.&amp;nbsp;L&amp;#39;astuce est de donner la valeur &lt;font face="Courier New"&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;.Zero&lt;/font&gt;&amp;nbsp;en première paramètre et la soustraction de la poistion de l&amp;#39;objet par la position de la caméra (&lt;font face="Courier New"&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.Position-cameraPosition&lt;/font&gt;)&amp;nbsp;en second.&lt;/p&gt;
&lt;p&gt;&lt;font style="BACKGROUND-COLOR:#ffff00;"&gt;Si ce bug a été corrigé à l&amp;#39;heure où vous lisez ces lignes, ou bien si c&amp;#39;est moi qui suis bugué (pas trop le temps de vérifier en ce moment :) ) merci de me l&amp;#39;&lt;/font&gt;&lt;a class="" href="http://msmvps.com/blogs/valentin/contact.aspx" target="_blank"&gt;&lt;font style="BACKGROUND-COLOR:#ffff00;"&gt;indiquer&lt;/font&gt;&lt;/a&gt;&lt;font style="BACKGROUND-COLOR:#ffff00;"&gt;.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;La seconde instruction se trouve dans la méthode Render :&lt;/p&gt;&lt;font face="Courier New"&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._effect.World = (&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._activated ? &lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._billboardMatrix : &lt;span style="COLOR:teal;"&gt;Matrix&lt;/span&gt;.Identity)*&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.Transform;&lt;/font&gt; 
&lt;p&gt;Ici, si le billboarding est activé nous affectons à la matrice &lt;font face="Courier New"&gt;World&lt;/font&gt;&amp;nbsp;le résultat de la multplication de&amp;nbsp;la matrice de &lt;font face="Courier New"&gt;_billboardMatrix&lt;/font&gt; par la matrice de transformation (position de l&amp;#39;objet, taille, rotation). Sinon &lt;font face="Courier New"&gt;World&lt;/font&gt; prend pour valeur le contenu de &lt;font face="Courier New"&gt;Transform&lt;/font&gt;.&lt;/p&gt;
&lt;p&gt;Le reste du code est assez simple pour être assimilé et compris sans être présenté ici. Si vous exécutez l&amp;#39;application vous verrez apparaitre les parois de notre cube et le billboard au centre de celui-ci. En déplaçant la souris sans appuyer sur Enter un affichage similaire à l&amp;#39;animation suivante se produit :&lt;/p&gt;
&lt;p&gt;&lt;img title="Pas de billboard activé, le billboard tourne de manière solidaire avec le cube." style="WIDTH:400px;HEIGHT:400px;" height="400" alt="Pas de billboard activé, le billboard tourne de manière solidaire avec le cube." src="http://msmvps.com/photos/valentin/images/671933/original.aspx" width="400" align="absMiddle" border="2" /&gt;&lt;/p&gt;
&lt;p&gt;On remarque que le billboard au centre du cube tourne de manière solidaire avec le cube et se présente donc sous une infinité d&amp;#39;angles à la caméra. Si vous appuyez sur Espace, l&amp;#39;affichage change comme ceci :&lt;/p&gt;
&lt;p&gt;&lt;img title="Le billboard activé reste toujours face à la caméra" style="WIDTH:400px;HEIGHT:400px;" height="400" alt="Le billboard activé reste toujours face à la caméra" src="http://msmvps.com/photos/valentin/images/672026/original.aspx" width="400" align="absMiddle" border="2" /&gt;&lt;/p&gt;
&lt;p&gt;Cette fois, le billboard reste face à la caméra quelque soit la position de cette dernière.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Si cet exemple illustre parfaitement le principe des billboards, il ne met pas en evidence de manière flagrante leur avantage. Ce sera l&amp;#39;objet de notre second Sample.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;font size="4"&gt;&lt;strong&gt;Second sample&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;Un exemple bien plus ludique nous attend. Une foret va être affichée sur un territoire valonné. Chaque arbre sera en fait un billboard et donnera l&amp;#39;illusion d&amp;#39;être un modèle 3D complexe. Aucune action utilisateur ici, le développeur admirera juste le rendu (ce qui est déjà très bien ...).&lt;/p&gt;
&lt;p&gt;&lt;font size="3"&gt;&lt;strong&gt;Le code&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;Il faut, pour bien comprendre les effets de transparences utilisés ici, avoir lu le &lt;a class="" href="http://msmvps.com/blogs/valentin/archive/2007/02/12/xna-tutorial-8-les-textures.aspx" target="_blank"&gt;chapitre 8&lt;/a&gt; jusqu&amp;#39;au point portant sur les effets spéciaux et blending (inclu).&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Ici, seules deux classes ont été modifiées en profondeur, la classe &lt;span style="COLOR:teal;"&gt;&lt;font face="Courier New"&gt;Game1&lt;/font&gt;&lt;/span&gt; et la classe &lt;span style="COLOR:teal;"&gt;&lt;font face="Courier New"&gt;Region&lt;/font&gt;&lt;/span&gt;. La première va avoir pour tâche d&amp;#39;afficher X billboards texturés avec une image d&amp;#39;arbre. Elle leur donnera une position, une taille et une couleur différente.&amp;nbsp;La classe Region va simplement afficher un relief en utilisant des fonctions trigonométriques pour valonner le paysage.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Le relief&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Le relief visible dans l&amp;#39;image ci-dessous se réalise par l&amp;#39;intermédiaire d&amp;#39;une méthode retournant une altitude en fonction d&amp;#39;une abscisse X et d&amp;#39;une ordonnée Y fournies.&amp;nbsp;Le calcul se base sur les fonctions trigonométriques Cosinus et Sinus :&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;///&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;///&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; Simple function to define &amp;quot;hilliness&amp;quot; for terrain&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;///&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;public&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;static&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;float&lt;/span&gt;&lt;font color="#000000"&gt; HeightField(&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;float&lt;/span&gt;&lt;font color="#000000"&gt; x, &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;float&lt;/span&gt;&lt;font color="#000000"&gt; y)&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;return&lt;/span&gt;&lt;font color="#000000"&gt; 30 * ((&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;float&lt;/span&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Math&lt;/span&gt;&lt;font color="#000000"&gt;.Cos(x / 40 + 0.2f) * (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;float&lt;/span&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Math&lt;/span&gt;&lt;font color="#000000"&gt;.Cos(y / 35 - 0.2f) + 1.0f);&lt;/font&gt;&lt;/span&gt; 
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;
&lt;p&gt;
&lt;p&gt;Désormais, au lieu de passer la valeur 0 en profondeur Z pour chaque vertex nous donnons le résultat de cette méthode.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Les arbres&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Pour les arbres/billboards, tout se passe dans la classe &lt;span style="COLOR:teal;"&gt;&lt;font face="Courier New"&gt;Game1&lt;/font&gt;&lt;/span&gt;. Une liste générique est déclarée avec une constante indiquant le nombre d&amp;#39;arbres affichés.&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;private&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;const&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;&lt;font color="#000000"&gt; numberOfTrees = 400;&lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;private&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;List&lt;/span&gt;&lt;font color="#000000"&gt;&amp;lt;&lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Billboard&lt;/span&gt;&lt;font color="#000000"&gt;&amp;gt; trees;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt; 
&lt;p&gt;Vient ensuite l&amp;#39;initialisation de chaque arbre dans la liste.&amp;nbsp;&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;COLOR:teal;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:teal;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:teal;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;Random&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt; rand = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Random&lt;/span&gt;&lt;font color="#000000"&gt;();&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;for&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt; (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;&lt;font color="#000000"&gt; i = 0; i &amp;lt; numberOfTrees; i++)&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:teal;"&gt;Billboard&lt;/span&gt;&lt;font color="#000000"&gt; tree = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Billboard&lt;/span&gt;&lt;font color="#000000"&gt;();&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;float&lt;/span&gt;&lt;font color="#000000"&gt; size = 4 + 8 * (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;float&lt;/span&gt;&lt;font color="#000000"&gt;)rand.NextDouble();&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;tree.Resize(size, size, size);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;do&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;&lt;font color="#000000"&gt; x = rand.Next(0, 512);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;&lt;font color="#000000"&gt; y = rand.Next(0, 512);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;tree.Position = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;(x, y, &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Region&lt;/span&gt;&lt;font color="#000000"&gt;.HeightField(x, y) + size);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;while&lt;/span&gt;&lt;font color="#000000"&gt; (!IsTreePositionValid(tree.Position));&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;tree.Activated = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;true&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;&lt;font color="#000000"&gt; r = (255 - 190) + (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;&lt;font color="#000000"&gt;)(190 * (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;float&lt;/span&gt;&lt;font color="#000000"&gt;)(rand.NextDouble()));&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;&lt;font color="#000000"&gt; g = (255 - 190) + (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;&lt;font color="#000000"&gt;)(190 * (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;float&lt;/span&gt;&lt;font color="#000000"&gt;)(rand.NextDouble()));&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;&lt;font color="#000000"&gt; b = 255;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;tree.Color = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Color&lt;/span&gt;&lt;font color="#000000"&gt;((&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;byte&lt;/span&gt;&lt;font color="#000000"&gt;)r, (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;byte&lt;/span&gt;&lt;font color="#000000"&gt;)g, (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;byte&lt;/span&gt;&lt;font color="#000000"&gt;)b, 255);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;tree.Load(&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.graphics.GraphicsDevice);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;trees.Add(tree);&lt;/font&gt;&lt;/span&gt; 
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;
&lt;p&gt;Ici une taille aléatoire, une position aléatoire et une couleur aléatoire sont données à chaque arbre. La méthode &lt;font face="Courier New"&gt;IsTreePositionValid&lt;/font&gt;&amp;nbsp;vérifie simplement que les arbres sont assez espacés. A chaque mise à jour, la métrice view est rafraichie et la méthode Update de chaque arbre est appelée avec la position de la caméra, le nouveau point vers lequel elle regarde et sa normale :&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;for&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt; (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;&lt;font color="#000000"&gt; i = 0; i &amp;lt; numberOfTrees; i++)&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;trees&lt;img src="http://msmvps.com/emoticons/emotion-55.gif" alt="Idea" /&gt;.Effect.View = viewMatrix;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;trees&lt;img src="http://msmvps.com/emoticons/emotion-55.gif" alt="Idea" /&gt;.Update(gameTime, vEyePt, vLookatPt, &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;(0, 0, 1f));&lt;/font&gt;&lt;/span&gt; 
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;
&lt;p&gt;
&lt;p&gt;Notons enfin que la liste d&amp;#39;arbres est re-ordonnée à chaque Update afin d&amp;#39;afficher les arbres dans l&amp;#39;ordre de leur apparition.&lt;/p&gt;
&lt;p&gt;Le rendu final nous offre un monde possédant des arbres et de la végétation qui semble être en 3D :&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;img style="WIDTH:640px;HEIGHT:480px;" height="480" src="http://msmvps.com/photos/valentin/images/672033/original.aspx" width="640" border="2" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="WIDTH:640px;HEIGHT:480px;" height="480" src="http://msmvps.com/photos/valentin/images/678821/640x480.aspx" width="640" align="absMiddle" border="2" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="WIDTH:640px;HEIGHT:480px;" height="480" src="http://msmvps.com/photos/valentin/images/678783/640x480.aspx" width="640" align="absMiddle" border="2" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;Dernier Sample&lt;/font&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Les billboards ont aussi une autre utilisation très utile : les effets graphiques et les animations. Nous allons ici modifier notre classe billboard de façon à permettre l&amp;#39;affichage d&amp;#39;un plan animé comme celui-ci:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;img style="WIDTH:256px;HEIGHT:256px;" height="256" src="http://msmvps.com/photos/valentin/images/678879/original.aspx" width="256" align="absMiddle" border="2" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;font size="3"&gt;&lt;strong&gt;Le code&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;La classe &lt;span style="COLOR:teal;"&gt;&lt;font face="Courier New"&gt;Billboard&lt;/font&gt;&lt;/span&gt;&amp;nbsp;se présente maintenant ainsi :&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;public&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;class&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Billboard&lt;/span&gt;&lt;font color="#000000"&gt; : &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;TransformBase&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#region&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt; Private members&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;GraphicsDevice&lt;/span&gt;&lt;font color="#000000"&gt; _device;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Color&lt;/span&gt;&lt;font color="#000000"&gt; _color = &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Color&lt;/span&gt;&lt;font color="#000000"&gt;.TransparentWhite;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Texture2D&lt;/span&gt;&lt;font color="#000000"&gt; _texture;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;BasicEffect&lt;/span&gt;&lt;font color="#000000"&gt; _effect;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;bool&lt;/span&gt;&lt;font color="#000000"&gt; _activated;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Matrix&lt;/span&gt;&lt;font color="#000000"&gt; _billboardMatrix = &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Matrix&lt;/span&gt;&lt;font color="#000000"&gt;.Identity;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;&lt;font color="#000000"&gt; _animationRows;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;&lt;font color="#000000"&gt; _animationColumns;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;long&lt;/span&gt;&lt;font color="#000000"&gt; _animationFrequency;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;AnimateType&lt;/span&gt;&lt;font color="#000000"&gt; _animateType;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;List&lt;/span&gt;&lt;font color="#000000"&gt;&amp;lt;&lt;/font&gt;&lt;span style="COLOR:teal;"&gt;VertexBuffer&lt;/span&gt;&lt;font color="#000000"&gt;&amp;gt; _animations;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;VertexBuffer&lt;/span&gt;&lt;font color="#000000"&gt; _currentAnimation;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;&lt;font color="#000000"&gt; _animationIndex;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Blend&lt;/span&gt;&lt;font color="#000000"&gt; _sourceBlend;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Blend&lt;/span&gt;&lt;font color="#000000"&gt; _destinationBlend;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;double&lt;/span&gt;&lt;font color="#000000"&gt; _lastUpdate;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#endregion&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#region&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt; Properties&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;Occurs when the animation is over.&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/para&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;event&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;EventHandler&lt;/span&gt;&lt;font color="#000000"&gt; AnimationEnded;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;Gets or sets a value indicating if the biilboard is activated.&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/para&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;bool&lt;/span&gt;&lt;font color="#000000"&gt; Activated&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;get&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;return&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._activated;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;set&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._activated = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;value&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;Gets or sets the number of animations on a colum for the associated texture.&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/para&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;&lt;font color="#000000"&gt; AnimationColumns&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;get&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;return&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animationColumns;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;set&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;if&lt;/span&gt;&lt;font color="#000000"&gt; ((&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;value&lt;/span&gt;&lt;font color="#000000"&gt; &amp;lt; 0) || (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;value&lt;/span&gt;&lt;font color="#000000"&gt; &amp;gt; 16))&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;throw&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;ArgumentOutOfRangeException&lt;/span&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;span style="COLOR:maroon;"&gt;&amp;quot;AnimationColumns&amp;quot;&lt;/span&gt;&lt;font color="#000000"&gt;, &lt;/font&gt;&lt;span style="COLOR:maroon;"&gt;&amp;quot;AnimationColumns must be filled with a value between 1 and 16&amp;quot;&lt;/span&gt;&lt;font color="#000000"&gt;);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animationColumns = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;value&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;Gets or sets the animation frequency/para&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;long&lt;/span&gt;&lt;font color="#000000"&gt; AnimationFrequency&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;get&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;return&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animationFrequency;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;set&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animationFrequency = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;value&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;Gets or sets the number of animations on a row for the associated texture.&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/para&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;&lt;font color="#000000"&gt; AnimationRows&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;get&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;return&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animationRows;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;set&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;if&lt;/span&gt;&lt;font color="#000000"&gt; ((&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;value&lt;/span&gt;&lt;font color="#000000"&gt; &amp;lt; 0) || (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;value&lt;/span&gt;&lt;font color="#000000"&gt; &amp;gt; 16))&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;throw&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;ArgumentOutOfRangeException&lt;/span&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;span style="COLOR:maroon;"&gt;&amp;quot;AnimationRows&amp;quot;&lt;/span&gt;&lt;font color="#000000"&gt;, &lt;/font&gt;&lt;span style="COLOR:maroon;"&gt;&amp;quot;AnimationRows must be filled with a value between 1 and 16&amp;quot;&lt;/span&gt;&lt;font color="#000000"&gt;);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animationRows = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;value&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;Gets or sets a value indicating the type of the animation.&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/para&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;AnimateType&lt;/span&gt;&lt;font color="#000000"&gt; AnimateType&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;get&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;return&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animateType;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;set&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animateType = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;value&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;Gets or sets the Cube&amp;#39;s color.&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/para&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Color&lt;/span&gt;&lt;font color="#000000"&gt; Color&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;get&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;return&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._color;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;set&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._color = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;value&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;Gets or sets the destination blend.&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/para&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Blend&lt;/span&gt;&lt;font color="#000000"&gt; DestinationBlend&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;get&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;return&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._destinationBlend;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;set&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._destinationBlend = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;value&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;Gets the cube&amp;#39;s effect.&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/para&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;BasicEffect&lt;/span&gt;&lt;font color="#000000"&gt; Effect&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;get&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;return&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._effect;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;Gets or sets the source blend.&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/para&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Blend&lt;/span&gt;&lt;font color="#000000"&gt; SourceBlend&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;get&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;return&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._sourceBlend;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;set&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._sourceBlend = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;value&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;Gets or sets the cube&amp;#39;s texture.&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/para&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Texture2D&lt;/span&gt;&lt;font color="#000000"&gt; Texture&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;get&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;return&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._texture;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;set&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._texture = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;value&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._effect.Texture = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;value&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#endregion&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#region&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt; Constructors&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;Empty constructors (no animations).&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/para&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt;&lt;font color="#000000"&gt; Billboard()&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animationIndex = 0;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animationRows = 1;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animationColumns = 1;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animateType = &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;AnimateType&lt;/span&gt;&lt;font color="#000000"&gt;.None;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animations = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;List&lt;/span&gt;&lt;font color="#000000"&gt;&amp;lt;&lt;/font&gt;&lt;span style="COLOR:teal;"&gt;VertexBuffer&lt;/span&gt;&lt;font color="#000000"&gt;&amp;gt;();&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;Instanciate a new Billboard with an animation.&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/para&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;param name=&amp;quot;animationRows&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;param name=&amp;quot;animationColumns&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;param name=&amp;quot;animationFrequency&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt;&lt;font color="#000000"&gt; Billboard(&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;&lt;font color="#000000"&gt; animationRows, &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;&lt;font color="#000000"&gt; animationColumns, &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;long&lt;/span&gt;&lt;font color="#000000"&gt; animationFrequency) : &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;()&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animateType = &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;AnimateType&lt;/span&gt;&lt;font color="#000000"&gt;.Loop;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animationColumns = animationColumns;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animationFrequency = animationFrequency;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animationRows = animationRows;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#endregion&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#region&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt; Initialization&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;void&lt;/span&gt;&lt;font color="#000000"&gt; Load(&lt;/font&gt;&lt;span style="COLOR:teal;"&gt;GraphicsDevice&lt;/span&gt;&lt;font color="#000000"&gt; device)&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device = device;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.InitializeVertices();&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.InitializeEffect();&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;void&lt;/span&gt;&lt;font color="#000000"&gt; InitializeEffect()&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._effect = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;BasicEffect&lt;/span&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device, &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;null&lt;/span&gt;&lt;font color="#000000"&gt;);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._effect.VertexColorEnabled = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;true&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._effect.TextureEnabled = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;true&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;void&lt;/span&gt;&lt;font color="#000000"&gt; InitializeVertices()&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animations.Clear();&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;float&lt;/span&gt;&lt;font color="#000000"&gt; animationSizeU = (1f / &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.AnimationColumns);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;float&lt;/span&gt;&lt;font color="#000000"&gt; animationSizeV = (1f / &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.AnimationRows);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;for&lt;/span&gt;&lt;font color="#000000"&gt; (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;&lt;font color="#000000"&gt; column = 0; column &amp;lt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.AnimationColumns; column++)&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;for&lt;/span&gt;&lt;font color="#000000"&gt; (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;&lt;font color="#000000"&gt; row = 0; row &amp;lt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.AnimationRows; row++)&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:teal;"&gt;VertexBuffer&lt;/span&gt;&lt;font color="#000000"&gt; vertexBuffer = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;null&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:teal;"&gt;VertexPositionColorTexture&lt;/span&gt;&lt;font color="#000000"&gt;[] vertices = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;VertexPositionColorTexture&lt;/span&gt;&lt;font color="#000000"&gt;[4];&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;float&lt;/span&gt;&lt;font color="#000000"&gt; tu = 0 + animationSizeU * column;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;float&lt;/span&gt;&lt;font color="#000000"&gt; tv = 0 + animationSizeV * row;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[0].Position = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;(-1f, 1f, 0);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[0].Color = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Color;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[0].TextureCoordinate = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;&lt;font color="#000000"&gt;(tu, tv);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[1].Position = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;(1f, 1f, 0);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;vertices[1].Color = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Color;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[1].TextureCoordinate = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;&lt;font color="#000000"&gt;(tu + animationSizeU, tv);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[2].Position = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;(1f, -1f, 0);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[2].Color = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Color;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[2].TextureCoordinate = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;&lt;font color="#000000"&gt;(tu + animationSizeU, tv + animationSizeV);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[3].Position = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;(-1f, -1f, 0);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[3].Color = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Color;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[3].TextureCoordinate = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;&lt;font color="#000000"&gt;(tu, tv + animationSizeV);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertexBuffer = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;VertexBuffer&lt;/span&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device,&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;typeof&lt;/span&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;span style="COLOR:teal;"&gt;VertexPositionColorTexture&lt;/span&gt;&lt;font color="#000000"&gt;),&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;4,&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:teal;"&gt;ResourceUsage&lt;/span&gt;&lt;font color="#000000"&gt;.WriteOnly,&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:teal;"&gt;ResourceManagementMode&lt;/span&gt;&lt;font color="#000000"&gt;.Automatic);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertexBuffer.SetData(vertices);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animations.Add(vertexBuffer);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._currentAnimation = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animations[0];&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#endregion&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#region&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt; Render&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;Render the cube on the device.&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/para&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;void&lt;/span&gt;&lt;font color="#000000"&gt; Render()&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._effect.Begin();&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._effect.World = (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._activated ? &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._billboardMatrix : &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Matrix&lt;/span&gt;&lt;font color="#000000"&gt;.Identity) * &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Transform;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;foreach&lt;/span&gt;&lt;font color="#000000"&gt; (&lt;/font&gt;&lt;span style="COLOR:teal;"&gt;EffectPass&lt;/span&gt;&lt;font color="#000000"&gt; pass &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;in&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._effect.CurrentTechnique.Passes)&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;pass.Begin();&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device.RenderState.AlphaBlendEnable = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;true&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device.RenderState.SourceBlend = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.SourceBlend;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device.RenderState.DestinationBlend = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.DestinationBlend;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;if&lt;/span&gt;&lt;font color="#000000"&gt; (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device.GraphicsDeviceCapabilities.AlphaCompareCapabilities.SupportsGreaterEqual)&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device.RenderState.AlphaTestEnable = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;true&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device.RenderState.ReferenceAlpha = 0x08;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device.RenderState.AlphaFunction = &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;CompareFunction&lt;/span&gt;&lt;font color="#000000"&gt;.Greater;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device.Textures[0] = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Texture;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device.Vertices[0].SetSource(&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._currentAnimation, 0, &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;VertexPositionColorTexture&lt;/span&gt;&lt;font color="#000000"&gt;.SizeInBytes);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device.VertexDeclaration = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;VertexDeclaration&lt;/span&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device, &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;VertexPositionColorTexture&lt;/span&gt;&lt;font color="#000000"&gt;.VertexElements);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device.DrawPrimitives(&lt;/font&gt;&lt;span style="COLOR:teal;"&gt;PrimitiveType&lt;/span&gt;&lt;font color="#000000"&gt;.TriangleFan, 0, 2);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device.RenderState.AlphaBlendEnable = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;false&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device.RenderState.AlphaTestEnable = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;false&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;pass.End();&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._effect.End();&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#endregion&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#region&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt; Public methods&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;void&lt;/span&gt;&lt;font color="#000000"&gt; Update(&lt;/font&gt;&lt;span style="COLOR:teal;"&gt;GameTime&lt;/span&gt;&lt;font color="#000000"&gt; gameTime, &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt; cameraPosition, &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt; cameraLookAt, &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt; cameraUpVector)&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._billboardMatrix = &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Matrix&lt;/span&gt;&lt;font color="#000000"&gt;.CreateBillboard(&lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;.Zero, &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Position - cameraPosition, cameraUpVector, cameraLookAt);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;if&lt;/span&gt;&lt;font color="#000000"&gt; (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.AnimateType != &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;AnimateType&lt;/span&gt;&lt;font color="#000000"&gt;.None)&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Animate(gameTime);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;void&lt;/span&gt;&lt;font color="#000000"&gt; Animate(&lt;/font&gt;&lt;span style="COLOR:teal;"&gt;GameTime&lt;/span&gt;&lt;font color="#000000"&gt; gameTime)&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;_lastUpdate += gameTime.ElapsedGameTime.TotalMilliseconds;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;if&lt;/span&gt;&lt;font color="#000000"&gt; (_lastUpdate &amp;gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.AnimationFrequency)&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;_lastUpdate = 0;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.IncrementAnimation();&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._currentAnimation = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animations[&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animationIndex++];&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;void&lt;/span&gt;&lt;font color="#000000"&gt; IncrementAnimation()&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animationIndex++;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;if&lt;/span&gt;&lt;font color="#000000"&gt; (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animationIndex &amp;gt; (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animationColumns * &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animationRows - 1))&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;if&lt;/span&gt;&lt;font color="#000000"&gt; (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.AnimationEnded != &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;null&lt;/span&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.AnimationEnded(&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;, &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;EventArgs&lt;/span&gt;&lt;font color="#000000"&gt;.Empty);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animationIndex = 0;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#endregion&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt; 
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;
&lt;p&gt;
&lt;p&gt;Etudions là point par point. Le premier ajout concerne l&amp;#39;arrivée de nouveaux membres permettant d&amp;#39;exploiter l&amp;#39;animation :&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;int&lt;/span&gt; _animationRows;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;int&lt;/span&gt; _animationColumns;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;long&lt;/span&gt; _animationFrequency;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;AnimateType&lt;/span&gt; _animateType;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="COLOR:teal;"&gt;VertexBuffer&lt;/span&gt;&amp;gt; _animations;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;VertexBuffer&lt;/span&gt; _currentAnimation;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;int&lt;/span&gt; _animationIndex;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Blend&lt;/span&gt; _sourceBlend;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Blend&lt;/span&gt; _destinationBlend;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;double&lt;/span&gt; _lastUpdate;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; 
&lt;p&gt;On trouve ici dans l&amp;#39;ordre : le nombre d&amp;#39;animation en haut et largeur, la vitesse de l&amp;#39;animation (en millisecondes), le type d&amp;#39;animation (non utilisé ici), la liste de vertexbuffer (nous reviendrons sur ce membre plus loin), le vertexbuffer correspondant à l&amp;#39;animation courante, l&amp;#39;index de l&amp;#39;animation dans la liste de vertexbuffer, le blend source et de destination (afin de pouvoir spécifier à la création du billboard de type de blend que l&amp;#39;ont désire) et enfin le temps écoulé depuis le dernier update du billboard.&lt;/p&gt;
&lt;p&gt;Deux constructeurs font leur apparition :&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;Empty constructors (no animations).&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/para&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt; Billboard()&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._animationIndex = 0;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._animationRows = 1;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._animationColumns = 1;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._animateType = &lt;span style="COLOR:teal;"&gt;AnimateType&lt;/span&gt;.None;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._animations = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="COLOR:teal;"&gt;VertexBuffer&lt;/span&gt;&amp;gt;();&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;Instanciate a new Billboard with an animation.&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/para&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;param name=&amp;quot;animationRows&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;param name=&amp;quot;animationColumns&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;param name=&amp;quot;animationFrequency&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt; Billboard(&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt; animationRows, &lt;span style="COLOR:blue;"&gt;int&lt;/span&gt; animationColumns, &lt;span style="COLOR:blue;"&gt;long&lt;/span&gt; animationFrequency) : &lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;()&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._animateType = &lt;span style="COLOR:teal;"&gt;AnimateType&lt;/span&gt;.Loop;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._animationColumns = animationColumns;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._animationFrequency = animationFrequency;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._animationRows = animationRows;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; 
&lt;p&gt;Le premier existait déjà mais initialise les membres de classe en prennant en compte qu&amp;#39;il n&amp;#39;y a aucun animation à jouer (c&amp;#39;est le cas pour les billboard affichant les arbres et l&amp;#39;herbe). Le second prend en paramètre les animations en hauteur et largeur ainsique la fréquence. Il initialize les membres pour l&amp;#39;animation spécifiée.&lt;/p&gt;
&lt;p&gt;La plus grosse modification vient de la méthode d&amp;#39;initialisation des vertices :&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;void&lt;/span&gt; InitializeVertices()&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._animations.Clear();&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;float&lt;/span&gt; animationSizeU = (1f / &lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.AnimationColumns);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;float&lt;/span&gt; animationSizeV = (1f / &lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.AnimationRows);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;for&lt;/span&gt; (&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt; column = 0; column &amp;lt; &lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.AnimationColumns; column++)&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;for&lt;/span&gt; (&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt; row = 0; row &amp;lt; &lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.AnimationRows; row++)&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:teal;"&gt;VertexBuffer&lt;/span&gt; vertexBuffer = &lt;span style="COLOR:blue;"&gt;null&lt;/span&gt;;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:teal;"&gt;VertexPositionColorTexture&lt;/span&gt;[] vertices = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;VertexPositionColorTexture&lt;/span&gt;[4];&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;float&lt;/span&gt; tu = 0 + animationSizeU * column;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;float&lt;/span&gt; tv = 0 + animationSizeV * row;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[0].Position = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;(-1f, 1f, 0);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[0].Color = &lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.Color;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[0].TextureCoordinate = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;(tu, tv);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[1].Position = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;(1f, 1f, 0);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;vertices[1].Color = &lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.Color;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[1].TextureCoordinate = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;(tu + animationSizeU, tv);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[2].Position = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;(1f, -1f, 0);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[2].Color = &lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.Color;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[2].TextureCoordinate = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;(tu + animationSizeU, tv + animationSizeV);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[3].Position = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;(-1f, -1f, 0);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[3].Color = &lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.Color;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[3].TextureCoordinate = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;(tu, tv + animationSizeV);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertexBuffer = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;VertexBuffer&lt;/span&gt;(&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._device,&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;typeof&lt;/span&gt;(&lt;span style="COLOR:teal;"&gt;VertexPositionColorTexture&lt;/span&gt;),&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;4,&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:teal;"&gt;ResourceUsage&lt;/span&gt;.WriteOnly,&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:teal;"&gt;ResourceManagementMode&lt;/span&gt;.Automatic);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertexBuffer.SetData(vertices);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._animations.Add(vertexBuffer);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._currentAnimation = &lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._animations[0];&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; 
&lt;p&gt;Cette méthode a un but simple,&amp;nbsp;connaissant le nombre d&amp;#39;animation sur la texture à afficher, elle va créer autant de vertexbuffer que nécessaire : tous auront le même position et la même couleur, mais il auront une coordonnée de texture lié à l&amp;#39;emplacement de la frame sur l&amp;#39;image. La première instruction vide la liste de vertexbuffer. Les deux suivantes calculent le % en largeur et hauteur d&amp;#39;une frame sur la texture :&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;float&lt;/span&gt; animationSizeU = (1f / &lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.AnimationColumns);&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;float&lt;/span&gt; animationSizeV = (1f / &lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.AnimationRows);&lt;/span&gt; 
&lt;p&gt;(ou 1 == 100%). A partir&amp;nbsp;de là on parcours chaque colonne et chaque ligne pour créer un vertex buffer adapté à la frame&amp;nbsp;voulue. On ajoute le dis vertexbuffer&amp;nbsp;à la liste. La dernière instruction fait pointer l&amp;#39;animation courante sur la première animation. C&amp;#39;est celle-ci (qui est en fait un vertexbuffer) qui sera utilisé pour l&amp;#39;affichage (méthode Draw)&lt;/p&gt;
&lt;p&gt;Viennent enfin les méthodes de mise à jour du billboard :&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;void&lt;/span&gt; Update(&lt;span style="COLOR:teal;"&gt;GameTime&lt;/span&gt; gameTime, &lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt; cameraPosition, &lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt; cameraLookAt, &lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt; cameraUpVector)&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._billboardMatrix = &lt;span style="COLOR:teal;"&gt;Matrix&lt;/span&gt;.CreateBillboard(&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;.Zero, &lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.Position - cameraPosition, cameraUpVector, cameraLookAt);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;if&lt;/span&gt; (&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.AnimateType != &lt;span style="COLOR:teal;"&gt;AnimateType&lt;/span&gt;.None)&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.Animate(gameTime);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;void&lt;/span&gt; Animate(&lt;span style="COLOR:teal;"&gt;GameTime&lt;/span&gt; gameTime)&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;_lastUpdate += gameTime.ElapsedGameTime.TotalMilliseconds;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;if&lt;/span&gt; (_lastUpdate &amp;gt; &lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.AnimationFrequency)&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;_lastUpdate = 0;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.IncrementAnimation();&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._currentAnimation = &lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._animations[&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._animationIndex++];&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;void&lt;/span&gt; IncrementAnimation()&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._animationIndex++;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;if&lt;/span&gt; (&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._animationIndex &amp;gt; (&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._animationColumns * &lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._animationRows - 1))&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;if&lt;/span&gt; (&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.AnimationEnded != &lt;span style="COLOR:blue;"&gt;null&lt;/span&gt;)&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.AnimationEnded(&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;, &lt;span style="COLOR:teal;"&gt;EventArgs&lt;/span&gt;.Empty);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._animationIndex = 0;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; 
&lt;p&gt;&amp;nbsp;Ces méthodes se contentent juste de pointer sur l&amp;#39;animation suivante si le temps écouté depuis le dernier update est suffisant.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;L&amp;#39;utilisation d&amp;#39;un billboard animé reste similaire à ce que nous avons fait précédemment (classe &lt;span style="COLOR:teal;"&gt;&lt;font face="Courier New"&gt;Game1&lt;/font&gt;&lt;/span&gt;). Elle passe par 4 étapes :&lt;/p&gt;
&lt;p&gt;La création&amp;nbsp;et l&amp;#39;initialisation :&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:teal;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;Billboard&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; smoke = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Billboard&lt;/span&gt;(8,8,50);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;float&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; size = 5;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;smoke.Resize(size, size, size);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;do&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;{&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt; x = rand.Next(0, 512);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt; y = rand.Next(0, 512);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;smoke.Position = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;(x, y, &lt;span style="COLOR:teal;"&gt;Region&lt;/span&gt;.HeightField(x, y) + size);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;}&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;while&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; (!IsTreePositionValid(smoke.Position));&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;smoke.SourceBlend = &lt;span style="COLOR:teal;"&gt;Blend&lt;/span&gt;.SourceColor;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;smoke.DestinationBlend = &lt;span style="COLOR:teal;"&gt;Blend&lt;/span&gt;.One;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt; 
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;smoke.Activated = &lt;span style="COLOR:blue;"&gt;true&lt;/span&gt;;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;smoke.Color = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Color&lt;/span&gt;(255, 255, 255, 255);&lt;/span&gt;&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;smoke.Load(&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.graphics.GraphicsDevice);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; 
&lt;p&gt;
&lt;p&gt;L&amp;#39;affection d&amp;#39;une texture&amp;nbsp;contenant un&amp;nbsp;ensemble de frame :&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;for&lt;/span&gt; (&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt; i = 0; i &amp;lt; numberOfSmokes; i++)&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;smokes&lt;img src="http://msmvps.com/emoticons/emotion-55.gif" alt="Idea" /&gt;.Texture = textures[5];&lt;/span&gt; 
&lt;p&gt;
&lt;p&gt;La mise à jour de la matrice de vue et l&amp;#39;appel à la méthode Update :&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;for&lt;/span&gt; (&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt; i = 0; i &amp;lt; numberOfSmokes; i++)&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;smokes&lt;img src="http://msmvps.com/emoticons/emotion-55.gif" alt="Idea" /&gt;.Effect.View = viewMatrix;&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;smokes&lt;img src="http://msmvps.com/emoticons/emotion-55.gif" alt="Idea" /&gt;.Update(gameTime, vEyePt, vLookatPt, &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;(0, 0, 1f));&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt; 
&lt;p&gt;
&lt;p&gt;et enfin, bien entendu, l&amp;#39;affichage :&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;smokes&lt;img src="http://msmvps.com/emoticons/emotion-55.gif" alt="Idea" /&gt;.Render();&lt;/span&gt; 
&lt;p&gt;&amp;nbsp;Au final à l&amp;#39;affichage, on voit apparaitre des halo de fumées dans le décors :&lt;/p&gt;
&lt;p&gt;&lt;img style="WIDTH:640px;HEIGHT:480px;" height="480" src="http://msmvps.com/photos/valentin/images/678822/640x480.aspx" width="640" align="absMiddle" border="2" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;strong&gt;&lt;font size="4"&gt;Bonus stage&lt;/font&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Je me suis amusé à créer un sample dérivé du dernier pour afficher un effet de météorite s&amp;#39;écrasant sur terre. Admirez ce qu&amp;#39;il est possible de faire en une petite heure à peine avec des billboards :&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;img title="Alerte ! Une météorite fonce droit sur la terre !" style="WIDTH:640px;HEIGHT:480px;" height="480" alt="Alerte ! Une météorite fonce droit sur la terre !" src="http://msmvps.com/photos/valentin/images/679187/640x480.aspx" width="640" align="absMiddle" border="2" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img title="Trop tard : Boum :)" style="WIDTH:640px;HEIGHT:480px;" height="480" alt="Trop tard : Boum :)" src="http://msmvps.com/photos/valentin/images/679188/640x480.aspx" width="640" align="absMiddle" border="2" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Le code de la classe météore qui s&amp;#39;occupe de gérer un météore (en fait un ensemble de billboard) n&amp;#39;est pas terrible et optimisé mais je n&amp;#39;avais qu&amp;#39;une heure&amp;nbsp; pour le faire, il&amp;nbsp; donne néanmoins une idée de ce qu&amp;#39;on peut faire avec du temps, et de belles images...&lt;/p&gt;
&lt;p&gt;Le code se trouve avec les samples de ce cours.&lt;/p&gt;
&lt;p&gt;&lt;font size="4"&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;Tous les jeux font appels aux bilboards. Et pour cause : ils permettent un affichage réaliste, 3D à moindre cout pour les effets spéciaux. Des sociétés comme Blizzard en sont friands (World Of Warcraft en regorge à chaque écran). Sachant que leur utilisation dans un programme est maintenant simple grâce à notre classe clé en main, pourquoi s&amp;#39;en priver ? &lt;/p&gt;
&lt;p&gt;A bientôt sur ce Blog !&lt;/p&gt;
&lt;p&gt;Valentin Billotte&lt;/p&gt;
&lt;p&gt;N&amp;#39;hesitez surtout pas à me faire part de vos incomprehensions afin de pemettre d&amp;#39;améliorer ce cours pour le rendre plus accessible aux autres (trèèèès important)!&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img title="telecharger" style="WIDTH:24px;HEIGHT:24px;" height="24" alt="telecharger" src="http://www.adcworks.com/images/content/icon-download.gif" width="24" align="middle" /&gt;&lt;font style="BACKGROUND-COLOR:#ffff00;" face="Verdana"&gt;&amp;nbsp;Vous pouvez télécharger les trois&amp;nbsp;samples &lt;/font&gt;&lt;a class="" href="http://msmvps.com/files/folders/valentin/entry672683.aspx" target="_blank"&gt;&lt;font style="BACKGROUND-COLOR:#ffff00;" face="Verdana" color="#006ff7"&gt;ici&lt;/font&gt;&lt;/a&gt;&lt;font face="Verdana"&gt;&lt;font style="BACKGROUND-COLOR:#ffff00;" color="#000000"&gt;.&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="WIDTH:24px;HEIGHT:24px;" height="24" src="http://msmvps.com/photos/valentin/images/887626/original.aspx" width="24" align="absMiddle" border="1" alt="" /&gt;&lt;font style="BACKGROUND-COLOR:#ffff00;"&gt;Retourner au &lt;/font&gt;&lt;a class="" href="http://msmvps.com/blogs/valentin/archive/2007/03/30/tutoriaux-xna-sommaire-g-n-ral.aspx"&gt;&lt;font style="BACKGROUND-COLOR:#ffff00;"&gt;sommaire des cours&lt;/font&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Annexe : Billboard en Xna</title><link>http://msmvps.com/blogs/valentin/archive/2007/03/09/annexe-billboard-en-xna.aspx</link><pubDate>Fri, 09 Mar 2007 06:00:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:659693</guid><dc:creator>valentin</dc:creator><description>&lt;p&gt;&lt;em&gt;&lt;img style="WIDTH:24px;HEIGHT:24px;" height="24" src="http://msmvps.com/photos/valentin/images/887626/original.aspx" width="24" align="absMiddle" border="1" alt="" /&gt;&lt;/em&gt;&lt;font style="BACKGROUND-COLOR:#ffff00;"&gt;Retourner au &lt;/font&gt;&lt;a class="" href="http://msmvps.com/blogs/valentin/archive/2007/03/30/tutoriaux-xna-sommaire-g-n-ral.aspx"&gt;&lt;font style="BACKGROUND-COLOR:#ffff00;"&gt;sommaire des cours&lt;/font&gt;&lt;/a&gt;&amp;nbsp;&lt;em&gt;&amp;nbsp;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Le billboard est un élément essentiel pour décharger le GPU de l&amp;#39;affichages de formes complexes.&amp;nbsp;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Un billboard (en français&amp;nbsp;&amp;quot;panneau&amp;quot;) est un plan&amp;nbsp;simulant un objet 3D. Le principe des billboards est de toujours faire face à la caméra : ainsi quelque soit l&amp;#39;endroit d&amp;#39;où on les regarde, ils donneront toujours&amp;nbsp; l&amp;#39;illusion que l&amp;#39;image qui les texture est une forme 3D.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;L&amp;#39;avantage est de réduire énormément la complexité de la scène, puisque l&amp;#39;on va pouvoir remplacer des objets potentiellement complexes par deux simples triangles texturés formant le carré (ou plan). La texture bien entendu doit être de qualité et si possible faire partie d&amp;#39;une animation.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Les billboards sont utilisés pour la végétation, les explosions, les effets météorologique (nuages, ...), ou encore des objets très lointains pour lesquels on ne pourra que très difficilement déceler le trucage.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Jusqu&amp;#39;à présent avec DirectX pour créer un billboard on devait travailler sur la matrice de vue ou créer de toute pièce une matrice de transformation&amp;nbsp;à partir de la position de la caméra. En Xna tout est plus simple, il nous suffit d&amp;#39;appeller une méthode&lt;/em&gt;&lt;font color="#000000"&gt;&lt;em&gt; statique de la classe &lt;/em&gt;&lt;font face="Courier New"&gt;&lt;span style="COLOR:teal;"&gt;Matrix&lt;/span&gt;&lt;/font&gt;&lt;em&gt;&amp;nbsp;nommée&lt;/em&gt;&lt;/font&gt;&lt;font color="#cc0000"&gt;&lt;em&gt; &lt;/em&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;font face="Courier New"&gt;CreateBillboard&lt;/font&gt;&lt;em&gt;.&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Nous verrons trois samples pour mettre en évidence l&amp;#39;utilité de cette technique.Un sample de présentation qui va montrer de manière explicite le billboard en action, un sample qui mettra en évidence l&amp;#39;effet réaliste que produit le billboarding (nous repredrons un sample du SDK Direct) et enfin un sample identique au précédent mais avec des animations.&lt;/em&gt;&lt;/p&gt;&lt;em&gt;&lt;em&gt;
&lt;p&gt;&lt;em&gt;&lt;/em&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;font style="BACKGROUND-COLOR:#ffff00;"&gt;&lt;strong&gt;Vous devez avoir lu les tutoriaux Xna jusqu&amp;#39;au chapitre 8 pour comprendre ce cours.&lt;/strong&gt;&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;&lt;/em&gt;
&lt;p&gt;&lt;em&gt;&lt;font style="BACKGROUND-COLOR:#ffff00;"&gt;&lt;strong&gt;Les billboards utilisés ici exploitent la méthode CreateBillboard de la classe Matrix et n&amp;#39;utilisent en rien les fichiers effets.&lt;/strong&gt;&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;&lt;/em&gt;&lt;em&gt;&lt;/em&gt;
&lt;p&gt;&lt;font size="4"&gt;&lt;strong&gt;Premier sample&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;Dans ce premier sample nous allons afficher deux objets : un cube tout d&amp;#39;abord dont la taille sera augmentée de telle sorte que la camera se trouvera à l&amp;#39;intérieur. Ses parois serviront alors de référence lorsque nous déplacerons la caméra à l&amp;#39;aide de la souris. Ensuite un objet billboard. Il s&amp;#39;agira tout simplement d&amp;#39;une face carrée composée de deux triangles. En &amp;quot;marche&amp;quot; normale, ce billboard sera desactivé et tournera de manière solidaire avec le cube lorsque la caméra sera déplacée. Mais lorsqu&amp;#39;on appuyera sur la touche &amp;quot;Espace&amp;quot;, le billboard présentera toujours sa face texturée à la caméra, et ceci, quelque soit la position de cette dernière.&lt;/p&gt;
&lt;p&gt;&lt;font size="3"&gt;&lt;strong&gt;La classe Billboard&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;Sur le plan technique 3D notre classe sera relativement simple. Elle n&amp;#39;aura pour tâche que d&amp;#39;afficher un simple plan 3D composé de deux triangles isocèles rectangles. Le plan sera texturé et de couleur paramétrable. La classe disposera d&amp;#39;une méthode Update permettant au billboard de se repositionner par rapport à la position de la caméra, par rapport au point vers lequel la caméra regarde et enfin par rapport à la normale de la caméra. Enfin une propriété sera ajoutée -pour les besoins de l&amp;#39;exemple-&amp;nbsp;permettant d&amp;#39;activer ou de desactiver le billboard. Terminons en ajoutant qu&amp;#39;elle hérite de la classe mère &lt;span style="COLOR:teal;"&gt;&lt;font face="Courier New"&gt;TransformBase&lt;/font&gt;&lt;/span&gt;&amp;nbsp;qui a été présentée &lt;a class="" href="http://msmvps.com/blogs/valentin/archive/2007/02/05/azrr.aspx" target="_blank"&gt;ici&lt;/a&gt;. 
&lt;p&gt;Analysons son code :&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;///&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;lt;summary&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;///&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;Defines a billboard object.&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;lt;/para&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;///&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;lt;/summary&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;///&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;lt;remarks&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;A billboard object always present its face in front of the camera.&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;lt;/remarks&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;public&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;class&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Billboard&lt;/span&gt;&lt;font color="#000000"&gt; : &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;TransformBase&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;{&lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;GraphicsDevice&lt;/span&gt;&lt;font color="#000000"&gt; _device;&lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;VertexBuffer&lt;/span&gt;&lt;font color="#000000"&gt; _vertexBuffer = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;null&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Color&lt;/span&gt;&lt;font color="#000000"&gt; _color = &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Color&lt;/span&gt;&lt;font color="#000000"&gt;.TransparentWhite;&lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Texture2D&lt;/span&gt;&lt;font color="#000000"&gt; _texture;&lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;BasicEffect&lt;/span&gt;&lt;font color="#000000"&gt; _effect;&lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;bool&lt;/span&gt;&lt;font color="#000000"&gt; _activated;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Matrix&lt;/span&gt;&lt;font color="#000000"&gt; _billboardMatrix = &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Matrix&lt;/span&gt;&lt;font color="#000000"&gt;.Identity;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;Gets or sets a value indicating if the biilboard is activated.&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/para&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;bool&lt;/span&gt;&lt;font color="#000000"&gt; Activated&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;get&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;return&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._activated;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;set&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._activated = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;value&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;Gets or sets the cube&amp;#39;s texture.&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/para&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Texture2D&lt;/span&gt;&lt;font color="#000000"&gt; Texture&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;get&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;return&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._texture;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;set&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._texture = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;value&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._effect.Texture = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;value&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;Gets the cube&amp;#39;s effect.&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/para&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;BasicEffect&lt;/span&gt;&lt;font color="#000000"&gt; Effect&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;get&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;return&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._effect;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;Gets or sets the Cube&amp;#39;s color.&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/para&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Color&lt;/span&gt;&lt;font color="#000000"&gt; Color&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;get&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;return&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._color;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;set&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._color = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;value&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;void&lt;/span&gt;&lt;font color="#000000"&gt; Load(&lt;/font&gt;&lt;span style="COLOR:teal;"&gt;GraphicsDevice&lt;/span&gt;&lt;font color="#000000"&gt; device)&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device = device;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.InitializeVertices();&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.InitializeEffect();&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;void&lt;/span&gt;&lt;font color="#000000"&gt; InitializeEffect()&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._effect = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;BasicEffect&lt;/span&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device, &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;null&lt;/span&gt;&lt;font color="#000000"&gt;);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._effect.VertexColorEnabled = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;true&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._effect.TextureEnabled = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;true&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;void&lt;/span&gt;&lt;font color="#000000"&gt; InitializeVertices()&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:teal;"&gt;VertexPositionColorTexture&lt;/span&gt;&lt;font color="#000000"&gt;[] vertices = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;VertexPositionColorTexture&lt;/span&gt;&lt;font color="#000000"&gt;[4];&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[0].Position = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;(-100.5f, 100.5f, 0);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[0].Color = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Color;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[0].TextureCoordinate = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;&lt;font color="#000000"&gt;(0, 0);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[1].Position = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;(100.5f, 100.5f, 0);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[1].Color = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Color;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[1].TextureCoordinate = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;&lt;font color="#000000"&gt;(1, 0);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[2].Position = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;(100.5f, -100.5f, 0);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[2].Color = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Color;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[2].TextureCoordinate = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;&lt;font color="#000000"&gt;(1, 1);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[3].Position = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;(-100.5f, -100.5f, 0);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[3].Color = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Color;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[3].TextureCoordinate = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;&lt;font color="#000000"&gt;(0, 1);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._vertexBuffer = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;VertexBuffer&lt;/span&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device,&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;typeof&lt;/span&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;span style="COLOR:teal;"&gt;VertexPositionColorTexture&lt;/span&gt;&lt;font color="#000000"&gt;),&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;4,&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:teal;"&gt;ResourceUsage&lt;/span&gt;&lt;font color="#000000"&gt;.WriteOnly,&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:teal;"&gt;ResourceManagementMode&lt;/span&gt;&lt;font color="#000000"&gt;.Automatic);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._vertexBuffer.SetData(vertices);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;Render the cube on the device.&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/para&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;void&lt;/span&gt;&lt;font color="#000000"&gt; Render()&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device.RenderState.CullMode = &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;CullMode&lt;/span&gt;&lt;font color="#000000"&gt;.None;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._effect.Begin();&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._effect.World = (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._activated ? &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._billboardMatrix : &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Matrix&lt;/span&gt;&lt;font color="#000000"&gt;.Identity)*&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Transform;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;foreach&lt;/span&gt;&lt;font color="#000000"&gt; (&lt;/font&gt;&lt;span style="COLOR:teal;"&gt;EffectPass&lt;/span&gt;&lt;font color="#000000"&gt; pass &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;in&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._effect.CurrentTechnique.Passes)&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;pass.Begin();&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device.Textures[0] = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Texture;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device.Vertices[0].SetSource(&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._vertexBuffer, 0, &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;VertexPositionColorTexture&lt;/span&gt;&lt;font color="#000000"&gt;.SizeInBytes);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device.VertexDeclaration = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;VertexDeclaration&lt;/span&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device, &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;VertexPositionColorTexture&lt;/span&gt;&lt;font color="#000000"&gt;.VertexElements);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device.DrawPrimitives(&lt;/font&gt;&lt;span style="COLOR:teal;"&gt;PrimitiveType&lt;/span&gt;&lt;font color="#000000"&gt;.TriangleFan, 0, 2);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;pass.End();&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._effect.End();&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device.RenderState.CullMode = &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;CullMode&lt;/span&gt;&lt;font color="#000000"&gt;.CullClockwiseFace;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;void&lt;/span&gt;&lt;font color="#000000"&gt; Update(&lt;/font&gt;&lt;span style="COLOR:teal;"&gt;GameTime&lt;/span&gt;&lt;font color="#000000"&gt; gameTime, &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt; cameraPosition, &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt; cameraLookAt, &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt; cameraUpVector)&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;_billboardMatrix = &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Matrix&lt;/span&gt;&lt;font color="#000000"&gt;.CreateBillboard(&lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;.Zero, &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Position - cameraPosition, cameraUpVector, cameraLookAt);&lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/span&gt; 
&lt;p&gt;Aucune réelle difficulté pour comprendre ce code. Seules deux instructions seront portées à notre attention. La première se trouve dans la méthode Update :&lt;/p&gt;&amp;nbsp;&lt;font face="Courier New"&gt;_billboardMatrix = &lt;span style="COLOR:teal;"&gt;Matrix&lt;/span&gt;.CreateBillboard(&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;.Zero, &lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.Position-cameraPosition, cameraUpVector, cameraLookAt);&lt;/font&gt; 
&lt;p&gt;&amp;nbsp;Elle charge dans la variable &lt;font face="Courier New"&gt;_billboardMatrix&amp;nbsp;&lt;/font&gt;&amp;nbsp;une matrice de billboard renvoyée par la méthode &lt;font face="Courier New"&gt;&lt;span style="COLOR:teal;"&gt;Matrix&lt;/span&gt;.CreateBillboard&lt;/font&gt;. Comment savoir vers où diriger la face du billboard ? En y reflechissant bien, nous n&amp;#39;avons besoin de connaître que quatre propriétés : &lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;div&gt;La position de l&amp;#39;objet.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;La position de la caméra.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Le point vers lequel regarde la caméra&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;La normale de la caméra.&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;C&amp;#39;est justement ce que demande cette méthode. Pour l&amp;#39;heure (10/03/07)&amp;nbsp;elle semble être bugguée. Normalement on lui passe la position de l&amp;#39;objet courant en premier paramètre, la position de la caméra en second paramètre, la normale de la caméra en avant dernier paramètre et enfin le point vers lequel la caméra regarde. Faire cela ne fonctionne que si votre objet se trouve en (0, 0, 0). Pas terrible... Si l&amp;#39;objet se trouve ailleur vous vous retrouvez avec un décallage équivalent à deux fois la distance de l&amp;#39;objet à l&amp;#39;origine.&amp;nbsp;L&amp;#39;astuce est de donner la valeur &lt;font face="Courier New"&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;.Zero&lt;/font&gt;&amp;nbsp;en première paramètre et la soustraction de la poistion de l&amp;#39;objet par la position de la caméra (&lt;font face="Courier New"&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.Position-cameraPosition&lt;/font&gt;)&amp;nbsp;en second.&lt;/p&gt;
&lt;p&gt;&lt;font style="BACKGROUND-COLOR:#ffff00;"&gt;Si ce bug a été corrigé à l&amp;#39;heure où vous lisez ces lignes, ou bien si c&amp;#39;est moi qui suis bugué (pas trop le temps de vérifier en ce moment :) ) merci de me l&amp;#39;&lt;/font&gt;&lt;a class="" href="http://msmvps.com/blogs/valentin/contact.aspx" target="_blank"&gt;&lt;font style="BACKGROUND-COLOR:#ffff00;"&gt;indiquer&lt;/font&gt;&lt;/a&gt;&lt;font style="BACKGROUND-COLOR:#ffff00;"&gt;.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;La seconde instruction se trouve dans la méthode Render :&lt;/p&gt;&lt;font face="Courier New"&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._effect.World = (&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._activated ? &lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._billboardMatrix : &lt;span style="COLOR:teal;"&gt;Matrix&lt;/span&gt;.Identity)*&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.Transform;&lt;/font&gt; 
&lt;p&gt;Ici, si le billboarding est activé nous affectons à la matrice &lt;font face="Courier New"&gt;World&lt;/font&gt;&amp;nbsp;le résultat de la multplication de&amp;nbsp;la matrice de &lt;font face="Courier New"&gt;_billboardMatrix&lt;/font&gt; par la matrice de transformation (position de l&amp;#39;objet, taille, rotation). Sinon &lt;font face="Courier New"&gt;World&lt;/font&gt; prend pour valeur le contenu de &lt;font face="Courier New"&gt;Transform&lt;/font&gt;.&lt;/p&gt;
&lt;p&gt;Le reste du code est assez simple pour être assimilé et compris sans être présenté ici. Si vous exécutez l&amp;#39;application vous verrez apparaitre les parois de notre cube et le billboard au centre de celui-ci. En déplaçant la souris sans appuyer sur Enter un affichage similaire à l&amp;#39;animation suivante se produit :&lt;/p&gt;
&lt;p&gt;&lt;img title="Pas de billboard activé, le billboard tourne de manière solidaire avec le cube." style="WIDTH:400px;HEIGHT:400px;" height="400" alt="Pas de billboard activé, le billboard tourne de manière solidaire avec le cube." src="http://msmvps.com/photos/valentin/images/671933/original.aspx" width="400" align="absMiddle" border="2" /&gt;&lt;/p&gt;
&lt;p&gt;On remarque que le billboard au centre du cube tourne de manière solidaire avec le cube et se présente donc sous une infinité d&amp;#39;angles à la caméra. Si vous appuyez sur Espace, l&amp;#39;affichage change comme ceci :&lt;/p&gt;
&lt;p&gt;&lt;img title="Le billboard activé reste toujours face à la caméra" style="WIDTH:400px;HEIGHT:400px;" height="400" alt="Le billboard activé reste toujours face à la caméra" src="http://msmvps.com/photos/valentin/images/672026/original.aspx" width="400" align="absMiddle" border="2" /&gt;&lt;/p&gt;
&lt;p&gt;Cette fois, le billboard reste face à la caméra quelque soit la position de cette dernière.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Si cet exemple illustre parfaitement le principe des billboards, il ne met pas en evidence de manière flagrante leur avantage. Ce sera l&amp;#39;objet de notre second Sample.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;font size="4"&gt;&lt;strong&gt;Second sample&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;Un exemple bien plus ludique nous attend. Une foret va être affichée sur un territoire valonné. Chaque arbre sera en fait un billboard et donnera l&amp;#39;illusion d&amp;#39;être un modèle 3D complexe. Aucune action utilisateur ici, le développeur admirera juste le rendu (ce qui est déjà très bien ...).&lt;/p&gt;
&lt;p&gt;&lt;font size="3"&gt;&lt;strong&gt;Le code&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;Il faut, pour bien comprendre les effets de transparences utilisés ici, avoir lu le &lt;a class="" href="http://msmvps.com/blogs/valentin/archive/2007/02/12/xna-tutorial-8-les-textures.aspx" target="_blank"&gt;chapitre 8&lt;/a&gt; jusqu&amp;#39;au point portant sur les effets spéciaux et blending (inclu).&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Ici, seules deux classes ont été modifiées en profondeur, la classe &lt;span style="COLOR:teal;"&gt;&lt;font face="Courier New"&gt;Game1&lt;/font&gt;&lt;/span&gt; et la classe &lt;span style="COLOR:teal;"&gt;&lt;font face="Courier New"&gt;Region&lt;/font&gt;&lt;/span&gt;. La première va avoir pour tâche d&amp;#39;afficher X billboards texturés avec une image d&amp;#39;arbre. Elle leur donnera une position, une taille et une couleur différente.&amp;nbsp;La classe Region va simplement afficher un relief en utilisant des fonctions trigonométriques pour valonner le paysage.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Le relief&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Le relief visible dans l&amp;#39;image ci-dessous se réalise par l&amp;#39;intermédiaire d&amp;#39;une méthode retournant une altitude en fonction d&amp;#39;une abscisse X et d&amp;#39;une ordonnée Y fournies.&amp;nbsp;Le calcul se base sur les fonctions trigonométriques Cosinus et Sinus :&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;///&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;///&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; Simple function to define &amp;quot;hilliness&amp;quot; for terrain&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;///&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;public&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;static&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;float&lt;/span&gt;&lt;font color="#000000"&gt; HeightField(&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;float&lt;/span&gt;&lt;font color="#000000"&gt; x, &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;float&lt;/span&gt;&lt;font color="#000000"&gt; y)&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;return&lt;/span&gt;&lt;font color="#000000"&gt; 30 * ((&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;float&lt;/span&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Math&lt;/span&gt;&lt;font color="#000000"&gt;.Cos(x / 40 + 0.2f) * (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;float&lt;/span&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Math&lt;/span&gt;&lt;font color="#000000"&gt;.Cos(y / 35 - 0.2f) + 1.0f);&lt;/font&gt;&lt;/span&gt; 
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;
&lt;p&gt;
&lt;p&gt;Désormais, au lieu de passer la valeur 0 en profondeur Z pour chaque vertex nous donnons le résultat de cette méthode.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Les arbres&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Pour les arbres/billboards, tout se passe dans la classe &lt;span style="COLOR:teal;"&gt;&lt;font face="Courier New"&gt;Game1&lt;/font&gt;&lt;/span&gt;. Une liste générique est déclarée avec une constante indiquant le nombre d&amp;#39;arbres affichés.&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;private&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;const&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;&lt;font color="#000000"&gt; numberOfTrees = 400;&lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;private&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;List&lt;/span&gt;&lt;font color="#000000"&gt;&amp;lt;&lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Billboard&lt;/span&gt;&lt;font color="#000000"&gt;&amp;gt; trees;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt; 
&lt;p&gt;Vient ensuite l&amp;#39;initialisation de chaque arbre dans la liste.&amp;nbsp;&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;COLOR:teal;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:teal;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:teal;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;Random&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt; rand = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Random&lt;/span&gt;&lt;font color="#000000"&gt;();&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;for&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt; (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;&lt;font color="#000000"&gt; i = 0; i &amp;lt; numberOfTrees; i++)&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:teal;"&gt;Billboard&lt;/span&gt;&lt;font color="#000000"&gt; tree = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Billboard&lt;/span&gt;&lt;font color="#000000"&gt;();&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;float&lt;/span&gt;&lt;font color="#000000"&gt; size = 4 + 8 * (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;float&lt;/span&gt;&lt;font color="#000000"&gt;)rand.NextDouble();&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;tree.Resize(size, size, size);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;do&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;&lt;font color="#000000"&gt; x = rand.Next(0, 512);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;&lt;font color="#000000"&gt; y = rand.Next(0, 512);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;tree.Position = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;(x, y, &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Region&lt;/span&gt;&lt;font color="#000000"&gt;.HeightField(x, y) + size);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;while&lt;/span&gt;&lt;font color="#000000"&gt; (!IsTreePositionValid(tree.Position));&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;tree.Activated = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;true&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;&lt;font color="#000000"&gt; r = (255 - 190) + (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;&lt;font color="#000000"&gt;)(190 * (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;float&lt;/span&gt;&lt;font color="#000000"&gt;)(rand.NextDouble()));&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;&lt;font color="#000000"&gt; g = (255 - 190) + (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;&lt;font color="#000000"&gt;)(190 * (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;float&lt;/span&gt;&lt;font color="#000000"&gt;)(rand.NextDouble()));&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;&lt;font color="#000000"&gt; b = 255;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;tree.Color = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Color&lt;/span&gt;&lt;font color="#000000"&gt;((&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;byte&lt;/span&gt;&lt;font color="#000000"&gt;)r, (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;byte&lt;/span&gt;&lt;font color="#000000"&gt;)g, (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;byte&lt;/span&gt;&lt;font color="#000000"&gt;)b, 255);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;tree.Load(&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.graphics.GraphicsDevice);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;trees.Add(tree);&lt;/font&gt;&lt;/span&gt; 
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;
&lt;p&gt;Ici une taille aléatoire, une position aléatoire et une couleur aléatoire sont données à chaque arbre. La méthode &lt;font face="Courier New"&gt;IsTreePositionValid&lt;/font&gt;&amp;nbsp;vérifie simplement que les arbres sont assez espacés. A chaque mise à jour, la métrice view est rafraichie et la méthode Update de chaque arbre est appelée avec la position de la caméra, le nouveau point vers lequel elle regarde et sa normale :&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;for&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt; (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;&lt;font color="#000000"&gt; i = 0; i &amp;lt; numberOfTrees; i++)&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;trees&lt;img src="http://msmvps.com/emoticons/emotion-55.gif" alt="Idea" /&gt;.Effect.View = viewMatrix;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;trees&lt;img src="http://msmvps.com/emoticons/emotion-55.gif" alt="Idea" /&gt;.Update(gameTime, vEyePt, vLookatPt, &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;(0, 0, 1f));&lt;/font&gt;&lt;/span&gt; 
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;
&lt;p&gt;
&lt;p&gt;Notons enfin que la liste d&amp;#39;arbres est re-ordonnée à chaque Update afin d&amp;#39;afficher les arbres dans l&amp;#39;ordre de leur apparition.&lt;/p&gt;
&lt;p&gt;Le rendu final nous offre un monde possédant des arbres et de la végétation qui semble être en 3D :&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;img style="WIDTH:640px;HEIGHT:480px;" height="480" src="http://msmvps.com/photos/valentin/images/672033/original.aspx" width="640" border="2" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="WIDTH:640px;HEIGHT:480px;" height="480" src="http://msmvps.com/photos/valentin/images/678821/640x480.aspx" width="640" align="absMiddle" border="2" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="WIDTH:640px;HEIGHT:480px;" height="480" src="http://msmvps.com/photos/valentin/images/678783/640x480.aspx" width="640" align="absMiddle" border="2" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;Dernier Sample&lt;/font&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Les billboards ont aussi une autre utilisation très utile : les effets graphiques et les animations. Nous allons ici modifier notre classe billboard de façon à permettre l&amp;#39;affichage d&amp;#39;un plan animé comme celui-ci:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;img style="WIDTH:256px;HEIGHT:256px;" height="256" src="http://msmvps.com/photos/valentin/images/678879/original.aspx" width="256" align="absMiddle" border="2" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;font size="3"&gt;&lt;strong&gt;Le code&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;La classe &lt;span style="COLOR:teal;"&gt;&lt;font face="Courier New"&gt;Billboard&lt;/font&gt;&lt;/span&gt;&amp;nbsp;se présente maintenant ainsi :&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;public&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;class&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Billboard&lt;/span&gt;&lt;font color="#000000"&gt; : &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;TransformBase&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#region&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt; Private members&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;GraphicsDevice&lt;/span&gt;&lt;font color="#000000"&gt; _device;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Color&lt;/span&gt;&lt;font color="#000000"&gt; _color = &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Color&lt;/span&gt;&lt;font color="#000000"&gt;.TransparentWhite;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Texture2D&lt;/span&gt;&lt;font color="#000000"&gt; _texture;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;BasicEffect&lt;/span&gt;&lt;font color="#000000"&gt; _effect;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;bool&lt;/span&gt;&lt;font color="#000000"&gt; _activated;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Matrix&lt;/span&gt;&lt;font color="#000000"&gt; _billboardMatrix = &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Matrix&lt;/span&gt;&lt;font color="#000000"&gt;.Identity;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;&lt;font color="#000000"&gt; _animationRows;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;&lt;font color="#000000"&gt; _animationColumns;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;long&lt;/span&gt;&lt;font color="#000000"&gt; _animationFrequency;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;AnimateType&lt;/span&gt;&lt;font color="#000000"&gt; _animateType;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;List&lt;/span&gt;&lt;font color="#000000"&gt;&amp;lt;&lt;/font&gt;&lt;span style="COLOR:teal;"&gt;VertexBuffer&lt;/span&gt;&lt;font color="#000000"&gt;&amp;gt; _animations;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;VertexBuffer&lt;/span&gt;&lt;font color="#000000"&gt; _currentAnimation;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;&lt;font color="#000000"&gt; _animationIndex;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Blend&lt;/span&gt;&lt;font color="#000000"&gt; _sourceBlend;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Blend&lt;/span&gt;&lt;font color="#000000"&gt; _destinationBlend;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;double&lt;/span&gt;&lt;font color="#000000"&gt; _lastUpdate;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#endregion&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#region&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt; Properties&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;Occurs when the animation is over.&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/para&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;event&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;EventHandler&lt;/span&gt;&lt;font color="#000000"&gt; AnimationEnded;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;Gets or sets a value indicating if the biilboard is activated.&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/para&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;bool&lt;/span&gt;&lt;font color="#000000"&gt; Activated&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;get&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;return&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._activated;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;set&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._activated = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;value&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;Gets or sets the number of animations on a colum for the associated texture.&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/para&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;&lt;font color="#000000"&gt; AnimationColumns&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;get&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;return&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animationColumns;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;set&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;if&lt;/span&gt;&lt;font color="#000000"&gt; ((&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;value&lt;/span&gt;&lt;font color="#000000"&gt; &amp;lt; 0) || (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;value&lt;/span&gt;&lt;font color="#000000"&gt; &amp;gt; 16))&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;throw&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;ArgumentOutOfRangeException&lt;/span&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;span style="COLOR:maroon;"&gt;&amp;quot;AnimationColumns&amp;quot;&lt;/span&gt;&lt;font color="#000000"&gt;, &lt;/font&gt;&lt;span style="COLOR:maroon;"&gt;&amp;quot;AnimationColumns must be filled with a value between 1 and 16&amp;quot;&lt;/span&gt;&lt;font color="#000000"&gt;);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animationColumns = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;value&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;Gets or sets the animation frequency/para&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;long&lt;/span&gt;&lt;font color="#000000"&gt; AnimationFrequency&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;get&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;return&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animationFrequency;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;set&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animationFrequency = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;value&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;Gets or sets the number of animations on a row for the associated texture.&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/para&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;&lt;font color="#000000"&gt; AnimationRows&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;get&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;return&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animationRows;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;set&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;if&lt;/span&gt;&lt;font color="#000000"&gt; ((&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;value&lt;/span&gt;&lt;font color="#000000"&gt; &amp;lt; 0) || (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;value&lt;/span&gt;&lt;font color="#000000"&gt; &amp;gt; 16))&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;throw&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;ArgumentOutOfRangeException&lt;/span&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;span style="COLOR:maroon;"&gt;&amp;quot;AnimationRows&amp;quot;&lt;/span&gt;&lt;font color="#000000"&gt;, &lt;/font&gt;&lt;span style="COLOR:maroon;"&gt;&amp;quot;AnimationRows must be filled with a value between 1 and 16&amp;quot;&lt;/span&gt;&lt;font color="#000000"&gt;);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animationRows = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;value&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;Gets or sets a value indicating the type of the animation.&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/para&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;AnimateType&lt;/span&gt;&lt;font color="#000000"&gt; AnimateType&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;get&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;return&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animateType;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;set&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animateType = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;value&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;Gets or sets the Cube&amp;#39;s color.&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/para&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Color&lt;/span&gt;&lt;font color="#000000"&gt; Color&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;get&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;return&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._color;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;set&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._color = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;value&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;Gets or sets the destination blend.&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/para&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Blend&lt;/span&gt;&lt;font color="#000000"&gt; DestinationBlend&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;get&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;return&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._destinationBlend;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;set&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._destinationBlend = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;value&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;Gets the cube&amp;#39;s effect.&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/para&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;BasicEffect&lt;/span&gt;&lt;font color="#000000"&gt; Effect&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;get&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;return&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._effect;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;Gets or sets the source blend.&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/para&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Blend&lt;/span&gt;&lt;font color="#000000"&gt; SourceBlend&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;get&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;return&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._sourceBlend;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;set&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._sourceBlend = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;value&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;Gets or sets the cube&amp;#39;s texture.&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/para&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Texture2D&lt;/span&gt;&lt;font color="#000000"&gt; Texture&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;get&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;return&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._texture;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;set&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._texture = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;value&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._effect.Texture = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;value&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#endregion&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#region&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt; Constructors&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;Empty constructors (no animations).&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/para&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt;&lt;font color="#000000"&gt; Billboard()&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animationIndex = 0;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animationRows = 1;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animationColumns = 1;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animateType = &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;AnimateType&lt;/span&gt;&lt;font color="#000000"&gt;.None;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animations = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;List&lt;/span&gt;&lt;font color="#000000"&gt;&amp;lt;&lt;/font&gt;&lt;span style="COLOR:teal;"&gt;VertexBuffer&lt;/span&gt;&lt;font color="#000000"&gt;&amp;gt;();&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;Instanciate a new Billboard with an animation.&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/para&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;param name=&amp;quot;animationRows&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;param name=&amp;quot;animationColumns&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;param name=&amp;quot;animationFrequency&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt;&lt;font color="#000000"&gt; Billboard(&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;&lt;font color="#000000"&gt; animationRows, &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;&lt;font color="#000000"&gt; animationColumns, &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;long&lt;/span&gt;&lt;font color="#000000"&gt; animationFrequency) : &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;()&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animateType = &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;AnimateType&lt;/span&gt;&lt;font color="#000000"&gt;.Loop;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animationColumns = animationColumns;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animationFrequency = animationFrequency;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animationRows = animationRows;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#endregion&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#region&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt; Initialization&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;void&lt;/span&gt;&lt;font color="#000000"&gt; Load(&lt;/font&gt;&lt;span style="COLOR:teal;"&gt;GraphicsDevice&lt;/span&gt;&lt;font color="#000000"&gt; device)&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device = device;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.InitializeVertices();&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.InitializeEffect();&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;void&lt;/span&gt;&lt;font color="#000000"&gt; InitializeEffect()&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._effect = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;BasicEffect&lt;/span&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device, &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;null&lt;/span&gt;&lt;font color="#000000"&gt;);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._effect.VertexColorEnabled = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;true&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._effect.TextureEnabled = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;true&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;void&lt;/span&gt;&lt;font color="#000000"&gt; InitializeVertices()&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animations.Clear();&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;float&lt;/span&gt;&lt;font color="#000000"&gt; animationSizeU = (1f / &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.AnimationColumns);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;float&lt;/span&gt;&lt;font color="#000000"&gt; animationSizeV = (1f / &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.AnimationRows);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;for&lt;/span&gt;&lt;font color="#000000"&gt; (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;&lt;font color="#000000"&gt; column = 0; column &amp;lt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.AnimationColumns; column++)&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;for&lt;/span&gt;&lt;font color="#000000"&gt; (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;&lt;font color="#000000"&gt; row = 0; row &amp;lt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.AnimationRows; row++)&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:teal;"&gt;VertexBuffer&lt;/span&gt;&lt;font color="#000000"&gt; vertexBuffer = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;null&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:teal;"&gt;VertexPositionColorTexture&lt;/span&gt;&lt;font color="#000000"&gt;[] vertices = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;VertexPositionColorTexture&lt;/span&gt;&lt;font color="#000000"&gt;[4];&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;float&lt;/span&gt;&lt;font color="#000000"&gt; tu = 0 + animationSizeU * column;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;float&lt;/span&gt;&lt;font color="#000000"&gt; tv = 0 + animationSizeV * row;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[0].Position = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;(-1f, 1f, 0);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[0].Color = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Color;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[0].TextureCoordinate = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;&lt;font color="#000000"&gt;(tu, tv);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[1].Position = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;(1f, 1f, 0);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;vertices[1].Color = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Color;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[1].TextureCoordinate = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;&lt;font color="#000000"&gt;(tu + animationSizeU, tv);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[2].Position = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;(1f, -1f, 0);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[2].Color = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Color;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[2].TextureCoordinate = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;&lt;font color="#000000"&gt;(tu + animationSizeU, tv + animationSizeV);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[3].Position = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;(-1f, -1f, 0);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[3].Color = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Color;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[3].TextureCoordinate = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;&lt;font color="#000000"&gt;(tu, tv + animationSizeV);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertexBuffer = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;VertexBuffer&lt;/span&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device,&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;typeof&lt;/span&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;span style="COLOR:teal;"&gt;VertexPositionColorTexture&lt;/span&gt;&lt;font color="#000000"&gt;),&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;4,&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:teal;"&gt;ResourceUsage&lt;/span&gt;&lt;font color="#000000"&gt;.WriteOnly,&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:teal;"&gt;ResourceManagementMode&lt;/span&gt;&lt;font color="#000000"&gt;.Automatic);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertexBuffer.SetData(vertices);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animations.Add(vertexBuffer);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._currentAnimation = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animations[0];&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#endregion&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#region&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt; Render&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;Render the cube on the device.&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/para&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;void&lt;/span&gt;&lt;font color="#000000"&gt; Render()&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._effect.Begin();&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._effect.World = (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._activated ? &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._billboardMatrix : &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Matrix&lt;/span&gt;&lt;font color="#000000"&gt;.Identity) * &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Transform;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;foreach&lt;/span&gt;&lt;font color="#000000"&gt; (&lt;/font&gt;&lt;span style="COLOR:teal;"&gt;EffectPass&lt;/span&gt;&lt;font color="#000000"&gt; pass &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;in&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._effect.CurrentTechnique.Passes)&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;pass.Begin();&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device.RenderState.AlphaBlendEnable = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;true&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device.RenderState.SourceBlend = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.SourceBlend;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device.RenderState.DestinationBlend = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.DestinationBlend;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;if&lt;/span&gt;&lt;font color="#000000"&gt; (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device.GraphicsDeviceCapabilities.AlphaCompareCapabilities.SupportsGreaterEqual)&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device.RenderState.AlphaTestEnable = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;true&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device.RenderState.ReferenceAlpha = 0x08;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device.RenderState.AlphaFunction = &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;CompareFunction&lt;/span&gt;&lt;font color="#000000"&gt;.Greater;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device.Textures[0] = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Texture;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device.Vertices[0].SetSource(&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._currentAnimation, 0, &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;VertexPositionColorTexture&lt;/span&gt;&lt;font color="#000000"&gt;.SizeInBytes);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device.VertexDeclaration = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;VertexDeclaration&lt;/span&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device, &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;VertexPositionColorTexture&lt;/span&gt;&lt;font color="#000000"&gt;.VertexElements);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device.DrawPrimitives(&lt;/font&gt;&lt;span style="COLOR:teal;"&gt;PrimitiveType&lt;/span&gt;&lt;font color="#000000"&gt;.TriangleFan, 0, 2);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device.RenderState.AlphaBlendEnable = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;false&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device.RenderState.AlphaTestEnable = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;false&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;pass.End();&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._effect.End();&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#endregion&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#region&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt; Public methods&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;void&lt;/span&gt;&lt;font color="#000000"&gt; Update(&lt;/font&gt;&lt;span style="COLOR:teal;"&gt;GameTime&lt;/span&gt;&lt;font color="#000000"&gt; gameTime, &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt; cameraPosition, &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt; cameraLookAt, &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt; cameraUpVector)&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._billboardMatrix = &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Matrix&lt;/span&gt;&lt;font color="#000000"&gt;.CreateBillboard(&lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;.Zero, &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Position - cameraPosition, cameraUpVector, cameraLookAt);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;if&lt;/span&gt;&lt;font color="#000000"&gt; (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.AnimateType != &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;AnimateType&lt;/span&gt;&lt;font color="#000000"&gt;.None)&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Animate(gameTime);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;void&lt;/span&gt;&lt;font color="#000000"&gt; Animate(&lt;/font&gt;&lt;span style="COLOR:teal;"&gt;GameTime&lt;/span&gt;&lt;font color="#000000"&gt; gameTime)&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;_lastUpdate += gameTime.ElapsedGameTime.TotalMilliseconds;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;if&lt;/span&gt;&lt;font color="#000000"&gt; (_lastUpdate &amp;gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.AnimationFrequency)&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;_lastUpdate = 0;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.IncrementAnimation();&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._currentAnimation = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animations[&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animationIndex++];&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;void&lt;/span&gt;&lt;font color="#000000"&gt; IncrementAnimation()&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animationIndex++;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;if&lt;/span&gt;&lt;font color="#000000"&gt; (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animationIndex &amp;gt; (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animationColumns * &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animationRows - 1))&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;if&lt;/span&gt;&lt;font color="#000000"&gt; (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.AnimationEnded != &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;null&lt;/span&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.AnimationEnded(&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;, &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;EventArgs&lt;/span&gt;&lt;font color="#000000"&gt;.Empty);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._animationIndex = 0;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#endregion&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt; 
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;
&lt;p&gt;
&lt;p&gt;Etudions là point par point. Le premier ajout concerne l&amp;#39;arrivée de nouveaux membres permettant d&amp;#39;exploiter l&amp;#39;animation :&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;int&lt;/span&gt; _animationRows;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;int&lt;/span&gt; _animationColumns;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;long&lt;/span&gt; _animationFrequency;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;AnimateType&lt;/span&gt; _animateType;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="COLOR:teal;"&gt;VertexBuffer&lt;/span&gt;&amp;gt; _animations;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;VertexBuffer&lt;/span&gt; _currentAnimation;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;int&lt;/span&gt; _animationIndex;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Blend&lt;/span&gt; _sourceBlend;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Blend&lt;/span&gt; _destinationBlend;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;double&lt;/span&gt; _lastUpdate;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; 
&lt;p&gt;On trouve ici dans l&amp;#39;ordre : le nombre d&amp;#39;animation en haut et largeur, la vitesse de l&amp;#39;animation (en millisecondes), le type d&amp;#39;animation (non utilisé ici), la liste de vertexbuffer (nous reviendrons sur ce membre plus loin), le vertexbuffer correspondant à l&amp;#39;animation courante, l&amp;#39;index de l&amp;#39;animation dans la liste de vertexbuffer, le blend source et de destination (afin de pouvoir spécifier à la création du billboard de type de blend que l&amp;#39;ont désire) et enfin le temps écoulé depuis le dernier update du billboard.&lt;/p&gt;
&lt;p&gt;Deux constructeurs font leur apparition :&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;Empty constructors (no animations).&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/para&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt; Billboard()&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._animationIndex = 0;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._animationRows = 1;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._animationColumns = 1;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._animateType = &lt;span style="COLOR:teal;"&gt;AnimateType&lt;/span&gt;.None;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._animations = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="COLOR:teal;"&gt;VertexBuffer&lt;/span&gt;&amp;gt;();&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;Instanciate a new Billboard with an animation.&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/para&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;param name=&amp;quot;animationRows&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;param name=&amp;quot;animationColumns&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;param name=&amp;quot;animationFrequency&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt; Billboard(&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt; animationRows, &lt;span style="COLOR:blue;"&gt;int&lt;/span&gt; animationColumns, &lt;span style="COLOR:blue;"&gt;long&lt;/span&gt; animationFrequency) : &lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;()&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._animateType = &lt;span style="COLOR:teal;"&gt;AnimateType&lt;/span&gt;.Loop;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._animationColumns = animationColumns;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._animationFrequency = animationFrequency;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._animationRows = animationRows;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; 
&lt;p&gt;Le premier existait déjà mais initialise les membres de classe en prennant en compte qu&amp;#39;il n&amp;#39;y a aucun animation à jouer (c&amp;#39;est le cas pour les billboard affichant les arbres et l&amp;#39;herbe). Le second prend en paramètre les animations en hauteur et largeur ainsique la fréquence. Il initialize les membres pour l&amp;#39;animation spécifiée.&lt;/p&gt;
&lt;p&gt;La plus grosse modification vient de la méthode d&amp;#39;initialisation des vertices :&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;void&lt;/span&gt; InitializeVertices()&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._animations.Clear();&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;float&lt;/span&gt; animationSizeU = (1f / &lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.AnimationColumns);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;float&lt;/span&gt; animationSizeV = (1f / &lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.AnimationRows);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;for&lt;/span&gt; (&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt; column = 0; column &amp;lt; &lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.AnimationColumns; column++)&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;for&lt;/span&gt; (&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt; row = 0; row &amp;lt; &lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.AnimationRows; row++)&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:teal;"&gt;VertexBuffer&lt;/span&gt; vertexBuffer = &lt;span style="COLOR:blue;"&gt;null&lt;/span&gt;;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:teal;"&gt;VertexPositionColorTexture&lt;/span&gt;[] vertices = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;VertexPositionColorTexture&lt;/span&gt;[4];&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;float&lt;/span&gt; tu = 0 + animationSizeU * column;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;float&lt;/span&gt; tv = 0 + animationSizeV * row;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[0].Position = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;(-1f, 1f, 0);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[0].Color = &lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.Color;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[0].TextureCoordinate = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;(tu, tv);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[1].Position = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;(1f, 1f, 0);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;vertices[1].Color = &lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.Color;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[1].TextureCoordinate = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;(tu + animationSizeU, tv);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[2].Position = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;(1f, -1f, 0);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[2].Color = &lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.Color;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[2].TextureCoordinate = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;(tu + animationSizeU, tv + animationSizeV);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[3].Position = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;(-1f, -1f, 0);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[3].Color = &lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.Color;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[3].TextureCoordinate = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;(tu, tv + animationSizeV);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertexBuffer = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;VertexBuffer&lt;/span&gt;(&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._device,&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;typeof&lt;/span&gt;(&lt;span style="COLOR:teal;"&gt;VertexPositionColorTexture&lt;/span&gt;),&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;4,&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:teal;"&gt;ResourceUsage&lt;/span&gt;.WriteOnly,&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:teal;"&gt;ResourceManagementMode&lt;/span&gt;.Automatic);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertexBuffer.SetData(vertices);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._animations.Add(vertexBuffer);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._currentAnimation = &lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._animations[0];&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; 
&lt;p&gt;Cette méthode a un but simple,&amp;nbsp;connaissant le nombre d&amp;#39;animation sur la texture à afficher, elle va créer autant de vertexbuffer que nécessaire : tous auront le même position et la même couleur, mais il auront une coordonnée de texture lié à l&amp;#39;emplacement de la frame sur l&amp;#39;image. La première instruction vide la liste de vertexbuffer. Les deux suivantes calculent le % en largeur et hauteur d&amp;#39;une frame sur la texture :&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;float&lt;/span&gt; animationSizeU = (1f / &lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.AnimationColumns);&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;float&lt;/span&gt; animationSizeV = (1f / &lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.AnimationRows);&lt;/span&gt; 
&lt;p&gt;(ou 1 == 100%). A partir&amp;nbsp;de là on parcours chaque colonne et chaque ligne pour créer un vertex buffer adapté à la frame&amp;nbsp;voulue. On ajoute le dis vertexbuffer&amp;nbsp;à la liste. La dernière instruction fait pointer l&amp;#39;animation courante sur la première animation. C&amp;#39;est celle-ci (qui est en fait un vertexbuffer) qui sera utilisé pour l&amp;#39;affichage (méthode Draw)&lt;/p&gt;
&lt;p&gt;Viennent enfin les méthodes de mise à jour du billboard :&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;void&lt;/span&gt; Update(&lt;span style="COLOR:teal;"&gt;GameTime&lt;/span&gt; gameTime, &lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt; cameraPosition, &lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt; cameraLookAt, &lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt; cameraUpVector)&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._billboardMatrix = &lt;span style="COLOR:teal;"&gt;Matrix&lt;/span&gt;.CreateBillboard(&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;.Zero, &lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.Position - cameraPosition, cameraUpVector, cameraLookAt);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;if&lt;/span&gt; (&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.AnimateType != &lt;span style="COLOR:teal;"&gt;AnimateType&lt;/span&gt;.None)&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.Animate(gameTime);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;void&lt;/span&gt; Animate(&lt;span style="COLOR:teal;"&gt;GameTime&lt;/span&gt; gameTime)&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;_lastUpdate += gameTime.ElapsedGameTime.TotalMilliseconds;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;if&lt;/span&gt; (_lastUpdate &amp;gt; &lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.AnimationFrequency)&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;_lastUpdate = 0;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.IncrementAnimation();&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._currentAnimation = &lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._animations[&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._animationIndex++];&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;void&lt;/span&gt; IncrementAnimation()&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._animationIndex++;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;if&lt;/span&gt; (&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._animationIndex &amp;gt; (&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._animationColumns * &lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._animationRows - 1))&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;if&lt;/span&gt; (&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.AnimationEnded != &lt;span style="COLOR:blue;"&gt;null&lt;/span&gt;)&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.AnimationEnded(&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;, &lt;span style="COLOR:teal;"&gt;EventArgs&lt;/span&gt;.Empty);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._animationIndex = 0;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; 
&lt;p&gt;&amp;nbsp;Ces méthodes se contentent juste de pointer sur l&amp;#39;animation suivante si le temps écouté depuis le dernier update est suffisant.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;L&amp;#39;utilisation d&amp;#39;un billboard animé reste similaire à ce que nous avons fait précédemment (classe &lt;span style="COLOR:teal;"&gt;&lt;font face="Courier New"&gt;Game1&lt;/font&gt;&lt;/span&gt;). Elle passe par 4 étapes :&lt;/p&gt;
&lt;p&gt;La création&amp;nbsp;et l&amp;#39;initialisation :&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:teal;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;Billboard&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; smoke = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Billboard&lt;/span&gt;(8,8,50);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;float&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; size = 5;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;smoke.Resize(size, size, size);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;do&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;{&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt; x = rand.Next(0, 512);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt; y = rand.Next(0, 512);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;smoke.Position = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;(x, y, &lt;span style="COLOR:teal;"&gt;Region&lt;/span&gt;.HeightField(x, y) + size);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;}&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;while&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; (!IsTreePositionValid(smoke.Position));&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;smoke.SourceBlend = &lt;span style="COLOR:teal;"&gt;Blend&lt;/span&gt;.SourceColor;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;smoke.DestinationBlend = &lt;span style="COLOR:teal;"&gt;Blend&lt;/span&gt;.One;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt; 
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;smoke.Activated = &lt;span style="COLOR:blue;"&gt;true&lt;/span&gt;;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;smoke.Color = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Color&lt;/span&gt;(255, 255, 255, 255);&lt;/span&gt;&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;smoke.Load(&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.graphics.GraphicsDevice);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; 
&lt;p&gt;
&lt;p&gt;L&amp;#39;affection d&amp;#39;une texture&amp;nbsp;contenant un&amp;nbsp;ensemble de frame :&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;for&lt;/span&gt; (&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt; i = 0; i &amp;lt; numberOfSmokes; i++)&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;smokes&lt;img src="http://msmvps.com/emoticons/emotion-55.gif" alt="Idea" /&gt;.Texture = textures[5];&lt;/span&gt; 
&lt;p&gt;
&lt;p&gt;La mise à jour de la matrice de vue et l&amp;#39;appel à la méthode Update :&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;for&lt;/span&gt; (&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt; i = 0; i &amp;lt; numberOfSmokes; i++)&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;smokes&lt;img src="http://msmvps.com/emoticons/emotion-55.gif" alt="Idea" /&gt;.Effect.View = viewMatrix;&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;smokes&lt;img src="http://msmvps.com/emoticons/emotion-55.gif" alt="Idea" /&gt;.Update(gameTime, vEyePt, vLookatPt, &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;(0, 0, 1f));&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt; 
&lt;p&gt;
&lt;p&gt;et enfin, bien entendu, l&amp;#39;affichage :&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;smokes&lt;img src="http://msmvps.com/emoticons/emotion-55.gif" alt="Idea" /&gt;.Render();&lt;/span&gt; 
&lt;p&gt;&amp;nbsp;Au final à l&amp;#39;affichage, on voit apparaitre des halo de fumées dans le décors :&lt;/p&gt;
&lt;p&gt;&lt;img style="WIDTH:640px;HEIGHT:480px;" height="480" src="http://msmvps.com/photos/valentin/images/678822/640x480.aspx" width="640" align="absMiddle" border="2" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;strong&gt;&lt;font size="4"&gt;Bonus stage&lt;/font&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Je me suis amusé à créer un sample dérivé du dernier pour afficher un effet de météorite s&amp;#39;écrasant sur terre. Admirez ce qu&amp;#39;il est possible de faire en une petite heure à peine avec des billboards :&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;img title="Alerte ! Une météorite fonce droit sur la terre !" style="WIDTH:640px;HEIGHT:480px;" height="480" alt="Alerte ! Une météorite fonce droit sur la terre !" src="http://msmvps.com/photos/valentin/images/679187/640x480.aspx" width="640" align="absMiddle" border="2" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img title="Trop tard : Boum :)" style="WIDTH:640px;HEIGHT:480px;" height="480" alt="Trop tard : Boum :)" src="http://msmvps.com/photos/valentin/images/679188/640x480.aspx" width="640" align="absMiddle" border="2" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Le code de la classe météore qui s&amp;#39;occupe de gérer un météore (en fait un ensemble de billboard) n&amp;#39;est pas terrible et optimisé mais je n&amp;#39;avais qu&amp;#39;une heure&amp;nbsp; pour le faire, il&amp;nbsp; donne néanmoins une idée de ce qu&amp;#39;on peut faire avec du temps, et de belles images...&lt;/p&gt;
&lt;p&gt;Le code se trouve avec les samples de ce cours.&lt;/p&gt;
&lt;p&gt;&lt;font size="4"&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;Tous les jeux font appels aux bilboards. Et pour cause : ils permettent un affichage réaliste, 3D à moindre cout pour les effets spéciaux. Des sociétés comme Blizzard en sont friands (World Of Warcraft en regorge à chaque écran). Sachant que leur utilisation dans un programme est maintenant simple grâce à notre classe clé en main, pourquoi s&amp;#39;en priver ? &lt;/p&gt;
&lt;p&gt;A bientôt sur ce Blog !&lt;/p&gt;
&lt;p&gt;Valentin Billotte&lt;/p&gt;
&lt;p&gt;N&amp;#39;hesitez surtout pas à me faire part de vos incomprehensions afin de pemettre d&amp;#39;améliorer ce cours pour le rendre plus accessible aux autres (trèèèès important)!&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img title="telecharger" style="WIDTH:24px;HEIGHT:24px;" height="24" alt="telecharger" src="http://www.adcworks.com/images/content/icon-download.gif" width="24" align="middle" /&gt;&lt;font style="BACKGROUND-COLOR:#ffff00;" face="Verdana"&gt;&amp;nbsp;Vous pouvez télécharger les trois&amp;nbsp;samples &lt;/font&gt;&lt;a class="" href="http://msmvps.com/files/folders/valentin/entry672683.aspx" target="_blank"&gt;&lt;font style="BACKGROUND-COLOR:#ffff00;" face="Verdana" color="#006ff7"&gt;ici&lt;/font&gt;&lt;/a&gt;&lt;font face="Verdana"&gt;&lt;font style="BACKGROUND-COLOR:#ffff00;" color="#000000"&gt;.&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="WIDTH:24px;HEIGHT:24px;" height="24" src="http://msmvps.com/photos/valentin/images/887626/original.aspx" width="24" align="absMiddle" border="1" alt="" /&gt;&lt;font style="BACKGROUND-COLOR:#ffff00;"&gt;Retourner au &lt;/font&gt;&lt;a class="" href="http://msmvps.com/blogs/valentin/archive/2007/03/30/tutoriaux-xna-sommaire-g-n-ral.aspx"&gt;&lt;font style="BACKGROUND-COLOR:#ffff00;"&gt;sommaire des cours&lt;/font&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>XNA Tutorial 8 : Les textures</title><link>http://msmvps.com/blogs/valentin/archive/2007/02/12/xna-tutorial-8-les-textures.aspx</link><pubDate>Mon, 12 Feb 2007 06:00:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:570799</guid><dc:creator>valentin</dc:creator><description>&lt;font face="verdana,geneva"&gt;&lt;strike&gt;&lt;em&gt;
&lt;p&gt;&amp;lt; en construction / under construction&amp;gt;&lt;/em&gt;&lt;/strike&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="verdana,geneva"&gt;&lt;img style="WIDTH:24px;HEIGHT:24px;" height="24" src="http://msmvps.com/photos/valentin/images/887626/original.aspx" width="24" align="absMiddle" border="1" alt="" /&gt;&lt;font style="BACKGROUND-COLOR:#ffff00;" face="Arial"&gt;Retourner au &lt;/font&gt;&lt;a class="" href="http://msmvps.com/blogs/valentin/archive/2007/03/30/tutoriaux-xna-sommaire-g-n-ral.aspx"&gt;&lt;font style="BACKGROUND-COLOR:#ffff00;" face="Arial"&gt;sommaire des cours&lt;/font&gt;&lt;/a&gt;&lt;font face="Arial"&gt;&amp;nbsp;&lt;/font&gt;&amp;nbsp;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="verdana,geneva"&gt;Notre premier chapitre consacré aux textures : un vaste, un très vaste sujet et au combien important dans le développement 3D. Le texturing est sans aucun doute l&amp;#39;élément le plus important pour donner du réalisme et de l&amp;#39;interet à un projet 3D. Nul doute qu&amp;#39;après cet apprentissage, nos petites productions n&amp;#39;auront plus rien à voir avec ce que nous faisions jusque là !&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="verdana,geneva"&gt;Nous suivrons trois phases dans cet apprentissage : &lt;/font&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;font face="verdana,geneva"&gt;Faire connaissance avec le texturing en apprennant les notions de base.&lt;/font&gt;&lt;/li&gt;
&lt;li&gt;&lt;font face="verdana,geneva"&gt;Faire connaissance avec le blending de filtrage, de mipmapping, de blending et de multitexturing.&lt;/font&gt;&lt;/li&gt;
&lt;li&gt;&lt;font face="verdana,geneva"&gt;Opérer sur les textures.&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;font face="verdana,geneva" size="4"&gt;Texture&amp;nbsp;?&lt;/font&gt;&lt;/p&gt;&lt;font face="verdana,geneva"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;p class="Textecourant1er" style="MARGIN:0cm 0cm 1pt;"&gt;&lt;font face="verdana,geneva"&gt;Aucun rapport avec la définition du dictionnaire. La texture est une image qui est plaquée sur un triangle. Il s’agit donc d’un objet à deux dimensions. Nous pourrions la comparer à une surface collée sur un objet 3D pour lui donner un habillage réaliste. XNA comme DirectX autorise toute sorte de taille de texture. En interne il les découpera en images carrés dont le nombre de pixels est une puissance de 2 (16,32,256, …). Dans tous les cas il faut toujours se rappeler que pour&amp;nbsp;la majorité des matériels installés sur les machines,&amp;nbsp;les textures les plus rapides à manipuler font une taille de 256 par 256 et plus la taille de la texture est importante, plus il faudra de temps GPU&amp;nbsp;pour les manipuler.&lt;/font&gt;&lt;/p&gt;&lt;font face="verdana,geneva"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;p class="Textecourant1er" style="MARGIN:0cm 0cm 1pt;"&gt;&lt;font face="verdana,geneva"&gt;Si les données affichées à l’écran sont nommées pixels, les données d’une texture sont nommée texels (pour &amp;quot;texture element&amp;quot;). &lt;/font&gt;&lt;/p&gt;&lt;font face="verdana,geneva"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;p class="Textecourant1er" style="MARGIN:0cm 0cm 1pt;"&gt;&lt;font face="verdana,geneva"&gt;DirectX dans le chargement s’avère très polyvalent et peut lire un grand nombre de type de fichiers images, à savoir PNG, JPG, BMP et TGA.&lt;/font&gt;&lt;/p&gt;
&lt;p class="Textecourant1er" style="MARGIN:0cm 0cm 1pt;"&gt;&lt;font face="verdana,geneva"&gt;Dans tous les cas le format d’image n’influence rien pour les performances de jeu. Chaque image étant traduite dans un format interne à Direct3D lors de son chargement. Notons enfin que les textures peuvent être générée à la volée à partir d’un accès mémoire.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="verdana,geneva" size="3"&gt;&lt;strong&gt;Coordonnées de texture&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Voilà une notion qui peut étonner au premier abord : Une coordonnée de texture permet de spécifier une position dans la texture. Dans la mesure où, dans une texture, l’espace est en 2D, seules deux valeurs sont nécessaire pour spécifier une position : U et V. U représente l’abscisse, à savoir le nombre d’unités à parcourir horizontalement et V qui représente le nombre d’unités verticales (ordonnées) à parcourir. Leurs valeurs oscillent entre 0 et 1 (des valeurs supérieure peuvent être données pour répéter une texture, nous verrons cela plus tard). Le point supérieur gauche de la texture est donc le (0,0) et le point inférieur droit (1,1) pour (U, V). Le schéma ci-dessous explicite tout cela avec la texture que nous allons employer dans notre premier exemple.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;img style="WIDTH:650px;HEIGHT:520px;" height="520" src="http://msmvps.com/photos/valentin/images/571451/original.aspx" width="650" align="absMiddle" border="2" alt="" /&gt;&lt;br /&gt;&lt;/font&gt;&lt;font face="Verdana" size="1"&gt;&lt;u&gt;Les coordonnées de textures.&lt;/u&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;font size="3"&gt;&lt;strong&gt;Placage de textures&lt;/strong&gt;&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Les coordonnées de textures sont donc une notion simple qui s’apparente aux bases mathématiques de la géométrie dans l’espace mathématique. Toutes les coordonnées (UV) pour le placage sur une forme 3D seront associées à chaque vertex qui la compose.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Pour plus de simplicité nous allons mettre de coté le cube qui servait à tous nos exemples depuis plusieurs cours pour revenir au carré utilisé dans le tutoriel 3. &lt;/font&gt;&lt;font face="Verdana"&gt;Dans ce programme un carré est formé de 4 vertices associés à une couleur et une position X, Y, Z comme ci-dessous.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;img title="Un programme simple déjà vu qui affiche un carré." style="WIDTH:650px;HEIGHT:520px;" height="520" alt="Un programme simple déjà vu qui affiche un carré." src="http://msmvps.com/photos/valentin/images/571474/original.aspx" width="650" align="absMiddle" border="2" /&gt;&lt;br /&gt;&lt;/font&gt;&lt;font face="Verdana" size="1"&gt;&lt;u&gt;Un programme simple déjà vu qui affiche un carré.&lt;/u&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Associons maintenant un troisième type de valeur : les coordonnées de texture nommée ici tu et tv. Nous allons afficher sur ce carré notre texture en entier. Le point haut gauche aura donc la coordonnée de texture (0,0), le point haut droit (1,0) le point bas gauche (0,1) et enfin le point bas droite (1,1). Simple donc. Nous aurons :&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;img title="La texture entière occupe la surface du carré." alt="La texture entière occupe la surface du carré." src="http://msmvps.com/photos/valentin/images/571475/original.aspx" align="absMiddle" border="2" /&gt;&lt;br /&gt;&lt;/font&gt;&lt;font face="Verdana"&gt;La texture entière occupe la surface du carré.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Essayons maintenant de n’afficher que la moitié haut droite de la texture, à savoir la partie :&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;img style="WIDTH:32px;HEIGHT:32px;" height="32" src="http://msmvps.com/photos/valentin/images/571476/original.aspx" width="32" align="absMiddle" border="2" alt="" /&gt;&amp;nbsp;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Nous aurons donc pour caractéristiques des 4 vertices :&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&lt;/p&gt;&lt;font face="Verdana"&gt;&lt;img style="WIDTH:650px;HEIGHT:520px;" height="520" src="http://msmvps.com/photos/valentin/images/571537/original.aspx" width="650" align="middle" border="2" alt="" /&gt;&lt;/font&gt; 
&lt;p&gt;&lt;font face="Verdana"&gt;Essayons pour continuer de n’afficher que la moitié basse de la texture :&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;img style="WIDTH:64px;HEIGHT:32px;" height="32" src="http://msmvps.com/photos/valentin/images/571538/original.aspx" width="64" align="absMiddle" border="2" alt="" /&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Les caractéristiques seront :&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;img style="WIDTH:650px;HEIGHT:520px;" height="520" src="http://msmvps.com/photos/valentin/images/571539/original.aspx" width="650" align="absMiddle" border="2" alt="" /&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Autre exemple, affichons le centre du carré à savoir :&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;img style="WIDTH:41px;HEIGHT:32px;" height="32" src="http://msmvps.com/photos/valentin/images/571573/original.aspx" width="41" align="absMiddle" border="2" alt="" /&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;nous aurons :&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;img style="WIDTH:650px;HEIGHT:520px;" height="520" src="http://msmvps.com/photos/valentin/images/571572/original.aspx" width="650" align="absMiddle" border="2" alt="" /&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Finissons sur une tâche plus compliquée (rassurez vous seulement d’un chouïa).&amp;nbsp; Nous n&amp;#39;allons pas prendre une portion de la texture de manière a avoir des coordonnées &amp;quot;ronde&amp;quot; (à savoir 0.5 ou 1) mais une portion complétement aléatoire. Il va donc nous falloir calculer la valeur exacte de la texture, prendre le pourcentage et reporter la valeur entre 0 et 1.&amp;nbsp;Mettons au hasard le point haut gauche de la source au texel (12,16). Pour une texture de (64,64),&amp;nbsp;converti en pourcentage nous avons : 18.75% en abscisse (12/64*100) et 25% en ordonnée soit donc en coordonnées de texture 0.1875 pour tu et 0.25 pour tv. Faisons de même pour les 3 autres coins. Au final nous avons :&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;img style="WIDTH:650px;HEIGHT:520px;" height="520" src="http://msmvps.com/photos/valentin/images/571572/original.aspx" width="650" align="absMiddle" border="2" alt="" /&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Terminons enfin sur la répétition de textures. Jusqu’à présent les valeurs de tu et tv étaient comprises entre 0 et 1. Que ce passe t’il si ces valeurs dépassent 1 ? XNA, lors du mappage va répéter la texture suivant le pourcentage donné par les coordonnées ;&amp;nbsp; Si tu vaut 1.5 la texture sera copiée entièrement avec la moitié d’une texture sur l’abscisse. Si tv vaut 3, alors sur l’ordonnée nous aurons trois textures copiées. Le dernier schéma de ce point illustre cela très bien :&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;img style="WIDTH:650px;HEIGHT:520px;" height="520" src="http://msmvps.com/photos/valentin/images/571580/original.aspx" width="650" align="absMiddle" border="2" alt="" /&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Notons aussi que les valeurs négatives données à tu et tv inverseront le mappage de la texture. XNA permet d’autres interprétations dans le cas ou tu et tv dépassent la valeur 1 (nous verrons cela plus loin dans ce chapitre).&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Passons maintenant aux choses concrètes.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana" size="4"&gt;&lt;strong&gt;Textures et XNA&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;font size="3"&gt;&lt;strong&gt;Préparer notre projet&amp;nbsp;à l&amp;#39;utilisation de textures...&lt;/strong&gt;&lt;/font&gt;&amp;nbsp;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Jusqu&amp;#39;à présent, la seule manière que nous avions pour ajouter des couleurs à un scène 3D étant de créer autant de vertices que de couleurs associées. Nous allons utiliser maintenant un moyen bien plus puissant et efficace en associant chaque vertices à une coordonnée de texture comme vu dans le point précédent. Nous reprendrons un projet relativement similaire à celui utilisé pour le chapitre 4 consacré aux matrices. Revenez quelques instants sur le code qu&amp;#39;il contient avant de continuer plus en avant. Notre but sur ce cours est d&amp;#39;afficher un carré à l&amp;#39;écran et,&amp;nbsp;en utilisant un format de vertice adapté, y plaquer une texture. &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;La première étape consiste à définir 6 vertices pour les deux triangles formant le carré. Sachant que nous n&amp;#39;utilisons plus de couleur nous ne pouvons plus utiliser le type &lt;span style="COLOR:teal;"&gt;VertexPositionColor&lt;/span&gt;. Nous utiliserons à la place un nouveau type de vertex : &lt;span style="COLOR:teal;"&gt;VertexPositionTexture&lt;/span&gt;. *&lt;/font&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Remarque : Nous avons déjà abordé les structure de format de vertices comme &lt;span style="COLOR:teal;"&gt;VertexPositionTexture&lt;/span&gt;&amp;nbsp;ou comme &lt;span style="COLOR:teal;"&gt;VertexPositionColor&lt;/span&gt;. Ces formats permettent d&amp;#39;associer à un vertex différentes informations (comme la position, la couleur, les coordonnées de &amp;nbsp;texture ...). Vous vous demandez&amp;nbsp;peut être comment XNA peut il savoir quel type de données (couleur, texture, ...) est associé aux vertices qu&amp;#39;on lui donne&amp;nbsp;? Il utilise tout simple le contenu de la propriété que chaque structure de format doit posséder. Pour plus d&amp;#39;information à ce sujet et pour créer vos propres formats rendez vous ici.&lt;/font&gt;&lt;font face="Verdana"&gt;&amp;nbsp;&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Changez la déclaration du tableau de vertices ainsi :&lt;/font&gt;&lt;/p&gt;&lt;font face="Verdana"&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:teal;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;VertexPositionTexture&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;[] vertices;&lt;/span&gt;&lt;/p&gt;&lt;/font&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Vient maintenant la création de chacun des vertices :&lt;/font&gt;&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;vertices = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;VertexPositionTexture&lt;/span&gt;&lt;img src="http://msmvps.com/emoticons/emotion-14.gif" alt="Devil" /&gt;;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;//triangle 1, face devant&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;vertices[0].Position = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;(-10f, 0f, -10f);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;vertices[0].TextureCoordinate = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;(0f, 0f);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;vertices[1].Position = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;(-10f, 0f, 10f);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;vertices[1].TextureCoordinate = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;(0f, 1f);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;vertices[2].Position = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;(10f, 0f, 10f);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;vertices[2].TextureCoordinate = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;(1f, 1f);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;//triangle 2, face devant&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;vertices[3].Position = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;(-10f, 0f, -10f);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;vertices[3].TextureCoordinate = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;(0f, 0f);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;vertices[4].Position = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;(10f, 0f, 10f);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;vertices[4].TextureCoordinate = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;(1f, 1f);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;vertices[5].Position = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;(10f, 0f, -10f);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;vertices[5].TextureCoordinate = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;(1f, 0f);&lt;/span&gt;&lt;font face="Times New Roman" size="3"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt; 
&lt;p&gt;&lt;font face="Verdana"&gt;On remarque ici une première différence avec nos programmes précédents : plus de couleur mais une coordonnée de texture associée&amp;nbsp;à chaque vertex. Le vertex 0 se trouve en haut à gauche du carré. La coordonnée (U,V) associée est donc (0, 0). On ancrera donc la partie supérieure gauche de la texture sur ce vertex. Le second vertex&amp;nbsp;se trouve en haut à droite sa coordonnée est donc&amp;nbsp; (0, 0). La partie supérieure droite va être ancrée sur lui. Ainsi de suite pour les 4 autres vertices. C&amp;#39;est exactement ce que nous avons vu au tout début de ce chapitre.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Nous devons aussi spécifier à notre effet que nous ne manipulons plus des vertices colorés, mais texturés. Pour cela modifiez la ligne :&lt;/font&gt;&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;this&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;.effect.CurrentTechnique = effect.Techniques[&lt;span style="COLOR:maroon;"&gt;&amp;quot;Colored&amp;quot;&lt;/span&gt;];&lt;/span&gt; 
&lt;p&gt;&lt;font face="Verdana"&gt;en&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;this&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;.effect.CurrentTechnique = effect.Techniques[&lt;span style="COLOR:maroon;"&gt;&amp;quot;Textured&amp;quot;&lt;/span&gt;];&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Il a été vu précédemment que le device où est affiché notre jeu (la carte graphique principale donc) a besoin de connaître le type de vertices utilisé (c&amp;#39;est à dire leur format). Il est donc nécessaire dans la méthode de dessin de modifier la ligne :&lt;/font&gt;&lt;/p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;this&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;.graphics.GraphicsDevice.VertexDeclaration = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;VertexDeclaration&lt;/span&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.graphics.GraphicsDevice, &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;VertexPositionColor&lt;/span&gt;&lt;font color="#000000"&gt;.VertexElements);&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;/font&gt; 
&lt;p&gt;&lt;font face="Verdana"&gt;en&lt;/font&gt;&lt;/p&gt;&lt;font face="Verdana"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;this&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;.graphics.GraphicsDevice.VertexDeclaration = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;VertexDeclaration&lt;/span&gt;(&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.graphics.GraphicsDevice, &lt;span style="COLOR:teal;"&gt;VertexPositionTexture&lt;/span&gt;.VertexElements);&lt;/span&gt;&lt;/font&gt; 
&lt;p&gt;&lt;font face="Verdana"&gt;A ce stade, l&amp;#39;application, à l&amp;#39;exécution affiche un magnifique carré ... noir ! Tout est normal : nous n&amp;#39;avons pas encore utilisé de texture et nous n&amp;#39;utilisons plus de couleur.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana" size="3"&gt;&lt;strong&gt;Ajout de textures au projet...&lt;/strong&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Nous utiliserons la texture prise en exemple précédemment :&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;img title="Notre texture" style="WIDTH:64px;HEIGHT:64px;" height="64" alt="Notre texture" src="http://msmvps.com/photos/valentin/images/574354/original.aspx" width="64" align="absMiddle" border="2" /&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Celle-ci, nommée &lt;em&gt;&amp;quot;texture.jpg&amp;quot;&lt;/em&gt;&amp;nbsp;se trouve à la racine du répertoire HuitiemeChapitre. Ajoutez là en cliquant droit sur le nom du projet et en selectionnant &amp;quot;ajouter un élément existant&amp;quot; : &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;img title="Cliquez droit sur le projet et selectionnez &amp;quot;Ajouter un élément existant&amp;quot;" style="WIDTH:741px;HEIGHT:570px;" height="570" alt="Cliquez droit sur le projet et selectionnez &amp;quot;Ajouter un élément existant&amp;quot;" src="http://msmvps.com/photos/valentin/images/574355/original.aspx" width="741" align="absMiddle" border="2" /&gt;&amp;nbsp;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Dans la fenetre qui s&amp;#39;ouvre, choisissez &amp;quot;Content Pipeline&amp;quot; dans la combobox de choix de type de contenu et selectionnez le fichier texture.jpg. &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;img style="WIDTH:601px;HEIGHT:393px;" height="393" src="http://msmvps.com/photos/valentin/images/574357/original.aspx" width="601" align="absMiddle" border="2" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Après validation&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&amp;nbsp;&lt;img style="WIDTH:323px;HEIGHT:209px;" height="209" src="http://msmvps.com/photos/valentin/images/574358/original.aspx" width="323" align="absMiddle" border="2" alt="" /&gt;&lt;/font&gt;&lt;/p&gt;&lt;font face="Verdana"&gt;Déclarez&amp;nbsp;un&amp;nbsp;object de type &lt;span style="FONT-SIZE:10pt;COLOR:teal;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;Texture2D&lt;/span&gt; dans la classe &lt;span style="FONT-SIZE:10pt;COLOR:teal;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;Game1&lt;/span&gt;.&amp;nbsp;&lt;/font&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&lt;font face="Verdana"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; 
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="courier new,courier"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:teal;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;Texture2D&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; texture;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/span&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;/font&gt;&lt;font face="Verdana"&gt;C&amp;#39;est cet objet qui va nous permettre de manipuler les textures dans notre application. Rendez vous maintenant dans la méthode &lt;font face="Courier New"&gt;LoadGraphicsContent &lt;/font&gt;: Il nous faut y&amp;nbsp;charger la texture mais aussi spécifier à notre effet que nous associons cette texture à l&amp;#39;affichage des vertices. Nous procédons comme ceci :&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;protected&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;override&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;void&lt;/span&gt;&lt;font color="#000000"&gt; LoadGraphicsContent(&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;bool&lt;/span&gt;&lt;font color="#000000"&gt; loadAllContent)&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;if&lt;/span&gt;&lt;font color="#000000"&gt; (loadAllContent)&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;// TODO: Load any ResourceManagementMode.Automatic content&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;texture = content.Load&amp;lt;&lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Texture2D&lt;/span&gt;&lt;font color="#000000"&gt;&amp;gt;(&lt;/font&gt;&lt;span style="COLOR:maroon;"&gt;&amp;quot;texture&amp;quot;&lt;/span&gt;&lt;font color="#000000"&gt;);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;effect.Parameters[&lt;/font&gt;&lt;span style="COLOR:maroon;"&gt;&amp;quot;xTexture&amp;quot;&lt;/span&gt;&lt;font color="#000000"&gt;].SetValue(texture);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;// TODO: Load any ResourceManagementMode.Manual content&lt;/span&gt;&lt;/span&gt; 
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;L&amp;#39;objet content de type &lt;span style="COLOR:teal;"&gt;&lt;font face="Courier New"&gt;ContentManager&lt;/font&gt;&lt;/span&gt;&amp;nbsp;s&amp;#39;occupe des ressources du jeu en évitant au développeur d&amp;#39;avoir à se soucier de leur gestion. La méthode Load, générique est son seul membre réellement interessant. Elle renvoie un objet du type spécifié en généricité à partir du path ressource donné. Ici :&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Courier New"&gt;texture = content.Load&amp;lt;&lt;span style="COLOR:teal;"&gt;Texture2D&lt;/span&gt;&amp;gt;(&lt;span style="COLOR:maroon;"&gt;&amp;quot;texture&amp;quot;&lt;/span&gt;);&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;Nous indiquons la spécificité sur le type &lt;span style="COLOR:teal;"&gt;&lt;font face="Courier New"&gt;Texture2D&lt;/font&gt;&lt;/span&gt;&amp;nbsp;et donnons en path la string &lt;span style="COLOR:maroon;"&gt;&lt;font face="Courier New"&gt;&amp;quot;texture&amp;quot;&lt;/font&gt;&lt;/span&gt;. Nous ne donnons pas l&amp;#39;extension &amp;quot;.jpg&amp;quot; car la méthode Load prend le nom AssetName. Pour voir sa valeur, selectionnez la texture dans le projet et appuyez sur F4 (ou cliquez droit sur ce fichier et faites Propriété). Dans la fenêtre d&amp;#39;outil qui s&amp;#39;ouvre le champs AssetName contient la string &amp;quot;texture&amp;quot;. Vous pouvez toujorus changer cette valeur pour donner un nom explicite, mais faites attention à bien vous y retrouver lorsque vous avez plusierus centaines de fichiers ressources !&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;Si vous lancez l&amp;#39;application vous obtenez maintenant :&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;&lt;img style="WIDTH:617px;HEIGHT:559px;" height="559" src="http://msmvps.com/photos/valentin/images/574419/original.aspx" width="617" align="absMiddle" border="2" alt="" /&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;Voila nous avons terminé ! Comme exercice revenez sur le premier point de ce chapitre où l&amp;#39;ont voit différentes manière de texturer un carré. Appliquez ces différentes possibilités à votre programme pour les tester.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font style="BACKGROUND-COLOR:#ffff00;"&gt;&lt;img title="telecharger" style="WIDTH:24px;HEIGHT:24px;" height="24" alt="telecharger" src="http://www.adcworks.com/images/content/icon-download.gif" width="24" align="middle" /&gt;&amp;nbsp;Vous pouvez télécharger le sample, les deux moteurs et les exercices &lt;a class="" href="http://msmvps.com/files/folders/valentin/entry582110.aspx" target="_blank"&gt;ici&lt;/a&gt;&lt;font face="times new roman,times" color="#000000"&gt;.&lt;/font&gt;&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;Ajout de textures et de couleurs&amp;nbsp;au projet...&lt;/strong&gt;&amp;nbsp;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;&lt;font face="Verdana"&gt;Avant de passer aux choses sérieuses, nous allons tenter d&amp;#39;associer trois données à chaque vertex :&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;La position bien évidemment&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;La texture &lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;Une couleur&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/font&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;Nous utiliserons pour cela la structure de format de vertex &lt;span style="COLOR:teal;"&gt;&lt;font face="Courier New"&gt;VertexPositionColorTexture&lt;/font&gt;&lt;/span&gt;&amp;nbsp;en lieu et place de &lt;span style="COLOR:teal;"&gt;&lt;font face="Courier New"&gt;VertexPositionTexture&lt;/font&gt;&lt;/span&gt;.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;La déclaration des vertices sera modifiée de manière a spécifier le champs color comme auparavant :&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;font face="Verdana"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;vertices = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;VertexPositionColorTexture&lt;/span&gt;&lt;img src="http://msmvps.com/emoticons/emotion-14.gif" alt="Devil" /&gt;;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;//triangle 1, face devant&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;vertices[0].Position = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;(-10f, 0f, -10f);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;vertices[0].TextureCoordinate = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;(0f, 0f);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;vertices[0].Color = &lt;span style="COLOR:teal;"&gt;Color&lt;/span&gt;.Green;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;vertices[1].Position = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;(-10f, 0f, 10f);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;vertices[1].TextureCoordinate = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;(0f, 1f);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;vertices[1].Color = &lt;span style="COLOR:teal;"&gt;Color&lt;/span&gt;.Red;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;vertices[2].Position = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;(10f, 0f, 10f);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;vertices[2].TextureCoordinate = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;(1f, 1f);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;vertices[2].Color = &lt;span style="COLOR:teal;"&gt;Color&lt;/span&gt;.Yellow;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;//triangle 2, face devant&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;vertices[3].Position = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;(-10f, 0f, -10f);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;vertices[3].TextureCoordinate = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;(0f, 0f);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;vertices[3].Color = &lt;span style="COLOR:teal;"&gt;Color&lt;/span&gt;.Green;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;vertices[4].Position = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;(10f, 0f, 10f);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;vertices[4].TextureCoordinate = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;(1f, 1f);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;vertices[4].Color = &lt;span style="COLOR:teal;"&gt;Color&lt;/span&gt;.Red;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;vertices[5].Position = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;(10f, 0f, -10f);&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;vertices[5].TextureCoordinate = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;(1f, 0f);&lt;/span&gt; 
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;vertices[5].Color = &lt;span style="COLOR:teal;"&gt;Color&lt;/span&gt;.Yellow;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&amp;nbsp;&lt;/p&gt;&lt;/font&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;Faites bien attention à remplacer partout &lt;span style="COLOR:teal;"&gt;&lt;font face="Courier New"&gt;VertexPositionTexture&lt;/font&gt;&lt;font face="Verdana" color="#000000"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;Si vous lancez cette nouvelle version du programme, vous obtenez la même sortie qu&amp;#39;auparavant : et pour cause, notre fichier effet ne permet pas de gérer les vertices qui possèdent&amp;nbsp;à la fois une coordonnée de texture et une couleur. Deux possibilités face à ce problème : chercher un fichier effet qui permet cela, ou utiliser celui de base inclu dans le framework. C&amp;#39;est cette seconde option que nous utiliserons pour sa simplicité.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;La classe &lt;span style="FONT-SIZE:10pt;COLOR:teal;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;BasicEffect&lt;/span&gt;&lt;/font&gt;&lt;font face="Verdana"&gt; est une classe qui encapsule en interne un fichier effet (.fx) pratiquement identique à celui que nous utilisions jusque là. Elle&amp;nbsp;offre une interface objet simple et intuitive pour paramétrer la façon dont les vertices sont affichés à l&amp;#39;écran. &lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;Remarque : Pourquoi ne pas avoir directement utilisé cette classe au tout début de notre apprentissage&amp;nbsp;? Pour des raisons de compréhension : lorsqu&amp;#39;on travaille à&amp;nbsp;trop haut niveau les API nous cachent se qui se passe réellement dans les couches basses des fonctionnalités utilisées. On se trouve souvent ainsi confrontés à des bugs incompréhensibles faute de connaissances techniques... Ce qui a été appris jusqu&amp;#39;ici sera très utile lorsque nous aborderons le chapitre sur les effets.&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;Supprimez toutes les références vers la classe &lt;font face="Courier New" color="#008080"&gt;Effect&lt;/font&gt; et son instance &lt;font face="courier new,courier"&gt;effect&lt;/font&gt; du programme. Ajoutez la déclaration suivante dans la classe &lt;font face="Courier New" color="#008080"&gt;Game1&lt;/font&gt; :&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;font face="Verdana"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font color="#008080" size="2"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:teal;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;BasicEffect&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt; effect;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Verdana"&gt;&lt;/font&gt; 
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;Dans la méthode Initialize ajoutez le code suivant :&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&amp;nbsp;&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;effect = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;BasicEffect&lt;/span&gt;(&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.graphics.GraphicsDevice, &lt;span style="COLOR:blue;"&gt;null&lt;/span&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;effect.VertexColorEnabled = &lt;span style="COLOR:blue;"&gt;true&lt;/span&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;effect.TextureEnabled = &lt;span style="COLOR:blue;"&gt;true&lt;/span&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;effect.View = viewMatrix;&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;effect.Projection = projectionMatrix;&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;effect.World = &lt;span style="COLOR:teal;"&gt;Matrix&lt;/span&gt;.Identity;&lt;/span&gt; 
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;Nous pouvons en convenir : le code est réellement plus simple ; Ecrire :&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&amp;nbsp;&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;effect.View = viewMatrix;&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;effect.Projection = projectionMatrix;&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;effect.World = &lt;span style="COLOR:teal;"&gt;Matrix&lt;/span&gt;.Identity;&lt;/span&gt; 
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;est plus lisible que&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&amp;nbsp;&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;effect.Parameters[&lt;span style="COLOR:maroon;"&gt;&amp;quot;xView&amp;quot;&lt;/span&gt;].SetValue(viewMatrix);&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;effect.Parameters[&lt;span style="COLOR:maroon;"&gt;&amp;quot;xProjection&amp;quot;&lt;/span&gt;].SetValue(projectionMatrix);&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;effect.Parameters[&lt;span style="COLOR:maroon;"&gt;&amp;quot;xWorld&amp;quot;&lt;/span&gt;].SetValue(&lt;span style="COLOR:teal;"&gt;Matrix&lt;/span&gt;.Identity);&lt;/span&gt; 
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;Les deux premières instructions&amp;nbsp;indiquent que les vertices affichés à l&amp;#39;écran gèrent à la fois la couleur et les textures :&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&amp;nbsp;&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;effect.VertexColorEnabled = &lt;span style="COLOR:blue;"&gt;true&lt;/span&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;effect.TextureEnabled = &lt;span style="COLOR:blue;"&gt;true&lt;/span&gt;;&lt;/span&gt; 
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;Reste a affecter la dite texture dans la méthode &lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;LoadGraphicsContent&lt;/span&gt; de cette manière :&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&amp;nbsp;&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;effect.Texture = texture;&lt;/span&gt;&lt;font face="Times New Roman" size="3"&gt;&lt;/font&gt;&amp;nbsp; 
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;Si vous lancez maintenant l&amp;#39;application le résultat est meilleur :&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;img style="WIDTH:612px;HEIGHT:480px;" height="480" src="http://msmvps.com/photos/valentin/images/577894/612x480.aspx" width="612" align="absMiddle" border="2" alt="" /&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;La couleur de chaque texel de la texture a été &amp;quot;aditionnée&amp;quot; à la couleur du pixel du carré issue de la couleur du vertex sous jacent.&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;Pour la suite de nos applications nous utiliserons la classe &lt;span style="COLOR:teal;"&gt;&lt;font face="Courier New"&gt;BasicEffect&lt;/font&gt;&lt;font face="Verdana" color="#000000"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="COLOR:teal;"&gt;&lt;font face="Verdana" color="#000000"&gt;&lt;font face="Verdana"&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font style="BACKGROUND-COLOR:#ffff00;"&gt;&lt;img title="telecharger" style="WIDTH:24px;HEIGHT:24px;" height="24" alt="telecharger" src="http://www.adcworks.com/images/content/icon-download.gif" width="24" align="middle" /&gt;&amp;nbsp;Vous pouvez télécharger le sample, les deux moteurs et les exercices &lt;a class="" href="http://msmvps.com/files/folders/valentin/entry582110.aspx" target="_blank"&gt;ici&lt;/a&gt;&lt;font face="times new roman,times" color="#000000"&gt;.&lt;/font&gt;&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;
&lt;p&gt;&lt;font face="Verdana" size="4"&gt;&lt;strong&gt;Passons aux choses sérieuses...&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Nous allons maintenant modifier la classe Cube du chapitre précédent afin de lui faire afficher une texture. Il lui sera aussi ajouté un objet de type&amp;nbsp;&lt;span style="COLOR:teal;"&gt;&lt;font face="Courier New"&gt;BasicEffect&lt;/font&gt;&lt;/span&gt; afin de mettre la gestion de l&amp;#39;affichage des vertices au niveau du cube et non au niveau de tous les cubes. De même, pour changer un peu,&amp;nbsp;une nouvelle texture (qui devrait rappeller de bon souvenirs) sera utilisée:&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;img style="WIDTH:256px;HEIGHT:256px;" height="256" src="http://msmvps.com/photos/valentin/images/581524/original.aspx" width="256" align="absMiddle" border="2" alt="" /&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;La classe Cube va contenir deux nouveaux champs : &lt;/font&gt;&lt;/p&gt;&lt;font face="Verdana"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;private&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; &lt;span style="COLOR:teal;"&gt;Texture2D&lt;/span&gt; _texture;&lt;/span&gt; 
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;private&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; &lt;span style="COLOR:teal;"&gt;BasicEffect&lt;/span&gt; _effect;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;et deux nouvelles propriétés :&lt;/font&gt;&lt;/p&gt;&lt;font face="Verdana"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;///&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;///&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;Gets the cube&amp;#39;s effect.&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;lt;/para&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;///&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;public&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;BasicEffect&lt;/span&gt;&lt;font color="#000000"&gt; Effect&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;get&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;return&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._effect;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;///&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;///&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;Gets or sets the cube&amp;#39;s texture.&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;lt;/para&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;///&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;public&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Texture2D&lt;/span&gt;&lt;font color="#000000"&gt; Texture&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;get&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;return&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._texture;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;set&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._texture = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;value&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._effect.Texture = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;value&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt; 
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;
&lt;p&gt;Une méthode &lt;font face="Courier New"&gt;InitializeEffect&lt;/font&gt;&amp;nbsp;est ajoutée pour initialiser notre effet :&lt;/font&gt;&lt;/p&gt;&lt;font face="Verdana"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;private&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; &lt;span style="COLOR:blue;"&gt;void&lt;/span&gt; InitializeEffect()&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._effect = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;BasicEffect&lt;/span&gt;(&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._device, &lt;span style="COLOR:blue;"&gt;null&lt;/span&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._effect.VertexColorEnabled = &lt;span style="COLOR:blue;"&gt;true&lt;/span&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._effect.TextureEnabled = &lt;span style="COLOR:blue;"&gt;true&lt;/span&gt;;&lt;/span&gt; 
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;La méthode &lt;font face="Courier New"&gt;Render&lt;/font&gt; est modifiée en conséquence :&lt;/p&gt;&lt;/font&gt;&lt;font face="Verdana"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;public&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;void&lt;/span&gt;&lt;font color="#000000"&gt; Render()&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._effect.Begin();&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;foreach&lt;/span&gt;&lt;font color="#000000"&gt; (&lt;/font&gt;&lt;span style="COLOR:teal;"&gt;EffectPass&lt;/span&gt;&lt;font color="#000000"&gt; pass &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;in&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._effect.CurrentTechnique.Passes)&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;pass.Begin();&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device.Vertices[0].SetSource(&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._vertexBuffer, 0, &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;VertexPositionColorTexture&lt;/span&gt;&lt;font color="#000000"&gt;.SizeInBytes);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device.Indices = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._indexBuffer;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device.VertexDeclaration = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;VertexDeclaration&lt;/span&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device, &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;VertexPositionColorTexture&lt;/span&gt;&lt;font color="#000000"&gt;.VertexElements);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device.DrawIndexedPrimitives(&lt;/font&gt;&lt;span style="COLOR:teal;"&gt;PrimitiveType&lt;/span&gt;&lt;font color="#000000"&gt;.TriangleList, 0, 0, 24, 0, 12);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;pass.End();&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._effect.End();&lt;/font&gt;&lt;/span&gt; 
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;
&lt;p&gt;Le code de la classe&amp;nbsp;est maintenant largement simplifié. Il ne nous reste plus qu&amp;#39;à modifier la déclarations des 8 vertices du cube pour leur donner à chacun, une coordonnée de texture.&amp;nbsp;En fait il y&amp;#39;a ici un problème. Nous avons 8 vertices pour 6 faces et donc 12 triangles. Donc chaque vertex du cube est utilisé pour plusieurs faces. L&amp;#39;image suivant illustre le problème :&lt;/p&gt;
&lt;p&gt;&lt;img title="Le vertex rouge est utilisé par plusieurs face" style="WIDTH:264px;HEIGHT:248px;" height="248" alt="Le vertex rouge est utilisé par plusieurs face" src="http://msmvps.com/photos/valentin/images/581854/original.aspx" width="264" align="absMiddle" border="2" /&gt;&lt;br /&gt;&lt;font size="1"&gt;&lt;u&gt;Le vertex rouge est utilisé par plusieurs face&lt;/u&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Si on prend le vertex surmonté d&amp;#39;un point rouge, on remarque que celui-ci appartient à trois faces :&lt;/font&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La rouge pâle&lt;/li&gt;
&lt;li&gt;La jaune pâle&lt;/li&gt;
&lt;li&gt;La bleue pâle&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Comment donner à ce vertex une coordonnée de texture dans ces conditions ? Pour la face rouge, ce vertex se trouve en bas à droite il aurait donc la coordonnée (1,1), or pour la face jaune il est en haut à droite et possède donc l&amp;#39;emplacement (1,0) sans parler de la face bleue dans laquelle il a la coordonnée (0,0) soit haut gauche. En fait chaque point du cube (au total&amp;nbsp;8 points) appartiennent à 3 faces. Il est donc nécessaire de créer non pas 8 vertices pour un cube mais 24 : chaque face possèdera ses propres vertices non partagés avec les autres faces, nous avons 6 faces de 4 vertices donc 24 vertices. Il ne s&amp;#39;agit pas ici d&amp;#39;une regression ; nous ne revenons pas au cube du &lt;a class="" href="http://msmvps.com/blogs/valentin/archive/2007/01/17/xna-tutorial-5-les-matrices-et-les-transformations.aspx" target="_blank"&gt;tutoriel 5&lt;/a&gt; qui possédait 36 vertices. La méthode&amp;nbsp;&lt;font face="Courier New"&gt;InitializeVertices&lt;/font&gt; se présente désormais ainsi :&lt;/p&gt;&lt;font face="Verdana"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;private&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;void&lt;/span&gt;&lt;font color="#000000"&gt; InitializeVertices()&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:teal;"&gt;VertexPositionColorTexture&lt;/span&gt;&lt;font color="#000000"&gt;[] vertices = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;VertexPositionColorTexture&lt;/span&gt;&lt;font color="#000000"&gt;[24];&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;//face devant&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[0].Position = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;(0f, 0f, 0f);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[0].Color = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Color;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[0].TextureCoordinate = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;&lt;font color="#000000"&gt;(0, 1);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[1].Position = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;(0f, 0f, 1f);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[1].Color = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Color;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[1].TextureCoordinate = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;&lt;font color="#000000"&gt;(0, 0);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[2].Position = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;(1f, 0f, 1f);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[2].Color = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Color;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[2].TextureCoordinate = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;&lt;font color="#000000"&gt;(1, 0);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[3].Position = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;(1f, 0f, 0f);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[3].Color = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Color;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[3].TextureCoordinate = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;&lt;font color="#000000"&gt;(1, 1);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;//face derrière&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[4].Position = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;(1f, 1f, 1f);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[4].Color = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Color;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[4].TextureCoordinate = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;&lt;font color="#000000"&gt;(0, 0);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[5].Position = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;(1f, 1f, 0f);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[5].Color = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Color;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[5].TextureCoordinate = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;&lt;font color="#000000"&gt;(0, 1);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices&lt;img src="http://msmvps.com/emoticons/emotion-14.gif" alt="Devil" /&gt;.Position = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;(0f, 1f, 0f);&lt;/font&gt;&lt;span style="COLOR:green;"&gt;//&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices&lt;img src="http://msmvps.com/emoticons/emotion-14.gif" alt="Devil" /&gt;.Color = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Color;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices&lt;img src="http://msmvps.com/emoticons/emotion-14.gif" alt="Devil" /&gt;.TextureCoordinate = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;&lt;font color="#000000"&gt;(1, 1);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[7].Position = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;(0f, 1f, 1f);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[7].Color = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Color;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[7].TextureCoordinate = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;&lt;font color="#000000"&gt;(1, 0);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;//face gauche&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices&lt;img src="http://msmvps.com/emoticons/emotion-29.gif" alt="Music" /&gt;.Position = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;(0f, 1f, 0f);&lt;/font&gt;&lt;span style="COLOR:green;"&gt;//&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices&lt;img src="http://msmvps.com/emoticons/emotion-29.gif" alt="Music" /&gt;.Color = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Color;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices&lt;img src="http://msmvps.com/emoticons/emotion-29.gif" alt="Music" /&gt;.TextureCoordinate = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;&lt;font color="#000000"&gt;(0, 1);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[9].Position = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;(0f, 1f, 1f);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[9].Color = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Color;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[9].TextureCoordinate = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;&lt;font color="#000000"&gt;(0, 0);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[10].Position = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;(0f, 0f, 1f);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[10].Color = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Color;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[10].TextureCoordinate = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;&lt;font color="#000000"&gt;(1, 0);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[11].Position = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;(0f, 0f, 0f);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[11].Color = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Color;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[11].TextureCoordinate = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;&lt;font color="#000000"&gt;(1, 1);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;//face droite&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[12].Position = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;(1f, 0f, 0f);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[12].Color = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Color;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[12].TextureCoordinate = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;&lt;font color="#000000"&gt;(0, 1);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[13].Position = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;(1f, 0f, 1f);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[13].Color = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Color;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[13].TextureCoordinate = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;&lt;font color="#000000"&gt;(0, 0);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[14].Position = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;(1f, 1f, 1f);&lt;/font&gt;&lt;span style="COLOR:green;"&gt;//&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[14].Color = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Color;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[14].TextureCoordinate = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;&lt;font color="#000000"&gt;(1, 0);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[15].Position = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;(1f, 1f, 0f);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[15].Color = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Color;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[15].TextureCoordinate = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;&lt;font color="#000000"&gt;(1, 1);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;//face haut&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[16].Position = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;(0f, 0f, 1f);&lt;/font&gt;&lt;span style="COLOR:green;"&gt;//&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[16].Color = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Color;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[16].TextureCoordinate = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;&lt;font color="#000000"&gt;(0, 1);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[17].Position = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;(0f, 1f, 1f);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[17].Color = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Color;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[17].TextureCoordinate = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;&lt;font color="#000000"&gt;(0, 0);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[18].Position = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;(1f, 1f, 1f);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[18].Color = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Color;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[18].TextureCoordinate = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;&lt;font color="#000000"&gt;(1, 0);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[19].Position = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;(1f, 0f, 1f);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[19].Color = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Color;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[19].TextureCoordinate = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;&lt;font color="#000000"&gt;(1, 1);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;//face bas&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[20].Position = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;(1f, 0f, 0f);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[20].Color = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Color;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[20].TextureCoordinate = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;&lt;font color="#000000"&gt;(0, 1);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[21].Position = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;(1f, 1f, 0f);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[21].Color = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Color;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[21].TextureCoordinate = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;&lt;font color="#000000"&gt;(0, 0);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[22].Position = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;(0f, 1f, 0f);&lt;/font&gt;&lt;span style="COLOR:green;"&gt;//&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[22].Color = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Color;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[22].TextureCoordinate = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;&lt;font color="#000000"&gt;(1, 0);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[23].Position = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;(0f, 0f, 0f);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[23].Color = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Color;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[23].TextureCoordinate = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;&lt;font color="#000000"&gt;(1, 1);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;if&lt;/span&gt;&lt;font color="#000000"&gt; (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.IsObjectOriginInCubeCenter)&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;for&lt;/span&gt;&lt;font color="#000000"&gt; (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;&lt;font color="#000000"&gt; i = 0; i &amp;lt; 24; i++)&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices&lt;img src="http://msmvps.com/emoticons/emotion-55.gif" alt="Idea" /&gt;.Position += &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;(-0.5f, -0.5f, -0.5f);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._vertexBuffer = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;VertexBuffer&lt;/span&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device,&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;typeof&lt;/span&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;span style="COLOR:teal;"&gt;VertexPositionColorTexture&lt;/span&gt;&lt;font color="#000000"&gt;),&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;24,&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:teal;"&gt;ResourceUsage&lt;/span&gt;&lt;font color="#000000"&gt;.WriteOnly,&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:teal;"&gt;ResourceManagementMode&lt;/span&gt;&lt;font color="#000000"&gt;.Automatic);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._vertexBuffer.SetData(vertices);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;font face="Times New Roman" color="#000000" size="3"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt; 
&lt;p&gt;A noter la présence du bloc :&lt;/font&gt;&lt;/p&gt;&lt;font face="Verdana"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;if&lt;/span&gt; (&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.IsObjectOriginInCubeCenter)&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;for&lt;/span&gt;(&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt; i = 0 ; i &amp;lt; 24 ; i++)&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices&lt;img src="http://msmvps.com/emoticons/emotion-55.gif" alt="Idea" /&gt;.Position += &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;(-0.5f, -0.5f, -0.5f);&lt;/span&gt;&lt;/font&gt; 
&lt;p&gt;&lt;font face="Verdana"&gt;J&amp;#39;ai rajouté sur demande de certains d&amp;#39;entre vous une propriétée nommée qui permet de préciser si le centre du cube doit coincider avec l&amp;#39;origine du repère de l&amp;#39;objet (pour plus d&amp;#39;information allez voir &lt;a class="" href="http://msmvps.com/blogs/valentin/archive/2007/02/05/azrr.aspx" target="_blank"&gt;ici&lt;/a&gt;). L&amp;#39;origine se trouve par défaut sur le vertice 0, pour mettre l&amp;#39;origine au centre du cube il me suffit de déplacer tous les vertices de 0.5f unités car le cube a une taille de 1. Modifiez la méthode d&amp;#39;affichage pour indiquer que vous gérez non plus 8 vertices mais 24. Au lancement vous obtenez&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;img title="On aurait presque envie de donner un coup de tête à la mario :)" style="WIDTH:612px;HEIGHT:480px;" height="480" alt="On aurait presque envie de donner un coup de tête à la mario :)" src="http://msmvps.com/photos/valentin/images/581984/612x480.aspx" width="612" align="absMiddle" border="2" /&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;(je reviendrais dans une annexe sur la manière de faire des mouvements amples et fluides pour ses objets dans une annexe prochainement).&lt;/font&gt;&lt;/p&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&lt;font face="Verdana"&gt;&lt;span style="COLOR:teal;"&gt;&lt;font face="Verdana" color="#000000"&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font style="BACKGROUND-COLOR:#ffff00;"&gt;&lt;img title="telecharger" style="WIDTH:24px;HEIGHT:24px;" height="24" alt="telecharger" src="http://www.adcworks.com/images/content/icon-download.gif" width="24" align="middle" /&gt;&amp;nbsp;Vous pouvez télécharger le sample, les deux moteurs et les exercices &lt;a class="" href="http://msmvps.com/files/folders/valentin/entry582110.aspx" target="_blank"&gt;ici&lt;/a&gt;&lt;font face="times new roman,times" color="#000000"&gt;.&lt;/font&gt;&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Verdana" size="4"&gt;&lt;strong&gt;A ce stade de nos connaissances nous pouvons ...&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;L&amp;#39;information qui suit est à prendre avec des pincette mais elle donne toutefois une idée assez précise du niveau de nos connaissances à ce stade de notre apprentissage. Une partie de ceux qui lisent ces lignes ont sans doute déjà joué à l&amp;#39;un des épisode de la série à succès Tomb Raider (l&amp;#39;auteur de cours XNA a pour sa part joué aux version 1, 2, 3, 4). Nous sommes maintenant capable de réaliser des mondes tous à fait similaires à celui présenté par la capture d&amp;#39;écran ci-dessous :&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;a class="" href="http://msmvps.com/photos/valentin/images/582003/original.aspx" target="_blank"&gt;&lt;img style="WIDTH:640px;HEIGHT:480px;" height="480" src="http://msmvps.com/photos/valentin/images/582003/640x480.aspx" width="640" align="absMiddle" border="2" alt="" /&gt;&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Regardez attentivement cette image. Vous verrez qu&amp;#39;en fait, ce monde n&amp;#39;est constitué que de formes cubiques comme nous savons très bien les faire maintenant : des cubes, des cubes coupés sur leur diagonale, des cubes coupés en leur milieu etc. C&amp;#39;est là toute l&amp;#39;ingéniosité et toute la puissance du moteur de Core/Eidos : reproduire n&amp;#39;importe quelle architecture/géographique à l&amp;#39;aide de ces formes. Les mouvements de Lara sont&amp;nbsp;d&amp;#39;ailleur soumi à une seule unité de mesure : la taille d&amp;#39;un cube. Ce principe assez proche des jeux de plateforme 2D permet de gérer les collisions et&amp;nbsp;les déplacements très facilement et de créer des formes à l&amp;#39;écran simplement. Core/Eidos peut donc créer des mondes et développer un moteur beaucoup plus rapidement que des moteurs complexes comme celui de World Of Warcraft (que nous reproduirons à la fin de cet apprentissage).&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Si le temps nous le permet nous essayerons de reproduire un monde à base de cubes.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana" size="4"&gt;&lt;strong&gt;Les filtres&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="verdana,geneva" size="3"&gt;&lt;strong&gt;Introduction&amp;nbsp;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="verdana,geneva"&gt;Tous ceux qui ont travaillé avec des programmes d’édition d’images comme paint shop pro ou photoshop sont familiers des effets de pixellisation. On obtient cet effet désagréable lorsqu’on réduit la taille d’une image selon un rapport impair. Résultat : de nombreux &lt;/font&gt;&lt;font face="verdana,geneva"&gt;détails sont perdus et la qualité de l&amp;#39;image s&amp;#39;en ressent. Pour éviter cela, les bons programmes d’édition d’images proposent différentes techniques de réduction ou d&amp;#39;augmentation de taille d&amp;#39;image aussi nommées filtrage pour réduire au minimum les pertes dues au changement de taille. XNA aussi.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="verdana,geneva"&gt;Pour mieux comprendre, voici un exemple concrêt : Quand&amp;nbsp;XNA affiche une primitive, il plaque un modèle 3-D sur un écran 2-D. Si la primitive&amp;nbsp;possède une texture,&amp;nbsp;XNA doit utiliser cette dernière&amp;nbsp;afin de créer une couleur pour chaque Pixel de ce modèle en utiliser une valeur de couleur de la texture. C&amp;#39;est ce&amp;nbsp;processus qu&amp;#39;on appelle filtrage de texture.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="verdana,geneva"&gt;Quand une opération de filtre de texture est effectuée, la texture utilisée est &amp;quot;magnifiée&amp;quot; (agrandie)&amp;nbsp;ou &amp;quot;minifiée&amp;quot; (réduite). En d&amp;#39;autres termes, elle est plaquée sur une primitive qui est plus grande ou plus petite que sa propre taille. La magnification d&amp;#39;une texture peut avoir comme conséquence l&amp;#39;utilisation d&amp;#39;un seul texel (point de couleur dans une texture) pour colorer un grand nombre&amp;nbsp;de Pixel à l&amp;#39;écran. L&amp;#39;image résultante peut être volumineuse et pixelisée. La Minification d&amp;#39;une texture au contraire signifie souvent qu&amp;#39;un Pixel simple se substitue à plusieurs&amp;nbsp;texels. L&amp;#39;image résultante peut être trouble . Pour résoudre ces problèmes, se mélanger des couleurs de texel doit être effectué pour arriver à une couleur pour le Pixel.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="verdana,geneva"&gt;XNA tout comme DirectX fournit&amp;nbsp;plusieurs types de filtrage de texture (lineaire, anisotropic, gaussien ...)&amp;nbsp;et un système de mipmapping (notion sur laquelle nous reviendrons plus loin). Si vous ne choisissez aucun filtre, XNA emploie une technique appelée nearestpoint sampling (en gros : choix du texel le plus proche). &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="verdana,geneva"&gt;Chaque type de filtrage de texture a des avantages et des inconvénients. Par exemple, le filtrage linéaire de texture peut produire des bords déchiquetés ou un aspect volumineux dans l&amp;#39;image finale. Cependant, c&amp;#39;est un filtre très simple et rapide à mettre en place à faible coùt de mémoire. Le filtrage anisotrope demande plus de temps processeur et beaoucp plus de mémoire.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="verdana,geneva"&gt;L’exemple suivant dans le jeu Might and Magic le montre bien : &lt;br /&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;img title="— La maison vue de loin est belle …" style="WIDTH:640px;HEIGHT:480px;" height="480" alt="— La maison vue de loin est belle …" src="http://msmvps.com/photos/valentin/images/600889/original.aspx" width="640" align="absMiddle" border="2" /&gt;&lt;br /&gt;&lt;font size="1"&gt;&lt;u&gt;La maison vu de loin est belle ...&lt;/u&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;img title="— … mais quand on s’approche … tout est pixellisé et … hideux" style="WIDTH:640px;HEIGHT:480px;" height="480" alt="— … mais quand on s’approche … tout est pixellisé et … hideux" src="http://msmvps.com/photos/valentin/images/600903/original.aspx" width="640" align="absMiddle" border="2" /&gt;&amp;nbsp;&lt;br /&gt;&lt;u&gt;&lt;font size="1"&gt;... mais quand on s’approche ... tout est pixellisé et ... hideux le jeu à l&amp;#39;époque, manquait d&amp;#39;un bon filtre de texture... &lt;/font&gt;&lt;/u&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Might and Magic dans sa version 6 (NDA : la meilleure version) n&amp;#39;était pas très avancé graphiquement parlant. Le jeu manquait en autres choses d&amp;#39;un bon filtrage de texture. La première image montre un batiment dans la ville de Sorpigal. Vu de loin, la texture qui est plaquée sur ce batiment semble normale, mais comme le montre la seconde image, si l&amp;#39;on s&amp;#39;approche, un filtre nearest point sampling est effectué pour créer une magnification : on agrandit énormément la texture. En ressort alors un très désagréable effet de pixelisation. Dans la première image, la surface visible du batiment est d&amp;#39;environ 300*200. On s&amp;#39;approche donc de la taille de cette texture : l&amp;#39;affichage est donc optimal. Dans la seconde image la surface d&amp;#39;affichage pour la texture passe a 450*350 et ce pour n&amp;#39;afficher que 8%&amp;nbsp;de la texture ! &lt;/font&gt;&lt;font face="Verdana"&gt;L&amp;#39;utilisation d&amp;#39;un bon filtrage permet d&amp;#39;éviter cet effet pixélisé horrible.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana" size="3"&gt;&lt;strong&gt;Et Xna dans tout ça ?&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;XNA offre au développeurs&amp;nbsp;5 filtrages (tous énuméré dans le type&amp;nbsp;&lt;span style="FONT-SIZE:10pt;COLOR:teal;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;TextureFilter&lt;/span&gt;) :&lt;/font&gt;&lt;/p&gt;&lt;font face="Verdana"&gt;&amp;nbsp; 
&lt;table class="" cellpadding="0"&gt;

&lt;tr&gt;
&lt;td class=""&gt;
&lt;p&gt;&lt;b&gt;Membre&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class=""&gt;
&lt;p&gt;&lt;b&gt;Description&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=""&gt;
&lt;p&gt;&lt;a class="" title="GaussianQuad" name="GaussianQuad"&gt;&lt;/a&gt;GaussianQuad&lt;/p&gt;&lt;/td&gt;
&lt;td class=""&gt;
&lt;p&gt;Un filtre 4-sample Gaussien pour la magnification ou la minification.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=""&gt;
&lt;p&gt;&lt;a class="" title="PyramidalQuad" name="PyramidalQuad"&gt;&lt;/a&gt;PyramidalQuad&lt;/p&gt;&lt;/td&gt;
&lt;td class=""&gt;
&lt;p&gt;Un filtre 4-sample pour la magnification ou la minification.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=""&gt;
&lt;p&gt;&lt;a class="" title="Anisotropic" name="Anisotropic"&gt;&lt;/a&gt;Anisotropic&lt;/p&gt;&lt;/td&gt;
&lt;td class=""&gt;
&lt;p&gt;Un filtre de texture anisotrope utilisé pour la magnification ou la minification. Les filtres anisotrope compensent la distorsion représentent par &amp;nbsp;l&amp;#39;angle &amp;nbsp;du polygone à mapper et la position de la caméra.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=""&gt;
&lt;p&gt;&lt;a class="" title="Linear" name="Linear"&gt;&lt;/a&gt;Linear&lt;/p&gt;&lt;/td&gt;
&lt;td class=""&gt;
&lt;p&gt;Un filtre de texture anisotrope utilisé pour la magnification ou la minification. Une moyenne pondérée de 2x2 texels autour du texel concerné est utilisé.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=""&gt;
&lt;p&gt;&lt;a class="" title="Point" name="Point"&gt;&lt;/a&gt;Point&lt;/p&gt;&lt;/td&gt;
&lt;td class=""&gt;
&lt;p&gt;Un filtre de texture point utilisé pour la magnification ou la minification. Le texel avec les coordonnées les plus proches du pixel voulu est utilisé.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=""&gt;
&lt;p&gt;&lt;a class="" title="None" name="None"&gt;&lt;/a&gt;None&lt;/p&gt;&lt;/td&gt;
&lt;td class=""&gt;
&lt;p&gt;Aucun filtre.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/font&gt;&lt;font face="Verdana"&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;C&amp;#39;est la propriété &lt;font face="Courier New"&gt;SamplerStates&lt;/font&gt; de l&amp;#39;objet &lt;span style="COLOR:teal;"&gt;&lt;font face="Courier New"&gt;GraphicsDevice&lt;/font&gt;&lt;/span&gt; qui va nous permettre de spécifier le filtrage à appliquer en minification et/ou en magnification.&lt;br /&gt;Si nous voulons appliquer un filtre anisotrope en mignification et lineaire en magnignification nous ferons :&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;this&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;.graphics.GraphicsDevice.SamplerStates[0].MinFilter = &lt;span style="COLOR:teal;"&gt;TextureFilter&lt;/span&gt;.Anisotropic;&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;this&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;.graphics.GraphicsDevice.SamplerStates[0].MagFilter = &lt;span style="COLOR:teal;"&gt;TextureFilter&lt;/span&gt;.Linear;&lt;/span&gt; 
&lt;p&gt;&lt;br /&gt;...pas très compliqué. Nous utilisons ici la propriété &lt;font face="Courier New"&gt;SamplerStates&lt;/font&gt; comme un tableau tout simplement parcequ&amp;#39;il est possible de plaquer plusieurs textures sur un même polygone (jusqu&amp;#39;à 8 textures). Nous appliquons ici nos filtres&amp;nbsp;&lt;font face="Courier New"&gt;MinFilter&lt;/font&gt; et &lt;font face="Courier New"&gt;MagFilter&lt;/font&gt;&amp;nbsp;sur la première texture (0). La classe &lt;span style="FONT-SIZE:10pt;COLOR:teal;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;SamplerState&lt;/span&gt;&amp;nbsp;possède de nombreux membres pour la gestion de l&amp;#39;affichage des textures à l&amp;#39;écran. Nous les verrons tous dans ce chapitre.&lt;/p&gt;&lt;/font&gt;
&lt;p&gt;&lt;font face="Verdana" size="3"&gt;&lt;strong&gt;Un exemple concrêt&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Rien de mieux pour bien comprendre l&amp;#39;effet d&amp;#39;un filtre à l&amp;#39;écran que de développer un exemple. Nous reprendrons le dernier projet pour y effectuer quelques menues modifications. Voici ce que nous allons faire : un cube va être affiché en gros plan. Il tournera sur lui-même a vitesse très réduite de sorte de bien mettre en évidence les différents filtres que nous appliquerons. Les filtres seront selectionnés au clavier : la touche &amp;#39;A&amp;#39; pour anisotope, &amp;#39;L&amp;#39; pour linéaire, &amp;#39;P&amp;#39; pour point, &amp;#39;G&amp;#39; pour Gaussian, &amp;#39;Q&amp;#39; pour Pyramidal, &amp;#39;N&amp;#39; pour aucun. Si la touche Shift est appuyée en même temps, le filtre s&amp;#39;applique en magnification, sinon, en minification.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;En fait le sample sera rapide à écrire, nous n&amp;#39;allons ajouter qu&amp;#39;une vingtaine d&amp;#39;instructions. Première étape, la classe &lt;span style="COLOR:teal;"&gt;&lt;font face="Courier New"&gt;Cube&lt;/font&gt;&lt;/span&gt;. Ajout de deux membres et deux propriétés associées pour sauvegarder le filtre en magnification et minification :&lt;/font&gt;&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;TextureFilter&lt;/span&gt; _minfilter;&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;TextureFilter&lt;/span&gt; _magfilter;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;TextureFilter&lt;/span&gt; MagTextureFilter&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;get&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;return&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._magfilter;&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;set&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._magfilter = &lt;span style="COLOR:blue;"&gt;value&lt;/span&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;TextureFilter&lt;/span&gt; MinTextureFilter&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;get&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;return&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._minfilter;&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;set&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._minfilter = &lt;span style="COLOR:blue;"&gt;value&lt;/span&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt; 
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Seconde étape : Application des filtres dans la méthode Render :&lt;/font&gt;&lt;/p&gt;&lt;font face="Verdana"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;///&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;///&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;lt;para&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;Render the cube on the device.&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;lt;/para&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;///&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;public&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;void&lt;/span&gt;&lt;font color="#000000"&gt; Render()&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._effect.Begin();&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;foreach&lt;/span&gt;&lt;font color="#000000"&gt; (&lt;/font&gt;&lt;span style="COLOR:teal;"&gt;EffectPass&lt;/span&gt;&lt;font color="#000000"&gt; pass &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;in&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._effect.CurrentTechnique.Passes)&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;pass.Begin();&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device.SamplerStates[0].MinFilter = _minfilter;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device.SamplerStates[0].MagFilter = _magfilter;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device.Textures[0] = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Texture;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device.Vertices[0].SetSource(&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._vertexBuffer, 0, &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;VertexPositionColorTexture&lt;/span&gt;&lt;font color="#000000"&gt;.SizeInBytes);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device.Indices = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._indexBuffer;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device.VertexDeclaration = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;VertexDeclaration&lt;/span&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device, &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;VertexPositionColorTexture&lt;/span&gt;&lt;font color="#000000"&gt;.VertexElements);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device.DrawIndexedPrimitives(&lt;/font&gt;&lt;span style="COLOR:teal;"&gt;PrimitiveType&lt;/span&gt;&lt;font color="#000000"&gt;.TriangleList, 0, 0, 24, 0, 12);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;pass.End();&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._effect.End();&lt;/font&gt;&lt;/span&gt; 
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;
&lt;p&gt;C&amp;#39;est terminé ! La classe &lt;span style="COLOR:teal;"&gt;&lt;font face="Courier New"&gt;Game1&lt;/font&gt;&lt;/span&gt;&amp;nbsp;a bien entendu été modifiée pour pouvoir affecter au cube le filtre voulu suivant la touche clavier appuyée. A l&amp;#39;exécution, l&lt;/font&gt;&lt;font face="Verdana"&gt;&amp;#39;application se présente ainsi :&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="WIDTH:612px;HEIGHT:480px;" height="480" src="http://msmvps.com/photos/valentin/images/605793/612x480.aspx" width="612" align="absMiddle" border="2" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;En jouant avec les touches a, A, l, L, p, P, g, G,&amp;nbsp;q, Q, n ou N on peut facilement voir les différences de qualité entre tous les filtres suivant les angles de vue et la distance du cube. Les deux images suivants explicite cela. En mode point, le cube en courte distance donne l&amp;#39;affichage pixélisé suivant&amp;nbsp;:&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;a class="" title="Mode point (cliquez pour agrandir)" href="http://msmvps.com/photos/valentin/images/605822/original.aspx"&gt;&lt;img title="Mode point" style="WIDTH:297px;HEIGHT:480px;" height="480" alt="Mode point" src="http://msmvps.com/photos/valentin/images/605822/297x480.aspx" width="297" border="2" /&gt;&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Le zoom sur la face du cube en mode point montre bien l&amp;#39;effet de pixalisation. Maintenant la même face en anisotropie :&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;a class="" title="Le filtre anisotropic. Cliquez pour agrandir" href="http://msmvps.com/photos/valentin/images/605826/original.aspx"&gt;&lt;img title="La même face en anisotropie" style="WIDTH:297px;HEIGHT:480px;" height="480" alt="La même face en anisotropie" src="http://msmvps.com/photos/valentin/images/605826/297x480.aspx" width="297" align="absMiddle" border="2" /&gt;&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;donne un bien meilleur résultat visual.&amp;nbsp; &lt;/font&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Cet exemple n&amp;#39;est qu&amp;#39;une première approche des filtres. Il met en évidence l&amp;#39;importance qu&amp;#39;ils revettent pour le design et l&amp;#39;aspect de nos productions. C&amp;#39;est aussi un élément important à prendre en compte si l&amp;#39;on veut rendre son jeu accessible à tous, un filtre gourmant comme l&amp;#39;anisotrope doit être un choix et non une obligation.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Pour cela vous devez toujours vérifier avant toute chose que la machine sur laquelle tourne votre application supporte&amp;nbsp;la technologie ou la fonctionnalité que vous voulez utiliser. D&amp;#39;une manière générale faites donc toujours des tests par rapport à la propriété &lt;font face="Courier New"&gt;GraphicsDeviceCapabilities&lt;/font&gt;&amp;nbsp;de l&amp;#39;objet &lt;span style="COLOR:teal;"&gt;&lt;font face="Courier New"&gt;GraphicsDevice&lt;/font&gt;&lt;/span&gt;. Cette propriété de type &lt;font color="#008080" size="2"&gt;GraphicsDeviceCapabilities&lt;/font&gt;&amp;nbsp;contient un ensemble de booléean et d&amp;#39;énumération indiquant toutes les fonctionnalités et technologies supportés par le matériel en rapport avec le device courant. Pour savoir si l&amp;#39;anisotrop est supporté, faites un test sur :&lt;/font&gt;&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;this&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;.graphics.GraphicsDevice.GraphicsDeviceCapabilities .TextureFilterCapabilities.SupportsMagnifyAnisotropic&lt;/span&gt; 
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;this&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;.graphics.GraphicsDevice.GraphicsDeviceCapabilities.TextureFilterCapabilities.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;pour la magnification et sur :&lt;/font&gt;&lt;/p&gt;&lt;font face="Verdana"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;this&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;.graphics.GraphicsDevice.GraphicsDeviceCapabilities .TextureFilterCapabilities.SupportsMinifyAnisotropic&lt;/span&gt;&lt;/font&gt; 
&lt;p&gt;&lt;font face="Verdana"&gt;pour la minification. &lt;/font&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Remarque : une annexe sera écrite prochainement et consacrée uniquement à l&amp;#39;importance des tests sur les capacités du matériel avant l&amp;#39;exécution.&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;De même (mais là nous voyons vraiment loin) il est préférable de proproser les fonctionnalités poussées comme ce filtre dans un menu d&amp;#39;option.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana" size="4"&gt;&lt;strong&gt;Le mip mapping&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;em&gt;&lt;/em&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;em&gt;Mip vient du latin Multum in parvo, qui signifie « beaucoup de choses dans un petit endroit ».&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;font face="verdana,geneva"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;font face="verdana,geneva" size="3"&gt;&lt;strong&gt;&amp;nbsp;Principe&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="verdana,geneva"&gt;&amp;nbsp;&lt;/font&gt;&lt;font face="verdana,geneva"&gt;Le mipmapping est une technique visant à améliorer l&amp;#39;affichage des textures sur les polygones en prennant en compte la distance comprise entre le dit polygone et la position de la caméra. &lt;/font&gt;&lt;font face="verdana,geneva"&gt;Le niveau de détail des textures est adapté à la distance de l&amp;#39;objet. Ainsi, un objet proche de la caméra&amp;nbsp;affichera des textures en haute résolution tandis qu&amp;#39;un objet situé au loin sera plaqué avec une texture de petite taille. &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="verdana,geneva"&gt;Chaque texture utilisée dans un processus de mip mapping&amp;nbsp;est appellé &amp;quot;niveau de&amp;nbsp;MIP map&amp;quot; ou LOD (pour Level Of Detail). Elles sont choisies suivant la distance à la caméra. La technique du&amp;nbsp;MIP mapping consiste à envoyer au GPU des textures de résolutions décroissantes qui seront utilisées à la place de la texture originale. Le choix de la texture ayant la taille la plus adaptée s&amp;#39;effectue selon la distance du point de vue de l&amp;#39;objet texturé et le niveau de détails nécessaire. Le GPU n&amp;#39;a alors plus qu&amp;#39;à appliquer les bonnes textures sur les bons objets suivant leur éloignement, réadaptant la texture chaque fois que l&amp;#39;objet se rapproche. La texture utilisée lors du rendu sera alors celle dont la résolution est la plus proche de celle de l&amp;#39;objet sur l&amp;#39;image projetée. &lt;/font&gt;&lt;font face="Verdana"&gt;Chaque niveau doit avoir pour hauteur et largeur la moitié de la hauteur et largeur du niveau précédent. Le dernier niveau a bien évidemment au moins un coté égal à 1.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="verdana,geneva"&gt;Par exemple, d&amp;#39;une image d&amp;#39;une taille de 256x256 pixels seront produits les mêmes images aux résolutions de 128x128 pixels, 64x64, 32x32, 16x16, 8x8, 4x4, 2x2 et 1x1. Si la taille de l&amp;#39;objet sur l&amp;#39;image projetée à l&amp;#39;écran est de 30x30 pixels, la texture utilisée sera alors celle de résolution 32x32 pixels.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Le filtrage joue ici un rôle primodial en évitant de &lt;/font&gt;&lt;font face="verdana,geneva"&gt;voir les &amp;quot;sauts&amp;quot; lors du passage d&amp;#39;une texture à l&amp;#39;autre, grâce à une transition progressive.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="verdana,geneva"&gt;&amp;nbsp;&lt;/font&gt;&lt;font face="verdana,geneva"&gt;Quel est l&amp;#39;interet de du mip mapping ? Si cette technique est gourmande en mémoire vidéo (elle consomme un tiers de mémoire en plus), elle est plus rapide&amp;nbsp;: La diminution du nombre de texels à traiter et des opérations de filtrages en temps réel de la texture permettent un rendu plus rapide de l&amp;#39;image. De plus le choix des différents niveaux de mipmap peut être laissé à l&amp;#39;apprecciation du développeur :&amp;nbsp;Souvent laisser votre machine opérer pour voir les filtres peut donner un résultat qui s&amp;#39;avère desastreux et ce, même avec les meilleures techniques de filtrage. Prennez l&amp;#39;exemple de l&amp;#39;image suivante qui pourrait se trouver dans un de vos jeu :&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;img style="WIDTH:367px;HEIGHT:424px;" height="424" src="http://msmvps.com/photos/valentin/images/609099/original.aspx" width="367" align="absMiddle" border="2" alt="" /&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Le message qu&amp;#39;elle véhicule est clair : tirer sur la cible fait perdre le joueur. Si nous laissons la machine gérer le mip mapping et la réduction de la texture nous pouvons obtenir le résultat suivant &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;img style="WIDTH:184px;HEIGHT:212px;" height="212" src="http://msmvps.com/photos/valentin/images/609100/original.aspx" width="184" align="absMiddle" border="2" alt="" /&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;C&amp;#39;est cette texture qui pourrait etre plaqué sur une forme 3D se trouvant loin du joueur. Celui-ci ne voyant pas le message tirera à coup sur. En fait l&amp;#39;algorythme de réduction d&amp;#39;image ne se préoccupe pas de l&amp;#39;information que l&amp;#39;image porte dans le mesure où il ne peut la quantifier. Il ne prend donc pas en compte l&amp;#39;importance de laisser le texte visible après une réduction n&amp;#39;est donc pas pris en compte dans le calcul du filtre. Si ce n&amp;#39;est pas la machine qui effectue cette tâche mais une personne, celle-ci peut réduire l&amp;#39;image de manière intelligente en gardant l&amp;#39;information visible au maximum :&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="WIDTH:184px;HEIGHT:212px;" height="212" src="http://msmvps.com/photos/valentin/images/609101/original.aspx" width="184" align="absMiddle" border="2" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="verdana,geneva" size="3"&gt;&lt;strong&gt;Paramétrage du Mipmapping&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="verdana,geneva"&gt;&amp;nbsp;Deux paramètres peuvent intervenir dans l&amp;#39;affichage d&amp;#39;une texture mipmappée : Le MaxAnisotropy et le MipMapLevelOfDetailBias.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;font face="verdana,geneva"&gt;MaxAnisotropy&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="verdana,geneva"&gt;L’anysotropie est un filtre intelligent et assez gourmant en ressource (bien qu’il soit souvent intégré au hardware des cartes graphiques). Il se base sur l’aspect graphique de l’objet sur lequel on plaque la texture. Les texels ne sont pas tirés d’une forme symétrique, mais plutôt en utilisant un motif irrégulier ajusté à la perspective (on parle de figure anisotropique). Le nombre de texels pris en compte pour ce filtrage détermine la qualité de celui-ci. Avec le filtrage anisotropique 1x, on prend 8 texels. Le niveau maximum est 16x, les plus courants sont 2x (16 texels), 4x (32 texels), 8x (64 texels) et 16x (128 texels). Plus la valeur de MaxAnisotropy est importante, et plus le niveau de filtrage est élevé, et forcement, plus le temps de calcul augmente (et ceci de manière exponentielle…). &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;font face="verdana,geneva"&gt;MipMapLevelOfDetailBias&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="verdana,geneva"&gt;Il arrive que pour la beauté du jeu il faille garder un LOD plus longtemps que prévu en retardant le passage à un LOD inférieur lorsque la caméra s’éloigne par exemple. C’est le LOD bias qui permet de réaliser cette opération. Si une surface s’éloigne de l’utilisateur, augmenter le LOD bias revient à retarder l’utilisation du LOD inférieur. Au contraire, en diminuant sa valeur, on passe plus rapidement aux LOD inférieurs.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="verdana,geneva"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;font face="verdana,geneva"&gt;&amp;nbsp;&lt;font size="3"&gt;&lt;strong&gt;Après la théorie, la pratique !&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="verdana,geneva"&gt;&amp;nbsp;Il est temps de passer aux choses sérieuses. Le sample que nous allons réaliser ici aura pour but de mettre en évidence le mipmaping et les impacts des différents filtres. Nous allons réaliser pout cela un damier de&amp;nbsp;64 cases sur&amp;nbsp;64 cases. Chaque case sera associée à une texture &amp;quot;mipmappée&amp;quot;. La camera pourra se déplacer sur ce damier et nous pourrons ainsi voir, en se déplaçant l&amp;#39;évolution des textures sur les différentes cases. Nous aurons trois types de textures : des textures de couleur qui permettrons d&amp;#39;apprecier facilement le passage entre deux LOD, des textures représentant un sol pavé pour voir en réel ce que nos choix produisent, une texture damier pour apprécier la qualité des filtres.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="verdana,geneva"&gt;La première étape consiste donc à créer ce qui va être notre premier terrain de jeu. A ce stade de nos connaissances il y a ici&amp;nbsp;aucune difficulté&amp;nbsp;: ayant déjà développé des applications affichants un carré,&amp;nbsp;nous sommes largement en mesure de créer un monde constitué de 64 carrés sur 64 carrés. Ouvrez le projet nommé &amp;quot;TroisiemeProjetMipmap&amp;quot;. Une nouvelle classe&lt;/font&gt;&amp;nbsp;&lt;span style="COLOR:teal;"&gt;&lt;font face="Courier New"&gt;Region&lt;/font&gt;&lt;/span&gt; &lt;font face="verdana,geneva"&gt;fait son apparition. Elle sera chargé de la création et de l&amp;#39;affichage d&amp;#39;un terrain. Elle possède un seul vertexbuffer et un seul indexbuffer. Le vertexbuffer contiendra les 64*64 cases du terrain, sachant que chaque case possède 4 vertices. La&amp;nbsp;méthode&lt;/font&gt; &lt;font face="Courier New"&gt;InitializeVertices&lt;/font&gt;&amp;nbsp;&lt;font face="verdana,geneva"&gt;se présente comme suit&amp;nbsp;:&lt;/font&gt; &lt;/p&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;private&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;void&lt;/span&gt;&lt;font color="#000000"&gt; InitializeVertices()&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;float&lt;/span&gt;&lt;font color="#000000"&gt; caseSize = 16;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:teal;"&gt;VertexPositionColorTexture&lt;/span&gt;&lt;font color="#000000"&gt;[] vertices = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;VertexPositionColorTexture&lt;/span&gt;&lt;font color="#000000"&gt;[_numberOfVertices];&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;&lt;font color="#000000"&gt; index = 0;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;for&lt;/span&gt;&lt;font color="#000000"&gt; (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;&lt;font color="#000000"&gt; j = 0; j &amp;lt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._depth; j++)&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;for&lt;/span&gt;&lt;font color="#000000"&gt; (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;&lt;font color="#000000"&gt; i = 0; i &amp;lt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._width; i++)&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[index].Position = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;(i * caseSize, j * caseSize, 0f);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[index].Color = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Color;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[index].TextureCoordinate = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;&lt;font color="#000000"&gt;(0, 0);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[index +1 ].Position = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;(i * caseSize + caseSize, j * caseSize, 0f);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[index +1 ].Color = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Color;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[index +1 ].TextureCoordinate = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;&lt;font color="#000000"&gt;(1, 0);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[index + 2].Position = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;(i * caseSize + caseSize, j * caseSize - caseSize, 0f);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[index + 2].Color = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Color;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[index + 2].TextureCoordinate = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;&lt;font color="#000000"&gt;(1, 1);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[index + 3].Position = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector3&lt;/span&gt;&lt;font color="#000000"&gt;(i * caseSize, j * caseSize - caseSize, 0f);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[index + 3].Color = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.Color;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;vertices[index + 3].TextureCoordinate = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Vector2&lt;/span&gt;&lt;font color="#000000"&gt;(0, 1);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;index+=4;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._vertexBuffer = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;VertexBuffer&lt;/span&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device,&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;typeof&lt;/span&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;span style="COLOR:teal;"&gt;VertexPositionColorTexture&lt;/span&gt;&lt;font color="#000000"&gt;),&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;_numberOfVertices,&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:teal;"&gt;ResourceUsage&lt;/span&gt;&lt;font color="#000000"&gt;.WriteOnly,&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:teal;"&gt;ResourceManagementMode&lt;/span&gt;&lt;font color="#000000"&gt;.Automatic);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._vertexBuffer.SetData(vertices);&lt;/font&gt;&lt;/span&gt; 
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;p&gt;&lt;font face="verdana,geneva"&gt;Les membres depth et width représentent la profondeur et la largeur du monde (ils possèdent donc pour valeur 64 chacun donc). La double boucle&lt;/font&gt; &lt;span style="COLOR:blue;"&gt;for&lt;/span&gt;&amp;nbsp;&lt;font face="verdana,geneva"&gt;parcours le monde de jeu sur chaque ligne et chaque colonne en créant un carré à chaque fois. La valeur&lt;/font&gt; caseSize&amp;nbsp;représente &lt;font face="verdana,geneva"&gt;la taille d&amp;#39;un carré. Rien de compliqué ici. La méthode&lt;/font&gt;&amp;nbsp;&lt;font face="Courier New"&gt;InitializeIndices&lt;/font&gt; &lt;font face="verdana,geneva"&gt;est la suivante :&lt;/font&gt;&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;private&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;void&lt;/span&gt;&lt;font color="#000000"&gt; InitializeIndices()&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;short&lt;/span&gt;&lt;font color="#000000"&gt;[] indices = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;short&lt;/span&gt;&lt;font color="#000000"&gt;[_numberOfIndices];&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;short&lt;/span&gt;&lt;font color="#000000"&gt; index = 0;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;short&lt;/span&gt;&lt;font color="#000000"&gt; indexCase = 0;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;for&lt;/span&gt;&lt;font color="#000000"&gt; (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;&lt;font color="#000000"&gt; j = 0; j &amp;lt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._depth; j++)&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;for&lt;/span&gt;&lt;font color="#000000"&gt; (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;&lt;font color="#000000"&gt; i = 0; i &amp;lt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._width; i++)&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;indices[index] = indexCase;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;indices[index + 1] = (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;short&lt;/span&gt;&lt;font color="#000000"&gt;)(indexCase + 1);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;indices[index + 2] = (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;short&lt;/span&gt;&lt;font color="#000000"&gt;)(indexCase + 3);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;indices[index + 3] = (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;short&lt;/span&gt;&lt;font color="#000000"&gt;)(indexCase + 1);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;indices[index + 4] = (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;short&lt;/span&gt;&lt;font color="#000000"&gt;)(indexCase + 2);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;indices[index + 5] = (&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;short&lt;/span&gt;&lt;font color="#000000"&gt;)(indexCase + 3);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;index += 6;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;indexCase += 4;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._indexBuffer = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;IndexBuffer&lt;/span&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._device,&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;typeof&lt;/span&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;short&lt;/span&gt;&lt;font color="#000000"&gt;),&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;_numberOfIndices,&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:teal;"&gt;ResourceUsage&lt;/span&gt;&lt;font color="#000000"&gt;.WriteOnly,&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:teal;"&gt;ResourceManagementMode&lt;/span&gt;&lt;font color="#000000"&gt;.Automatic);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._indexBuffer.SetData(indices);&lt;/font&gt;&lt;/span&gt; 
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;
&lt;p&gt;&lt;font face="verdana,geneva"&gt;Nous spécifions 6 indices pour chaque carrés (une case équivaut à deux triangles de 3 points). Rien de vraiment compliqué là encore. Terminons sur cette classe en ajoutant qu&amp;#39;une propriété&lt;/font&gt; TextureMipMapFilter &lt;font face="verdana,geneva"&gt;a été ajoutée afin de pouvoir spécifier&amp;nbsp;un filtre mipmap depuis la classe&lt;/font&gt; &lt;span style="COLOR:teal;"&gt;&lt;font face="Courier New"&gt;Game1&lt;/font&gt;&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;
&lt;p&gt;&lt;font face="verdana,geneva"&gt;Chaque texture utilisée sera un mipmap composé de 6 LODs (256*256, 128, 60, 32, 16 et enfin 8). De la même façons que le premier projet de ce chapitre nous allons incorporer les LODs de chaque texture dans le projet. La texture colorée possédera les LOD suivants :&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="verdana,geneva"&gt;&lt;img style="WIDTH:800px;HEIGHT:600px;" height="600" src="http://msmvps.com/photos/valentin/images/609218/original.aspx" width="800" align="absMiddle" border="2" alt="" /&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="verdana,geneva"&gt;chaque couleur permettra de bien discerner les niveaux de mip map utilisé. La texture de sol utilisera les LOD suivants:&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="verdana,geneva"&gt;&amp;nbsp;&lt;img style="WIDTH:800px;HEIGHT:600px;" height="600" src="http://msmvps.com/photos/valentin/images/609244/original.aspx" width="800" align="absMiddle" border="2" alt="" /&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="verdana,geneva"&gt;Chaque LOD a été placé dans un répertoire du projet nommé MipMapTextures de la même façon que pour le premier projet de ce chapitre. C&amp;#39;est la classe&lt;/font&gt; &lt;span style="COLOR:teal;"&gt;&lt;font face="Courier New"&gt;Game1&lt;/font&gt;&lt;/span&gt; &lt;font face="verdana,geneva"&gt;qui va former&amp;nbsp;les trois&amp;nbsp;textures composée de 6 LODs. Dans celle-ci se trouvent trois méthodes similaires nommées&lt;/font&gt; &lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;mso-ansi-language:FR;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:FR;mso-bidi-language:AR-SA;"&gt;GenerateMipmap&lt;/span&gt;, &lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;mso-ansi-language:FR;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:FR;mso-bidi-language:AR-SA;"&gt;GenerateMipmapTexture&lt;/span&gt;&amp;nbsp;et &lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;mso-ansi-language:FR;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:FR;mso-bidi-language:AR-SA;"&gt;GenerateMipmapCase&lt;/span&gt; &lt;font face="verdana,geneva"&gt;respectivement pour la texture colorée, de sol et de damier. A noter qu&amp;#39;on aurait pu ici factoriser le code en une seule méthode, mais pour des raisons de compréhension, cela n&amp;#39;a pas été fait. Ces trois méthodes étant similaires, nous n&amp;#39;en verrons qu&amp;#39;une :&lt;/font&gt;&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;private&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;void&lt;/span&gt;&lt;font color="#000000"&gt; GenerateMipmap()&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:teal;"&gt;Texture2D&lt;/span&gt;&lt;font color="#000000"&gt; mainTexture = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Texture2D&lt;/span&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.graphics.GraphicsDevice,&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;256, 256,&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;6,&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:teal;"&gt;ResourceUsage&lt;/span&gt;&lt;font color="#000000"&gt;.Dynamic,&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:teal;"&gt;SurfaceFormat&lt;/span&gt;&lt;font color="#000000"&gt;.Color, &lt;/font&gt;&lt;span style="COLOR:green;"&gt;//std 32 bits mode&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:teal;"&gt;ResourceManagementMode&lt;/span&gt;&lt;font color="#000000"&gt;.Manual);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:teal;"&gt;Texture2D&lt;/span&gt;&lt;font color="#000000"&gt; texture256 = content.Load&amp;lt;&lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Texture2D&lt;/span&gt;&lt;font color="#000000"&gt;&amp;gt;(&lt;/font&gt;&lt;span style="COLOR:maroon;"&gt;&amp;quot;MipmapTextures\\256&amp;quot;&lt;/span&gt;&lt;font color="#000000"&gt;);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:teal;"&gt;Texture2D&lt;/span&gt;&lt;font color="#000000"&gt; texture128 = content.Load&amp;lt;&lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Texture2D&lt;/span&gt;&lt;font color="#000000"&gt;&amp;gt;(&lt;/font&gt;&lt;span style="COLOR:maroon;"&gt;&amp;quot;MipmapTextures\\128&amp;quot;&lt;/span&gt;&lt;font color="#000000"&gt;);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:teal;"&gt;Texture2D&lt;/span&gt;&lt;font color="#000000"&gt; texture064 = content.Load&amp;lt;&lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Texture2D&lt;/span&gt;&lt;font color="#000000"&gt;&amp;gt;(&lt;/font&gt;&lt;span style="COLOR:maroon;"&gt;&amp;quot;MipmapTextures\\64&amp;quot;&lt;/span&gt;&lt;font color="#000000"&gt;);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:teal;"&gt;Texture2D&lt;/span&gt;&lt;font color="#000000"&gt; texture032 = content.Load&amp;lt;&lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Texture2D&lt;/span&gt;&lt;font color="#000000"&gt;&amp;gt;(&lt;/font&gt;&lt;span style="COLOR:maroon;"&gt;&amp;quot;MipmapTextures\\32&amp;quot;&lt;/span&gt;&lt;font color="#000000"&gt;);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:teal;"&gt;Texture2D&lt;/span&gt;&lt;font color="#000000"&gt; texture016 = content.Load&amp;lt;&lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Texture2D&lt;/span&gt;&lt;font color="#000000"&gt;&amp;gt;(&lt;/font&gt;&lt;span style="COLOR:maroon;"&gt;&amp;quot;MipmapTextures\\16&amp;quot;&lt;/span&gt;&lt;font color="#000000"&gt;);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:teal;"&gt;Texture2D&lt;/span&gt;&lt;font color="#000000"&gt; texture008 = content.Load&amp;lt;&lt;/font&gt;&lt;span style="COLOR:teal;"&gt;Texture2D&lt;/span&gt;&lt;font color="#000000"&gt;&amp;gt;(&lt;/font&gt;&lt;span style="COLOR:maroon;"&gt;&amp;quot;MipmapTextures\\8&amp;quot;&lt;/span&gt;&lt;font color="#000000"&gt;);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;uint&lt;/span&gt;&lt;font color="#000000"&gt;[] array = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;uint&lt;/span&gt;&lt;font color="#000000"&gt;[256 * 256];&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;texture256.GetData&amp;lt;&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;uint&lt;/span&gt;&lt;font color="#000000"&gt;&amp;gt;(array);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;mainTexture.SetData&amp;lt;&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;uint&lt;/span&gt;&lt;font color="#000000"&gt;&amp;gt;(0, &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;null&lt;/span&gt;&lt;font color="#000000"&gt;, array, 0, array.Length, &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;SetDataOptions&lt;/span&gt;&lt;font color="#000000"&gt;.None);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;array = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;uint&lt;/span&gt;&lt;font color="#000000"&gt;[128 * 128];&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;texture128.GetData&amp;lt;&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;uint&lt;/span&gt;&lt;font color="#000000"&gt;&amp;gt;(array);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;mainTexture.SetData&amp;lt;&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;uint&lt;/span&gt;&lt;font color="#000000"&gt;&amp;gt;(1, &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;null&lt;/span&gt;&lt;font color="#000000"&gt;, array, 0, array.Length, &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;SetDataOptions&lt;/span&gt;&lt;font color="#000000"&gt;.None);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;array = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;uint&lt;/span&gt;&lt;font color="#000000"&gt;[64 * 64];&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;texture064.GetData&amp;lt;&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;uint&lt;/span&gt;&lt;font color="#000000"&gt;&amp;gt;(array);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;mainTexture.SetData&amp;lt;&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;uint&lt;/span&gt;&lt;font color="#000000"&gt;&amp;gt;(2, &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;null&lt;/span&gt;&lt;font color="#000000"&gt;, array, 0, array.Length, &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;SetDataOptions&lt;/span&gt;&lt;font color="#000000"&gt;.None);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;array = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;uint&lt;/span&gt;&lt;font color="#000000"&gt;[32 * 32];&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;texture032.GetData&amp;lt;&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;uint&lt;/span&gt;&lt;font color="#000000"&gt;&amp;gt;(array);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;mainTexture.SetData&amp;lt;&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;uint&lt;/span&gt;&lt;font color="#000000"&gt;&amp;gt;(3, &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;null&lt;/span&gt;&lt;font color="#000000"&gt;, array, 0, array.Length, &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;SetDataOptions&lt;/span&gt;&lt;font color="#000000"&gt;.None);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;array = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;uint&lt;/span&gt;&lt;font color="#000000"&gt;[16 * 16];&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;texture016.GetData&amp;lt;&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;uint&lt;/span&gt;&lt;font color="#000000"&gt;&amp;gt;(array);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;mainTexture.SetData&amp;lt;&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;uint&lt;/span&gt;&lt;font color="#000000"&gt;&amp;gt;(4, &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;null&lt;/span&gt;&lt;font color="#000000"&gt;, array, 0, array.Length, &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;SetDataOptions&lt;/span&gt;&lt;font color="#000000"&gt;.None);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;array = &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;uint&lt;/span&gt;&lt;font color="#000000"&gt;[8 * 8];&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;texture008.GetData&amp;lt;&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;uint&lt;/span&gt;&lt;font color="#000000"&gt;&amp;gt;(array);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;mainTexture.SetData&amp;lt;&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;uint&lt;/span&gt;&lt;font color="#000000"&gt;&amp;gt;(5, &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;null&lt;/span&gt;&lt;font color="#000000"&gt;, array, 0, array.Length, &lt;/font&gt;&lt;span style="COLOR:teal;"&gt;SetDataOptions&lt;/span&gt;&lt;font color="#000000"&gt;.None);&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;_sampleMipmapColor = mainTexture;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;font face="Times New Roman" color="#000000" size="3"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt; 
&lt;p&gt;
&lt;p&gt;&lt;font face="verdana,geneva"&gt;Cette méthode charge dans une variable locale nommée 6 LOD. Si quelque chose vous semble obscur de les explications suivent, reportez vous à la présentation du premier projet au tout début de ce chapitre. La première instruction&lt;/font&gt;&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:teal;"&gt;Texture2D&lt;/span&gt; mainTexture = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:teal;"&gt;Texture2D&lt;/span&gt;(&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.graphics.GraphicsDevice,&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;256, 256,&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;6,&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:teal;"&gt;ResourceUsage&lt;/span&gt;.Dynamic,&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:teal;"&gt;SurfaceFormat&lt;/span&gt;.Color, &lt;span style="COLOR:green;"&gt;//std 32 bits mode&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:teal;"&gt;ResourceManagementMode&lt;/span&gt;.Manual);&lt;/span&gt; 
&lt;p&gt;&lt;font face="verdana,geneva"&gt;créé la texture qui va contenir les LOD. Nous n&amp;#39;utilisons pas la classe Content pour la créer et nous aurons donc à la gérer nous même (nous reviendrons sur ce point plus loin). Une référence vers le device est bien évidemment donnée ainsi qu&amp;#39;une taille de 256*256. C&amp;#39;est à dire la taille du premier Level Of Detail. La valeur 6 représente le nombre de LOD que nous utilisons&lt;/font&gt;.&amp;nbsp;&lt;font face="Courier New"&gt;&lt;span style="COLOR:teal;"&gt;ResourceUsage&lt;/span&gt;.Dynamic&lt;/font&gt;&amp;nbsp;&lt;font face="verdana,geneva"&gt;indique que nous laissons&amp;nbsp;le driver décider ou placer le buffer contenant les données de la texture. En général si il y&amp;#39;a la place, celui-ci est placé dans la mémoire AGP, sinon dans la mémoire vidéo, sinon en dernier cas dans la RAM. Un bon jeu sais&amp;nbsp;se référer à la taille mémoire pour placer les textures les plus&amp;nbsp;utilisées en AGP et les autres moins importantes dans la RAM afin d&amp;#39;optimiser les affichages (nous vérrons celà dans la quatrième partie de cet apprentissage).&amp;nbsp;Le paramètre&lt;/font&gt;&amp;nbsp;&lt;font face="Courier New"&gt;&lt;span style="COLOR:teal;"&gt;SurfaceFormat&lt;/span&gt;.Color&lt;/font&gt;&amp;nbsp;&lt;font face="verdana,geneva"&gt;indique simplement que&amp;nbsp;la texture aura un format de type 32 bits standard (ARGB : 8bits pour l&amp;#39;alpha, 8 pour la composante Rouge, 8 pour le vert et 8 pour le bleu, soit 256 variations par composantes). Enfin &lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="COLOR:teal;"&gt;ResourceManagementMode&lt;/span&gt;.Manual&lt;/font&gt;&amp;nbsp;&lt;font face="verdana,geneva"&gt;précise que nous gérons nous même la vie de la texture (a nous de la recréer lorsqu&amp;#39;elle est &amp;quot;perdue&amp;quot;. Vient ensuite le chargement des 6&amp;nbsp;LODs :&lt;/font&gt;&amp;nbsp; &lt;/p&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:teal;"&gt;Texture2D&lt;/span&gt; texture256 = content.Load&amp;lt;&lt;span style="COLOR:teal;"&gt;Texture2D&lt;/span&gt;&amp;gt;(&lt;span style="COLOR:maroon;"&gt;&amp;quot;MipmapTextures\\256&amp;quot;&lt;/span&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:teal;"&gt;Texture2D&lt;/span&gt; texture128 = content.Load&amp;lt;&lt;span style="COLOR:teal;"&gt;Texture2D&lt;/span&gt;&amp;gt;(&lt;span style="COLOR:maroon;"&gt;&amp;quot;MipmapTextures\\128&amp;quot;&lt;/span&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:teal;"&gt;Texture2D&lt;/span&gt; texture064 = content.Load&amp;lt;&lt;span style="COLOR:teal;"&gt;Texture2D&lt;/span&gt;&amp;gt;(&lt;span style="COLOR:maroon;"&gt;&amp;quot;MipmapTextures\\64&amp;quot;&lt;/span&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:teal;"&gt;Texture2D&lt;/span&gt; texture032 = content.Load&amp;lt;&lt;span style="COLOR:teal;"&gt;Texture2D&lt;/span&gt;&amp;gt;(&lt;span style="COLOR:maroon;"&gt;&amp;quot;MipmapTextures\\32&amp;quot;&lt;/span&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:teal;"&gt;Texture2D&lt;/span&gt; texture016 = content.Load&amp;lt;&lt;span style="COLOR:teal;"&gt;Texture2D&lt;/span&gt;&amp;gt;(&lt;span style="COLOR:maroon;"&gt;&amp;quot;MipmapTextures\\16&amp;quot;&lt;/span&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:teal;"&gt;Texture2D&lt;/span&gt; texture008 = content.Load&amp;lt;&lt;span style="COLOR:teal;"&gt;Texture2D&lt;/span&gt;&amp;gt;(&lt;span style="COLOR:maroon;"&gt;&amp;quot;MipmapTextures\\8&amp;quot;&lt;/span&gt;);&lt;/span&gt; 
&lt;p&gt;&lt;font face="verdana,geneva"&gt;Rien de compliqué ici. La valeur&lt;/font&gt;&amp;nbsp;&lt;font face="Courier New" color="#800000"&gt;&amp;quot;256&amp;quot;&lt;/font&gt;&amp;nbsp;&lt;font face="verdana,geneva"&gt;est le nom Asset de la texture et&lt;/font&gt; &lt;span style="COLOR:maroon;"&gt;&lt;font face="Courier New"&gt;&amp;quot;MipmapTextures&amp;quot;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;font face="verdana,geneva"&gt;le path vers celle-ci (voir premier projet au début de ce chapitre).&amp;nbsp;Les instructions qui suivent créént le Mipmap. Mais qu&amp;#39;est ce qu&amp;#39;un Mipmap sur le plan technique ? Il s&amp;#39;agit (pour parler simplement) d&amp;#39;une sorte de liste chainée. Chaque texture à l&amp;#39;intérieur possède pour taille la moitiée de son prédécesseur et est deux fois plus grande que son successeur directe. La première texture de cette liste à la taille la plus importante, la dernière la plus petite. Cette liste va être &amp;quot;ratachée&amp;quot; à une texture qui va faire office de &amp;quot;pointeur&amp;quot;. Suivant le degré de détail voulue, la texture va pointer sur telle ou telle élément de la liste.&amp;nbsp;Créer cette structure en Xna/C# est relativement aisé. Il nous suffit d&amp;#39;associer une texture (notre pointeur) à un ensemble de buffers correspondant aux différents LODs. C&amp;#39;est les méthodes&amp;nbsp;GetData et&amp;nbsp;SetData qui vont nous permettre cela. Prenons exemple du chargement du buffer correspondant au troisième LOD :&lt;/font&gt;&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;array = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;uint&lt;/span&gt;[64 * 64];&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;texture064.GetData&amp;lt;&lt;span style="COLOR:blue;"&gt;uint&lt;/span&gt;&amp;gt;(array);&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;mainTexture.SetData&amp;lt;&lt;span style="COLOR:blue;"&gt;uint&lt;/span&gt;&amp;gt;(2, &lt;span style="COLOR:blue;"&gt;null&lt;/span&gt;, array, 0, array.Length, &lt;span style="COLOR:teal;"&gt;SetDataOptions&lt;/span&gt;.None);&lt;/span&gt; 
&lt;p&gt;&lt;font face="verdana,geneva"&gt;&amp;nbsp;Première instruction, nous créeons un array de uint (entier non signés) qui va faire office de&amp;nbsp;buffer. La seconde instruction charge ce buffer à partir des données de la texture&amp;nbsp;ayant pour taille 64 par 64. Enfin, la troisième instruction associe ce buffer au troisième LOD (index 2) de la texture &amp;quot;pointeur&amp;quot; (&lt;/font&gt;&lt;font face="Courier New"&gt;mainTexture&lt;/font&gt;&lt;font face="verdana,geneva"&gt;). Le premier paramètre de&amp;nbsp; correspond au niveau de LOD voulu, le second correspond à un objet de type&lt;/font&gt; &lt;span style="COLOR:teal;"&gt;&lt;font face="Courier New"&gt;Rectangle&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;font face="verdana,geneva"&gt;pour indiquer la zone du buffer que nous remplissons (ici&lt;/font&gt; &lt;span style="COLOR:blue;"&gt;&lt;font face="Courier New"&gt;null&lt;/font&gt;&lt;/span&gt; &lt;font face="verdana,geneva"&gt;donc nous chargeons tout le buffer). Nous passons ensuite le buffer lui-même, indiquons à partir de quel index nous le lisons et sa taille. Le dernier paramètre de type&lt;/font&gt; &lt;span style="COLOR:teal;"&gt;&lt;font face="Courier New"&gt;SetDataOptions&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;font face="verdana,geneva"&gt;spécifie la manière dont on écrase le buffer déjà associé à ce LOD (si il y&amp;#39;en a un) : supprimé,&amp;nbsp;comblé ou&amp;nbsp;surchargé (soit respectivement&lt;/font&gt;&amp;nbsp;&lt;span style="FONT-SIZE:10pt;COLOR:teal;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;SetDataOptions&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;.Discard, &lt;span style="COLOR:teal;"&gt;SetDataOptions&lt;/span&gt;.NoOverwrite, &lt;span style="COLOR:teal;"&gt;SetDataOptions&lt;/span&gt;.None&lt;/span&gt;&lt;font face="verdana,geneva"&gt;).&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="verdana,geneva"&gt;La partie LOD de notre programme est terminée ! Ne reste plus qu&amp;#39;à gérer le déplacement sur le terrain de jeu et la modification des différents filtres à l&amp;#39;aide des touches clavier. Pour cela, une simple analyse de la méthode&lt;/font&gt;&amp;nbsp;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;Update&lt;/span&gt; &lt;font face="verdana,geneva"&gt;vous suffira à ce stade de cos connaissances. Avant de lancer le programme, jetez juste un oeil à la méthode&lt;/font&gt; &lt;font face="Courier New"&gt;LoadGraphicsContent&lt;/font&gt;&amp;nbsp;:&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;///&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;///&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; Load your graphics content.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;If loadAllContent is true, you should&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;///&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; load content from both ResourceManagementMode pools.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Otherwise, just&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;///&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; load ResourceManagementMode.Manual content.&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;///&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;///&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;lt;param name=&amp;quot;loadAllContent&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;Which type of content to load.&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;protected&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;override&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;void&lt;/span&gt;&lt;font color="#000000"&gt; LoadGraphicsContent(&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;bool&lt;/span&gt;&lt;font color="#000000"&gt; loadAllContent)&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;if&lt;/span&gt;&lt;font color="#000000"&gt; (loadAllContent)&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;// TODO: Load any ResourceManagementMode.Manual content&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.GenerateMipmapTexture();&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.GenerateMipmap();&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.GenerateMipmapCase();&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._terrain.Texture = _sampleMipmapColor;&lt;/font&gt;&lt;/span&gt; 
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;
&lt;p&gt;&lt;font face="verdana,geneva"&gt;Nous y plaçons le chargement de nos textures. Dans la mesure ou les 3 mipmaps sont chargés à l&amp;#39;aide de l&amp;#39;option&lt;/font&gt;&amp;nbsp;&lt;font face="Courier New"&gt;&lt;span style="COLOR:teal;"&gt;ResourceManagementMode&lt;/span&gt;.Manual&lt;/font&gt; &lt;font face="verdana,geneva"&gt;ce chargement se fait à l&amp;#39;extérieur du bloc conditionnel&lt;/font&gt; &amp;quot;&lt;font face="Courier New"&gt;&lt;span style="COLOR:blue;"&gt;if&lt;/span&gt; (loadAllContent)&lt;/font&gt;&amp;quot;. &lt;/p&gt;
&lt;p&gt;&lt;font face="verdana,geneva"&gt;Il y&amp;#39;a deux&amp;nbsp;types d&amp;#39;appel à cette méthode dans&amp;nbsp;la vie d&amp;#39;une application Xna : le premier appel lors du lancement de l&amp;#39;application passe à cette méthode la valeur&lt;/font&gt; &lt;span style="COLOR:blue;"&gt;&lt;font face="Courier New"&gt;true&lt;/font&gt;&lt;/span&gt;.&amp;nbsp;&lt;font face="verdana,geneva"&gt;De ce fait toutes les ressources sont chargés à la fois dans le bloc&lt;/font&gt; &lt;span style="COLOR:blue;"&gt;&lt;font face="Courier New"&gt;if&lt;/font&gt;&lt;/span&gt; &lt;font face="verdana,geneva"&gt;et à l&amp;#39;extérieur. Le second appel intervient lorsqu&amp;#39;il y&amp;#39;a perte de ressources (après un redimentionnement ou une &amp;nbsp;réduction&amp;nbsp;de la fenêtre ... tout ce qui peut obliger le device graphique&amp;nbsp;à s&amp;#39;occuper d&amp;#39;une autre application au détriment de la notre), à ce moment là, Xna passe à la méthode&lt;/font&gt; &lt;span style="COLOR:blue;"&gt;&lt;font face="Courier New"&gt;false&lt;/font&gt;&lt;/span&gt;.&amp;nbsp;&lt;font face="verdana,geneva"&gt;Seules les ressources en dehors du bloc conditionnel sont donc chargés : à ce stade les ressources&lt;/font&gt; &lt;font face="Courier New"&gt;&lt;span style="COLOR:teal;"&gt;ResourceManagementMode&lt;/span&gt;.Automatic&lt;/font&gt;&amp;nbsp;&lt;font face="verdana,geneva"&gt;ont déjà été rechargée automatiquement.Dans la même sens nous devons gérer nous même la libération de ces ressources dans la méthode&lt;/font&gt; &lt;font face="Courier New"&gt;UnloadGraphicsContent&lt;/font&gt;&amp;nbsp;:&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;///&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;///&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; Unload your graphics content.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;If unloadAllContent is true, you should&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;///&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; unload content from both ResourceManagementMode pools.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Otherwise, just&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;///&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; unload ResourceManagementMode.Manual content.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Manual content will get&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;///&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; Disposed by the GraphicsDevice during a Reset.&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;///&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;///&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;lt;param name=&amp;quot;unloadAllContent&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;Which type of content to unload.&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:gray;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;protected&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;override&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;void&lt;/span&gt;&lt;font color="#000000"&gt; UnloadGraphicsContent(&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;bool&lt;/span&gt;&lt;font color="#000000"&gt; unloadAllContent)&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;if&lt;/span&gt;&lt;font color="#000000"&gt; (unloadAllContent == &lt;/font&gt;&lt;span style="COLOR:blue;"&gt;true&lt;/span&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;content.Unload();&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._sampleMipmapAuto.Dispose();&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._sampleMipmapColor.Dispose();&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;._sampleMipmapTexture.Dispose();&lt;/font&gt;&lt;/span&gt; 
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;
&lt;p&gt;
&lt;p&gt;&lt;font face="verdana,geneva"&gt;là encore à l&amp;#39;extérieur du bloc conditionnel.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="verdana,geneva"&gt;Pour preuve déplacez les quatres instructions de la méthode de chargement dans le bloc&lt;/font&gt; &lt;span style="COLOR:blue;"&gt;&lt;font face="Courier New"&gt;if&lt;/font&gt;&lt;/span&gt;. &lt;font face="verdana,geneva"&gt;Lancez le programme et agrandissez la fenêtre : vous obtiendez une belle erreur spécifiant que le programme essaye d&amp;#39;accéder à une texture supprimée. Et pour cause au redimentionnement de la fenêtre les textures sont perdues et sont donc libérée de la mémoire. Lorsque le programme reprend la main il essaye d&amp;#39;utiliser ces textures pour l&amp;#39;affichage et plante forcement. &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="verdana,geneva"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;font face="verdana,geneva" size="3"&gt;&lt;strong&gt;L&amp;#39;application&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="verdana,geneva"&gt;Les touches de l&amp;#39;application sont les suivantes :&amp;nbsp; la touche &amp;#39;A&amp;#39; pour anisotope, &amp;#39;L&amp;#39; pour linéaire, &amp;#39;P&amp;#39; pour point, &amp;#39;G&amp;#39; pour Gaussian, &amp;#39;Q&amp;#39; pour Pyramidal, &amp;#39;N&amp;#39; pour aucun. Si la touche Shift est appuyée en même temps, le filtre s&amp;#39;applique en magnification, sinon, en minification. Si la touche Alt est appuyée, le filtre s&amp;#39;applique au Mipmap. Les touches fléchées permettent de se déplacer dans le monde. Les touches Page Haut et Page Bas permettent de prendre de l&amp;#39;altitude et de redescendre. Enfin les touche + et - augmentent le paramètre MaxAnisotropy (voir plus haut). Les mêmes touches avec Shift appuyé modifient le LodBias (voir plus haut). La touche espace ajoute une grille qui permet de bien discerner les cases du terrain de jeu (en fait le terrain est affiché une deuxième fois en mode WireFrame). Enfin les touches F1, F2, F3 affichent respectivement les texture de couleur, sol, damier.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="verdana,geneva"&gt;Au lancement de l&amp;#39;application, vous obtenez l&amp;#39;affichage suivant :&amp;nbsp; &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="verdana,geneva"&gt;&lt;img style="WIDTH:635px;HEIGHT:634px;" height="634" src="http://msmvps.com/photos/valentin/images/622545/original.aspx" width="635" align="absMiddle" border="2" alt="" /&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="verdana,geneva"&gt;Magnifiquement ... rouge, et pour cause : le mipmap n&amp;#39;est pas activé (None). Dans ce cas, le programme n&amp;#39;utilise que le LOD 0 qui correspond à la texture 256*256 qui est rouge. Appuyez sut les touches Alt et A pou lancer le mipmapping avec le filtre anisotropique. L&amp;#39;écran se change en :&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="verdana,geneva"&gt;&lt;img style="WIDTH:635px;HEIGHT:634px;" height="634" src="http://msmvps.com/photos/valentin/images/622580/original.aspx" width="635" align="absMiddle" border="2" alt="" /&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="verdana,geneva"&gt;Les différentes strates que vous voyez là correspondent aux 6 textures de LOD que nous avons chargée. On remarque parfaitement que suivant la distance à la caméra, les différentes cases du terrain de jeu affichent une texture adaptée à leur taille à l&amp;#39;écran :&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="verdana,geneva"&gt;&amp;nbsp;&lt;img style="WIDTH:635px;HEIGHT:634px;" height="634" src="http://msmvps.com/photos/valentin/images/622649/original.aspx" width="635" align="absMiddle" border="2" alt="" /&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Maintenant en maintenant la touche Shift appuyée appuyez sur la touche + (Add). Ceci a pour conséquence d&amp;#39;augmenter le Bias et donc le passage au LOD suivant :&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;img style="WIDTH:635px;HEIGHT:634px;" height="634" src="http://msmvps.com/photos/valentin/images/622651/original.aspx" width="635" align="absMiddle" border="2" alt="" /&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Shift avec la touche - (Substract) réduit au contraire le Bias et prolonge la vie du LOD 0 :&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;img style="WIDTH:635px;HEIGHT:634px;" height="634" src="http://msmvps.com/photos/valentin/images/622652/original.aspx" width="635" align="absMiddle" border="2" alt="" /&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Le filtre mipmap que nous avons utilisé ici (Anisotropique) est sans doute le meilleur. Le passage d&amp;#39;un Lod à un autre se fait de manière progressive et douce. Prennez un chouïa d&amp;#39;altitude à l&amp;#39;aide de la touche Page Haut. Si vous affichez la grille à l&amp;#39;aide de la touche Espace vous rendrez compte que cette transition ne dépend absolument pas&amp;nbsp;de la case mais bien de la distance du &amp;quot;point&amp;quot; dans l&amp;#39;espace qui recoit la texture à la caméra :&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;img style="WIDTH:635px;HEIGHT:634px;" height="634" src="http://msmvps.com/photos/valentin/images/622670/original.aspx" width="635" align="absMiddle" border="2" alt="" /&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Pour comprendre la puissance du filtre anisotropique, changez le filtre en filtre Point en appuyant sur les touches Alt + P. L&amp;#39;affichage qui apparait alors est rédibitoire ... :&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;img style="WIDTH:635px;HEIGHT:634px;" height="634" src="http://msmvps.com/photos/valentin/images/622671/original.aspx" width="635" align="absMiddle" border="2" alt="" /&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Passons à un autre type de texture, la texture sol. Appuyez sur la touche F2 et annulez tout mipmaping à l&amp;#39;aide de la combinaisons Alt +&amp;nbsp; N. Vous obtenez l&amp;#39;affichage suivant :&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;img style="WIDTH:635px;HEIGHT:634px;" height="634" src="http://msmvps.com/photos/valentin/images/622693/original.aspx" width="635" align="absMiddle" border="2" alt="" /&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Aucun mipmapping et aucun filtre en mignification donne un résultat plus que décevant. Améliorons tout cela : Ajoutez un mipmapping avec filtre point (combinaison Alt + P) :&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="WIDTH:635px;HEIGHT:634px;" height="634" src="http://msmvps.com/photos/valentin/images/622695/original.aspx" width="635" align="absMiddle" border="2" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;L&amp;#39;affichage est meilleur mais comme le montrent les deux lignes rouges nous voyons parfaitement les lignes de transition entre un Lod et un autre (avec la texture de couleur c&amp;#39;est encore plus flagrant). Et pour cause : le filtre point pour le mipmapping est des plus simples : lorsqu&amp;#39;il y&amp;#39;a besoin de faire une transition vers un autre LOD il utilise directement les texels de la texture voulue sans essayer de rendre la transition progressive. Si vous vous déplacez à l&amp;#39;aide des touches fléchées vous remarquez encore mieux cette transition. Nous pouvons toujours appliquer un filtre lineaire en mignification (touche L) :&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&amp;nbsp;&lt;img style="WIDTH:635px;HEIGHT:634px;" height="634" src="http://msmvps.com/photos/valentin/images/622712/original.aspx" width="635" align="absMiddle" border="2" alt="" /&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;mieux, mais la transition est toujours visible... Si on applique maintenant un filtre linaire pour le mipmapping (Alt + L), le rendu est quasi parfait : &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;img style="WIDTH:635px;HEIGHT:634px;" height="634" src="http://msmvps.com/photos/valentin/images/622696/original.aspx" width="635" border="2" alt="" /&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;On parle dans le cas du mipmapping avec filtre linaire de &amp;quot;filtrage trilineaire&amp;quot;. Ce filtrage effectue une moyenne progressive entre les texels des textures concernées par la transitions d&amp;#39;un LOD à un autre. Même si vous vous déplacez, vous ne verrez pas la transition d&amp;#39;un LOD à un autre. A noter que le filtre trilinaire ou le filtre anisotropique donnent pratiquement le même résultat dans la mesure où nous affichons des formes relativement &amp;quot;droites&amp;quot;.&lt;/p&gt;
&lt;p&gt;Revenez à un affichage sans filtre (touche N et shift N) et sans mipmapping (touche Alt + N). Affichez la texture Damier avec F3 :&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;img style="WIDTH:635px;HEIGHT:634px;" height="634" src="http://msmvps.com/photos/valentin/images/622749/original.aspx" width="635" align="absMiddle" border="2" alt="" /&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;On voit que l&amp;#39;affichage n&amp;#39;arrive absolument pas a gérer les lignes horizontales et verticales de la texture. Combien même vous affichez un filtre Linaire en mignification et magnification on garde un affichage desastreux.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&amp;nbsp;&lt;img style="WIDTH:635px;HEIGHT:634px;" height="634" src="http://msmvps.com/photos/valentin/images/622750/original.aspx" width="635" border="2" alt="" /&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;mais si vous appliquez un&amp;nbsp;filtre mipmapping en anisotropie l&amp;#39;affichage est parfait :&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;img style="WIDTH:635px;HEIGHT:634px;" height="634" src="http://msmvps.com/photos/valentin/images/622751/original.aspx" width="635" align="absMiddle" border="2" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Nous en avons terminé avec le mipmapping. Un point très important pour la fluidité et la beauté de nos applications 3D. Continuez à vous familiariser avec cette application qui met parfaitement en évidence les filtres de mignification et magnification et les filtres de mipmapping.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="verdana,geneva" size="4"&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="verdana,geneva"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;font face="verdana,geneva"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;font face="verdana,geneva"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;font face="verdana,geneva"&gt;&lt;/font&gt;&lt;span style="COLOR:teal;"&gt;&lt;font color="#000000"&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:teal;"&gt;&lt;font color="#000000"&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font style="BACKGROUND-COLOR:#ffff00;"&gt;&lt;font face="verdana,geneva"&gt;&lt;img title="telecharger" style="WIDTH:24px;HEIGHT:24px;" height="24" alt="telecharger" src="http://www.adcworks.com/images/content/icon-download.gif" width="24" align="middle" /&gt;&amp;nbsp;Vous pouvez télécharger le sample, les deux moteurs et les exercices &lt;/font&gt;&lt;a class="" href="http://msmvps.com/files/folders/valentin/entry582110.aspx" target="_blank"&gt;&lt;font face="verdana,geneva"&gt;ici&lt;/font&gt;&lt;/a&gt;&lt;font face="verdana,geneva" color="#000000"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font face="verdana,geneva"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;img style="WIDTH:24px;HEIGHT:24px;" height="24" src="http://msmvps.com/photos/valentin/images/887626/original.aspx" width="24" align="absMiddle" border="1" alt="" /&gt;&lt;font style="BACKGROUND-COLOR:#ffff00;"&gt;Retourner au &lt;/font&gt;&lt;a class="" href="http://msmvps.com/blogs/valentin/archive/2007/03/30/tutoriaux-xna-sommaire-g-n-ral.aspx"&gt;&lt;font style="BACKGROUND-COLOR:#ffff00;"&gt;sommaire des cours&lt;/font&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;/font&gt;&lt;/span&gt;&lt;em&gt;&lt;strike&gt;&lt;font face="verdana,geneva"&gt;&amp;lt;/ en construction / under construction&amp;gt;&lt;/font&gt;&lt;/strike&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;font face="verdana,geneva"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;</description></item></channel></rss>