[SoC 2006] Softimage XSI Plugin

Threads related to Google Summer of Code
User avatar
zarthrag
Greenskin
Posts: 128
Joined: Sat Jul 24, 2004 9:07 am
Location: Tulsa, Oklahoma

Post by zarthrag »

Bloodypriest wrote:Yup looking forward to this too.

This will lead XSI in the lead for OGRE support. As you can tell, I'm really an XSI man.
aye!
ZarthCode LLC

Bloodypriest
Goblin
Posts: 223
Joined: Thu Aug 18, 2005 2:54 pm

Post by Bloodypriest »

Hey. Just noticed the typing mistake I made. I meant : keep XSI in the lead for OGRE support. :)

User avatar
Oshri
Gnoblar
Posts: 3
Joined: Wed Jun 28, 2006 1:15 pm
Location: Amsterdam / Tel-Aviv
Contact:

Xsi cameras

Post by Oshri »

Quote: Cameras
I don't think an Ogre view should need to have an XSI camera object. You should be able to bind it to an existing XSI camera, but that shouldn't be required, in the same way that all the regular XSI views are independent of scene cameras except if you specifically tie them to one.
-----------------------

If you export a scene that has camera (and/or) camera interest animations (fcurves or trajectories) its important to see them in the OGRE window and export the camera settings (FOV/NERA/FAR/etc). I have experimented a bit with Ofusion and find it irritating that I have to look again for the cam settings... (Of course I may be missing something in the process,being a bewbe to 3Dmax)

Lodes
Google Summer of Code Student
Google Summer of Code Student
Posts: 228
Joined: Mon Mar 17, 2003 12:02 am
Location: San Jose, CA, USA

Post by Lodes »

Oshri: That is what I am currently doing for the real-time preview inside XSI. I am not yet at exporting scenes but I will keep that in mind when I get there and definitely keep the same settings.

User avatar
Oshri
Gnoblar
Posts: 3
Joined: Wed Jun 28, 2006 1:15 pm
Location: Amsterdam / Tel-Aviv
Contact:

testing stuff

Post by Oshri »

Lodes, if you need Xsi scenes or .xsi objects to test, I have several.... MOTEK (www.e-motek.com) is developing a project where the Xsi2Ogre will hopefully play a part... Do u have use for test stuff or is it too early?
cheers
Oshri

Lodes
Google Summer of Code Student
Google Summer of Code Student
Posts: 228
Joined: Mon Mar 17, 2003 12:02 am
Location: San Jose, CA, USA

Post by Lodes »

Thank you Oshri. Sent you a pm.

tommie
Gnoblar
Posts: 10
Joined: Fri Dec 09, 2005 12:07 pm
Location: Amsterdam, The Netherlands

Post by tommie »

Hi Lodes, do you already have a format in mind for storing scene hierarchies and if so, will this format include SceneNode animation?

I am looking forward to your first alpha release!

Lodes
Google Summer of Code Student
Google Summer of Code Student
Posts: 228
Joined: Mon Mar 17, 2003 12:02 am
Location: San Jose, CA, USA

Post by Lodes »

I plan to support Collada, dotScene and OSM formats. I might modify the dotScene (add things) to support extra options such as Camera animations which would include SceneNode animations since that's how animations are done in Ogre (with the AnimationTrack and all that).

You have to understand that all these formats that I am going to support are only there as intermediary files. You are then supposed to do whatever you have to do to make it work in your applications. I guess someone could have a non-interactive or semi-interactive demo using what is exported but you will not be able to do much more.

I eventually want the tool to be able to be specialized with plugins and such but people will have to add their own hooks in the code (or modify the code directly) at least at first to do that since I don't plan on getting that done for this summer.

User avatar
Kentamanos
Minaton
Posts: 980
Joined: Sat Aug 07, 2004 12:08 am
Location: Dallas, TX

Post by Kentamanos »

On the COLLADA front, have you looked at the source code in the XSI SDK for their built in importer/exporter? It shipped with 5.1 (which 5.0 users can upgrade to), but I'm not sure if it is compatible with the 4.2 SDK.

There are two primary problems with the version they shipped:

1. Unmodified clones of meshes cause a completely new mesh to be exported in the "geometry library". Ideally if you clone an object (and then don't modify the cloned objects geometry), the COLLADA file would only contain the geometry for the item once (as opposed to making a node per instance of the cloned items).
2. The COLLADA file only handles URL within the current document (URL's that begin with #). It would be nice if it could reference relative (../../filename for example) and external files (file://pathtofile) if nothing else. It would be super neat if it could handle a few non file based URLs (possibly using something like the cURL library to handle http:// URLs for instance).

Lodes
Google Summer of Code Student
Google Summer of Code Student
Posts: 228
Joined: Mon Mar 17, 2003 12:02 am
Location: San Jose, CA, USA

Post by Lodes »

The extent of the Collada support is what is available in ogreaddons and what XSI provides. Nothing more, nothing less. I don't have time to do anything else.

Lodes
Google Summer of Code Student
Google Summer of Code Student
Posts: 228
Joined: Mon Mar 17, 2003 12:02 am
Location: San Jose, CA, USA

Post by Lodes »

I think it's time for a little update. Everybody is releasing stuff and here I am still have not released anything. You'll have to be patient :)

I keep finding these weird bugs. Some I have to work around. Like if you have Ogre in multiple viewports, sometimes while resizing the application might crash, closing XSI immediately and generating no error reports or anything. So I am making it such that, only one ogre viewport might be open at a time. You can still open ogre views in seperate views just not multiple ones in the viewports.

There are a few quirky things that I still need to handle with the material editor that I made. It took me some time to understand the material system and how it works as well as figuring out a lot of undocumented features in XSI. It's a major pain but it's nice.

What you can expect in the release that is soon to come:
- Embedded Ogre window inside XSI Viewport or views. Create your own Ogre views if you so desire.
- Ability to view entire XSI scene in Ogre viewport. (Working on also being able to show only a subset but it makes the UI complicated so we'll see that after)
- Exporter now exports Ogre shaders or the standard XSI realtime shaders.
- Ability to tie Ogre View to a Camera and thus move the camera and see what the camera sees in the Ogre Viewport.
- Ability to move around in the Ogre Viewport using the mouse and keyboard.
- Customize where you want meshes, textures, materials, shaders, skeletons to be exported to. (folders of your choosing for each).
- Lights are automatically exported inside the Ogre View.
- Ability to play animations inside the Ogre Viewport. (It is not tied to the mixer as I wanted it to be so you'll have to do a little bit of juggling if you want both animations to be playing at the same time - this is limited because of my lack of knowledge about making animations inside XSI).
- Ability to add export properties to each of your objects so that you may just press the export button and everything will be done according to these properties you set or if none are set then it will use the property of the scene_root or if none exist then use some default properties that you have not set.
- documentation

Like I said before, I have quite a few bugs to squash or go around but a release is coming. Before August 20, the tool will also have:
- A DotScene Exporter (I might add some custom fields if selected, shouldn't affect dotScene viewers, they just won't be able to use that information).
- Support for shadows and selecting different scene managers as well as allow switching between directx and the opengl renderer (there are options for that but I am not dealing with it right now).
- A slightly more coherent material editor (make a custom view that has a few ogre viewports, a shelf with Ogre "shaders"/materials).
- Improve GPU shaders by adding such things as validators to check that your code is standard and valid. Things of that nature.

And that's going to be it. Sorry no screenies .. fine an old one then that I put in another thread :)

Image[/img]

User avatar
Oshri
Gnoblar
Posts: 3
Joined: Wed Jun 28, 2006 1:15 pm
Location: Amsterdam / Tel-Aviv
Contact:

Patience is a virtue :)

Post by Oshri »

COOL! good luck with the bugs.
Couple of questions....

If you Hide part of the scene in Xsi will it propagate, or do u have to hit export again if you want to view in the Ogre window?

If you tie to the Xsi cam, and it has animation not only in trans and rot but also in FOV, will it be exported too?

are envelope deformation parameters on a skeleton exported (and deformation expressions) ?

Cheers
Oshri

Lodes
Google Summer of Code Student
Google Summer of Code Student
Posts: 228
Joined: Mon Mar 17, 2003 12:02 am
Location: San Jose, CA, USA

Post by Lodes »

Hello Oshri,

I had not thought about hiding and it should be possible for me to make that seamless. I will look into it. I actually completely forgot about that and hidden objects would have shown so thanks for reminding me of that.

If you manually change parameters to the camera tied to the viewport, you will see those changes immediately. Right now, I am having a problem with cameras with animations. But once that is fixed, you can be assured that such parameters will be checked for and updated.

For the skeleton, it is the same the current Ogre exporter since I am using the official exporter to do the mesh/skeleton exporting. And I have no idea if they are exported because I am not familiar with that stuff :)

Thanks for all your questions and help so far Oshri. It is very appreciated.

User avatar
tau
Silver Sponsor
Silver Sponsor
Posts: 413
Joined: Wed Feb 11, 2004 11:44 am
Location: Austin (that's kept wierd :))

Post by tau »

Very cool project

Will it work under the free XSI:Modder version?

Lodes
Google Summer of Code Student
Google Summer of Code Student
Posts: 228
Joined: Mon Mar 17, 2003 12:02 am
Location: San Jose, CA, USA

Post by Lodes »

No, it will not work under the modder version. To make it work would require a deal with Softimage that probably costs a lot of money and that's not going to happen :)

User avatar
tau
Silver Sponsor
Silver Sponsor
Posts: 413
Joined: Wed Feb 11, 2004 11:44 am
Location: Austin (that's kept wierd :))

Post by tau »

@Lodes:

Bad deal :)

Will it work atleast in XSI:Foundation?

I have some important to me questions (maybe not only me :) ):
Will it be able to re-import the scene back to the plugin for further editing?
What about lighmaps: will it be possible to apply lightmaps and export them with the scene?

You see, I'm looking for a swiss tool for my ogre engine... Will it be it? ;)

Keep the good job, Lodes!

Lodes
Google Summer of Code Student
Google Summer of Code Student
Posts: 228
Joined: Mon Mar 17, 2003 12:02 am
Location: San Jose, CA, USA

Post by Lodes »

Yes, it will work with Foundation. That is what I am using to develop this tool.

For now, you can only go one way but it is planned that as long as you have the same scene with the corresponding exported dotScene that you can reload that dotScene and go back to normal editing. That makes it faster to get back to work on a scene but you can always re-export which will remember all your settings and such so it's just a click away and a slightly longer wait time.

For lightmapping, you're on your own for now. I have no idea what it requires and such, but since you have the full power of the ogre material system inside XSI with this tool, everything should be possible.

That swiss tool will take a while to bloom fully, but it is getting there. Hopefully, when I release the first version along with all the source code (a very early version is in ogreaddons but it has a little showstopper bug. I'll update when I get close to release) I'll be able to get some people to contribute features that they want.

User avatar
tau
Silver Sponsor
Silver Sponsor
Posts: 413
Joined: Wed Feb 11, 2004 11:44 am
Location: Austin (that's kept wierd :))

Post by tau »

Thanks for the answers, Lodes

It sounds like a really awesome project for Ogre community since XSI is much cheaper then Max/Maya, and Lightwave (as far as I know) doesnt have that flexible SDK to embed external renders...

I will definatly help with development of this tool when the source base will be available.

Lodes
Google Summer of Code Student
Google Summer of Code Student
Posts: 228
Joined: Mon Mar 17, 2003 12:02 am
Location: San Jose, CA, USA

Post by Lodes »

I promessed I would do a release before the world wakes up on Monday and some people in Eastern Asia are probably awake now.. (plus some of you in Europe who can't sleep :) ).

I have to warn you, this is an alpha release. Therefore, not all features are completed and there are some bugs still lurking. So treat it as a little preview that shows how it's going to work. Feel free to give any and all kind of comments/criticisms though.

OgreXSITool Installer (4,139 KB)
UPDATE August 28, 2006 - 11:42pm PDT - Installer updated with new files compiled against the DirectX SDK December 2004. There should be no more problems of failing to load the Direct3D9 render system. If you still have such a problem, then you direly need to update your DirectX.


Make sure to select the main folder where XSI is installed like C:\Softimage\XSI_5.0_Foundation.

You will see an Ogre Tools menu on the application bar on top. There you will see four items and only three are operational (UpdateScene, Control Panel, ExportProperty).

Select an object in your scene and then go ahead and choose ExportProperty in the menu. (all objects that are exported must have an export property unless they're children of another, then it depends on your choice in the property). Change the settings how you want. Go ahead and open an OgreView inside the D viewport or wherever you want. Have another viewport represent the Camera or another camera of your choice (if you choose to use another camera in the viewport then you need to go to the control panel when an OgreView is running and choose it in the Camera field). Go ahead and click on Update Scene now. Go to your camera view and begin moving the camera. You should now see your scene in white objects.

The material editor is not complete but you can still play with the Ogre shadernodes (just won't have any effect). Open the render tree or the standard material editor, then open up a browser window inside a viewport. Navigate to your Softimage directory and go to Addons\OgreTool\Data\DSPresets\Shaders\Realtime. There you will see the nodes which you can add to a shelf or drag inside the rendertree.

All the meshes/materials/skeletons/textures are exported to your Softimage/Application/bin directory for now. I am sorry about that, but I have not had enough time to tie up the customized paths. It might export a dotScene file as well (don't remember) but it is incomplete for now.

Like I said, this is an alpha release. This has a lot of issues still and a lot of work still needs to be done. I am hopeful to getting a 1.0 release done by the end of September.
Last edited by Lodes on Tue Aug 29, 2006 8:05 am, edited 4 times in total.

Slicky
Bronze Sponsor
Bronze Sponsor
Posts: 600
Joined: Mon Apr 14, 2003 11:48 pm
Location: Was LA now France
x 22

Post by Slicky »

Thanks for your work. I will try and help with some feedback within the next day or so.

User avatar
SunSailor
Gnoll
Posts: 699
Joined: Sun Jan 02, 2005 5:45 pm
Location: Velbert, Germany
x 2
Contact:

Post by SunSailor »

Can it be installed and tested parallel to the official export?

Lodes
Google Summer of Code Student
Google Summer of Code Student
Posts: 228
Joined: Mon Mar 17, 2003 12:02 am
Location: San Jose, CA, USA

Post by Lodes »

@SunSailor: For now they are not. They might be if you compile both programs with the same Ogre libs. I am going to add the standard exporter to the tool so that people can use both. I am using the exporter inside the tool anyway.

I recommend you uninstall the exporter first, then install my tool, and can remove it once you're done and re-install the exporter. Like I said before, my tool is still alpha and thus not very useful yet :)

Slicky
Bronze Sponsor
Bronze Sponsor
Posts: 600
Joined: Mon Apr 14, 2003 11:48 pm
Location: Was LA now France
x 22

Post by Slicky »

I'm getting some crashes when I try and open an ogre view window. I think you may not have included the direct3d rendersystem dll in your distribution.

Update:

Hmm I see the dll there.

The error appears to be:
-----------------------------------
Details:
-----------------------------------
Error #: 9
Function: DynLib::load
Description: Could not load dynamic library RenderSystem_Direct3D9. System Error: The specified module could not be found.

.
File: ..\src\OgreDynLib.cpp
Line: 82
Stack unwinding: <<beginning of stack>>
update2:

I don't seem to get any exported object in the app/bin directory. I have added the export property to a newly created cone or cylinder etc.

Lodes
Google Summer of Code Student
Google Summer of Code Student
Posts: 228
Joined: Mon Mar 17, 2003 12:02 am
Location: San Jose, CA, USA

Post by Lodes »

very strange. I tried it on all three version of XSI v5.X. Did you get that RenderSystem stuff sorted, to export stuff you need to have an OgreView opened first. That is something I have to fix as well.

EDIT: Hum I might have an idea why it doesn't work. The installer might have renamed the file and I didn't catch it because I might have a previous version of the Direct3D9 dlls in all three versions of XSI. I'll check it out.

Slicky
Bronze Sponsor
Bronze Sponsor
Posts: 600
Joined: Mon Apr 14, 2003 11:48 pm
Location: Was LA now France
x 22

Post by Slicky »

I tried opening the ogreview before doing anything with a new scene and it crashed with the same render dll error. There is a RenderSystem_Direct3D9.dll in the bin directory.

Post Reply