new DotScene loader

Discussion area about developing or extending OGRE, adding plugins for it or building applications on it. No newbie questions please, use the Help forum for that.
jettero heller
Gnoblar
Posts: 13
Joined: Sat Sep 06, 2008 3:28 pm

Post by jettero heller »

I thought the newDotSceneLoader was easy to extend but I'm probably doing things wrong.
Now I copied all the DotSceneProcessor class' code into my own class and changed the treebuilder.
This is an awful solution but I have lost too much time.

anyway thanks for your attention.

jettero.
User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
x 179

Post by jacmoe »

jettero heller wrote:not solved yet :(
Right.
Use the Wiki, then. :)

http://www.ogre3d.org/wiki/index.php/Do ... Data_Class :wink:
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
jettero heller
Gnoblar
Posts: 13
Joined: Sat Sep 06, 2008 3:28 pm

Post by jettero heller »

actually I'm using the dotSceneInterface from ogre addons dotsceneformat thas is conform with the new dtd v 1.0.0

link
User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
x 179

Post by jacmoe »

@wolverine:
I see that the last commit was 5 months ago.
Are you ready to commit what you have now?
I'd be interested in seeing it. :)
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
x 179

Post by jacmoe »

wolverine wrote:In January 2009 I hope I will have the time to commit all the changes of the dotScene related projects to the svn repository (either done by me, by someone else at my company or by a third party) and answer all the outstanding questions (and update the Wiki pages!).
Oops. Didn't see that.
Move along. I'll be waiting. :)
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
toum
Gnoblar
Posts: 23
Joined: Tue May 13, 2008 9:39 pm

Re: new DotScene loader

Post by toum »

Hello every ones...
I have read all post in this topic... I don't understand all the ways of the DotSceneFormat.

Of course I understood that .scene will place my meshes into my scene...

http://ogreaddons.svn.sourceforge.net/v ... eneFormat/

Considering this link: http://ogreaddons.svn.sourceforge.net/v ... eneFormat/

I can see
- DotSceneInterface
- DotSceneOctreeSceneManager
- DotSceneToDotSceneOctreeConverter

1 - What are all thoses features? Their role?
I thought that i just need to use DotSceneLoader.h and DotSceneLoader.cpp + tinyxml (from http://www.ogre3d.org/wiki/index.php/Ne ... ene_Loader) to create my scene with .scene file...

2 - What are the mains steps to attempt a loading from .scene file with meshes file associated?

Thanks !
Sorry for my bad language, i'm french,
Happy new year !
Toum
toum
Gnoblar
Posts: 23
Joined: Tue May 13, 2008 9:39 pm

Re: new DotScene loader

Post by toum »

toum wrote:Hello every ones...
I have read all post in this topic... I don't understand all the ways of the DotSceneFormat.

Of course I understood that .scene will place my meshes into my scene...

http://ogreaddons.svn.sourceforge.net/v ... eneFormat/

Considering this link: http://ogreaddons.svn.sourceforge.net/v ... eneFormat/

I can see
- DotSceneInterface
- DotSceneOctreeSceneManager
- DotSceneToDotSceneOctreeConverter

1 - What are all thoses features? Their role?
I thought that i just need to use DotSceneLoader.h and DotSceneLoader.cpp + tinyxml (from http://www.ogre3d.org/wiki/index.php/Ne ... ene_Loader) to create my scene with .scene file...

2 - What are the mains steps to attempt a loading from .scene file with meshes file associated?

Thanks !
Sorry for my bad language, i'm french,
Happy new year !
Toum
About question 1, i replay myself with this wiki : http://www.ogre3d.org/wiki/index.php/DotScene
Sorry...

I still have my question 2...
2 - What are the mains steps to attempt a loading from .scene file with meshes file associated? a global view?

Thanks !!
Toum
User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
x 179

Re: new DotScene loader

Post by jacmoe »

You really have to wait until the project is updated.

In the meantime, use OgreMAX:
http://www.ogre3d.org/forums/viewtopic.php?f=8&t=36254

Nedelman wrote some truly excellent dotscene code. Don't let it confuse you that it's an MAX exporter. :wink:
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
toum
Gnoblar
Posts: 23
Joined: Tue May 13, 2008 9:39 pm

Re: new DotScene loader

Post by toum »

jacmoe wrote:You really have to wait until the project is updated.

In the meantime, use OgreMAX:
http://www.ogre3d.org/forums/viewtopic.php?f=8&t=36254

Nedelman wrote some truly excellent dotscene code. Don't let it confuse you that it's an MAX exporter. :wink:
Thanks jacmoe !!

Question 3 - Even if i use an older version of Ogre SDK (1.4.6) ??

I read in readme.txt that dotScene project is only compilable on Visual Studio 8.0 SP1

Question 4 - This constraint has changed? Is dotScene project compileable with codeblocks + mingw toolbox?
jacmoe wrote:Don't let it confuse you that it's an MAX exporter. :wink:
Question 5 - What do you mean? I can export a .scene file + meshes from blender and use Nedelman's code to import .scene file into Ogre?

Thanks for your help ! ;)

Toum
Last edited by toum on Wed Dec 31, 2008 5:59 pm, edited 1 time in total.
User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
x 179

Re: new DotScene loader

Post by jacmoe »

Do not worry about what you've read about dotscene.
Grab OgreMAX, look at the dotscene code there, use it.

Dotscene is only XML, not magic. :)

