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.
  • D Dario Solera

    Good insight, thank you. My problem is that, currently, I have to workaround the limitations and idiosyncrasies of the product we use in order to both achieve the functionalities we need and completely hide all the rest (which is a whole lot - take a look at it Rhino3D[^]). I will have to definitely look into one of the available high-level libraries.

    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
    #22

    Dario Solera wrote:

    I have to workaround the limitations and idiosyncrasies of the product we use in order to both achieve the functionalities we need and completely hide all the rest

    Almost every route has this problem. But more often than not it is working around the knowledge of each as well. OpenSceneGraph has changed over the years, designs built around the original design still work, but are no longer as applicable as changes would allow greater flexability. I would seriously consider the vast array of scenegraphs available. I say scenegraph because boolean operations work well with scenegraphs. If you integrate the boolean logic within the scene graph logic rather than the drawing logic your performance is better than vice versa.

    _________________________ 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 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

      M Offline
      M Offline
      Marc Clifton
      wrote on last edited by
      #23

      Dario Solera wrote:

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

      From my very limited and brief work with XNA, I'd say no, not directly. You'd have to work with the model itself, then use XNA for the rendering. I could be totally wrong though. Again, I could be totally wrong here, but XNA is really for the final rendering of the model, not for manipulating the model itself. Marc

      Thyme In The Country Interacx My Blog

      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

        A Offline
        A Offline
        Arjan Schouten
        wrote on last edited by
        #24

        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 1 Reply Last reply
        0
        • 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