<?xml version="1.0" encoding="ISO-8859-1"?>
<rdf:RDF
	xmlns="http://purl.org/rss/1.0/"
	xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
	xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel rdf:about="http://feeds.garagegames.com/rss/blogs/developer/34804/">
		<title>Blog for Claude-Alain Fournier at GarageGames.com</title>
		<description>Blog feeds for Gamers and Developers in the GarageGames community.</description>
		<link>http://www.garagegames.com/</link>
		<image rdf:resource="http://www.garagegames.com/images/GarageGames_logo_small_w.gif" />
		<dc:date>2008-10-16T02:11:24+00:00</dc:date>
		<items>
			<rdf:Seq>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/34804/12469"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/34804/12404"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/34804/12397"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/34804/12220"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/34804/12173"/>
			</rdf:Seq>
		</items>
	</channel>
	<item rdf:about="http://www.garagegames.com/blogs/34804/12469">
		<dc:format>text/html</dc:format>
		<dc:date>2007-03-04T11:58:15+00:00</dc:date>
		<dc:creator>Claude-Alain Fournier</dc:creator>
		<title>Trees, lot of trees. (phase terminal ?)</title>
		<link>http://www.garagegames.com/blogs/34804/12469</link>
		<description>No pics this time. I did not have time to work on this ressource for a little while. &lt;br&gt;&lt;br&gt;For the ones who are following the development of this ressource be aware that I am stalling the development till I know better about Sickhead Games development on the forest pack, see this plan if you missed it &lt;a href='http://www.garagegames.com/blogs/11919/12467'&gt;www.garagegames.com/blogs/11919/12467&lt;/a&gt;&lt;br&gt;&lt;br&gt;I am happy to see somebody work on this and I would be more than happy to buy such pack. Remember that I started working on this ressource only because I though forest pack was dead or at the bottom of someone todo list.  So now that I know it maybe comming soon (hope hope...) I can dedicate my time to something else. &lt;br&gt;&lt;br&gt;I may decide to release my work as a ressource, as it is or after I find the time to implement the server side collision.  I feel that such ressource may be usefull not only for tree but for all sort of environment items, example rock, log, mushroom, whatever, it can be used with any static shape</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/34804/12404">
		<dc:format>text/html</dc:format>
		<dc:date>2007-02-24T14:52:02+00:00</dc:date>
		<dc:creator>Claude-Alain Fournier</dc:creator>
		<title>Trees, lot of trees. (phase 4)</title>
		<link>http://www.garagegames.com/blogs/34804/12404</link>
		<description>The mandatory screenshot :&lt;br&gt;&lt;br&gt;&lt;img src='http://i173.photobucket.com/albums/w67/cafournier/TGEA-2007-02-24-15-27-34-03.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;What's new from yesterday ?  Well I have redone the code that decide when to draw the top view of a tree.&lt;br&gt;In the previous version, the calculation was done per quadrant, so all the trees of a quadrant will be having top view billboard shown. The result was not that good, specially if you are at the bottom of a hill, then even tree above you get the top billboard drawn.  So I grabbed a beer to build up courage and attacked the vertex shader, finally managed to force the vertex shader to do all the work for me, so now the vertex shader decide for each tree if the top billboard should be drawn or not based on the view angle. &lt;br&gt;&lt;br&gt;In the screenshot you can easily see the limit where the top billboard is drawn or not. I actually use a 45 degree angle.&lt;br&gt;&lt;br&gt;Here is also a small video where you clearly see the change as the orc fall into the forest, then I made it run around in the cleared path so you see the change from 2d to 3d : &lt;br&gt;&lt;br&gt;&lt;a href='http://s173.photobucket.com/albums/w67/cafournier/?action=view&amp;amp;current=TGEA2007-02-2415-15-13-32_transcode.flv' target=_blank&gt;Click here for the video&lt;/a&gt;</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/34804/12397">
		<dc:format>text/html</dc:format>
		<dc:date>2007-02-23T15:16:24+00:00</dc:date>
		<dc:creator>Claude-Alain Fournier</dc:creator>
		<title>Trees, lot of trees. (phase 3)</title>
		<link>http://www.garagegames.com/blogs/34804/12397</link>
		<description>What's new : &lt;br&gt;&lt;br&gt;&lt;img src='http://i173.photobucket.com/albums/w67/cafournier/tree_rep_screenshot_6.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;I did not put update since a few weeks, reason, busy at work. &lt;br&gt;&lt;br&gt;But I still did some work on the ressource :&lt;br&gt;&lt;br&gt;First of all, I added top view  Billboard, so if you look at tree from up you see... tree canopy and not a thin tree.  I still have some problems with this, I had to make some extended changes in the shader but I am a total beginner with shaders so it take me some times for something normally pretty simple.  But the result is not too bad actually, as you can see in the screenshot. &lt;br&gt;&lt;br&gt;Second addition is total support  for blockers which allow you to create clearing, paths etc.. (obvious in the screenshot), here is the link to &lt;a href='http://www.garagegames.com/index.php?sec=mg&amp;amp;mod=resource&amp;amp;page=view&amp;amp;qid=6467'&gt;fxReplicatorBlocker&lt;/a&gt;&lt;br&gt; from Thomas Lund &lt;br&gt;&lt;br&gt;Third addition was to push all to TGEA 1.0.&lt;br&gt;&lt;br&gt;I started to look at the collision problem, but it seems that I will need to spend a few days on that just to understand the collision code and find a way to add tree collision for trees that are not existing in the server. Not impossible, and I have my ideas on how to do this and keep performance. Once I have the collision code solved I will do some &amp;quot;cleaning&amp;quot; in the code and publish this as a ressource.</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/34804/12220">
		<dc:format>text/html</dc:format>
		<dc:date>2007-02-01T14:27:09+00:00</dc:date>
		<dc:creator>Claude-Alain Fournier</dc:creator>
		<title>Trees, lot of trees. (phase 2)</title>
		<link>http://www.garagegames.com/blogs/34804/12220</link>
		<description>First a teaser :&lt;br&gt;&lt;br&gt;&lt;img src='http://i173.photobucket.com/albums/w67/cafournier/tse-2007-02-01-14-58-00-31.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;I did some performance work, and I am happy to say that the result is worth the effort. I am still playing with that 100'000 trees forest to test my new fxTreeReplicator class.  See my first blog on this subject &lt;a href='http://www.garagegames.com/blogs/34804/12173'&gt;26 January plan&lt;/a&gt;.&lt;br&gt;&lt;br&gt;I have made a few screen shots with the FRAPS Fps, so it will give you an idea about the performance. &lt;br&gt;&lt;br&gt;All the photo and some videos can be found &lt;a href='http://s173.photobucket.com/albums/w67/cafournier/' target=_blank&gt;here&lt;/a&gt;&lt;br&gt;&lt;br&gt;First obvious fps increase is when the impact of 3d trees rendering is at the lowest, previously I was only getting about 14fps while looking at the whole forest from a distance, with the changes I made today in the code I get 27fps from same spot. So that's pretty good, considering that it's with a non optimised VC++ compiler (I don't have the pro version).&lt;br&gt;&lt;br&gt;When in a low density area the fps is also quite acceptable, but it decrease with the number of 3d rendered trees. I don't have much impact on this problem as the 3d trees are rendered as tsStatic object, then it's the Torque renderer who do the work,  my code is only responsible for the 2d render. &lt;br&gt;&lt;br&gt;All in all I think that the performance is good and will make only little improvement on that performance from now on. I will now concentrate on a few others problems : &lt;br&gt;&lt;br&gt;- When looking at trees from at certain angles it's too obvious they are billboards, so I will add a way to draw billboard according to the viewing angle. So you will see canopy when looking from above.&lt;br&gt;&lt;br&gt;- Add server collision with trees, this will require some extensive changes in the collision code, I don't have the trees known by the server and surely not as shape with coll box and all, so I will have to be clever on that one. I want to have mobs and npc running into these forests so that's a very important part.&lt;br&gt;&lt;br&gt;Now back to work...</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/34804/12173">
		<dc:format>text/html</dc:format>
		<dc:date>2007-01-26T21:18:25+00:00</dc:date>
		<dc:creator>Claude-Alain Fournier</dc:creator>
		<title>Trees, lot of trees.</title>
		<link>http://www.garagegames.com/blogs/34804/12173</link>
		<description>My first blog ;)&lt;br&gt;&lt;br&gt;What is this post all about ?  Trees, lot of trees and performance. &lt;br&gt;&lt;br&gt;&lt;img src='http://i173.photobucket.com/albums/w67/cafournier/tree_rep_screenshot_2.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;More screenshots and video here : &lt;a href='http://s173.photobucket.com/albums/w67/cafournier/' target=_blank&gt;TreeReplicator &lt;/a&gt;&lt;br&gt;&lt;br&gt;I am the Lead programmer for &lt;a href='http://www.adellion.com' target=_blank&gt;Adellion&lt;/a&gt; a MMORPG in the making. I don't want to discuss this project here, that's not the goal of this post, but discuss a little part of the project I am currently working on. In Adellion we have a huge island with many different terrain type and tree and vegetations. So my current goal is to be able to lay down forests, but not just a few trees, no, I want forest by the Kilometer. I waited long enough for the forest pack, it was promising and in fact made me postpone my work in that area in the hope that I would see the forest pack released one day, but I start to get impatient.&lt;br&gt;&lt;br&gt;So to make a long story short, here is what I success I have so far. &lt;br&gt;&lt;br&gt;You can see on &lt;a href='http://www.youtube.com/profile?user=cafournier' target=_blank&gt;Youtube&lt;/a&gt; a few videos I took during the development.&lt;br&gt;&lt;br&gt;Last video is bad quality on Youtube, try this link : &lt;a href='http://s173.photobucket.com/albums/w67/cafournier/?action=view&amp;amp;current=tse_tree_replicator_3.flv' target=_blank&gt;TreeReplicator &lt;/a&gt;&lt;br&gt;&lt;br&gt;The idea is to have billboards of tree replaced by 3d models at a certain distance. Now I did not want to rewrite the whole engine so I took apart fxFoliageReplicator and fxShapeReplicator and kind of merged them. This gave some mixed results, while I was able to have 1000's of tree in a forest, the performance where not that good and the limit for number of tree was quickly attained. &lt;br&gt;&lt;br&gt;Then I realised that I took it the wrong way, I was using fxShapeReplicator to create the trees and attached a billboard to each, this proved to be a bad idea, the scene renderer has to go thru 1000's of shapes at each pass. Using fxShapeReplicator I loose the ability to use quadtree system to render foliages as buffers, which is realy good for performance. &lt;br&gt;&lt;br&gt;So I rewrote the whole and used fxFoliageReplicator as a base. Now I can benefit of the quadtree sorting and buffer render. One of my video show 200'000 trees over a 4km x 4km area. It's impressive to see in game. Latest video show the result with integration of 3d tree models, in the last video I show the same forest with 100'000 trees, I made new billboards as I had to change the tree I was using for testing, the pine tree and banana trees  I  used previously where too high in polys (~2500) the new trees are from the RST environment pack, swamp area, they are very nice looking and low in polys (~300). So in the last video you can clearly see the change from billboard to 3d model, I left a color difference so it's well visible. &lt;br&gt;&lt;br&gt;For the 3d model, I use a little trick, I don't create one tree model per tree in the forest (imagine 100'000 tsStatic ;) ) but about 50 for each tree type, and store them in a pool, where I take them as needed. When not rendered a shape is taken out of the scene, and added only when required. &lt;br&gt;&lt;br&gt;So it's not yet perfect, far from it, but still it's a good start. On the performance side I get around 15fps on a non optimised compile. And there are still lot of improvements for performance. &lt;br&gt;&lt;br&gt;Once I have something good enough, I plan to release this as a ressource. Be aware that I work on TGEA (TSE) only so TGE users will have to port it themself.</description>
	</item>
</rdf:RDF>
