<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wikidot="http://www.wikidot.com/rss-namespace">

	<channel>
		<title>Object mesh interchange</title>
		<link>http://vwinterop.wikidot.com/forum/t-34356/object-mesh-interchange</link>
		<description>Posts in the discussion thread &quot;Object mesh interchange&quot; - How to send meshes between systems, and be able to animate them so they look the same.</description>
				<copyright></copyright>
		<lastBuildDate></lastBuildDate>
		
					<item>
				<guid>http://vwinterop.wikidot.com/forum/t-34356#post-105473</guid>
				<title>Re: Object mesh interchange</title>
				<link>http://vwinterop.wikidot.com/forum/t-34356/object-mesh-interchange#post-105473</link>
				<description></description>
				<pubDate>Mon, 11 Feb 2008 15:39:04 +0000</pubDate>
				<wikidot:authorName>burhop</wikidot:authorName>				<wikidot:authorUserId>49004</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>Alan, assuming your qeustions are for me and I'm not sure they are…</p> <p>Scripting is really outside the domain of what I was focused on. For SL, it is only server side but as you point out, something like a windmill might be better on the client. My main focus was how to architect the geometry pipeline so that a particular format isn't built into the standard.</p> <p>Stepping beyond the geometry question, for any geometric data on the server, you have to have some way to render it on the client. If you are animating the geometric data (i.e. via a client side script) some interface is needed to the "geometry format specific" renderer on the client.</p> <p>At this point, you can't really say exactly what the interface to a "format specific geometry renderer" might be. You need an interface between the real renderer in the client and any "addin" renderers. If you have client side scripting, you may need another. You might also envision some server side interface for comunication back to the server. Or the renderer may be buried under other code (i.e. scripts may not even care about a "renderer", just the that object moves)</p> <p>Exactly how these interfaces are implemented is yet another *huge* question!</p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://vwinterop.wikidot.com/forum/t-34356#post-102169</guid>
				<title>Re: Object mesh interchange</title>
				<link>http://vwinterop.wikidot.com/forum/t-34356/object-mesh-interchange#post-102169</link>
				<description></description>
				<pubDate>Mon, 04 Feb 2008 18:55:50 +0000</pubDate>
				<wikidot:authorName>Alan Hudson</wikidot:authorName>				<wikidot:authorUserId>57875</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>Couple of questions for you on this:</p> <p>Are local animations supported(ie non networked) like a windmill. Looking at the diagram I expect it might be handled by the renderer on the client? Ie if the language supported a runtime then it would be run there?</p> <p>Is it the scripting mechanism which provides this or do you have local interpolators?</p> <p>How does a client piece of code(ie say a car) that wants to talk with the network do this? Ie say I want to display the current time and weather in an in-car display? Typically you'd use web service, ajax etc to get this data. Can an object have access to the web to display local information?</p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://vwinterop.wikidot.com/forum/t-34356#post-96729</guid>
				<title>Re: Object mesh interchange</title>
				<link>http://vwinterop.wikidot.com/forum/t-34356/object-mesh-interchange#post-96729</link>
				<description></description>
				<pubDate>Thu, 24 Jan 2008 17:03:32 +0000</pubDate>
				<wikidot:authorName>burhop</wikidot:authorName>				<wikidot:authorUserId>49004</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>One link to take a look at is</p> <p><a href="http://wiki.secondlife.com/wiki/Geometry_Based_Architecture_View">http://wiki.secondlife.com/wiki/Geometry_Based_Architecture_View</a></p> <p>While this is focused on some long term future Second Life, the general idea abstracts away the specific geometry formats. That is, it sets up a way of working so that any (most?) formats could be used.</p> <p>This allows formats to compete within the standard rather than making a particular format a standard (kind of like how you can use HTML or PDF or Word as your document format in a browser).</p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://vwinterop.wikidot.com/forum/t-34356#post-95521</guid>
				<title>Re: Object mesh interchange</title>
				<link>http://vwinterop.wikidot.com/forum/t-34356/object-mesh-interchange#post-95521</link>
				<description></description>
				<pubDate>Tue, 22 Jan 2008 18:40:28 +0000</pubDate>
				<wikidot:authorName>Tony Parisi</wikidot:authorName>				<wikidot:authorUserId>46058</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>I too, come from an X3D bias, but sometimes familiarity breeds contempt :-)</p> <p>In the VW system we are building we have made a conscious separation between assets and behavior, storing assets in X3D (because our Flux Player web plugin does a great job at rendering it) and dynamic behaviors in Javascript code and ancillary XML data (because a web browser does a much better job at those). As an aside, this separation will also allow us to deliver assets in COLLADA if we so choose in the near future— or OBJ or whatever. But X3D and COLLADA are the front runners and it's practically a coin-toss for us. We already ingest COLLADA into our Flux Studio tool and export X3D anyway.</p> <p>But as Alan point out, we also have to be careful about what we are defining as "behaviors." I believe that predefined animations can be authored and stored in the DCC tools and preserved throughout the chain as part of the "mesh data," as jwatte calls it and that is far preferable to defining those in program code. i.e. I wouldn't want to animate key frames in a Javascript timer loop.</p> <p>IMO the big win is in separating program logic from asset data and a good design should reflect that.</p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://vwinterop.wikidot.com/forum/t-34356#post-89576</guid>
				<title>Re: Object mesh interchange</title>
				<link>http://vwinterop.wikidot.com/forum/t-34356/object-mesh-interchange#post-89576</link>
				<description></description>
				<pubDate>Thu, 10 Jan 2008 16:20:28 +0000</pubDate>
				<wikidot:authorName>Alan Hudson</wikidot:authorName>				<wikidot:authorUserId>57875</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>Can you describe the systems that have split out dynamic object behavior. Do you just mean scripting languages that can access the object description?</p> <p>I come from X3D bias so I'll state that up front.</p> <p>What I've liked about VRML/X3D systems is the packaging of visuals and behaviors. Ie when I want a dynamic object I typically need to refer directly to things inside the object. Let's take a car for instance. Let's say I have 3 behaviors. Open doors, move steering wheel and display turn signals. In order to activate the first two you need to know when the user "touchs" the door handle and steering wheel. This is handled in X3D by a Sensor(touch or drag in this case). The sensor is a marker for "when the user interacts with this do something". The other way I have seen it done is more direct. Ie the scripter controls a pick ray and is told what intersected. I like X3D approach in this better because the script is attached directly to the operation. Its not off in some other picking area. The other side of this, display the turn signal. Again this operation is fairly tightly coupled to the graphics picked. Do you swap textures, change emissive color, change a shader param? You can abstract the action, but its still tightly coupled to the choosen geometry.</p> <p>Can you point me at behavior systems that you like better? I'm especially interested in declarative systems that other tools can make sense of. Just a wad of code for all the behavior system is very hard to read into many tools.</p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://vwinterop.wikidot.com/forum/t-34356#post-88616</guid>
				<title>Object mesh interchange</title>
				<link>http://vwinterop.wikidot.com/forum/t-34356/object-mesh-interchange#post-88616</link>
				<description></description>
				<pubDate>Tue, 08 Jan 2008 18:35:53 +0000</pubDate>
				<wikidot:authorName>jwatte</wikidot:authorName>				<wikidot:authorUserId>47951</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>Sooner or later, mesh data will have to be sent between systems. It seems reasonable to presume that the format of that data could be negotiated between the systems, but one or two standard "baseline" formats must be required for interoperability to be real.</p> <p>My thinking is that you need at least two formats: one for "static scenery," which supports things like mark-up for entity navigation, collision acceleration, on-demand paged downloading/loading, etc, and one for "dynamic objects," which means anything that animates or moves. Attempts in the past have been made to unify the two, but every successful, shipping virtual world actually splits these two.</p> <p>For terrain, Forterra has taken steps in developing an open source, open specification format for the paged terrain use case; for more information see <a href="http://www.interopworld.com/members/ptf">http://www.interopworld.com/members/ptf</a></p> <p>For object meshes, however, there exist sufficient existing file formats. The two front-runner formats in my mind are X3D and COLLADA. Personally, I prefer COLLADA, because it has more robust support in authoring tools, and it does not over-extend itself in the level of specification. There may be others — MD5 and FLT come to mind.</p> <p>I'd like to hear what experience you all have with different file formats that may fit the bill, and the pros/cons you've found with those file formats.</p> 
				 	]]>
				</content:encoded>							</item>
				</channel>
</rss>