And, yes: you can use the Blender dotscene exporter.
As long as it spits out a parsable xml file. :wink:
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
toum
Gnoblar
Posts: 23
Joined: Tue May 13, 2008 9:39 pm

Re: new DotScene loader

Post by toum »

jacmoe wrote:Do not worry about what you've read about dotscene.
Grab OgreMAX, look at the dotscene code there, use it.

Dotscene is only XML, not magic. :)

And, yes: you can use the Blender dotscene exporter.
As long as it spits out a parsable xml file. :wink:
Hmm you're my god !
toum
Gnoblar
Posts: 23
Joined: Tue May 13, 2008 9:39 pm

Re: new DotScene loader

Post by toum »

jacmoe wrote:Do not worry about what you've read about dotscene.
Grab OgreMAX, look at the dotscene code there, use it.

Dotscene is only XML, not magic. :)

And, yes: you can use the Blender dotscene exporter.
As long as it spits out a parsable xml file. :wink:
I have exported from blender (with blender exporter) my .scene with meshes file associated...

I can load the .scene file using OgreMaxScene class of derek: I can see my scene into my ogre application. This is a simple scene with cubes, deformed planes and simple meshes.

1 - But i don't know if in a avanced scene such as a game level, i can always use derek's code. You know about?

2 - Is the dotScene format generic? If yes, does derek's code respect the DTD (document type definition) of this dotScene xml file during loading the scene? Same as blender could respect it when export .scene xml file? For example the static objects in .scene xml generated by OgreExporter are defined by an attribute "static" set as "true" into entity tag. Does in this example derek's code considers statics objects of the same way?

Static objects in .scene xml generated by OgreExporter defined by an attribute "static" set as "true":

Code: Select all

  
<nodes>
    <node name="Cube">
      <position x="-0.472381" y="0.000000" z="0.507373"/>
      <quaternion x="0.000000" y="0.000000" z="-0.000000" w="1.000000"/>
      <scale x="1.000000" y="1.000000" z="1.000000"/>
      <entity name="Cube" meshFile="Cube.mesh" static="true"/>
      <userData>
      </userData>
    </node>
Sorry for my bad language.
Thanks for helping,
Toum
User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
x 179

Re: new DotScene loader

Post by jacmoe »

  1. Do use XML when developing your whatever engine. It would be wise, however, to make a binary, optimised level format. For performance reasons. That's what the OgreXMLConverter does for meshes. You could do the same for your levels.
  2. No. It's not generic. There's no 'official' dotscene format specification. You could modify the Blender exporter, if you wish. Even though that might not be necessary, depending on your level format.
  3. Use the logic properties of Blender, and it will export as UserData. Then parse it accordingly in your scene parser.
HTH :wink:
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
toum
Gnoblar
Posts: 23
Joined: Tue May 13, 2008 9:39 pm

Re: new DotScene loader

Post by toum »

jacmoe wrote:
  1. Use the logic properties of Blender, and it will export as UserData. Then parse it accordingly in your scene parser.
I have seen logic properties into the Blender exporter...
But in few word what are thoses "logic properties"? What is defined behind this term?

Thanks for helping
User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
x 179

