<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>orYoss</title>
	<atom:link href="http://www.oryoss.be/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.oryoss.be/blog</link>
	<description>A game developer</description>
	<lastBuildDate>Sat, 03 Jul 2010 12:56:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>&#8216;Birdrace&#8217; la Beta !</title>
		<link>http://www.oryoss.be/blog/2010/04/11/birdrace-la-beta/</link>
		<comments>http://www.oryoss.be/blog/2010/04/11/birdrace-la-beta/#comments</comments>
		<pubDate>Sun, 11 Apr 2010 20:58:48 +0000</pubDate>
		<dc:creator>Frédéric</dc:creator>
				<category><![CDATA[Créajeux]]></category>
		<category><![CDATA[Projets]]></category>
		<category><![CDATA[Shiva]]></category>
		<category><![CDATA[3D]]></category>
		<category><![CDATA[Bêta]]></category>
		<category><![CDATA[Programmation]]></category>
		<category><![CDATA[Projet]]></category>

		<guid isPermaLink="false">http://www.oryoss.be/blog/?p=762</guid>
		<description><![CDATA[Bonsoir tout le monde, Une bonne nouvelle aujourd&#8217;hui, voici rien que pour vous la version Beta du projet Birdrace. Je vais sans doute vous ennuyer un peu, car pour y jouer vous devrez installer un affreux plugin sur votre navigateur. document.write(stkobject( 640, 480, 'http://www.creajeux.fr/v2/download/Birdrace/birdrace.stk' , '' , '' , '' , '' , '' , [...]]]></description>
			<content:encoded><![CDATA[<p>Bonsoir tout le monde,</p>
<p>Une bonne nouvelle aujourd&#8217;hui, voici rien que pour vous la version Beta du projet Birdrace.</p>
<p>Je vais sans doute vous ennuyer un peu, car pour y jouer vous devrez installer un affreux plugin sur votre navigateur.</p>
<p><script src="http://player.stonetrip.com/stkobject.js" type="text/javascript"></script></p>
<div style="padding-bottom: 10px;" ><script type="text/javascript">
document.write(stkobject( 640, 480, 'http://www.creajeux.fr/v2/download/Birdrace/birdrace.stk' , '' , '' , '' , '' , '' , '' , 0 , 1 , '' , 3 , 0 , 0 , 0 , 1));
</script></div>
<p>Pour jouer, rien de plus facile.</p>
<p>Les commandes sont les suivantes et sont configurables dans le menu :</p>
<ul>
<li>Touches directionnelles pour manier votre personnage</li>
<li>A pour accélérer</li>
<li>Z pour freiner (mais dans les jeux de course on ne freine pas)</li>
<li>E pour balancer les items</li>
</ul>
<p>Voici une petite liste des bugs connus :</p>
<ul>
<li>Les missiles ont un comportement douteux</li>
<li>Le booster provoque un effet de motion blur qui ne s&#8217;annule pas un fois le temps du boost écoulé</li>
<li>Des zones peuvent être &#8216;collantes&#8217; et votre monture restera bloquée sur le sol sans raison</li>
</ul>
<p>Si vous découvrez d&#8217;autres bugs vous pouvez les poster en commentaires. Certains objets ne sont pas texturés, c&#8217;est normal. Et enfin si vous avez des idées d&#8217;objets spéciaux que l&#8217;on pourrait trouver dans les caisses faites m&#8217;en part dans les com&#8217;s.</p>
<p>Ce jeu et les autres jeux des 2ème années peuvent être joués <a href="http://creajeux.fr/download/">sur cette page</a>.</p>
<p>Merci de me donner votre avis sur le jeu  <img src='http://www.oryoss.be/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Bon jeu à tous.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oryoss.be/blog/2010/04/11/birdrace-la-beta/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Chronophagie</title>
		<link>http://www.oryoss.be/blog/2010/04/05/chronophagie/</link>
		<comments>http://www.oryoss.be/blog/2010/04/05/chronophagie/#comments</comments>
		<pubDate>Mon, 05 Apr 2010 11:10:52 +0000</pubDate>
		<dc:creator>Frédéric</dc:creator>
				<category><![CDATA[Découverte]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Dessin]]></category>
		<category><![CDATA[Vidéos]]></category>

		<guid isPermaLink="false">http://www.oryoss.be/blog/?p=745</guid>
		<description><![CDATA[Salut à tous, Aujourd&#8217;hui un article spécial sur tout les éléments chronophages du web sur lesquels perdre efficacement votre temps. On commence tout de suite avec les blogs de dessinateurs sur lesquels je passe de temps en temps et qui valent vraiment le coup. Ze blog BD de Mariko : un blog qui traite de [...]]]></description>
			<content:encoded><![CDATA[<p>Salut à tous,</p>
<p>Aujourd&#8217;hui un article spécial sur tout les éléments chronophages du web sur lesquels perdre efficacement votre temps. On commence tout de suite avec les blogs de dessinateurs sur lesquels je passe de temps en temps et qui valent vraiment le coup.</p>
<ul>
<li><a href="http://zeblogbddemariko.canalblog.com/">Ze blog BD de Mariko</a> : un blog qui traite de la vie quotidienne avec humour</li>
<li><a href="http://liliaimelenougat.over-blog.fr/">Lili aime le nougat</a> : un théâtre de la vie quotidienne en BD</li>
<li><a href="http://www.bouletcorp.com/blog/">BOULETCORP</a> : toujours le même genre, mais un blog masculin pour changer</li>
<li><a href="http://maliki.com/">Maliki</a> : le webcomic d&#8217;une jeune fille aux oreilles pointues</li>
<li><a href="http://www.yodablog.net/">YODABLOG</a> : Star Wars c&#8217;est rigolo</li>
</ul>
<p>
<div class="ngg-galleryoverview" id="ngg-gallery-13-745">


	
	<!-- Thumbnails -->
		
	<div id="ngg-image-67" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.oryoss.be/blog/wp-content/gallery/bdblog/50480556.png" title=" " class="shutterset_set_13" >
								<img title="50480556" alt="50480556" src="http://www.oryoss.be/blog/wp-content/gallery/bdblog/thumbs/thumbs_50480556.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-68" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.oryoss.be/blog/wp-content/gallery/bdblog/50790246.jpg" title=" " class="shutterset_set_13" >
								<img title="50790246" alt="50790246" src="http://www.oryoss.be/blog/wp-content/gallery/bdblog/thumbs/thumbs_50790246.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-69" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.oryoss.be/blog/wp-content/gallery/bdblog/avec-magalie.jpg" title=" " class="shutterset_set_13" >
								<img title="avec-magalie" alt="avec-magalie" src="http://www.oryoss.be/blog/wp-content/gallery/bdblog/thumbs/thumbs_avec-magalie.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-70" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.oryoss.be/blog/wp-content/gallery/bdblog/obsession2.jpg" title=" " class="shutterset_set_13" >
								<img title="obsession2" alt="obsession2" src="http://www.oryoss.be/blog/wp-content/gallery/bdblog/thumbs/thumbs_obsession2.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-71" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.oryoss.be/blog/wp-content/gallery/bdblog/yoda-226.jpg" title=" " class="shutterset_set_13" >
								<img title="yoda-226" alt="yoda-226" src="http://www.oryoss.be/blog/wp-content/gallery/bdblog/thumbs/thumbs_yoda-226.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 	 	
	<!-- Pagination -->
 	<div class='ngg-clear'></div>
 	
</div>

<br />
Dans la série des éléments chronophages sur le web on ajoutera évidemment les jeux en flash débiles :</p>
<ul>
<li><a href="http://games.adultswim.com/robot-unicorn-attack-twitchy-online-game.html">Robot unicorn attack</a> : essayez de réaliser le rêve d&#8217;une innocente licorne</li>
<li><a href="http://www.kongregate.com/games/Mazapan/you-have-to-burn-the-rope">You have to burn the rope</a> : tout est dans le titre</li>
<li><a href="http://jmtb02.com/this-is-the-only-level/">This is the only level</a> : un même niveau avec de multiples gameplays</li>
<li><a href="http://www.ferryhalim.com/orisinal/">Orisinal</a> : plein de jeux mimi et relaxant</li>
</ul>
<p>Je vous épargne les vidéos sur le phénomène meuporg et à la place je laisse le lapin vous souhaiter :</p>
<p style="text-align: center;"><strong>Joyeuses Pâques</strong></p>
<p style="text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/qO-QqRJOi9U&amp;hl=fr_FR&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="480" height="385" src="http://www.youtube.com/v/qO-QqRJOi9U&amp;hl=fr_FR&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p style="text-align: left;">A la prochaine&#8230;</p>
<p style="text-align: left; font-size: 0.8em;">© Pour les images dans l&#8217;ordre : Mariko, Lili aime le nougat et Yodablog.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oryoss.be/blog/2010/04/05/chronophagie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Les projets sans fin&#8230;</title>
		<link>http://www.oryoss.be/blog/2010/03/16/les-projets-sans-fin/</link>
		<comments>http://www.oryoss.be/blog/2010/03/16/les-projets-sans-fin/#comments</comments>
		<pubDate>Mon, 15 Mar 2010 22:04:15 +0000</pubDate>
		<dc:creator>Frédéric</dc:creator>
				<category><![CDATA[Créajeux]]></category>
		<category><![CDATA[Projets]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[Cpp]]></category>
		<category><![CDATA[Divers]]></category>
		<category><![CDATA[Programmation]]></category>
		<category><![CDATA[Projet]]></category>

		<guid isPermaLink="false">http://www.oryoss.be/blog/?p=731</guid>
		<description><![CDATA[Bonsoir à tous, Me voici la victime furieuse d&#8217;un paradoxe temporel incroyable, la boucle des projets sans fin est bouclée, comme dans le roman du (presque) même nom. J&#8217;incarne le Bastien des temps moderne amené chaque semaine dans de nouvelles histoires, de nouveaux projets, de nouveaux devoirs et de nouveaux passe-temps. Comme cela doit vous [...]]]></description>
			<content:encoded><![CDATA[<p>Bonsoir à tous,</p>
<p>Me voici la victime furieuse d&#8217;un paradoxe temporel incroyable, la boucle des projets sans fin est bouclée, comme dans <a href="http://fr.wikipedia.org/wiki/L%27Histoire_sans_fin_%28roman%29">le roman du (presque) même nom</a>.</p>
<p>J&#8217;incarne le Bastien des temps moderne amené chaque semaine dans de nouvelles histoires, de nouveaux projets, de nouveaux devoirs et de nouveaux passe-temps.</p>
<p>Comme cela doit vous paraitre flou, je commence avec un exemple concret, j&#8217;ai terminé la semaine dernière mon projet DirectX dont voici les captures :</p>

<div class="ngg-galleryoverview" id="ngg-gallery-12-731">


	
	<!-- Thumbnails -->
		
	<div id="ngg-image-62" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.oryoss.be/blog/wp-content/gallery/directxsceneviewer/printscr.jpg" title=" " class="shutterset_set_12" >
								<img title="printscr" alt="printscr" src="http://www.oryoss.be/blog/wp-content/gallery/directxsceneviewer/thumbs/thumbs_printscr.jpg" width="99" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-63" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.oryoss.be/blog/wp-content/gallery/directxsceneviewer/printscr2.jpg" title=" " class="shutterset_set_12" >
								<img title="printscr2" alt="printscr2" src="http://www.oryoss.be/blog/wp-content/gallery/directxsceneviewer/thumbs/thumbs_printscr2.jpg" width="99" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-64" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.oryoss.be/blog/wp-content/gallery/directxsceneviewer/printscr3.jpg" title=" " class="shutterset_set_12" >
								<img title="printscr3" alt="printscr3" src="http://www.oryoss.be/blog/wp-content/gallery/directxsceneviewer/thumbs/thumbs_printscr3.jpg" width="99" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-65" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.oryoss.be/blog/wp-content/gallery/directxsceneviewer/printscr4.jpg" title=" " class="shutterset_set_12" >
								<img title="printscr4" alt="printscr4" src="http://www.oryoss.be/blog/wp-content/gallery/directxsceneviewer/thumbs/thumbs_printscr4.jpg" width="99" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-66" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.oryoss.be/blog/wp-content/gallery/directxsceneviewer/printscr5.jpg" title=" " class="shutterset_set_12" >
								<img title="printscr5" alt="printscr5" src="http://www.oryoss.be/blog/wp-content/gallery/directxsceneviewer/thumbs/thumbs_printscr5.jpg" width="99" height="75" />
							</a>
		</div>
	</div>
	
		
 	 	
	<!-- Pagination -->
 	<div class='ngg-clear'></div>
 	
</div>


<p>Le projet était assez simple en sois à condition de bien comprendre DirectX.</p>
<p>En réalité rien n&#8217;est jamais difficile  le tout est de trouver comment y parvenir, par exemple je peux facilement mettre la tour Eiffel dans une boite, il suffit de découper un cube autour.</p>
<p>Le projet consiste donc en un chargeur de scène qui créée différents éléments à partir de données fournies dans un fichier. Voici une liste non exhaustive des fonctions que l&#8217;on devait intégrer :</p>
<ul>
<li>Lecture des données depuis un fichier</li>
<li>Chargement d&#8217;objets et création de plusieurs instances</li>
<li>Création d&#8217;une skybox</li>
<li>Générer un terrain</li>
<li>Une texture animée (mon cube <a href="http://fr.wikipedia.org/wiki/Lucky_star">Lucky?Star</a>)</li>
<li>Et d&#8217;autres choses&#8230; (PVS, Wireframe, Shader)</li>
</ul>
<p>Une fois ce projet finis, la boucle infernale s&#8217;est remise en route&#8230; Pour le grand projet nos concepteurs ayant taffé toutes les vacances il y avait de nombreux changements et de nombreuses choses à ajouter dans notre course d&#8217;hirondelle, j&#8217;y reviendrai une prochaine fois.</p>
<p>Bref les projets et les devoirs s&#8217;enchainent mais malgré cela j&#8217;éprouve beaucoup de plaisir à travailler sur ces derniers, pour essayer de gagner du temps j&#8217;ai d&#8217;ailleurs déjà commencé à schématiser un moteur 3D qui je pense me serra utile pour mon prochain devoir de vacances.</p>
<p>Toujours est il que j&#8217;ai plein de choses à partager je pense donc que je vais modifier la manière dont je blogue afin d&#8217;écrire de petits billets fréquents mais pas du tout ponctuels.</p>
<p>Je vous dis déjà bonsoir et à très bientôt avec plein plein de trucs.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oryoss.be/blog/2010/03/16/les-projets-sans-fin/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Leçon 14, 15 &#8211; Travail</title>
		<link>http://www.oryoss.be/blog/2010/02/07/lecon-14-15-travail/</link>
		<comments>http://www.oryoss.be/blog/2010/02/07/lecon-14-15-travail/#comments</comments>
		<pubDate>Sun, 07 Feb 2010 20:24:54 +0000</pubDate>
		<dc:creator>Frédéric</dc:creator>
				<category><![CDATA[Créajeux]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[Divers]]></category>

		<guid isPermaLink="false">http://www.oryoss.be/blog/?p=719</guid>
		<description><![CDATA[Bonsoir tout le monde, Cette semaine je ne sais plus trop par où commencer&#8230; Au niveau des études ça fait longtemps que je n&#8217;ai pas posté mes créations graphiques alors voici des tests de texturage : Pour commencer une mod d&#8217;un colt avec une grosse texture, le seul problème c&#8217;est qu&#8217;on ne voit pas vraiment [...]]]></description>
			<content:encoded><![CDATA[<p>Bonsoir tout le monde,</p>
<p>Cette semaine je ne sais plus trop par où commencer&#8230;</p>
<p>Au niveau des études ça fait longtemps que je n&#8217;ai pas posté mes <em>créations graphiques</em> alors voici des tests de texturage :</p>
<p>Pour commencer une mod d&#8217;un colt avec une grosse texture, le seul problème c&#8217;est qu&#8217;on ne voit pas vraiment qu&#8217;il s&#8217;agit d&#8217;une mod en 3D mais je vous assure que c&#8217;est le cas  <img src='http://www.oryoss.be/blog/wp-includes/images/smilies/icon_cool.gif' alt='8-)' class='wp-smiley' /> </p>
<p><a href="http://www.oryoss.be/blog/wp-content/uploads/2010/02/Thecolt.jpg"><img class="aligncenter size-large wp-image-721 bordered" title="The colt" src="http://www.oryoss.be/blog/wp-content/uploads/2010/02/Thecolt-645x483.jpg" alt="The colt" width="645" height="483" /></a></p>
<p>Ensuite un texturage par poly d&#8217;un cube de voyage et un déplié d&#8217;une skybox :</p>
<p><a href="http://www.oryoss.be/blog/wp-content/uploads/2010/02/cubes.jpg"><img class="bordered aligncenter size-large wp-image-724" title="cubes" src="http://www.oryoss.be/blog/wp-content/uploads/2010/02/cubes-645x483.jpg" alt="cubes" width="645" height="483" /></a></p>
<p>Au niveau de la programmation on travaille toujours sur DirectX en continuant à développer nos connaissances de programmation 3D et plus particulièrement sur la gestion des caméras.</p>
<p>La semaine prochaine s&#8217;annonce particulièrement remplie, en effet tout nos cours de prog deviendront des cours de projet afin d&#8217;avoir une version bêta de notre jeu de course avant les prochaines vacances.</p>
<p>Ce sera tout pour aujourd&#8217;hui, je vous promet de revenir dans une semaine avec je l&#8217;espère la première bêta de notre jeu.</p>
<p>Bonne semaine et à bientôt.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oryoss.be/blog/2010/02/07/lecon-14-15-travail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Leçon 12, 13 &#8211; Chaussons</title>
		<link>http://www.oryoss.be/blog/2010/01/24/lecon-12-13-chaussons/</link>
		<comments>http://www.oryoss.be/blog/2010/01/24/lecon-12-13-chaussons/#comments</comments>
		<pubDate>Sun, 24 Jan 2010 20:57:47 +0000</pubDate>
		<dc:creator>Frédéric</dc:creator>
				<category><![CDATA[Créajeux]]></category>
		<category><![CDATA[Découverte]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Web-série]]></category>

		<guid isPermaLink="false">http://www.oryoss.be/blog/?p=715</guid>
		<description><![CDATA[Bonsoir à tous, Un tout petit billet mini cette semaine. Au niveau des études on à enfin commencé la programmation 3D avec DirectX&#8230; Parfois je me demande si les gens qui travaillent chez Microsoft suivent vraiment une ligne directrice lors de la conception d&#8217;une librairie. Pour vous faire patienter jusque la semaine prochaine, et en [...]]]></description>
			<content:encoded><![CDATA[<p>Bonsoir à tous,</p>
<p>Un tout petit billet mini cette semaine.</p>
<p>Au niveau des études on à enfin commencé la programmation 3D avec DirectX&#8230; Parfois je me demande si les gens qui travaillent chez Microsoft suivent vraiment une ligne directrice lors de la conception d&#8217;une librairie.</p>
<p>Pour vous faire patienter jusque la semaine prochaine, et en espérant qu&#8217;il y ait plus de contenu à vous faire partager, voici une web série avec un concept intéressant : à vous de choisir ce qu&#8217;il va se passer au prochain épisode.</p>
<p style="text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="225" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=1288002&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="400" height="225" src="http://vimeo.com/moogaloop.swf?clip_id=1288002&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p style="text-align: center;"><a href="http://vimeo.com/1288002">Decide toi, CLEMENT! EP1 HD</a> from <a href="http://vimeo.com/user515979">Paul Paulsen</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p>Voici le premier épisode, et <a href="http://www.decidetoiclement.com/fr/">le site web</a> pour aller visionner les autres et voter pour la suite de l&#8217;histoire.</p>
<p>Ce sera tout pour cette semaine.</p>
<p>Bonne soirée et à bientôt.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oryoss.be/blog/2010/01/24/lecon-12-13-chaussons/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Effet de vague avec GLSL et SFML</title>
		<link>http://www.oryoss.be/blog/2010/01/17/effet-de-vague-avec-glsl-et-sfml/</link>
		<comments>http://www.oryoss.be/blog/2010/01/17/effet-de-vague-avec-glsl-et-sfml/#comments</comments>
		<pubDate>Sun, 17 Jan 2010 13:20:19 +0000</pubDate>
		<dc:creator>Frédéric</dc:creator>
				<category><![CDATA[Tutos]]></category>
		<category><![CDATA[Cpp]]></category>
		<category><![CDATA[Effet]]></category>
		<category><![CDATA[GLSL]]></category>
		<category><![CDATA[Programmation]]></category>

		<guid isPermaLink="false">http://www.oryoss.be/blog/?p=662</guid>
		<description><![CDATA[Bonjour, Aujourd&#8217;hui je vais vous montrer comment créer un effet de vague en C++ avec la librairie SFML. Pour commencer on va se créer une application de test, comme vous êtes chanceux je vous donne le code source directement. // SFML Library #include &#60;SFML/System.hpp&#62; #include &#60;SFML/Graphics.hpp&#62; &#160; #include &#60;conio.h&#62; &#160; int main&#40;&#41; &#123; // Chargement [...]]]></description>
			<content:encoded><![CDATA[<p>Bonjour,</p>
<p>Aujourd&#8217;hui je vais vous montrer comment créer un effet de vague en C++ avec la librairie SFML.</p>
<p>Pour commencer on va se créer une application de test, comme vous êtes chanceux je vous donne le code source directement.</p>

<div class="wp_syntax"><div class="code"><pre class="cpp-qt" style="font-family:monospace;"><span style="color: #888888;">// SFML Library</span>
<span style="color: #006E28;">#include &lt;SFML/System.hpp&gt;</span>
<span style="color: #006E28;">#include &lt;SFML/Graphics.hpp&gt;</span>
&nbsp;
<span style="color: #006E28;">#include &lt;conio.h&gt;</span>
&nbsp;
<span style="color: #0057AE;">int</span> main<span style="color: #006E28;">&#40;</span><span style="color: #006E28;">&#41;</span>
<span style="color: #006E28;">&#123;</span>
	<span style="color: #888888;">// Chargement d'une image de fond</span>
	sf<span style="color: #006E28;">::</span><span style="color: #2B74C7;">Image</span> Image<span style="color: #006E28;">;</span>
	<span style="color: #000000; font-weight:bold;">if</span> <span style="color: #006E28;">&#40;</span><span style="color: #006E28;">!</span>Image.<span style="color: #2B74C7;">LoadFromFile</span><span style="color: #006E28;">&#40;</span><span style="color: #BF0303;">&quot;image.jpg&quot;</span><span style="color: #006E28;">&#41;</span><span style="color: #006E28;">&#41;</span>
	<span style="color: #006E28;">&#123;</span>
		_getch<span style="color: #006E28;">&#40;</span><span style="color: #006E28;">&#41;</span><span style="color: #006E28;">;</span>
		<span style="color: #000000; font-weight:bold;">return</span> EXIT_FAILURE<span style="color: #006E28;">;</span>
	<span style="color: #006E28;">&#125;</span>
	sf<span style="color: #006E28;">::</span><span style="color: #2B74C7;">Sprite</span> Sprite<span style="color: #006E28;">&#40;</span>Image<span style="color: #006E28;">&#41;</span><span style="color: #006E28;">;</span>
&nbsp;
	<span style="color: #888888;">// Chargement de l'effet</span>
	sf<span style="color: #006E28;">::</span><span style="color: #2B74C7;">PostFX</span> Effect<span style="color: #006E28;">;</span>
	<span style="color: #000000; font-weight:bold;">if</span> <span style="color: #006E28;">&#40;</span><span style="color: #006E28;">!</span>Effect.<span style="color: #2B74C7;">LoadFromFile</span><span style="color: #006E28;">&#40;</span><span style="color: #BF0303;">&quot;wave.sfx&quot;</span><span style="color: #006E28;">&#41;</span><span style="color: #006E28;">&#41;</span>
	<span style="color: #006E28;">&#123;</span>
		_getch<span style="color: #006E28;">&#40;</span><span style="color: #006E28;">&#41;</span><span style="color: #006E28;">;</span>
		<span style="color: #000000; font-weight:bold;">return</span> EXIT_FAILURE<span style="color: #006E28;">;</span>
	<span style="color: #006E28;">&#125;</span>
&nbsp;
	<span style="color: #888888;">// Creation de la fenêtre de rendu</span>
    sf<span style="color: #006E28;">::</span><span style="color: #2B74C7;">RenderWindow</span> App<span style="color: #006E28;">&#40;</span>sf<span style="color: #006E28;">::</span><span style="color: #2B74C7;">VideoMode</span><span style="color: #006E28;">&#40;</span><span style="color: #B08000;">1024</span><span style="color: #006E28;">,</span> <span style="color: #B08000;">768</span><span style="color: #006E28;">,</span> <span style="color: #B08000;">32</span><span style="color: #006E28;">&#41;</span><span style="color: #006E28;">,</span> <span style="color: #BF0303;">&quot;SFML Post Effect&quot;</span><span style="color: #006E28;">&#41;</span><span style="color: #006E28;">;</span>
&nbsp;
	<span style="color: #888888;">// Initialisation du temps</span>
	<span style="color: #0057AE;">float</span> iTime <span style="color: #006E28;">=</span> <span style="color:#800080;">0.0f</span><span style="color: #006E28;">;</span>
&nbsp;
	<span style="color: #888888;">// Game loop</span>
	<span style="color: #000000; font-weight:bold;">while</span> <span style="color: #006E28;">&#40;</span>App.<span style="color: #2B74C7;">IsOpened</span><span style="color: #006E28;">&#40;</span><span style="color: #006E28;">&#41;</span><span style="color: #006E28;">&#41;</span>
	<span style="color: #006E28;">&#123;</span>
		<span style="color: #888888;">// On incrémente le temps écoulé depuis la dernière frame</span>
		iTime <span style="color: #006E28;">+=</span> App.<span style="color: #2B74C7;">GetFrameTime</span><span style="color: #006E28;">&#40;</span><span style="color: #006E28;">&#41;</span><span style="color: #006E28;">;</span>
&nbsp;
		<span style="color: #888888;">// Affiche l'image de fond</span>
		App.<span style="color: #2B74C7;">Draw</span><span style="color: #006E28;">&#40;</span>Sprite<span style="color: #006E28;">&#41;</span><span style="color: #006E28;">;</span>
&nbsp;
		<span style="color: #888888;">// Gestion des évènements</span>
		sf<span style="color: #006E28;">::</span><span style="color: #2B74C7;">Event</span> Event<span style="color: #006E28;">;</span>
		<span style="color: #000000; font-weight:bold;">while</span> <span style="color: #006E28;">&#40;</span>App.<span style="color: #2B74C7;">GetEvent</span><span style="color: #006E28;">&#40;</span>Event<span style="color: #006E28;">&#41;</span><span style="color: #006E28;">&#41;</span>
		<span style="color: #006E28;">&#123;</span>
			 <span style="color: #888888;">// Fermeture de la fenêtre</span>
			 <span style="color: #000000; font-weight:bold;">if</span> <span style="color: #006E28;">&#40;</span>Event.<span style="color: #2B74C7;">Type</span> <span style="color: #006E28;">==</span> sf<span style="color: #006E28;">::</span><span style="color: #2B74C7;">Event</span><span style="color: #006E28;">::</span><span style="color: #2B74C7;">Closed</span><span style="color: #006E28;">&#41;</span>
			 <span style="color: #006E28;">&#123;</span>
				 App.<span style="color: #2B74C7;">Close</span><span style="color: #006E28;">&#40;</span><span style="color: #006E28;">&#41;</span><span style="color: #006E28;">;</span>
			 <span style="color: #006E28;">&#125;</span>
&nbsp;
			<span style="color: #888888;">// Clique de souris</span>
			 <span style="color: #000000; font-weight:bold;">if</span> <span style="color: #006E28;">&#40;</span>Event.<span style="color: #2B74C7;">Type</span> <span style="color: #006E28;">==</span> sf<span style="color: #006E28;">::</span><span style="color: #2B74C7;">Event</span><span style="color: #006E28;">::</span><span style="color: #2B74C7;">MouseButtonPressed</span><span style="color: #006E28;">&#41;</span>
			 <span style="color: #006E28;">&#123;</span>
				iTime <span style="color: #006E28;">=</span> <span style="color:#800080;">0.0f</span><span style="color: #006E28;">;</span>
&nbsp;
				<span style="color: #888888;">// - - - Passage des paramètres à notre postfx</span>
			 <span style="color: #006E28;">&#125;</span>
		<span style="color: #006E28;">&#125;</span>
&nbsp;
		<span style="color: #888888;">// - - - Passage des paramètres à modifier à chaque frames</span>
		Effect.<span style="color: #2B74C7;">SetTexture</span><span style="color: #006E28;">&#40;</span><span style="color: #BF0303;">&quot;tex&quot;</span><span style="color: #006E28;">,</span> <span style="color: #0057AE;">NULL</span><span style="color: #006E28;">&#41;</span><span style="color: #006E28;">;</span>
&nbsp;
		<span style="color: #888888;">// Affiche notre postfx</span>
		App.<span style="color: #2B74C7;">Draw</span><span style="color: #006E28;">&#40;</span>Effect<span style="color: #006E28;">&#41;</span><span style="color: #006E28;">;</span>
&nbsp;
		<span style="color: #888888;">// Affiche la fenêtre</span>
		App.<span style="color: #2B74C7;">Display</span><span style="color: #006E28;">&#40;</span><span style="color: #006E28;">&#41;</span><span style="color: #006E28;">;</span>
	<span style="color: #006E28;">&#125;</span>
<span style="color: #006E28;">&#125;</span></pre></div></div>

<p>Il est assez simple et bien commenté, tout ce que l&#8217;on fait dans ce code c&#8217;est charger une image de fond ainsi qu&#8217;un fichier d&#8217;effet. Dans la boucle principale on affiche nos différents éléments et au cas ou l&#8217;on appuie sur un bouton de la souris on passe de nouveaux paramètres à notre PostFX. Les lignes de codes permettant de passer des paramètres devront être complétées par la suite.</p>
<h3>Etape 1: Appliquer un effet sur le framebuffer</h3>
<p>Pour l&#8217;instant un seul paramètre est passé depuis notre application C++ : &laquo;&nbsp;tex&nbsp;&raquo; avec comme valeur NULL, &laquo;&nbsp;tex&nbsp;&raquo; est le nom de la variable que l&#8217;on retrouvera dans notre fichier d&#8217;effet et NULL veut dire que l&#8217;on travaille sur la totalité du framebuffer.</p>
<p>Voici le contenu de notre fichier wave.sfx :</p>

<div class="wp_syntax"><div class="code"><pre class="glsl" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">sampler2D</span> tex
effect
<span style="color: #000066;">&#123;</span>
	<span style="color: #551111;">gl_FragColor</span> <span style="color: #000066;">=</span> <span style="color: #000066; font-weight: bold;">vec4</span><span style="color: #000066;">&#40;</span><span style="color: #0000ff;">0.0</span><span style="color: #000066;">,</span> <span style="color: #0000ff;">0.0</span><span style="color: #000066;">,</span> <span style="color: #0000ff;">0.0</span><span style="color: #000066;">,</span> <span style="color: #0000ff;">0.0</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span>
<span style="color: #000066;">&#125;</span></pre></div></div>

<p><a href="http://www.oryoss.be/blog/wp-content/uploads/2010/01/PostFx.png"><img class="alignright size-medium wp-image-681" title="PostFx" src="http://www.oryoss.be/blog/wp-content/uploads/2010/01/PostFx-200x155.png" alt="PostFx" width="200" height="155" /></a>Pour l&#8217;instant j&#8217;obtiens donc une superbe fenêtre avec une image de fond.<br />
Copyright <a href="http://www.flickr.com/people/17748937@N00/">Hélène Villeneuve</a> pour la superbe photo de noix ^^</p>
<p>Notre code GLSL contient pour l&#8217;instant une ligne qui change la couleur de notre pixel.</p>
<p>Comme les paramètres sont tous à 0 il ne se passe rien, mais vous pouvez essayer de changer ceux-ci en sachant que les éléments de notre vecteur 4 définissent les paramètres suivants : composante de rouge, vert, bleu et alpha; Tous paramétrables de 0 à 1.</p>
<h3>Etape 2 : Temporiser et paramétrer l&#8217;effet</h3>
<p>On va passer de nouveaux paramètres à notre effet dans le code C++, on va donner une position qui sera celle de la souris lorsque l&#8217;on clique, le temps écoulé depuis le début de l&#8217;effet et la taille de la vague.<br />
On va donc ajouter les valeurs suivantes : &laquo;&nbsp;time&nbsp;&raquo; qui sera la variable iTime de notre code cpp; &laquo;&nbsp;center&nbsp;&raquo; qui sera la position de la souris et wavesize qui sera la taille de la vague.</p>
<p>Voici donc les valeurs à ajouter dans notre code cpp :</p>

<div class="wp_syntax"><div class="code"><pre class="cpp-qt" style="font-family:monospace;"><span style="color: #888888;">// - - - Passage des paramètres à notre postfx</span>
Effect.<span style="color: #2B74C7;">SetParameter</span><span style="color: #006E28;">&#40;</span><span style="color: #BF0303;">&quot;wavesize&quot;</span><span style="color: #006E28;">,</span> <span style="color:#800080;">20.0f</span><span style="color: #006E28;">&#41;</span><span style="color: #006E28;">;</span>
Effect.<span style="color: #2B74C7;">SetParameter</span><span style="color: #006E28;">&#40;</span><span style="color: #BF0303;">&quot;center&quot;</span><span style="color: #006E28;">,</span> Event.<span style="color: #2B74C7;">MouseButton</span>.<span style="color: #2B74C7;">X</span> <span style="color: #006E28;">/</span> <span style="color:#800080;">1024.0f</span><span style="color: #006E28;">,</span> <span style="color:#800080;">1.0</span> <span style="color: #006E28;">-</span> Event.<span style="color: #2B74C7;">MouseButton</span>.<span style="color: #2B74C7;">Y</span> <span style="color: #006E28;">/</span> <span style="color:#800080;">768.0f</span><span style="color: #006E28;">&#41;</span><span style="color: #006E28;">;</span>
&nbsp;
<span style="color: #888888;">// - - - Passage des paramètres à modifier à chaque frames</span>
Effect.<span style="color: #2B74C7;">SetTexture</span><span style="color: #006E28;">&#40;</span><span style="color: #BF0303;">&quot;tex&quot;</span><span style="color: #006E28;">,</span> <span style="color: #0057AE;">NULL</span><span style="color: #006E28;">&#41;</span><span style="color: #006E28;">;</span>
Effect.<span style="color: #2B74C7;">SetParameter</span><span style="color: #006E28;">&#40;</span><span style="color: #BF0303;">&quot;time&quot;</span><span style="color: #006E28;">,</span> iTime<span style="color: #006E28;">&#41;</span><span style="color: #006E28;">;</span></pre></div></div>

<p>Le fichier &laquo;&nbsp;.sfx&nbsp;&raquo; devra prendre en compte les nouveaux paramètres, et temporiser l&#8217;effet en calculant la distance entre le pixel courant et le centre de l&#8217;effet en fonction du temps écoulé :</p>

<div class="wp_syntax"><div class="code"><pre class="glsl" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">sampler2D</span> tex
<span style="color: #000066; font-weight: bold;">vec2</span> center
<span style="color: #000066; font-weight: bold;">float</span> time
<span style="color: #000066; font-weight: bold;">float</span> wavesize		<span style="color: #666666; font-style: italic;">// 1 big -&amp;gt; 40 small</span>
effect
<span style="color: #000066;">&#123;</span>
	<span style="color: #666666; font-style: italic;">// On récupère les coordonnées du pixel courant</span>
	<span style="color: #000066; font-weight: bold;">vec2</span> uv <span style="color: #000066;">=</span> <span style="color: #551111;">gl_TexCoord</span><span style="color: #000066;">&#91;</span><span style="color: #0000ff;">0</span><span style="color: #000066;">&#93;</span><span style="color: #000066;">.</span><span style="color: #006600;">st</span><span style="color: #000066;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// On calcul la distance entre le pixel courant et le centre de la vague</span>
	<span style="color: #000066; font-weight: bold;">float</span> <span style="color: #993333; font-weight: bold;">distance</span> <span style="color: #000066;">=</span> <span style="color: #993333; font-weight: bold;">distance</span><span style="color: #000066;">&#40;</span>uv<span style="color: #000066;">,</span> center<span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// Le pixel doit il être modifié (se trouve il dans le cercle de la vague)</span>
	<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #000066;">&#40;</span><span style="color: #000066;">&#40;</span><span style="color: #993333; font-weight: bold;">distance</span> <span style="color: #000066;">&amp;</span>lt<span style="color: #000066;">;=</span> <span style="color: #000066;">&#40;</span>time <span style="color: #000066;">+</span> <span style="color: #0000ff;">1.0</span> <span style="color: #000066;">/</span> wavesize<span style="color: #000066;">&#41;</span><span style="color: #000066;">&#41;</span> <span style="color: #000066;">&amp;</span>amp<span style="color: #000066;">;&amp;</span>amp<span style="color: #000066;">;</span> <span style="color: #000066;">&#40;</span><span style="color: #993333; font-weight: bold;">distance</span> <span style="color: #000066;">&amp;</span>gt<span style="color: #000066;">;=</span> <span style="color: #000066;">&#40;</span>time <span style="color: #000066;">-</span> <span style="color: #0000ff;">1.0</span> <span style="color: #000066;">/</span> wavesize<span style="color: #000066;">&#41;</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">&#41;</span>
	<span style="color: #000066;">&#123;</span>
		<span style="color: #551111;">gl_FragColor</span> <span style="color: #000066;">=</span> <span style="color: #000066; font-weight: bold;">vec4</span><span style="color: #000066;">&#40;</span><span style="color: #0000ff;">1.0</span><span style="color: #000066;">,</span> <span style="color: #0000ff;">0.0</span><span style="color: #000066;">,</span> <span style="color: #0000ff;">0.0</span><span style="color: #000066;">,</span> <span style="color: #0000ff;">1.0</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span> <span style="color: #666666; font-style: italic;">// pixel devient rouge</span>
	<span style="color: #000066;">&#125;</span>
	<span style="color: #000000; font-weight: bold;">else</span>
	<span style="color: #000066;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">discard</span><span style="color: #000066;">;</span> <span style="color: #666666; font-style: italic;">// on ne fait rien</span>
	<span style="color: #000066;">&#125;</span>
<span style="color: #000066;">&#125;</span></pre></div></div>

<p><a href="http://www.oryoss.be/blog/wp-content/uploads/2010/01/PostFxCenterTime.png"><img class="alignleft size-medium wp-image-700" title="PostFxCenterTime" src="http://www.oryoss.be/blog/wp-content/uploads/2010/01/PostFxCenterTime-200x155.png" alt="PostFxCenterTime" width="200" height="155" /></a>On obtient maintenant de magnifiques cercles rouges lorsque l&#8217;on clique avec la souris.</p>
<p><strong>Une petite subtilité</strong> : les coordonnées de la souris ont comme point de référence le coin supérieur gauche avec comme valeur maximum la taille maximale de la fenêtre alors que les coordonnées d&#8217;un pixel en GLSL sont comprises entre 0 et 1 avec comme point de référence le coin inférieur gauche de la fenêtre.</p>
<p>Pour s&#8217;adapter aux coordonnées GLSL on doit donc diviser par la taille de la fenêtre comme je l&#8217;ai fait dans le code cpp ci-dessus.</p>
<h3>Etape 3 : Calculer l&#8217;effet de vague</h3>
<p>La partie qui vous intéresse certainement le plus, l&#8217;effet de vague. Pour ça rien de plus simple il suffit de récupérer la texture d&#8217;un pixel avoisinant en fonction de l&#8217;intensité de la vague.</p>
<p>Pour ça pas de secrets, je vous donne une formule magique, maintenant c&#8217;est à vous de créer les vôtres. Cette formule incrémente notre vecteur de position d&#8217;une valeur comprise entre 0 et X en fonction de la position du pixel dans la zone d&#8217;effet et du taux de déformation voulu.</p>
<p>Voila le code final de notre .sfx :</p>

<div class="wp_syntax"><div class="code"><pre class="glsl" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">sampler2D</span> tex
<span style="color: #000066; font-weight: bold;">vec2</span> center
<span style="color: #000066; font-weight: bold;">float</span> time
<span style="color: #000066; font-weight: bold;">float</span> intensity		<span style="color: #666666; font-style: italic;">// 1.0 big -&amp;gt; 0.0 small</span>
<span style="color: #000066; font-weight: bold;">float</span> wavesize		<span style="color: #666666; font-style: italic;">// 1 big -&amp;gt; 40 small</span>
effect
<span style="color: #000066;">&#123;</span>
	<span style="color: #666666; font-style: italic;">// On récupère les coordonnées du pixel courant</span>
	<span style="color: #000066; font-weight: bold;">vec2</span> uv <span style="color: #000066;">=</span> <span style="color: #551111;">gl_TexCoord</span><span style="color: #000066;">&#91;</span><span style="color: #0000ff;">0</span><span style="color: #000066;">&#93;</span><span style="color: #000066;">.</span><span style="color: #006600;">st</span><span style="color: #000066;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// On calcul la distance entre le pixel courant et le centre de la vague</span>
	<span style="color: #000066; font-weight: bold;">float</span> <span style="color: #993333; font-weight: bold;">distance</span> <span style="color: #000066;">=</span> <span style="color: #993333; font-weight: bold;">distance</span><span style="color: #000066;">&#40;</span>uv<span style="color: #000066;">,</span> center<span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// Le pixel doit il être modifié (se trouve il dans le cercle de la vague)</span>
	<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #000066;">&#40;</span><span style="color: #000066;">&#40;</span><span style="color: #993333; font-weight: bold;">distance</span> <span style="color: #000066;">&amp;</span>lt<span style="color: #000066;">;=</span> <span style="color: #000066;">&#40;</span>time <span style="color: #000066;">+</span> <span style="color: #0000ff;">1.0</span> <span style="color: #000066;">/</span> wavesize<span style="color: #000066;">&#41;</span><span style="color: #000066;">&#41;</span> <span style="color: #000066;">&amp;</span>amp<span style="color: #000066;">;&amp;</span>amp<span style="color: #000066;">;</span> <span style="color: #000066;">&#40;</span><span style="color: #993333; font-weight: bold;">distance</span> <span style="color: #000066;">&amp;</span>gt<span style="color: #000066;">;=</span> <span style="color: #000066;">&#40;</span>time <span style="color: #000066;">-</span> <span style="color: #0000ff;">1.0</span> <span style="color: #000066;">/</span> wavesize<span style="color: #000066;">&#41;</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">&#41;</span>
	<span style="color: #000066;">&#123;</span>
		<span style="color: #666666; font-style: italic;">// Différence entre la distance et le temps</span>
		<span style="color: #000066; font-weight: bold;">float</span> diff <span style="color: #000066;">=</span> <span style="color: #000066;">&#40;</span><span style="color: #993333; font-weight: bold;">distance</span> <span style="color: #000066;">-</span> time<span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// Calcul de l'effet de vague</span>
		uv <span style="color: #000066;">=</span> uv <span style="color: #000066;">+</span> <span style="color: #000066;">&#40;</span><span style="color: #993333; font-weight: bold;">normalize</span><span style="color: #000066;">&#40;</span>uv <span style="color: #000066;">-</span> center<span style="color: #000066;">&#41;</span> <span style="color: #000066;">*</span> <span style="color: #000066;">&#40;</span>diff <span style="color: #000066;">*</span> <span style="color: #000066;">&#40;</span><span style="color: #0000ff;">1.0</span> <span style="color: #000066;">-</span> <span style="color: #993333; font-weight: bold;">pow</span><span style="color: #000066;">&#40;</span><span style="color: #993333; font-weight: bold;">abs</span><span style="color: #000066;">&#40;</span>diff<span style="color: #000066;">*</span>wavesize<span style="color: #000066;">&#41;</span><span style="color: #000066;">,</span> intensity<span style="color: #000066;">&#41;</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// Récupération de la texture du pixel</span>
		<span style="color: #551111;">gl_FragColor</span> <span style="color: #000066;">=</span> <span style="color: #993333; font-weight: bold;">texture2D</span><span style="color: #000066;">&#40;</span>tex<span style="color: #000066;">,</span> uv<span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span>
	<span style="color: #000066;">&#125;</span>
	<span style="color: #000000; font-weight: bold;">else</span>
	<span style="color: #000066;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">discard</span><span style="color: #000066;">;</span>
	<span style="color: #000066;">&#125;</span>
<span style="color: #000066;">&#125;</span></pre></div></div>

<p>Voici un exemple de rendu :<br />
<a href="http://www.oryoss.be/blog/wp-content/uploads/2010/01/PostFx1.png"><img class="alignnone size-large wp-image-704" title="PostFx" src="http://www.oryoss.be/blog/wp-content/uploads/2010/01/PostFx1-645x501.png" alt="PostFx" width="645" height="501" /></a></p>
<p>Si vous avez des question n&#8217;hésitez pas à laisser un commentaire.<br />
Pour les paresseux voici <a href='http://www.oryoss.be/blog/wp-content/uploads/2010/01/wavepostfx.zip'>le code source</a>.</p>
<p>Bonne journée et à une prochaine fois  <img src='http://www.oryoss.be/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.oryoss.be/blog/2010/01/17/effet-de-vague-avec-glsl-et-sfml/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Leçon 10, 11 &#8211; Cadeaux</title>
		<link>http://www.oryoss.be/blog/2010/01/13/lecon-10-11-cadeaux/</link>
		<comments>http://www.oryoss.be/blog/2010/01/13/lecon-10-11-cadeaux/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 19:48:34 +0000</pubDate>
		<dc:creator>Frédéric</dc:creator>
				<category><![CDATA[Créajeux]]></category>
		<category><![CDATA[Projets]]></category>
		<category><![CDATA[Cpp]]></category>
		<category><![CDATA[Jeux vidéo]]></category>
		<category><![CDATA[Programmation]]></category>

		<guid isPermaLink="false">http://www.oryoss.be/blog/?p=652</guid>
		<description><![CDATA[Bonsoir tout le monde, Cette semaine c&#8217;est une spéciale cadeaux, avec des exclusivités rien que pour vous&#8230; Tout d&#8217;abord voici le lien de la version test de notre projet de course d&#8217;oiseaux. Vous trouverez aussi sur le site de créajeux, les autres projets afin de les tester aussi.  Et ensuite bonne nouvelle, j&#8217;ai terminé mon [...]]]></description>
			<content:encoded><![CDATA[<p>Bonsoir tout le monde,</p>
<p>Cette semaine c&#8217;est une spéciale cadeaux, avec des exclusivités rien que pour vous&#8230;</p>
<p>Tout d&#8217;abord voici <a href="http://www.creajeux.fr/download/birdrace.htm">le lien de la version test</a> de notre projet de course d&#8217;oiseaux.<br />
Vous trouverez aussi sur le site de créajeux, <a href="http://www.creajeux.fr/download/">les autres projets</a> afin de les tester aussi.  <img src='http://www.oryoss.be/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Et ensuite bonne nouvelle, j&#8217;ai terminé mon projet de noël. Voici quelques captures d&#8217;écran du jeu :</p>

<div class="ngg-galleryoverview" id="ngg-gallery-10-652">


	
	<!-- Thumbnails -->
		
	<div id="ngg-image-57" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.oryoss.be/blog/wp-content/gallery/water-wars/screen.jpg" title=" " class="shutterset_set_10" >
								<img title="Water Wars" alt="Water Wars" src="http://www.oryoss.be/blog/wp-content/gallery/water-wars/thumbs/thumbs_screen.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-58" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.oryoss.be/blog/wp-content/gallery/water-wars/screen2.jpg" title=" " class="shutterset_set_10" >
								<img title="Water Wars" alt="Water Wars" src="http://www.oryoss.be/blog/wp-content/gallery/water-wars/thumbs/thumbs_screen2.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-59" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.oryoss.be/blog/wp-content/gallery/water-wars/screen3.jpg" title=" " class="shutterset_set_10" >
								<img title="Water Wars" alt="Water Wars" src="http://www.oryoss.be/blog/wp-content/gallery/water-wars/thumbs/thumbs_screen3.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-60" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.oryoss.be/blog/wp-content/gallery/water-wars/screen4.jpg" title=" " class="shutterset_set_10" >
								<img title="Water Wars" alt="Water Wars" src="http://www.oryoss.be/blog/wp-content/gallery/water-wars/thumbs/thumbs_screen4.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-61" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.oryoss.be/blog/wp-content/gallery/water-wars/screen5.jpg" title=" " class="shutterset_set_10" >
								<img title="Water Wars" alt="Water Wars" src="http://www.oryoss.be/blog/wp-content/gallery/water-wars/thumbs/thumbs_screen5.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 	 	
	<!-- Pagination -->
 	<div class='ngg-clear'></div>
 	
</div>


<p>Ce jeu est une adaptation originale du gameplay de <a href="http://en.wikipedia.org/wiki/Geometry_Wars">Geometry Wars</a>, je l&#8217;ai développé en C++ à l&#8217;aide de la librairie SFML. Afin de pimenter le gameplay j&#8217;ai créé un shader spécial afin d&#8217;afficher un effet de vague lors du rendu à l&#8217;écran.</p>
<p>Le jeu n&#8217;est pas totalement finalisé, le gameplay doit encore être approfondis afin de proposer plusieurs niveaux de difficulté donc restez branché, la version disponible sera fréquemment mise à jour.</p>
<p>Pour y jouer, vous pouvez <a href="http://oryoss.be/projects/WaterWars/Release/WaterWars.zip">le télécharger ici</a>, attention néanmoins si votre carte graphique n&#8217;est pas compatible il ne pourra fonctionner. Les commandes sont simples la souris pour viser et tirer (spécial = clique droit) et les touches directionnelles pour bouger.</p>
<p>Ce sera tout pour cette semaine, je vous laisse déjà et je vous prépare plein d&#8217;articles sympathiques&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oryoss.be/blog/2010/01/13/lecon-10-11-cadeaux/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Interlude</title>
		<link>http://www.oryoss.be/blog/2009/12/22/interlude/</link>
		<comments>http://www.oryoss.be/blog/2009/12/22/interlude/#comments</comments>
		<pubDate>Tue, 22 Dec 2009 14:59:24 +0000</pubDate>
		<dc:creator>Frédéric</dc:creator>
				<category><![CDATA[Découverte]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.oryoss.be/blog/?p=636</guid>
		<description><![CDATA[Parce-que Noël c&#8217;est fun. J&#8217;aime Pas Noël &#8211; PV Nova &#38; Monsieur Dream par MonsieurDream]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">Parce-que Noël c&#8217;est fun.</p>
<div style="text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="420" height="339" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://www.dailymotion.com/swf/xbjap5" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="420" height="339" src="http://www.dailymotion.com/swf/xbjap5" allowscriptaccess="always" allowfullscreen="true"></embed></object><br />
<strong><a href="http://www.dailymotion.com/swf/xbjap5">J&#8217;aime Pas Noël &#8211; PV Nova &amp; Monsieur Dream</a></strong><br />
<em>par <a href="http://www.dailymotion.com/MonsieurDream">MonsieurDream</a></em></div>
]]></content:encoded>
			<wfw:commentRss>http://www.oryoss.be/blog/2009/12/22/interlude/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Leçon 9 &#8211; I am Error</title>
		<link>http://www.oryoss.be/blog/2009/12/14/lecon-9-i-am-error/</link>
		<comments>http://www.oryoss.be/blog/2009/12/14/lecon-9-i-am-error/#comments</comments>
		<pubDate>Mon, 14 Dec 2009 19:21:46 +0000</pubDate>
		<dc:creator>Frédéric</dc:creator>
				<category><![CDATA[Créajeux]]></category>

		<guid isPermaLink="false">http://www.oryoss.be/blog/?p=632</guid>
		<description><![CDATA[Bonsoir à tous, Oups, j&#8217;ai encore pris du retard dans mon billet de la semaine. Je vais faire court cette semaine, mais la semaine prochaine je vous promet une surprise pour me faire pardonner (ou pas&#8230;). La semaine écoulée n&#8217;était pas très intéressante, mais on se rattrapera la semaine prochaine, au programme : design patterns [...]]]></description>
			<content:encoded><![CDATA[<p>Bonsoir à tous,</p>
<p>Oups, j&#8217;ai encore pris du retard dans mon billet de la semaine.</p>
<p>Je vais faire court cette semaine, mais la semaine prochaine je vous promet une surprise pour me faire pardonner (ou pas&#8230;).</p>
<p>La semaine écoulée n&#8217;était pas très intéressante, mais on se rattrapera la semaine prochaine, au programme : design patterns et templates en C++.</p>
<h3>Concept de la semaine : le Sprite</h3>
<p><a href="http://www.oryoss.be/blog/2009/11/30/lecon-7-billboard/">Je parle de billboard</a> mais j&#8217;en oublie l&#8217;essentiel : le sprite.</p>
<p>Tout d&#8217;abord qu&#8217;est ce que c&#8217;est ? Un sprite est une image ou une animation intégrée à une grande scène.</p>
<p>La scène dispose généralement d&#8217;un décor et les sprites sont les personnages ou les objets qui se superposent et se déplacent sur ce fond.</p>
<p>Un sprite est un élément rectangulaire dont on fait varier la transparence (le canal alpha) afin de le fondre avec le fond.</p>
<p>Le sprite est couramment utilisé en programmation de jeux vidéos même dans les jeux modernes en 3 dimensions, notamment pour les <a href="http://www.oryoss.be/blog/2009/11/30/lecon-7-billboard/">billboards</a> et les générateurs de particules.</p>
<p>Un <a href="http://sdb.drshnaps.com/index.php">petit site internet</a> ou trouver des zoulis sprites.</p>
<h3>Citation de la semaine</h3>
<blockquote><p>Sauvez la fôret, mangez un castor</p></blockquote>
<p>Je vous dis à la semaine prochaine, avec (je vous le promet) plus de news, plus d&#8217;inédit et plus de K-do.</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 107px; width: 1px; height: 1px; overflow: hidden;">http://www.oryoss.be/blog/2009/11/30/lecon-7-billboard/</div>
]]></content:encoded>
			<wfw:commentRss>http://www.oryoss.be/blog/2009/12/14/lecon-9-i-am-error/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Leçon 8 &#8211; Saint Nicolas</title>
		<link>http://www.oryoss.be/blog/2009/12/06/lecon-8-saint-nicolas/</link>
		<comments>http://www.oryoss.be/blog/2009/12/06/lecon-8-saint-nicolas/#comments</comments>
		<pubDate>Sun, 06 Dec 2009 20:38:30 +0000</pubDate>
		<dc:creator>Frédéric</dc:creator>
				<category><![CDATA[Créajeux]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[Divers]]></category>
		<category><![CDATA[Jeux vidéo]]></category>

		<guid isPermaLink="false">http://www.oryoss.be/blog/?p=606</guid>
		<description><![CDATA[Noël et le nouvel an approche à grands pas, pourtant je réalise que nous sommes le 6 décembre à l&#8217;instant même ou j&#8217;écris cet article. Être tout le temps sur son ordinateur ce n&#8217;est pas super, mais comme j&#8217;ai beaucoup de travail je ne peux pas vraiment faire autrement. Toujours est-il que ce travail aboutit [...]]]></description>
			<content:encoded><![CDATA[<p>Noël et le nouvel an approche à grands pas, pourtant je réalise que nous sommes le 6 décembre à l&#8217;instant même ou j&#8217;écris cet article.</p>
<p>Être tout le temps sur son ordinateur ce n&#8217;est pas super, mais comme j&#8217;ai beaucoup de travail je ne peux pas vraiment faire autrement. Toujours est-il que ce travail aboutit à des résultats concrets qui font plaisir à voir.</p>
<p>Cette semaine je n&#8217;ai pas eu de cours de 3D, je n&#8217;ai donc aucune modélisation à vous présenter.</p>
<p>Néanmoins le projet Bird Race avance à grand pas, j&#8217;ai intégré de nombreuses fonctionnalités développées par notre équipe à la solution finale. Voici quelques captures du projet en l&#8217;état :</p>
<p>
<div class="ngg-galleryoverview" id="ngg-gallery-9-606">


	
	<!-- Thumbnails -->
		
	<div id="ngg-image-56" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.oryoss.be/blog/wp-content/gallery/bird-race/bird-race-title.png" title=" " class="shutterset_set_9" >
								<img title="bird-race-title" alt="bird-race-title" src="http://www.oryoss.be/blog/wp-content/gallery/bird-race/thumbs/thumbs_bird-race-title.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-55" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.oryoss.be/blog/wp-content/gallery/bird-race/bird-race-load.png" title=" " class="shutterset_set_9" >
								<img title="bird-race-load" alt="bird-race-load" src="http://www.oryoss.be/blog/wp-content/gallery/bird-race/thumbs/thumbs_bird-race-load.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-53" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.oryoss.be/blog/wp-content/gallery/bird-race/bird-race-ingame.png" title=" " class="shutterset_set_9" >
								<img title="bird-race-ingame" alt="bird-race-ingame" src="http://www.oryoss.be/blog/wp-content/gallery/bird-race/thumbs/thumbs_bird-race-ingame.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-54" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.oryoss.be/blog/wp-content/gallery/bird-race/bird-race-ingame2.png" title=" " class="shutterset_set_9" >
								<img title="bird-race-ingame2" alt="bird-race-ingame2" src="http://www.oryoss.be/blog/wp-content/gallery/bird-race/thumbs/thumbs_bird-race-ingame2.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-52" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.oryoss.be/blog/wp-content/gallery/bird-race/bird-race-credits.png" title=" " class="shutterset_set_9" >
								<img title="bird-race-credits" alt="bird-race-credits" src="http://www.oryoss.be/blog/wp-content/gallery/bird-race/thumbs/thumbs_bird-race-credits.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 	 	
	<!-- Pagination -->
 	<div class='ngg-clear'></div>
 	
</div>

<br />
Comme vous pouvez le voir, un menu complet est venu se greffer à la scène de test, des éléments du décor sont apparus sur la scène : les arbres et le pont.</p>
<p>Le <acronym title="Head-up display">HUD</acronym> ingame à aussi fait son apparition, on y retrouve la position du joueur (une simple image pour l&#8217;instant), la carte de la course, un altimètre et un chronomètre.</p>
<p>Au niveau du  contrôle de l&#8217;oiseau les touches sont désormais configurables (avec gestion du clavier et de manettes analogiques) .</p>
<p>Cette semaine j&#8217;intégrerai du gameplay à la scène : une caméra sur rail avant le début de la course, un décompte et une zone à atteindre afin de terminer la partie, beaucoup de travail en perspective. <img src='http://www.oryoss.be/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<h3>Le concept de la semaine : le HUD</h3>
<p>J&#8217;en parle juste au dessus, le HUD mais qu&#8217;est-ce que c&#8217;est ?</p>
<p>Le HUD (en français Affichage tête haute) est la méthode par laquelle l&#8217;information est relayée au joueur, il s&#8217;agit d&#8217;une composante à part entière de l&#8217;interface du jeu.</p>
<p>Le HUD sera donc utilisé comme indicateur de différents éléments du gameplay, pour un jeu de tir on retrouvera par exemple la jauge de vie, les munitions disponibles ou encore la carte du monde.</p>
<p>Celui-ci est donc très dépendant du type de jeu, néanmoins on peut trouver des jeux sans HUD, ou avec des HUD très discrets voir totalement intégrés au jeu.</p>
<p>Pour plus d&#8217;informations je vous propose de lire <a href="http://en.wikipedia.org/wiki/HUD_(video_gaming)">l&#8217;article de la wikipedia anglaise</a> (l&#8217;article français n&#8217;est pas très complet).</p>
<h3>Citation de la semaine</h3>
<blockquote><p>Lorsque mes enfants mettent leurs petits souliers devant la cheminée, Saint-Nicolas leur dépose toujours des semelles anti-odeur dedans.</p></blockquote>
<p>Ce sera tout pour cette semaine, je vous dis bonne soirée et à bientôt.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oryoss.be/blog/2009/12/06/lecon-8-saint-nicolas/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
