<?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>Adam Frisby &#187; viewer</title>
	<atom:link href="http://www.adamfrisby.com/blog/tag/viewer/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.adamfrisby.com/blog</link>
	<description>ZOMGWTFHAI</description>
	<lastBuildDate>Sat, 26 Dec 2009 07:02:09 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>OpenSim-in-a-Web-Page for everyone.</title>
		<link>http://www.adamfrisby.com/blog/2009/09/opensim-in-a-web-page-for-everyone/</link>
		<comments>http://www.adamfrisby.com/blog/2009/09/opensim-in-a-web-page-for-everyone/#comments</comments>
		<pubDate>Wed, 30 Sep 2009 23:40:32 +0000</pubDate>
		<dc:creator>Adam Frisby</dc:creator>
				<category><![CDATA[Idealist]]></category>
		<category><![CDATA[OpenSim]]></category>
		<category><![CDATA[3di]]></category>
		<category><![CDATA[irrlicht]]></category>
		<category><![CDATA[openviewer]]></category>
		<category><![CDATA[osgrid]]></category>
		<category><![CDATA[rei]]></category>
		<category><![CDATA[viewer]]></category>
		<category><![CDATA[viewers]]></category>

		<guid isPermaLink="false">http://www.adamfrisby.com/blog/?p=447</guid>
		<description><![CDATA[
3Di &#8211; the Japanese OpenSim development company just opened the code up for their brand new in-a-browser viewer for OpenSim. It&#8217;s written in C#, has plugins for IE and Firefox; and is loosely based on the OpenSim-core team&#8217;s &#8220;Idealist Viewer&#8221;, which uses the Irrlicht 3D engine.
3Di&#8217;s innovations have been adding proper avatar support (albeit not [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-448" style="border: 0pt none;" title="&quot;Rei&quot; Kanji" src="http://www.adamfrisby.com/blog/wp-content/uploads/reilogo.jpg" alt="&quot;Rei&quot; Kanji" width="80" height="80" /></p>
<p>3Di &#8211; the Japanese OpenSim development company just opened the code up for their brand new in-a-browser viewer for OpenSim. It&#8217;s written in C#, has plugins for IE and Firefox; and is loosely based on the OpenSim-core team&#8217;s &#8220;Idealist Viewer&#8221;, which uses the Irrlicht 3D engine.</p>
<p>3Di&#8217;s innovations have been adding proper avatar support (albeit not the SL ones), improving the framerate fairly dramatically; and of course embedding it into a browser. It&#8217;s named &#8220;Rei&#8221; after the Japanese number for &#8216;Zero&#8217; &#8211; and code is availible under a standard 3-Clause BSD license.</p>
<p>There&#8217;s already been a lot of news out there for the announcement of OpenViewer itself &#8211; so I probably wont go into too much detail; other than it lets you embed a 3D OpenSim space onto an arbitrary website &#8211; something which combined with say OpenID or anonymous login, could do wonders for increasing userbase concurrencies on OpenSim deployments.</p>
<p><a href="http://www.adamfrisby.com/blog/wp-content/uploads/ov-outdoor.png"><img class="alignnone size-thumbnail wp-image-451" title="OpenViewer Outdoor Screenshot" src="http://www.adamfrisby.com/blog/wp-content/uploads/ov-outdoor-680x306.png" alt="OpenViewer Outdoor Screenshot" width="680" height="306" /></a></p>
<p>OpenViewer has a couple of nifty extensions to the protocol like Mesh support &#8211; which uses the Irrlicht Model Format (realXtend uses the OGRE Model &amp; Material Format, SL is planning to use the OBJ format &#8211; but dont expect anything for another year or two.); I&#8217;m not entirely sure how that plays into the building editor &#8211; specifically how you upload &amp; use them, but I&#8217;m sure that will be clarified in forthcoming documentation. It will be interesting to see how well it performs on some big complicated sims (like say one of Shenlei&#8217;s behemoths), in theory it might behave a little bit better on the server, since libsl handles packeting a lot more sanely (and in lower volume) than the official viewer does.</p>
<p>There&#8217;s been some discussion in addition on the opensim-dev mailing list about getting realXtend &amp; Rei both standardising on a common mesh format; COLLADA has been suggested &#8211; but the level of filesize bloat raises concerns for realtime streaming downloads of complicated regions.</p>
<p><strong>Site:</strong> <a href="http://www.3di-rei.org">http://www.3di-rei.org</a> (code &amp; instructions)</p>
<p><strong>Press Release (English):</strong> <a href="http://www.3di.jp/en/news/2009093001.html">http://www.3di.jp/en/news/2009093001.html</a></p>
<p>Hopefully in the coming weeks, we can look at ways of embedding this into the OpenSim &amp; OSgrid websites as a quick way to &#8216;try out&#8217; the sims.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.adamfrisby.com/blog/2009/09/opensim-in-a-web-page-for-everyone/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>O3D: Colour me impressed</title>
		<link>http://www.adamfrisby.com/blog/2009/04/o3d-colour-me-impressed/</link>
		<comments>http://www.adamfrisby.com/blog/2009/04/o3d-colour-me-impressed/#comments</comments>
		<pubDate>Wed, 22 Apr 2009 08:37:15 +0000</pubDate>
		<dc:creator>Adam Frisby</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[o3d]]></category>
		<category><![CDATA[viewer]]></category>

		<guid isPermaLink="false">http://www.adamfrisby.com/blog/?p=195</guid>
		<description><![CDATA[My first reactions to Google&#8217;s new O3D JavaScript API is &#8220;Thank God someone finally did it.&#8221;, a more detailed examination appears to yield something like Mozilla&#8217;s proposed Canvas3D but with practical implementations for all the major browsers and platforms (IE, FF, Win, Lin and Mac) &#8211; something Canvas3D was unlikely to get.
O3D has the advantage [...]]]></description>
			<content:encoded><![CDATA[<p>My first reactions to Google&#8217;s new <a href="http://code.google.com/apis/o3d/">O3D JavaScript API</a> is &#8220;Thank God someone finally did it.&#8221;, a more detailed examination appears to yield something like Mozilla&#8217;s proposed Canvas3D but with practical implementations for all the major browsers and platforms (IE, FF, Win, Lin and Mac) &#8211; something Canvas3D was unlikely to get.</p>
<div id="attachment_196" class="wp-caption aligncenter" style="width: 690px"><img class="size-thumbnail wp-image-196" title="O3D Beach Demo" src="http://www.adamfrisby.com/blog/wp-content/uploads/o3dbeach-680x409.jpg" alt="Fig 1. O3D Beach Sample" width="680" height="409" /><p class="wp-caption-text">Fig 1. O3D Beach Sample</p></div>
<p>O3D has the advantage of being really the first proper 3D implementation for a browser to market (I won&#8217;t count Flash3D here since hardware accelleration is key to doing serious work with 3D.), it&#8217;s in ECMA/Javascript which makes it pretty accessible to a wide group of developers &#8211; and the API appears to be logical and powerful.</p>
<p>It&#8217;s backed by Google which will make overall deployment better &#8211; and I would be keen to wager that this endevour goes a lot further than Lively did. The runtime is even availible under the BSDL &#8211; which makes it very attractive to commercial users.</p>
<h3>Could someone implement a virtual world with it?</h3>
<p>I think for singleplayer games O3D is perfect &#8211; it&#8217;s easy to deploy, easy to write, uses standard file formats. Multiplayer &#8211; where VW&#8217;s come in is a much tougher nut to crack because there is still a dearth of reasonable communication standards for browsers.</p>
<p>AJAX is by communications standards not very powerful &#8211; it relies on the idea of a single thread carrying request/response packets. It can be hacked up into supporting threaded packeted communications &#8211; but I believe any virtual worlds using O3D will probably be those that can survive a larger latency (eg There.com(R) versus Second Life(R)) &#8211; worlds using it will use a lot more clientside processing to minimise connection loss.</p>
<p>The discussion on #opensim-dev this afternoon about O3D has been promising &#8211; it holds a lot of potential, and whether we can utilize it to write a simple browser plugin is going to be an interesting project for the next few days.</p>
<p>Graphically O3D has most of the niceties that a modern 3D engine expects (Shaders, etc) &#8211; the keys are going to be in the difficulty of writing scene and state management in Javascript, and making sure the communications systems are as simple and efficient as possible.</p>
<p>The ease of install and the lack of serious memory limits on the 3D scene means this may be a better option than Java3D for an accessible virtual world. Stay tuned.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.adamfrisby.com/blog/2009/04/o3d-colour-me-impressed/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>3D in the Browser</title>
		<link>http://www.adamfrisby.com/blog/2008/08/3d-in-the-browser/</link>
		<comments>http://www.adamfrisby.com/blog/2008/08/3d-in-the-browser/#comments</comments>
		<pubDate>Sat, 09 Aug 2008 18:17:58 +0000</pubDate>
		<dc:creator>Adam Frisby</dc:creator>
				<category><![CDATA[Xenki]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[direct3d]]></category>
		<category><![CDATA[java3d]]></category>
		<category><![CDATA[viewer]]></category>
		<category><![CDATA[wpf]]></category>

		<guid isPermaLink="false">http://gwala.net/blog/?p=38</guid>
		<description><![CDATA[There&#8217;s been a rush of discussion recently about embedding virtual world technologies in the browser, I have seen two Java3D based implementations (which are very clever and deserve a closer look &#8211; especially if either is Open Source).
Tish has written up an interview with Avi who I mentioned earlier, on 3D in the Browser, the [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s been a rush of discussion recently about embedding virtual world technologies in the browser, I have seen two Java3D based implementations (which are very clever and deserve a closer look &#8211; especially if either is Open Source).</p>
<p>Tish has written up <a href="http://www.ugotrade.com/2008/08/08/will-the-future-of-virtual-worlds-be-in-the-browser-interview-with-avi-bar-zeev/">an interview with Avi</a> who I mentioned earlier, on 3D in the Browser, the technologies and where things should be going &#8211; he&#8217;s very eloquent and I agree with pretty much everything he has to say. Avi added a companion piece with <a href="http://www.realityprime.com/articles/some-definitions">just a table of definitions</a> and a small commentary on the article, which leads me to add my own comments on things.</p>
<p>First &#8211; the best browser is one that we dont need to install much onto the clients system, because the hurdle of making a plugin popular is a big one. XBAP is great for this since you dont need to install it to run it &#8211; it runs on a sandbox on it&#8217;s own just fine.</p>
<p>The downside to this is that we lose things like Local Caches which dramatically increase the load times when frequenting common areas &#8211; it would be nice to be able to optionally &#8220;Preview, then install&#8221; something we might be able to do via the XBAPs (one mode restricts to sandbox, other presumes it&#8217;s installed). Some experimentation in installing easily is going to need to be done.</p>
<p>I&#8217;ve been doing some further experimentations with XBAP (and yes, I&#8217;ll be posting the latest Xenki code shortly), and discovered some interesting things. First &#8211; 3D performance is no worse than a standalone WPF application, Second &#8211; it runs on Windows 2000/XP and up &#8211; I previously assumed it was Vista only, and was pleasantly suprised to find out this is not the case. Third &#8211; getting security certificates needed to automatically launch directly without install actually wont be too painful afterall (as long as libopenmv can get signed, we&#8217;re good.).</p>
<h3>Cross Platform, Java3D?</h3>
<p>The cross platform issue still remains elusive, which is why Java3D has caught my eye recently &#8211; given the similarities between C# and Java, it strikes me as potentially useful to be able to take large chunks of Xenki, run it through a special compiler and produce something that will run on Linux and Mac too.</p>
<p>The question becomes: why not use Java directly and skip the C#/WPF bit? Well the answer here is somewhat a personal one, first is that WPF is a lot easier to work with &#8211; this is an unfortunate fact of life, but doing things like UI ontop of 3D frames and doing it cleanly and efficiently is something that WPF has done so much better that there is almost no competition between them.</p>
<p>I personally have a preference towards doing things as quickly and cleanly as possible, worrying about making it functional rather than working on structural work that has already been done before &#8211; however if someone has already produced a good embeddable engine for Java on 3D pages &#8211; I&#8217;d be very tempted to at least try and give it a shot.</p>
<p>Java3D does also have the downside that it still sits in a sandbox, and the sandbox is mandatory &#8211; there&#8217;s no way we can implement a local cache using it to the best of my knowledge, I personally feel that the installable option is a very good way to cross the barrier between &#8216;hosted&#8217; and &#8216;installed&#8217; once the user is familiar.</p>
<h3>Updated Xenki Sources</h3>
<p>As stated above &#8211; I&#8217;m going to push the new xenki sources out in the next 24-48 hours. Watch this space as I will post the URLs and also the SVN address where I will be keeping changes.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.adamfrisby.com/blog/2008/08/3d-in-the-browser/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Procedural Generation of Prims considered harmful?</title>
		<link>http://www.adamfrisby.com/blog/2008/08/procedural-generation-of-prims-considered-harmful/</link>
		<comments>http://www.adamfrisby.com/blog/2008/08/procedural-generation-of-prims-considered-harmful/#comments</comments>
		<pubDate>Wed, 06 Aug 2008 15:30:05 +0000</pubDate>
		<dc:creator>Adam Frisby</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[direct3d]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[opengl]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[viewer]]></category>
		<category><![CDATA[wpf]]></category>
		<category><![CDATA[Xenki]]></category>

		<guid isPermaLink="false">http://gwala.net/blog/?p=31</guid>
		<description><![CDATA[Yep.
I said it &#8211; one of the things that&#8217;s been touted as so fantastic about SL&#8217;s rendering performance is the speed at which you can push them to the graphics card, the amount of caching in vertex buffers that can be done, etc.
I&#8217;m about to say that it actually doesnt seem to matter that much, [...]]]></description>
			<content:encoded><![CDATA[<p>Yep.</p>
<p>I said it &#8211; one of the things that&#8217;s been touted as so fantastic about SL&#8217;s rendering performance is the speed at which you can push them to the graphics card, the amount of caching in vertex buffers that can be done, etc.</p>
<p>I&#8217;m about to say that it actually doesnt seem to matter that much, and Prims lose out in a lot of cases for some very interesting, but difficult to fix reasons, and doing performance workarounds for this is going to be complex, irritating and make me wish I was dealing with my precious meshes.</p>
<p><em>I should note here, that the performance of the XBAP application on my crummy laptop graphics card is still relatively solid &#8211; and I&#8217;m brute forcing nearly every operation at this point.</em></p>
<h3>Reason Number Uno: Fill rate, &#8220;invisible&#8221; triangles.</h3>
<p>Prims waste a lot of triangles in areas we cannot see &#8211; occlusion culling of whole objects works well here, but it doesnt work when we&#8217;re dealing with potentially a few thousand triangles that are part of an object, but inseperable. This is mostly due to construction techniques than something we can fix at the renderer level, but nonetheless it has a major impact on performance.</p>
<h4>Possible Solutions</h4>
<p>I&#8217;m experimenting with using CSG (Constructive Solid Geometry &#8211; boolean operations) at the moment as a method of reducing the number of hidden triangles pushed to the screen. This will have some complexity when involving transparent surfaces, but if we discount transparent primitives from the algorithm we may get a reasonable reduction in the number of triangles pushed to the screen, at the expense of increasing the number of vertex buffers used (prims do have vertex caching on their side).</p>
<p>This is something I plan on experimenting with and am looking at ways to do CSG in C# without me having to dig out research papers.</p>
<h3>Reason Number Duo: Really Inefficient Texturing</h3>
<p>This is a more annoying issue &#8211; namely that as we start drawing triangles for the procedural surface, we have to flick texture index multiple times to render the primitive (assuming it isnt the same texture on all sides), on a spherical or curved surface this isnt so much of a problem &#8211; we push a few thousand, flip, push a few thousand more. Fine.</p>
<p>On boxes &#8211; Push 2 triangles. Flip. Push 2 triangles. Flip. Now, of course it&#8217;s better not to flip at all &#8211; and as some people will point out, pushing 2 triangles vs a few thousand is better and still more efficient. The problem here is how primitives differ from mesh based models.</p>
<p>Traditionally in mesh based modelling, you generate a single texture with a uv map for the entire object. By wrapping and contorting it, you can render the entire object as one single pass, which means we dont need to pause, do a new texture lookup, repeat as many times. It still happens occasionally, but the number is much much lower.</p>
<p>If your scene (such as in a modern game) only has 50 uniquely textured objects on scene at once (look closely and you will find it&#8217;s probably not much higher than this number) this is fine. It works well &#8211; if we appropriately stage our render pipeline, we might even be able to group these into a single pass each.</p>
<p>SL? Your lucky if your scene has less than 100 textures visible. I&#8217;ve seen regions where this number is many times more, potentially in the thousands &#8212; and as I pointed out earlier, we&#8217;re flipping textures midway through rendering single object collections, which is possibly hurting the performance gains we are making by being able to cache those collections originally.</p>
<p>Yeuck.</p>
<h4>Some possible solutions here</h4>
<p>There&#8217;s a couple of potential solutions to this, but I think the easiest one is to leave this to ATi/NVidia/Intel &#8211; pipelining similar textures is something I expect their drivers to do. If this does become a problem, I have some ideas in place for grouping similarly textured faces from different primitive groups into single vertex collections.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.adamfrisby.com/blog/2008/08/procedural-generation-of-prims-considered-harmful/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>You beauty.</title>
		<link>http://www.adamfrisby.com/blog/2008/08/you-beauty/</link>
		<comments>http://www.adamfrisby.com/blog/2008/08/you-beauty/#comments</comments>
		<pubDate>Wed, 06 Aug 2008 14:03:50 +0000</pubDate>
		<dc:creator>Adam Frisby</dc:creator>
				<category><![CDATA[Xenki]]></category>
		<category><![CDATA[abbotts]]></category>
		<category><![CDATA[bugs]]></category>
		<category><![CDATA[screenshots]]></category>
		<category><![CDATA[viewer]]></category>
		<category><![CDATA[wpf]]></category>

		<guid isPermaLink="false">http://gwala.net/blog/?p=30</guid>
		<description><![CDATA[A quick update: Well, it looks like I&#8217;ve managed to almost solve the issue which I listed previously.
Here&#8217;s some screenshots of things sort of almost rendering correctly.

and one more showing the detail of one of Cubey&#8217;s planes (in this case his Ornithopter &#8211; and it renders correctly!)

Will post more screenshots later once I have completely [...]]]></description>
			<content:encoded><![CDATA[<p>A quick update: Well, it looks like I&#8217;ve managed to almost solve the issue which I listed previously.</p>
<p>Here&#8217;s some screenshots of things sort of almost rendering correctly.</p>
<p><img src="http://www.gwala.net/xenki_abbotts2.png" alt="" width="500" height="301" /></p>
<p>and one more showing the detail of one of Cubey&#8217;s planes (in this case his Ornithopter &#8211; <em><strong>and it renders correctly!</strong></em>)</p>
<p><img src="http://www.gwala.net/xenki_abbotts3.png" alt="" width="500" height="301" /></p>
<p>Will post more screenshots later once I have completely fixed that issue.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.adamfrisby.com/blog/2008/08/you-beauty/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Xenki Renderer: Now less broken(tm).</title>
		<link>http://www.adamfrisby.com/blog/2008/08/xenki-renderer-now-less-brokentm/</link>
		<comments>http://www.adamfrisby.com/blog/2008/08/xenki-renderer-now-less-brokentm/#comments</comments>
		<pubDate>Wed, 06 Aug 2008 13:26:49 +0000</pubDate>
		<dc:creator>Adam Frisby</dc:creator>
				<category><![CDATA[Xenki]]></category>
		<category><![CDATA[OpenSim]]></category>
		<category><![CDATA[osgrid]]></category>
		<category><![CDATA[viewer]]></category>
		<category><![CDATA[wpf]]></category>
		<category><![CDATA[wright plaza]]></category>

		<guid isPermaLink="false">http://gwala.net/blog/?p=29</guid>
		<description><![CDATA[So, I&#8217;m sitting here banging my head this morning over two issues. One, why the heck is terrain never deviating from zero height, and secondly why things werent looking quite right &#8211; as you could see in the previous posts it was clearly rendering prims but things were &#8216;missing&#8217; or not quite right. Turns out [...]]]></description>
			<content:encoded><![CDATA[<p>So, I&#8217;m sitting here banging my head this morning over two issues. One, why the heck is terrain never deviating from zero height, and secondly why things werent looking quite right &#8211; as you could see in the previous posts it was clearly rendering prims but things were &#8216;missing&#8217; or not quite right. Turns out the answer was both.</p>
<h3>First, Terrain.</h3>
<p>Yesterday I got the heightfield behaving properly, but couldnt understand why it was never being set when placed onto the live feed coming from the network stack. Answer turned out I was doing something stupid and had typo&#8217;d on a variable name for my indexer. Once that was fixed, we were rendering scenes like the one below.</p>
<p><img src="http://www.gwala.net/xenki_terrain.png" alt="" width="500" height="301" /></p>
<p>It&#8217;s beggining to look a lot prettier, but as you may have noticed, the prims dont appear to line up in any recognisable pattern. While there is definetely a pattern there &#8211; something is very off.</p>
<h3>Second, Objects &#8211; Part A.</h3>
<p>Showing this one to Easy [Babcock] in the office, we quickly worked out that infact objects were never being rotated &#8211; every object had exactly the same identical zero rotation. After a few minutes debugging, this turns out to be related to the conversion from a Quaternion to a Euler rotation for WPF. Switching from Vector3 to Media.Quaternion internally solved the problem nicely.</p>
<p>Here&#8217;s a view of Abbotts aerodrome with the fix inplace.</p>
<p><img src="http://www.gwala.net/xenki_abbotts.png" alt="" width="500" height="301" /></p>
<p>Much better, although there&#8217;s still some clumps missing.</p>
<h3>Second, Objects &#8211; Part B.</h3>
<p>So, it&#8217;s looking like we&#8217;ve almost got this rendering correctly. At least object shape and rotation is being displayed correctly, although there&#8217;s still something lacking. It turns out that most of the bits missing corresponded nicely with camera view &#8211; so I&#8217;ve fixed this by telling libsl to &#8216;rove&#8217; the camera position around the sim to download the entire thing. The above screenshot had this fix inplace.</p>
<p>This solved at least terrain loading completely and most objects.</p>
<p>Loading it up on OSGrid in Wright Plaza &#8211; everything seems to actually render properly now, at least so far as primitives go &#8211; we&#8217;re missing sculpties right now which form a large component of Wright Plaza&#8217;s design.</p>
<p><img src="http://www.gwala.net/xenki_wrightplaza2.png" alt="" width="500" height="301" /></p>
<h3>Second, Objects &#8211; Part C!? Huh?</h3>
<p>Panning our Camera around a little, we notice something a little bit &#8230; odd. Namely that around 0,0,0 there&#8217;s a large congregation of primitives. I&#8217;ve been noticing this already and had discarded it as possibly being neighbouring sims in which case, I&#8217;ll just knock them out later.</p>
<p>But it turns out, there&#8217;s valuable prims being thrown there &#8211; it looks to me like maybe the child primitives in link sets having their &#8220;Position&#8221; being relative to the parent primitive rather than the sim (in OpenSim we have both .Position and .AbsolutePosition to seperate these).</p>
<p><img src="http://www.gwala.net/xenki_vegacongregation.png" alt="" width="500" height="301" /></p>
<p>So, I&#8217;m going to be working on that for the rest of this afternoon &#8211; after which I&#8217;m going to play with either texture rendering, or getting Meshmeriser to work so we can discard the dependency on the black-box GPL&#8217;d rendering library.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.adamfrisby.com/blog/2008/08/xenki-renderer-now-less-brokentm/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Xenki Update</title>
		<link>http://www.adamfrisby.com/blog/2008/08/xenki-update/</link>
		<comments>http://www.adamfrisby.com/blog/2008/08/xenki-update/#comments</comments>
		<pubDate>Tue, 05 Aug 2008 12:38:49 +0000</pubDate>
		<dc:creator>Adam Frisby</dc:creator>
				<category><![CDATA[Xenki]]></category>
		<category><![CDATA[geometry]]></category>
		<category><![CDATA[meshing]]></category>
		<category><![CDATA[screenshots]]></category>
		<category><![CDATA[viewer]]></category>

		<guid isPermaLink="false">http://gwala.net/blog/?p=27</guid>
		<description><![CDATA[The basic rewrite of the viewer has been done, I&#8217;ve seperated out the renderer and the network code into seperate classes (which in turn will be abstracted into interfaces once I have a good idea on what functions are going to be required). There is a screenshot attached below.
Basic Scene Rendering using BoxRenderer.

Switching to a [...]]]></description>
			<content:encoded><![CDATA[<p>The basic rewrite of the viewer has been done, I&#8217;ve seperated out the renderer and the network code into seperate classes (which in turn will be abstracted into interfaces once I have a good idea on what functions are going to be required). There is a screenshot attached below.</p>
<h3>Basic Scene Rendering using BoxRenderer.</h3>
<p><img src="http://www.gwala.net/xenkii_boxrender.png" alt="" width="500" height="301" /></p>
<h3>Switching to a more advanced mesher</h3>
<p>One of the things I have been tinkering with has been using more advanced meshing algorithms. libomv now has a IRendering interface which actually acts as the host for a variety of meshers (GPL, BSD, and others with varying levels of accuracy) &#8211; I&#8217;ve decided to use this interface internally when hooking in the mesher for the default renderer, so we can use any supported mesh generation algorithm, including both the GPL&#8217;d one derived from the viewer, the BSD box renderer, and potentially OpenSim&#8217;s BSD Meshmeriser. (The latter being my personal preference &#8211; since I&#8217;d like to be able to actually take a look under the hood rather than linking to magical black boxes. <a href="http://jira.secondlife.com/browse/MISC-881">Insert obligatory licensing complaint here</a>.)</p>
<p>In english &#8211; we can make things look prettier. The above screenshot was with the simple box renderer, the one below was linked against the more advanced one. The difference between these two functions is a single line of code and a difference reference when compiling the XBAP.</p>
<p>Now unfortunately, since I&#8217;d rather keep Xenki under a BSD/MIT-style license (usual reasons) &#8211; the distributed sources I&#8217;ll be releasing wont be linked against the more advanced renderer which I&#8217;m using for the screenshot below, but I do plan on spending some time tommorow attempting to get Meshmeriser working in it&#8217;s place if I can.</p>
<p><img src="http://www.gwala.net/xenki_primrender2.png" alt="" width="500" height="301" /></p>
<h3>The timeline from here</h3>
<p>My goals with this will be to try get textures (at least in a preliminary fashion) done tommorow, after that I will look at adding UV and Normals support to Meshmeriser and convert it to a IRendering interface so we can use it.</p>
<p>I also plan on cleaning up the UI a little more, below is a screenshot of the basic login form that now exists (so usernames and passwords are no longer hard coded, and this is almost venturing towards being sort of usable)</p>
<p><img src="http://www.gwala.net/xenki_login.png" alt="" width="500" height="301" /></p>
<p>With a little luck, this will be sort of usable for basic navigation and viewing by the end of the week. I will post an updated source package sometime between now and then.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.adamfrisby.com/blog/2008/08/xenki-update/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
