3DMLW

From Wikipedia, the free encyclopedia
Jump to: navigation, search
3DMLW
3D Technologies R&D Logo
3DMLW City Example Screenshot
3DMLW City example
Developer(s) 3D Technologies R&D
Stable release 1.0.5 / 02.06.2009
Preview release 2.0 alpha 1 / 05.08.2009
Written in C++
Operating system Windows, Linux, BSD, Mac OS X
Available in English
License GPL
Website www.3dmlw.com

3DMLW (3D Markup Language for Web) is an XML-based Markup Language for representing interactive 3D and 2D content on the World Wide Web. It serves as a cornerstone for a broader platform also referred to as 3DMLW.

3DMLW platform[edit]

The 3DMLW platform is an open-source software suite, that can be employed for any application that requires showing dynamic 3D content. Its own scripting language offers some unique possibilities for software design and a scalable format support for 3D models allows it to be utilized as a 3D integration tool.

With 3DMLW any designer can develop and publish 3D objects on the web with no advanced coding skills necessary. Content developers are treated to a simplified process of creating anything from static animated displays over rich interactive presentations to fully featured games.

3DMLW language[edit]

3DMLW is an XML standard 1.0 based markup language that allows for data exchange between applications linked with 3DMLW plug-in interface. A schema definition is provided for verifying the notation with 3rd party software such as jEdit or other XML editors capable of checking XSD constraints.

3DMLW renderer[edit]

The rendering engine uses industry standard OpenGL for optimal performance and cross-platform deployability. It can be plugged into 3DMLW Plug-in Interface and consists of a scene library and a graphics library, which provides an optimized rendering pipeline for the scene library structures. The scene library can be utilized independently for the manipulation or conversion of meshes without rendering them.

3DMLW plug-in interface[edit]

The plug-in interface mediates input events and output from host windows (e.g. web browsers) or an independent output window. It is extendible to allow integration into 3rd party software. Native support has been implemented for common web browsers.

3DMLW server toolset[edit]

The toolset provides batch conversion for several filetypes (.obj, .3ds, .xyz, .pts) and texture atlas generation capable of processing multiple models concurrently. It can be employed server-side to provide automatic conversion of 3D models and textures.

3DMLW file format[edit]

A 3DMLW file is a simple text file containing instructions confined to 3DMLW language syntax:

<?xml version='1.0' standalone='no'?>
<document>
	<content2d>
		<area width='200' height='100' color='#C0C0C0FF' texture='flower.png' />
	</content2d>
	<content3d id='content' camera='{#cam}'>
		<camera id='cam' class='cam_rotation' y='10' z='40' viewy='10'/>
		<box name='ground' width='100' height='2' depth='100' color='green' class='ground' />
		<box name='dynamic' y='20' width='10' height='10' depth='10' color='blue' />
	</content3d>
</document>

In 3DMLW 2D and 3D content are handled independently from each other, but they are free to overlap. For animating 3D scenes and handling different events a Lua scripting facility is provided. The following script snippet demonstrates colour fading:

<script type='text/x-lua'><![CDATA[
	receiver = Reference.get("@receiver");
	c = receiver:attributeColor("color");
	c:setAlpha(c:getAlpha()+1);
	if c:getAlpha()>255 then
		c:setAlpha(0);
	end
	receiver:putAttribute("color", tostring(c));
	]]>
</script>

The use of 3D models in .3ds, .obj, .an8, and .blend file formats is supported, but 3DMLW Plug-in interface allows for easy extension to include other formats.

3DMLW files use .3dmlw (e.g. filename.3dmlw) as extension and can be linked together similar to HTML.

Displaying 3DMLW[edit]

3DMLW content can currently be viewed using one of the official software applications provided by 3D Technologies R&D. This includes plug-ins for Internet Explorer and NPAPI compatible browsers (Mozilla Firefox, Opera etc.), a standalone viewer and specialized solutions like 3D Kiosk.

Third-party software can add 3DMLW displaying capability through the 3DMLW Plug-in interface.

Usage of 3DMLW[edit]

3DMLW is used for Tallinn's old town 3D application. 3D Technologies R&D also is using some parts of 3DMLW engine in their 3D Wayfinder application.

See also[edit]

External links[edit]

General[edit]

Documentation[edit]