Re: new DotScene loader

Post by jacmoe »

In Blender, having selected an object, press F4.
You should then be looking at the Logic panel.
Now, click the Add Property button-bar.
And choose name, type and value.
It will be exported as UserData.
Try it. :wink:
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
x 179

Re: new DotScene loader

Post by jacmoe »

/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
toum
Gnoblar
Posts: 23
Joined: Tue May 13, 2008 9:39 pm

Re: new DotScene loader

Post by toum »

jacmoe wrote:In Blender, having selected an object, press F4.
You should then be looking at the Logic panel.
Now, click the Add Property button-bar.
And choose name, type and value.
It will be exported as UserData.
Try it. :wink:
Oh ok
But this class is only usable with http://ogreaddons.svn.sourceforge.net/v ... eneFormat/, no?

Could i use it with OgreMaxScene loader anyway?
toum
Gnoblar
Posts: 23
Joined: Tue May 13, 2008 9:39 pm

Re: new DotScene loader

Post by toum »

Or maybe could i use some static methods defined in http://www.ogre3d.org/wiki/index.php/Do ... Data_Class to get user data info
and the use of OgreMax in parallel.
User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
x 179

Re: new DotScene loader

Post by jacmoe »

If it doesn't fit, modify it. I haven't got OgreMax handy right now, so I don't know if it supports UserData. Just modify it if it doesn't. :)
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
toum
Gnoblar
Posts: 23
Joined: Tue May 13, 2008 9:39 pm

Re: new DotScene loader

Post by toum »

jacmoe wrote:If it doesn't fit, modify it. I haven't got OgreMax handy right now, so I don't know if it supports UserData. Just modify it if it doesn't. :)
Ok,
I have to modify python script ogredotscene.py i suppose...

something like this... (from ogredotscene.py)

Code: Select all

	def writeUserData(self, sceneExporter, fileObject, indent=0):
		"""Writes object propreties as userDataReference.
		"""
		if ((sceneExporter.settings.doProperties) and len(self.object.getAllProperties())):
			fileObject.write(self._indent(indent) + "<userData>\n")
			for property in self.object.getAllProperties():
				if (property and not(self.propertyFilter(property))):
					fileObject.write(self._indent(indent + 1) + 
						"<property type=\"%s\" " % property.getType() +
						"name=\"%s\" " % property.getName() +
						"data=\"%s\"/>\n" % str(property.getData()))
			fileObject.write(self._indent(indent) + "</userData>\n")
		return
User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
x 179

Re: new DotScene loader

Post by jacmoe »

Why would you modify the python script?
It exports userdata already. Am I not getting it? :)

What's wrong with this? -->

Code: Select all

<scene formatVersion="1.0.0">
  <nodes>
    <node name="Cube">
      <position x="0.000000" y="0.000000" z="-0.000000"/>
      <quaternion x="0.000000" y="0.000000" z="-0.000000" w="1.000000"/>
      <scale x="1.000000" y="1.000000" z="1.000000"/>
      <entity name="Cube" meshFile="Cube.mesh"/>
      <userData>
        <property type="STRING" name="name" data="myGroovieBox"/>
        <property type="INT" name="geekvalue" data="33"/>
      </userData>
    </node>
  </nodes>
  <externals>
    <item type="material">
      <file name="Scene.material"/>
    </item>
  </externals>
  <environment>
    <colourAmbient r="0.000000" g="0.000000" b="0.000000"/>
    <colourBackground r="0.056563" g="0.220815" b="0.400000"/>
  </environment>
</scene>
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
toum
Gnoblar
Posts: 23
Joined: Tue May 13, 2008 9:39 pm

Re: new DotScene loader

Post by toum »

jacmoe wrote:Why would you modify the python script?
It exports userdata already. Am I not getting it? :)

What's wrong with this? -->

Code: Select all

<scene formatVersion="1.0.0">
  <nodes>
    <node name="Cube">
      <position x="0.000000" y="0.000000" z="-0.000000"/>
      <quaternion x="0.000000" y="0.000000" z="-0.000000" w="1.000000"/>
      <scale x="1.000000" y="1.000000" z="1.000000"/>
      <entity name="Cube" meshFile="Cube.mesh"/>
      <userData>
        <property type="STRING" name="name" data="myGroovieBox"/>
        <property type="INT" name="geekvalue" data="33"/>
      </userData>
    </node>
  </nodes>
  <externals>
    <item type="material">
      <file name="Scene.material"/>
    </item>
  </externals>
  <environment>
    <colourAmbient r="0.000000" g="0.000000" b="0.000000"/>
    <colourBackground r="0.056563" g="0.220815" b="0.400000"/>
  </environment>
