Hello everybody & GSoC Open Asset Import Library
Hello inkscape-devel!
basing on the suggested ideas of last year (http://wiki.inkscape.org/wiki/index.php/Google_Summer_Of_Code), I'd really love to tackle one of the suggestions, actually the 3d file import stuff.
Open Asset Import Library (http://sf.net/projects/assimp) is a sort of generic importer library for 3d models, it supports two douzens of file formats from various 3d apps, frameworks, games, such as 3ds, obj, Collada, x, md5, ... Project exists since 2008, is hacked on by a team of 5-6 people. I'm currently the main committer, always trying to keep things together.
Basing on the '3D Polyhedron' extension, the idea would be to integrate Assimp as model importer to get access to a wide range of formats. After importing, display a sort of real-time preview (in a separate window with OpenGL, maybe?) so the user can choose his preferred view point, lighting, whatever. When he's done, the model would be projected onto the drawing plane, converted to inkscape polygons and grouped together. Fancy stuff such as flat-shading and other things would be quite easy to accomplish. Also, Assimps development will surely continue, so format support might be improved in future (Diederik van Lierop pointed out that CAD file formats are mostly missing, also there's no support for Blenders native format yet).
A few words to myself: I'm currently 18. Attending the german equivalent of highschool in year 12 of 13. A bit computer-addicted (just a little bit, you know :-) Worked with a few software technologies, in terms of programming languages mostly C, Python, C++. Also, I do like anything related to computer graphics. No development experience with Inkscape' source code yet (biggest achievement so far: it compiles), but I like the app and use it regularly and would like to contribute in future. GSoC seems a great opportunity.
Please tell what you think.
Regards Alexander Gessler
On 3/2/10, Alexander Gessler wrote:
Open Asset Import Library (http://sf.net/projects/assimp) is a sort of generic importer library for 3d models, it supports two douzens of file formats from various 3d apps, frameworks, games, such as 3ds, obj, Collada, x, md5, ... Project exists since 2008, is hacked on by a team of 5-6 people. I'm currently the main committer, always trying to keep things together.
Basing on the '3D Polyhedron' extension, the idea would be to integrate Assimp as model importer to get access to a wide range of formats. After importing, display a sort of real-time preview (in a separate window with OpenGL, maybe?) so the user can choose his preferred view point, lighting, whatever. When he's done, the model would be projected onto the drawing plane, converted to inkscape polygons and grouped together. Fancy stuff such as flat-shading and other things would be quite easy to accomplish. Also, Assimps development will surely continue, so format support might be improved in future (Diederik van Lierop pointed out that CAD file formats are mostly missing, also there's no support for Blenders native format yet).
Since the project idea originally comes from me, I thought I'd chime in give a little perspective. We've been talking about completely moving to Cairo for quite a long time, and yet we've made just first steps towards that goal. This project could be an interesting playground for our expansion into the world of GPU accelerated rendering *and* it would help those of us who do technical drawing and deal with all sorts of 3D data.
I know that Diederik was interested in outcomes of the project, but IIRC he wasn't sure if he could be a good mentor.
Perhaps what we need here is a person who has experience of Cairo programming. So I'm CCing Carl Worth in case somebody from his team would be interested.
This is probably not a top priority project, and there are things to be done to speed up Inkscape before dealing with GPU acceleration, but our project has always been more about doing what people are interested to do than what users really need :) (just kidding :)) So please give it due consideration.
Alexandre
Hey!
Since the project idea originally comes from me, I thought I'd chime in give a little perspective. We've been talking about completely moving to Cairo for quite a long time, and yet we've made just first steps towards that goal. This project could be an interesting playground for our expansion into the world of GPU accelerated rendering *and* it would help those of us who do technical drawing and deal with all sorts of 3D data.
Using a 2D graphics library to do the outsourced 3D preview seems a bit unusual to me, but why not - sounds interesting - The only consideration would be that while Cairo-gl will do the rendering very fast, the task of getting from 3- to 2D (aka transformation stuff & perspective projection) would be left to me and consequently be done without hw-acceleration. That's terribly expensive, so I doubt it will result in a fluently movable preview for meshes with more than a few ten-thousand polygons. But I have no numbers yet. I'll try it and report back.
It would be absolutely great if somebody wanted to be a potential mentor for this project idea ;-)
Bye, Alex
Side note: Assimp/Open Asset Import Library (for those who don't like the first name) is steering towards another stable release in late April.
Hello Alexandre, I tested a bit with cairo-gl.
see (dwarf model courtesy of psionic3d.co.uk) http://assimp.sourceforge.net/tmp/cairotest/sshot2.png http://assimp.sourceforge.net/tmp/cairotest/sshot1.png
As expected, drawing performance is *really* good, but running transformation & depth-sorting on the CPU is too lame. I'd therefore prefer using native OpenGL for a fluent 3D preview (the sample shown in the screens ran at ~10 fps on a moderately fast machine). But a separate render path using cairo-gl for testing purposes/experiments wouldn't be a problem. I guess a cairo preview would resemble the final image in Inkscape more closely, especially if inkscape moved to cairo :-)
Regards, Alex
PS: I'm not sure if my quoted mail below worked, at least I haven't received a copy yet.
Alexander Gessler schrieb:
Hey!
Since the project idea originally comes from me, I thought I'd chime in give a little perspective. We've been talking about completely moving to Cairo for quite a long time, and yet we've made just first steps towards that goal. This project could be an interesting playground for our expansion into the world of GPU accelerated rendering *and* it would help those of us who do technical drawing and deal with all sorts of 3D data.
Using a 2D graphics library to do the outsourced 3D preview seems a bit unusual to me, but why not - sounds interesting - The only consideration would be that while Cairo-gl will do the rendering very fast, the task of getting from 3- to 2D (aka transformation stuff & perspective projection) would be left to me and consequently be done without hw-acceleration. That's terribly expensive, so I doubt it will result in a fluently movable preview for meshes with more than a few ten-thousand polygons. But I have no numbers yet. I'll try it and report back.
It would be absolutely great if somebody wanted to be a potential mentor for this project idea ;-)
Bye, Alex
Side note: Assimp/Open Asset Import Library (for those who don't like the first name) is steering towards another stable release in late April.
On Sun, 21 Mar 2010 23:55:03 +0100, Alexander Gessler <alexander.gessler@...1761....240...> wrote:
see (dwarf model courtesy of psionic3d.co.uk) http://assimp.sourceforge.net/tmp/cairotest/sshot2.png http://assimp.sourceforge.net/tmp/cairotest/sshot1.png
As expected, drawing performance is *really* good, but running transformation & depth-sorting on the CPU is too lame.
Wow. Using cairo-gl for this is a fairly bizarre thing to do, I think.
The concept of cairo-gl is two-fold:
1. Allow for 2D applications to benefit from existing OpenGL acceleration
2. Allow for 3D application to mix-and-match with cairo-based rendering, (such as using cairo to render some 2D UI elements, or using cairo to create a texture, etc.). [*]
Using cairo-gl to render a software-produced projection of a 3D model isn't either of those things. And, while clearly possible, doesn't really make a lot of sense to me.
If you've got cairo-gl, then you've got OpenGL by definition and you might as well just draw your 3D geometry with that.
-Carl
[*] Some pieces are still missing before this use case is complete.
participants (3)
-
Alexander Gessler
-
Alexandre Prokoudine
-
Carl Worth