Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Building a 3D engine [modified]

Building a 3D engine [modified]

Scheduled Pinned Locked Moved The Lounge
csharparchitecturehtmlwpfcom
35 Posts 19 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • A Arjan Schouten

    I would recomment http://www.opencascade.org/[^] because it is a full blown Solid Modeling kernel supporting Boolean operations, Nurbs and Viewers with pan/rotate/zoom and best of all it is free! Language is c++ though. Other simpler free one is http://www.geometros.com/sgcore/index.htm[^] Or C# Commercial one http://www.devdept.com/[^]

    Arjan

    D Offline
    D Offline
    Dario Solera
    wrote on last edited by
    #25

    Excellent links, thank you!

    If you truly believe you need to pick a mobile phone that "says something" about your personality, don't bother. You don't have a personality. A mental illness, maybe - but not a personality. - Charlie Brooker My Photos/CP Flickr Group - ScrewTurn Wiki

    1 Reply Last reply
    0
    • D Dario Solera

      URGENT! Please send me teh codez of a full 3D engine in C#! Just joking. :-D Seriously, we currently use a 3rd-party commercial 3D modeling software. We need to do just a few things: - display/zoom/pan/rotate a solid (or a few solids) - interactively draw and cut slices out of it - draw free-hand curves on the surface - display textures - do basic boolean operations - toggle axes references This product is cool and its plugin architecture is impressive. The point is that we're using it in a way that is quite different from its main purpose, which makes it a nightmare to debug. The result is almost unusable so far, which frequent crashes. What I'm asking here is an opinion, from who is more experienced than me, on how difficult would be to build a custom high-level 3D engine for our purposes. What would be the best technology (OpenGL, Direct3D, WPF 3D)? Is there any decent high-level library on the market? Thank you for any insight.

      If you truly believe you need to pick a mobile phone that "says something" about your personality, don't bother. You don't have a personality. A mental illness, maybe - but not a personality. - Charlie Brooker My Photos/CP Flickr Group - ScrewTurn Wiki

      modified on Monday, September 22, 2008 9:37 AM

      F Offline
      F Offline
      Francois Gasnier
      wrote on last edited by
      #26

      Have you checked http://www.opencascade.org/ It is a real CAD/CAM engine for C++ developpers and is relatively mature. Also, I am currently evaluating the following .NET 2.0 framework http://www.vdraw.com/.

      ___________________________________________________________ On the whole human beings want to be good, but not to good and not quite all the time - George Orwell

      D 1 Reply Last reply
      0
      • D Dario Solera

        What stuff does it support? For example, can you do boolean operation on surfaces and curves?

        If you truly believe you need to pick a mobile phone that "says something" about your personality, don't bother. You don't have a personality. A mental illness, maybe - but not a personality. - Charlie Brooker My Photos/CP Flickr Group - ScrewTurn Wiki

        E Offline
        E Offline
        El Corazon
        wrote on last edited by
        #27

        Dario Solera wrote:

        For example, can you do boolean operation on surfaces and curves?

        the short answer to both questions is: yes and no. No XNA does not directly do boolean and curves for you, but neither does it hinder or prevent you from doing so and the capability is there for you to do so. Both XNA and OpenGL can use something called shading language. Chances are you will be using this if you write your own, or use an existing system, if you don't you will not have the performance you desire and you are loosing out on power that is waiting for you to utilize. Although not what you are looking for: OpenGL Terrain[^] and XNA Terrain[^] both utilize shading languages for melding textures together through boolean operations. This is what is called fragment shading. You desire something along the lines of vector or geometry shading languages. Both are available for you to use. Using the proper geometry shading program combined with a fragment shading program, you can do your boolean operations in either product. XNA would be in HLSL and OpenGL/OpenSceneGraph would be in OGSL. You are adding the power of Direct3D shading HLSL to XNA and OpenGL shading to OpenSceneGraph.

        _________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb) John Andrew Holmes "It is well to remember that the entire universe, with one trifling exception, is composed of others."

        1 Reply Last reply
        0
        • E El Corazon

          Dario Solera wrote:

          What I'm asking here is an opinion, from who is more experienced than me, on how difficult would be to build a custom high-level 3D engine for our purposes.

          As others have mentioned, you should strongly debate this topic before attempting to write your own 3D engine. Consider carefully the pros and cons and your reasons for choosing either direction. What I consider valid reasons may differ from yours, so give your strongest reasons and consider their weight yourself -- carefully. Pros of writing your own engine: - Learning how it is done, understanding the core concepts of 3D processing - Any unique drawing needs can be handled in the core rather than forced into another product. - You don't inherit someone else's bugs Cons of writing your own engine: - You loose time writing the engine over just writing the product - You are reinventing a wheel that has been invented more times that I can count before coffee in the morning - Instead of inheriting bugs, you get all your own and the maintenance headache.

          Dario Solera wrote:

          What would be the best technology (OpenGL, Direct3D, WPF 3D)? Is there any decent high-level library on the market?

          All are valid choices. Again each should be weighed on not just the advantages of each, but also their purpose. Remember that each product tends to follow their purposes in future growth, until the purpose changes over time -- call it software development inertia. OpenGL is designed to run multi-platform, if your intent is to run multi-platform, you should give it serious consideration. If you never wish to look at Linux or other platforms then OpenGL looses "some" of its advantages. If you are not going to write your own engine, and find one you like, that gives weight to one or another 3D method. We use OpenSceneGraph. Our 3D product then builds upon the 3D capability of an existing system. Where our needs are specialized, we adapt additions to the 3D capability through shaders and/or specialized 3D functions in OpenGL. Our capability then become OpenSceneGraph plus more.

          _________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb) John Andrew Holmes "It is well to remember that the entire universe, with one trifling exception, is composed of others."

          G Offline
          G Offline
          Graham Shanks
          wrote on last edited by
          #28

          El Corazon wrote:

          You are reinventing a wheel that has been invented more times that I can count before coffee in the morning

          Sorry, there is nothing before coffee in the morning. In fact there is no morning before coffee

          Graham Librarians rule, Ook!

          D 1 Reply Last reply
          0
          • G Graham Shanks

            El Corazon wrote:

            You are reinventing a wheel that has been invented more times that I can count before coffee in the morning

            Sorry, there is nothing before coffee in the morning. In fact there is no morning before coffee

            Graham Librarians rule, Ook!

            D Offline
            D Offline
            Dan Neely
            wrote on last edited by
            #29

            So the pre coffee period when you wake up is called.... mourning? *ducks*

            Today's lesson is brought to you by the word "niggardly". Remember kids, don't attribute to racism what can be explained by Scandinavian language roots. -- Robert Royall

            E G 2 Replies Last reply
            0
            • D Dario Solera

              URGENT! Please send me teh codez of a full 3D engine in C#! Just joking. :-D Seriously, we currently use a 3rd-party commercial 3D modeling software. We need to do just a few things: - display/zoom/pan/rotate a solid (or a few solids) - interactively draw and cut slices out of it - draw free-hand curves on the surface - display textures - do basic boolean operations - toggle axes references This product is cool and its plugin architecture is impressive. The point is that we're using it in a way that is quite different from its main purpose, which makes it a nightmare to debug. The result is almost unusable so far, which frequent crashes. What I'm asking here is an opinion, from who is more experienced than me, on how difficult would be to build a custom high-level 3D engine for our purposes. What would be the best technology (OpenGL, Direct3D, WPF 3D)? Is there any decent high-level library on the market? Thank you for any insight.

              If you truly believe you need to pick a mobile phone that "says something" about your personality, don't bother. You don't have a personality. A mental illness, maybe - but not a personality. - Charlie Brooker My Photos/CP Flickr Group - ScrewTurn Wiki

              modified on Monday, September 22, 2008 9:37 AM

              S Offline
              S Offline
              StevenWalsh
              wrote on last edited by
              #30

              From my experience OpenGL has always been the quickest to get something up and working, however that is C++ so it may not fit your purposes. Though its been several years since i've touched Direct X, and I Know they've made quite a few significant changes so it might be something worth wild to look into.

              Einstein argued that there must be simplified explanations of nature, because God is not capricious or arbitrary. No such faith comforts the software engineer. -Fred Brooks

              1 Reply Last reply
              0
              • B blackjack2150

                Tao Framework is a free wrapper of OpenGL for .NET.

                S Offline
                S Offline
                StevenWalsh
                wrote on last edited by
                #31

                Hey i never knew about that, really cool!

                Einstein argued that there must be simplified explanations of nature, because God is not capricious or arbitrary. No such faith comforts the software engineer. -Fred Brooks

                1 Reply Last reply
                0
                • D Dan Neely

                  So the pre coffee period when you wake up is called.... mourning? *ducks*

                  Today's lesson is brought to you by the word "niggardly". Remember kids, don't attribute to racism what can be explained by Scandinavian language roots. -- Robert Royall

                  E Offline
                  E Offline
                  El Corazon
                  wrote on last edited by
                  #32

                  dan neely wrote:

                  *ducks*

                  *quacks up*

                  _________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb) John Andrew Holmes "It is well to remember that the entire universe, with one trifling exception, is composed of others."

                  1 Reply Last reply
                  0
                  • D Dan Neely

                    So the pre coffee period when you wake up is called.... mourning? *ducks*

                    Today's lesson is brought to you by the word "niggardly". Remember kids, don't attribute to racism what can be explained by Scandinavian language roots. -- Robert Royall

                    G Offline
                    G Offline
                    Graham Shanks
                    wrote on last edited by
                    #33

                    :laugh:

                    Graham Librarians rule, Ook!

                    1 Reply Last reply
                    0
                    • D Dario Solera

                      URGENT! Please send me teh codez of a full 3D engine in C#! Just joking. :-D Seriously, we currently use a 3rd-party commercial 3D modeling software. We need to do just a few things: - display/zoom/pan/rotate a solid (or a few solids) - interactively draw and cut slices out of it - draw free-hand curves on the surface - display textures - do basic boolean operations - toggle axes references This product is cool and its plugin architecture is impressive. The point is that we're using it in a way that is quite different from its main purpose, which makes it a nightmare to debug. The result is almost unusable so far, which frequent crashes. What I'm asking here is an opinion, from who is more experienced than me, on how difficult would be to build a custom high-level 3D engine for our purposes. What would be the best technology (OpenGL, Direct3D, WPF 3D)? Is there any decent high-level library on the market? Thank you for any insight.

                      If you truly believe you need to pick a mobile phone that "says something" about your personality, don't bother. You don't have a personality. A mental illness, maybe - but not a personality. - Charlie Brooker My Photos/CP Flickr Group - ScrewTurn Wiki

                      modified on Monday, September 22, 2008 9:37 AM

                      C Offline
                      C Offline
                      cmk
                      wrote on last edited by
                      #34

                      Other software you may want to look at: - Blender game engine (for guts) - GTS : GNU Triangulated Surface Library (for boolean ops) - Wings 3D (for UI)

                      ...cmk The idea that I can be presented with a problem, set out to logically solve it with the tools at hand, and wind up with a program that could not be legally used because someone else followed the same logical steps some years ago and filed for a patent on it is horrifying. - John Carmack

                      1 Reply Last reply
                      0
                      • F Francois Gasnier

                        Have you checked http://www.opencascade.org/ It is a real CAD/CAM engine for C++ developpers and is relatively mature. Also, I am currently evaluating the following .NET 2.0 framework http://www.vdraw.com/.

                        ___________________________________________________________ On the whole human beings want to be good, but not to good and not quite all the time - George Orwell

                        D Offline
                        D Offline
                        Dario Solera
                        wrote on last edited by
                        #35

                        François Gasnier wrote:

                        http://www.opencascade.org/

                        That is impressive, thank you for the link.

                        If you truly believe you need to pick a mobile phone that "says something" about your personality, don't bother. You don't have a personality. A mental illness, maybe - but not a personality. - Charlie Brooker My Photos/CP Flickr Group - ScrewTurn Wiki

                        1 Reply Last reply
                        0
                        Reply
                        • Reply as topic
                        Log in to reply
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes


                        • Login

                        • Don't have an account? Register

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Categories
                        • Recent
                        • Tags
                        • Popular
                        • World
                        • Users
                        • Groups