Results 1 to 12 of 12

Thread: 3D engine to create simple 3D objects

  1. #1
    Join Date
    Oct 2008
    Posts
    306
    Thanks
    6
    Thanked 9 Times in 8 Posts
    Qt products
    Qt5
    Platforms
    Windows

    Default 3D engine to create simple 3D objects

    I am searching a 3D engine that is able to create a 3D object with top/bottom - left/right 2D images.
    Is it simple?

  2. #2
    Join Date
    Sep 2009
    Location
    Wroclaw, Poland
    Posts
    1,394
    Thanked 342 Times in 324 Posts
    Qt products
    Qt4 Qt5
    Platforms
    MacOS X Unix/X11 Windows Android

    Default Re: 3D engine to create simple 3D objects

    Is it simple?
    Automatic generation of 3d models using images ? I think its definitely not.

    3D modelers use a technique to create objects using blueprints placed on the "planes of reference", you can read about it here (just to see that its rather complex task):
    modeling from guide images
    Never heard about a tool that does this job automatically.

    Please share if you find something.

  3. #3
    Join Date
    Apr 2010
    Posts
    769
    Thanks
    1
    Thanked 94 Times in 86 Posts
    Qt products
    Qt3 Qt4
    Platforms
    Unix/X11

    Default Re: 3D engine to create simple 3D objects

    MRIs, CAT scans and the like build up 3D images from a series of 2D slices. But the key here is "series" - they use a LOT of slices, with very small differences between them, to build up their 3D model. If you only have a few images (front/left/top, for example) you are limited in what you'll be able to reconstruct. And some structures, like hollows that are partially enclosed, fall between very difficult to impossible to reconstruct this way; you simply never get a clean silhouette to work with.

    In some cases - mapping surface images onto a known spherical surface, for example - this sort of thing becomes much simpler, but even here errors in sensor positioning can cause lots of problems in the reconstructed surface.

    Short answer: unless you're dealing with very simple, predictable shapes, this is a problem that falls between very hard and impossible.

  4. #4
    Join Date
    Oct 2008
    Posts
    306
    Thanks
    6
    Thanked 9 Times in 8 Posts
    Qt products
    Qt5
    Platforms
    Windows

    Default Re: 3D engine to create simple 3D objects

    Let me clarify, It should only be " dealing with very simple, predictable shapes". Example: Fonts, plain vector shapes,etc

  5. #5
    Join Date
    Jan 2006
    Location
    Warsaw, Poland
    Posts
    33,359
    Thanks
    3
    Thanked 5,015 Times in 4,792 Posts
    Qt products
    Qt3 Qt4 Qt5 Qt/Embedded
    Platforms
    Unix/X11 Windows Android Maemo/MeeGo
    Wiki edits
    10

    Default Re: 3D engine to create simple 3D objects

    How is that even related to programming? Moving to General...
    Your biological and technological distinctiveness will be added to our own. Resistance is futile.

    Please ask Qt related questions on the forum and not using private messages or visitor messages.


  6. #6
    Join Date
    Jan 2006
    Location
    Belgium
    Posts
    1,938
    Thanked 268 Times in 268 Posts
    Qt products
    Qt4
    Platforms
    Unix/X11 Windows
    Wiki edits
    20

    Default Re: 3D engine to create simple 3D objects

    There is a technique where you apply some basic filters (don't know the names of these filters by head) and get an image with all the important contour lines. This way, from a basic 2D image, you get another 2D image with the contour lines.

    Then, transform these contours into vectors. This should not be too difficult and there even exist libraries that do this. I know that Inkscape can do this.

    Then, use these 2D vector images to compose a 3D image.

    And as a last step, you can try and sample some colors or textures and apply them to the 3D image.

    I think if you go look for "non photo realistic" rendering or "occlusion" rendering with OpenGl, you'll find some interesting filter techniques.

  7. #7
    Join Date
    Sep 2009
    Location
    Wroclaw, Poland
    Posts
    1,394
    Thanked 342 Times in 324 Posts
    Qt products
    Qt4 Qt5
    Platforms
    MacOS X Unix/X11 Windows Android

    Default Re: 3D engine to create simple 3D objects

    There is a technique where you apply some basic filters (don't know the names of these filters by head) and get an image with all the important contour lines. This way, from a basic 2D image, you get another 2D image with the contour lines.

    Then, transform these contours into vectors. This should not be too difficult and there even exist libraries that do this. I know that Inkscape can do this.
    You can do something like this with OpenCV ( feature detection ). Try to search for "edge detection" and "finding contours" with OpenCV.

  8. #8
    Join Date
    Jan 2006
    Location
    Warsaw, Poland
    Posts
    33,359
    Thanks
    3
    Thanked 5,015 Times in 4,792 Posts
    Qt products
    Qt3 Qt4 Qt5 Qt/Embedded
    Platforms
    Unix/X11 Windows Android Maemo/MeeGo
    Wiki edits
    10

    Default Re: 3D engine to create simple 3D objects

    You don't need OpenCV for edge detection. Such algorithms (like the Canny, Sobel and others) are easy to implement.
    Your biological and technological distinctiveness will be added to our own. Resistance is futile.

    Please ask Qt related questions on the forum and not using private messages or visitor messages.


  9. #9
    Join Date
    Sep 2009
    Location
    Wroclaw, Poland
    Posts
    1,394
    Thanked 342 Times in 324 Posts
    Qt products
    Qt4 Qt5
    Platforms
    MacOS X Unix/X11 Windows Android

    Default Re: 3D engine to create simple 3D objects

    You don't need OpenCV for edge detection. Such algorithms (like the Canny, Sobel and others) are easy to implement.
    You're right.
    But what OpenCV can do for you is to represent detected edges in convenient data structures, restore full hierarchy of nested contours, use different approximations ect.
    As long as it's about something more than displaying the image with detected edges, I would consider using image processing library.

    Anyway, Been_1990 wanted a tool in a first place, so I doubt that our discussion here is really helpful for him.

  10. #10
    Join Date
    Oct 2008
    Posts
    306
    Thanks
    6
    Thanked 9 Times in 8 Posts
    Qt products
    Qt5
    Platforms
    Windows

    Default Re: 3D engine to create simple 3D objects

    How is that even related to programming? Moving to General...
    Sorry Wysota,I thought it was appropriate.

    Anyway, Been_1990 wanted a tool in a first place, so I doubt that our discussion here is really helpful for him.
    I don't need a "tool", a program, I need a library that simplifies 3D creation. Example:
    Create 3d square using vector image X that has a square drawn in it.
    Or if I give it a O shaped vector, it would calculate the 3D version of it.

    Kind of what Qt does with 2D shape creation. Just that it will do the same with 3D.
    I want a 10px 3D square, and then it's created.

  11. #11
    Join Date
    Jan 2006
    Location
    Belgium
    Posts
    1,938
    Thanked 268 Times in 268 Posts
    Qt products
    Qt4
    Platforms
    Unix/X11 Windows
    Wiki edits
    20

    Default Re: 3D engine to create simple 3D objects

    Just use OpenGL ?

  12. #12
    Join Date
    Sep 2009
    Location
    Wroclaw, Poland
    Posts
    1,394
    Thanked 342 Times in 324 Posts
    Qt products
    Qt4 Qt5
    Platforms
    MacOS X Unix/X11 Windows Android

    Default Re: 3D engine to create simple 3D objects

    Create 3d square using vector image X that has a square drawn in it.
    Or if I give it a O shaped vector, it would calculate the 3D version of it
    What do you mean by "3d version of a square" ? Or "3d version of O shaped vector" ?
    You expect a cube in the first and sphere in the second example ? I'm just little confused.

    But, if you just want the shapes to be represented as flat shapes in three dimensions, then its quite easy. First you just need to detect edges ( contours ) of such objects and represent them (edges) as a collection of points in 2D space, then foreach point p=(x,y) from this collection you can simply create a point in 3D:
    p' = (x,y,0)
    This way you'll create a flat representation of your vector shapes in 3d space.

    As I've mentioned before, OpenCV can do the contour detection job for you.

Similar Threads

  1. Replies: 1
    Last Post: 29th July 2010, 14:35
  2. PyQt4: Create simple GUI for python program
    By Norchina in forum Newbie
    Replies: 0
    Last Post: 11th June 2010, 15:50
  3. Simple: Operator overloading with heap objects
    By durbrak in forum General Programming
    Replies: 12
    Last Post: 25th April 2007, 14:20
  4. Replies: 8
    Last Post: 20th April 2007, 01:37
  5. Replies: 2
    Last Post: 12th January 2007, 12:19

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Digia, Qt and their respective logos are trademarks of Digia Plc in Finland and/or other countries worldwide.