</scene>
To make it compatible with OgreMax xml parser :). UserData seems to be defined differently into OgreMax
User avatar
cottonbelly
Gnoblar
Posts: 12
Joined: Fri Mar 23, 2007 11:48 am

Re: new DotScene loader

Post by cottonbelly »

Sent: Tue Feb 10, 2009 1:54 pm
From: cottonbelly
To: wolverine

Hi:

First of all, thanks for your work on the DotSceneFormat.

In my company, we make extensive use of XSI as a modeling tool, and thus we are in need of a good workflow solution between XSI and Ogre. The DotScene format seems a good answer to us.

You said in the forum that "no exporter is currently available", in fact there exists an XSI Exporter (Lodes 2006) but the output .scene can't be parsed by the current DotSceneFormat SVN implementation.

Our proposal is the update Lodes' XSI Tool so that its DotScene validates the current DTD, which can be found on the SVN. Does this idea sound good to you?

You said on the Ogre forum that you were about to commit changes to DotSceneFormat early 2009. Is it ongoing? Shall we wait for these changes to start updating the XSI Tool?

Thanks in advance for your feedback,
François.


Sent: Fri Feb 13, 2009 1:53 am
From: wolverine
To: cottonbelly

Dear François,
First of all, thanks for your work on the DotSceneFormat.
Thank you, we welcome welcome every appreciation. :-)

First I have to apologize but I haven't had the time to do that commit. :-( Unfortunatelly we are working on a game for a really long time by now, it is near to become finished (about 95%), however due to many circimstances we weren't able to get ready with it by the time we originally planned. This game is really important for the whole team, for the whole company and for me too. A lot of things in the future depends on it. So I think I won't have time too much time until we have published it (if everything goes well this will be at the beginning of April 2009).
I didn't even manage to answer to all of the e-mails and private messages relating to the new dotScene loader in the last few weeks :-(. Now I'm writing this letter instead of sleeping :-D.
The web page of the game is going to be http://www.rivalryofgods.com. :-) Currently it is empty, but not for too long... :-)


However I've got good news. :-)
One of my colleague have already developed an up-to-date exporter for XSI, and although as long as I remember it isn't finished fully, it can export *most* of the functionality of the *new* :-) dotScene format. We are planning to release it under LGPL, just as with the other parts of the source (again we just didn't have the time to do it).
Please send an e-mail to Breathing Bytes, reference to this e-mail and ask for it, my colleagues will send it to you. I'm really happy to hear that you wish to further develop it and thank you for it :-).
One of our Ukraine friends have already developed the serialization part for dotScene :-). We didn't had the time to test it (we don't need it in our current game), however for the first look it looks really promising and finished. If you wish we can send this to you as well, it is probably not going to be included in the next commit, because it is untested and probably unstable and uncapable for real production environment.
There were other modifications for the dotScene related projects too (interface for modification, renderWindow, viewport parsing, some minor bugfixes in dotSceneViewer, etc.)
The whole dotSceneInterface gets ported to Macintosh and Linux (the Linux port was done previously) in the next 2 weeks. :-)
We've got plenty of modifications for Ogre core itself by now and we are planning to release them as well (well we wish to and we have to because of LGPL).
BTW, if you can and wish, please post your last e-mail and this e-mail on the Ogre forums as well, so the community still gets informed about what's going on.

Cheers,
Balázs Hajdics
polygon9
Gnoblar
Posts: 10
Joined: Tue Nov 07, 2006 10:59 am

Re: new DotScene loader

Post by polygon9 »

Awesome! :D
0xDeadC0de
Gnoblar
Posts: 1
Joined: Mon Feb 23, 2009 3:32 am

Re: new DotScene loader

Post by 0xDeadC0de »

How is the linux port coming? I'm very interested in using it. I'm getting back to my game after a year and a half hiatus - which used the new dotscene format, and I'd really like to continue development under my main OS now. Or is there a newer better format to use? Thank you's =)