Jump to content


Starting new 3d engine/ library - realsphere3d


10 replies to this topic

#1 alexyz79

    New Member

  • Members
  • Pip
  • 4 posts

Posted 11 March 2010 - 03:43 PM

Hi, i'm starting a new opensource project.

This project aims to create a C++ library for 3D applications / games, the structure of the elements and data are based in COLLADA specification, using this specification as the file format. In the future it will have support for ECMA scripting inside the collada file, making it possible to create interactive 3d content. The renderer process will be completely abstracted from the library, making it possible to renderer the scene using any API. It uses QT 4.6 Framework for multi-platform support.

For more information go to http://code.google.com/p/realsphere3d/

Everyone is invited to contribute!! :D

Thx

#2 v71

    Valued Member

  • Members
  • PipPipPip
  • 290 posts

Posted 11 March 2010 - 05:19 PM

Don't use tinyxml to read collada files unless you want small html files for configurations or anything else.
I used to save my models in an human readable html file and it looked cool until i tried a real world model, it crashed , period , ( and yes it was not my fault )

#3 Reedbeta

    DevMaster Staff

  • Administrators
  • 4973 posts
  • LocationBellevue, WA

Posted 12 March 2010 - 02:06 AM

Well, at Sucker Punch we use an XML format to export all geometry from Maya to the art compiler, and it works fine.
reedbeta.com - developer blog, OpenGL demos, and other projects

#4 TheNut

    Senior Member

  • Moderators
  • 1472 posts
  • LocationThornhill, ON

Posted 12 March 2010 - 03:58 AM

Your project goals seems a little simple to me. It seems like you're just writing a COLLADA framework to import and export the data rather than actually doing anything with it. I think you will need to add a couple renderers or build a much larger framework out of it for the project to be useful. You mentioned ECMA scripting, so I would believe this project to have the best chance for success if you target HTML5. Since that technology is very young, this project would have a chance to organize the web monkeys before they get excited.

Also, what's with the name? It's a bit longish and not very catchy (though neither is COLLADA when you look at it). Just something I thought I would bring up since it could use a little more pop.

v71 said:

Don't use tinyxml
expat ftw.
http://www.nutty.ca - Being a nut has its advantages.

#5 JarkkoL

    Senior Member

  • Members
  • PipPipPipPip
  • 467 posts

Posted 12 March 2010 - 06:30 AM

You will have issues with load speeds when using COLLADA though with anything larger than few models. Normally game engines use external file formats only during import stage and convert to their internal formats to address this issue.

#6 v71

    Valued Member

  • Members
  • PipPipPip
  • 290 posts

Posted 12 March 2010 - 08:49 AM

expat ftw ???????
english is not my native language, what does that mean ?

#7 JarkkoL

    Senior Member

  • Members
  • PipPipPipPip
  • 467 posts

Posted 12 March 2010 - 09:13 AM

Expat is apparently some XML parser library. It's pretty trivial to implement a simple and efficient XML parser though, not worth an external library IMO. The parser I implemented, which I use for example to parse COLLADA files is only ~300 lines of C++.

#8 alexyz79

    New Member

  • Members
  • Pip
  • 4 posts

Posted 12 March 2010 - 09:18 AM

TheNut said:

Your project goals seems a little simple to me. It seems like you're just writing a COLLADA framework to import and export the data rather than actually doing anything with it.

The first objective of the project will be to create a framework that can handle the COLLADA file specifications and directly manipulate every asset.
Secondly is to create a bunch of tools to manipulate this assets. For instace it will have a geometry editor that only handles the modelation part, not worring about any scene information. Also a object painter will be created, etc, etc. Here we are open to suggestions. It also will have tools to handle the physics part.

TheNut said:

I think you will need to add a couple renderers or build a much larger framework out of it for the project to be useful.

There will be 2 renderers here, one using OpenGL, and the other using a Raytracer. My goal is to abstract the render process, so the library can be easily ported to any platform, also here we are open to suggestions.

TheNut said:

You mentioned ECMA scripting, so I would believe this project to have the best chance for success if you target HTML5. Since that technology is very young, this project would have a chance to organize the web monkeys before they get excited.

This is the last "grand" feature, the objective is to make possible to create online interactive 3d content, without the need to program in c++ or any other language.

TheNut said:

Also, what's with the name? It's a bit longish and not very catchy (though neither is COLLADA when you look at it). Just something I thought I would bring up since it could use a little more pop.


Eh, eh I'm not very good choosing names, I believe the name will change as the project grows.

BTW, i will update the wiki of the project with the desing goals, so it will be easy for contributors to understand the objective.

#9 alexyz79

    New Member

  • Members
  • Pip
  • 4 posts

Posted 12 March 2010 - 09:20 AM

JarkkoL said:

You will have issues with load speeds when using COLLADA though with anything larger than few models. Normally game engines use external file formats only during import stage and convert to their internal formats to address this issue.

We were thinking of a load-on-demand feature, I think it's possible to do this and very easily implemented.

#10 JarkkoL

    Senior Member

  • Members
  • PipPipPipPip
  • 467 posts

Posted 12 March 2010 - 09:24 AM

Load speed is particularly important when you load on demand (i.e. use streaming) so that you don't get hitches/load screens during gameplay. Also something to keep in mind is that when you load COLLADA (or any other external format which requires processing) you ought to have memory fragmentation so it's not very nice thing during gameplay.

#11 alexyz79

    New Member

  • Members
  • Pip
  • 4 posts

Posted 12 March 2010 - 09:51 AM

JarkkoL said:

Load speed is particularly important when you load on demand (i.e. use streaming) so that you don't get hitches/load screens during gameplay. Also something to keep in mind is that when you load COLLADA (or any other external format which requires processing) you ought to have memory fragmentation so it's not very nice thing during gameplay.

This is an issue we have to address, for loading speed we can use somekind of cache, now for memory fragmentation, i think this will have to be addressed propely. Because this will happen :D





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users