|
DeleD Community Edition Forums
|
View previous topic :: View next topic |
Author |
Message |
AWM Mars Member
Joined: 06 Jan 2010 Posts: 1195 Location: Wilts England
|
|
Back to top |
|
|
chronozphere DeleD PRO user
Joined: 20 Jun 2006 Posts: 1010 Location: Netherlands
|
Posted: Wed Sep 29, 2010 8:55 am Post subject: |
|
|
I would like to help out. I don't know C# but I do know a fair bit of JAVA so learning is not much of a problem. I'm especially interested in discussing and designing the foundations of DeleD.
I do have a limited amount of time for the project. I can contribute once in a while and keep the discussion going. We would probably need a few others before we can really start.
We should try to keep it as accessible as possible for developers who work in other languages. for example, it would be great if plugins could be written in other languages, or an integrated scripting language. We could also consider supporting other platforms through MONO. |
|
Back to top |
|
|
Jeroen Site Admin
Joined: 07 Aug 2004 Posts: 5332 Location: The Netherlands
|
Posted: Wed Sep 29, 2010 10:01 am Post subject: |
|
|
I'm available for consultancy. As in, you can ask me questions on how things were built, and how I (now) think things should be build. As long as such questions don't take up too much of my precious little time, I'm very much ok with that.
Do note that the "final" product (if there is such a thing) should not be a rewritten DeleD, but something more than that. The aim should be to create a product which is easy to extend so that it is possible to evolve it into some sort of Scene Manager, which seems to be the next logical step as discussed previously in this here topic.
chronozphere wrote: |
We should try to keep it as accessible as possible for developers who work in other languages. for example, it would be great if plugins could be written in other languages, or an integrated scripting language. We could also consider supporting other platforms through MONO. |
Be careful with developer-aimed suggestions like that. Before you know it, you end up spending a lot of time implementing some architecture to satisfy just one or two programmers while that time could also be spend on implementing features for users. _________________ Check out Figuro, our online 3D app! More powerful 3D tools for free. |
|
Back to top |
|
|
Ewout Member
Joined: 15 Sep 2010 Posts: 45
|
Posted: Wed Sep 29, 2010 10:39 am Post subject: |
|
|
chronozphere wrote: |
I would like to help out. I don't know C# but I do know a fair bit of JAVA so learning is not much of a problem. |
No problem. Java and C# are syntax technically equal. If you can program Java, C# shouldn't be a big deal for you.
chronozphere wrote: |
I'm especially interested in discussing and designing the foundations of DeleD. |
Ok cool. My design skills aren't great Good to hear that you have skills.
chronozphere wrote: |
I do have a limited amount of time for the project. I can contribute once in a while and keep the discussion going. We would probably need a few others before we can really start. |
Same here, alltough i can spend around 1 day a week for this project. I am also busy with my final weeks for school and it has at the moment more priority then this project. When I am finished with school (about 7 week), I got plenty of time to work on it.
chronozphere wrote: |
We should try to keep it as accessible as possible for developers who work in other languages. for example, it would be great if plugins could be written in other languages, or an integrated scripting language. We could also consider supporting other platforms through MONO. |
It's a good idea, but I think we can better focus ourselves to 1 language. Connecting different languages with an application can be sometimes really complicated. We can include it in our first design, but built it later.
I am going to post soon some of my ideas of a new plugin structure |
|
Back to top |
|
|
chronozphere DeleD PRO user
Joined: 20 Jun 2006 Posts: 1010 Location: Netherlands
|
Posted: Wed Sep 29, 2010 5:56 pm Post subject: |
|
|
Quote: |
Ok cool. My design skills aren't great Smile Good to hear that you have skills.
|
I'm working with graphics for a couple of years now, so I know what kind of classes/modules we should write to keep everything as flexible as possible.
Quote: |
It's a good idea, but I think we can better focus ourselves to 1 language. Connecting different languages with an application can be sometimes really complicated. We can include it in our first design, but built it later.
|
Yes, indeed. We have to keep our focus narrow to make our goals realistic. However, it would be a shame if we find out that we could have supported plugins written in other languages, if we had taken a different path. I think a little research would be good here.
Quote: |
I am going to post soon some of my ideas of a new plugin structure
|
Great. I'll have a look at it when it's ready. |
|
Back to top |
|
|
Starnick DeleD PRO user
Joined: 28 Jul 2007 Posts: 611
|
Posted: Wed Sep 29, 2010 9:23 pm Post subject: |
|
|
You guys should schedule a chat soon. I don't really know how much I could help out since I'm still busy with Tesla, but I wouldn't mind participating in design discussions.
Per what chronozphere said of accessibility for developers, I think that should be a low priority. However, switching to .NET (or Mono I suppose, I haven't used Mono before) you do have a lot of interop capabilities with P/Invoke, not to mention multiple languages that run on the CLR. With C# being so easy (my opinion, but it was for me) to get into, I don't think this would even be necessary. If someone wanted to have a plugin use C++ code that's already been written, they can just write a C# wrapper that uses P/Invoke.
Some big decisions would have to be made before moving forward too. Namely in regards to the renderer functionality.
If you want to continue with OGL, I would take a look at the OpenTK Framework:
http://www.opentk.com
There's another C# OGL library out there called Tao, but it seems OpenTK is the more active/complete/alive library out there. If I ever do write the OGL support for my engine that's the library I'm strongly considering to use.
If you want to change things up and use DirectX, then you obviously have XNA as a choice (just for rendering, content pipeline and game-related functionality can just be stripped out). Another choice would be SlimDX:
http://www.slimdx.org/
SlimDX (specifically their D3D10 API) is what I used for Tesla (for D3D9 I do plan on supporting XNA tho), and its really good - a lot better than XNA in my opinion if you just want DirectX functionality without all the sugar coating. But it's harder to use than XNA, however affords you more control especially if you don't want to just use D3D9.
Of course, you can always use both and have the user choose. That route probably wouldn't be recommended since it's a lot of work, because you'd probably spend more time writing an abstraction layer to run with either graphics API. I should know, because that's what I'm doing with Tesla. Of course you can always use existing technology out there that provides you that rendering support
One last thing I would think about is shader support. This is both a developer -and- a user consideration. If you forgo the fixed function pipeline (which you'd have to if you go with D3D10/11, XNA) you have to use shaders anyways. This comes at a cost though, especially if you support it for users since that makes things more complex.
It would also give deled users far more control over their models and scenes because it would give them the ability to create materials that can easily be used in their target application. Honestly I only ever used texture/color information from DeleD and just threw out the rest. But that comes at a cost because you'd have to be able to deal with custom shader uniforms and inputs that have to be modified via the GUI.
Of course you don't have to have user-support and just write your own code that the editor only ever uses. It would simplify things internally I think too.
If user support for shaders would be considered, you also have another consideration:
Should users be forced to use the renderer's shading langauge? (GLSL for OGL, HLSL (or using .FX files) for DX?). Or do you want to support Nvidia's Cg shading language since that can be supported by either? |
|
Back to top |
|
|
Ewout Member
Joined: 15 Sep 2010 Posts: 45
|
Posted: Wed Sep 29, 2010 9:32 pm Post subject: |
|
|
Ok I've started a very small design. I first checked out the functionality of DeleD. I made a small design how we could make tools more generic and start up a bit technically.
If I check some tools in Deled, I see that they could be seperated in groups (IPolygonTool etc). For example if you want to build in Deled functionality to move a vertex, you implement all the interfaces. If you want to make the Split function, you implement the IEdgeTool interface. It is possible to implement these interfaces. The core in the graphics take care that the correct vertex/polygon/edge etc is passed to the interface.
This is a first small start. Please give tips/comments/ideas. I haven't tought yet about things like how to make dynamic windows etc. What's the way you should do it Chronos?
Starnick wrote: |
You guys should schedule a chat soon. I don't really know how much I could help out since I'm still busy with Tesla, but I wouldn't mind participating in design discussions. |
That's an idea. Maybe we should chat about it. I think it's a lot easier to chat about it.
Starnick wrote: |
Should users be forced to use the renderer's shading langauge? (GLSL for OGL, HLSL (or using .FX files) for DX?). Or do you want to support Nvidia's Cg shading language since that can be supported by either? |
I was also thinking about this and maybe we can also make different render API's in Deled (also plugin based). One based on directX with HLSL and one based on GLSL with OGL. Both can be programmed using C# and the user could select his favourite package. Personally i don't know Nvidia's Cg shading enough to give an opinion about it (googling now!) |
|
Back to top |
|
|
fik Member
Joined: 11 Oct 2006 Posts: 303
|
Posted: Wed Sep 29, 2010 10:03 pm Post subject: |
|
|
Good luck guys,although the direction this is going makes me sad.
I wish I had commital rights not just being able to submit patches, as would like to see Dele grow not a new project started.
I see some open source projects have seperate branches by diferent developers. Maybe this could be an option and bits liked could be put into official version. Still have lots of ideas, would like to add but must admit lack of action at sourceforge has rather disheartend my efforts for a while. |
|
Back to top |
|
|
Starnick DeleD PRO user
Joined: 28 Jul 2007 Posts: 611
|
Posted: Wed Sep 29, 2010 10:17 pm Post subject: |
|
|
@fik
This definitely would be a branched project and not be in the official release trunk unless if it actually gets to that point. Branching off is pretty common, even for big name software (Ogre3D has a fork called Axiom3D, which is C#).
@Ewout
The site's IRC channel would make a good place for a chat, Nocturn and I usually get lonely there .
Interfaces for tools is a good way to go. The Mesh/Meshparts is very XNA I see .
Dynamic windows...you mean like the viewports in the app, a la rendering to multiple windows? In DX you can use different swapchains/render targets for this, I'd imagine in OGL there's something similar.
Again I would say wanting to write an abstraction layer to support both OGL and DX is probably out of scope and would prevent you from working more on the application's core functionality. Its a lot easier said than done. But having a well designed rendering system would allow this to be incorporated in later possibly.
@Jeroen
How are vertices, polygons, and edges managed in DeleD currently? Just lists, or something more sophisticated? |
|
Back to top |
|
|
Jeroen Site Admin
Joined: 07 Aug 2004 Posts: 5332 Location: The Netherlands
|
Posted: Thu Sep 30, 2010 7:21 am Post subject: |
|
|
A few remarks:
Starnick wrote: |
Per what chronozphere said of accessibility for developers, I think that should be a low priority. However, switching to .NET (or Mono I suppose, I haven't used Mono before) you do have a lot of interop capabilities with P/Invoke, not to mention multiple languages that run on the CLR. With C# being so easy (my opinion, but it was for me) to get into, I don't think this would even be necessary. If someone wanted to have a plugin use C++ code that's already been written, they can just write a C# wrapper that uses P/Invoke.
|
My thoughts exactly. C# seems to be the language which gives you the best chance of attracting programmers without having to spend a lot of time on a complicated architecture. Win-win situation.
Do note that C# does not result in the fastest code around. Delphi and C++ are probably still better suited for situations in which speed is of the essence. But for an editor like DeleD, C# should suffice, I think.
Starnick wrote: |
If you want to continue with OGL, I would take a look at the OpenTK Framework:
http://www.opentk.com
If I ever do write the OGL support for my engine that's the library I'm strongly considering to use.
|
I've been doing a little testing with OpenTK a while ago and was pretty much impressed with it. If I was to start something new, chances are I would use C# with OpenTK.
Starnick wrote: |
Of course, you can always use both and have the user choose. That route probably wouldn't be recommended since it's a lot of work, because you'd probably spend more time writing an abstraction layer to run with either graphics API. I should know, because that's what I'm doing with Tesla.
|
Agreed, I wouldn't want to go that route.
Starnick wrote: |
One last thing I would think about is shader support. This is both a developer -and- a user consideration. If you forgo the fixed function pipeline (which you'd have to if you go with D3D10/11, XNA) you have to use shaders anyways. This comes at a cost though, especially if you support it for users since that makes things more complex.
It would also give deled users far more control over their models and scenes because it would give them the ability to create materials that can easily be used in their target application.
|
As the goal is to create something that is more than DeleD is now, adding shader suppport for users is something I would definitely consider.
Starnick wrote: |
Should users be forced to use the renderer's shading langauge? (GLSL for OGL, HLSL (or using .FX files) for DX?). Or do you want to support Nvidia's Cg shading language since that can be supported by either? |
Without knowing very much about shader languages, I would opt for Nvidia's Cg shading language.
chronozphere wrote: |
We have to keep our focus narrow to make our goals realistic.
|
A very wise remark indeed!
Starnick wrote: |
Again I would say wanting to write an abstraction layer to support both OGL and DX is probably out of scope and would prevent you from working more on the application's core functionality. Its a lot easier said than done.
|
Another very wise remark.
Starnick wrote: |
How are vertices, polygons, and edges managed in DeleD currently? Just lists, or something more sophisticated?
|
Check out unit_types in the code. Summarized it comes down to this: a primitive has lists of vertices, edges and polygons. A vertex has a list of edges by which that vertex is used. An edge has a list of polygons by which that edge is used. A polygon has lists of vertices and edges from which it is build.
Using that structure, there are a number of topology methods that allows the programmer to come up with additional info about geometry in the primitive, especially focusing on adjacency questions (which polygons are adjacent to what vertex etc). This is important, because in an editor, you want to be able to quickly determine what geometry is affected if you're working on some part of your model. Ewout has adopted this way of doing things in his design too.
-----
A question on a different matter comes to mind: how would this application be named? As it is derived from DeleD and heavily influenced by it, it seems the name should have DeleD in it as well. Perhaps DeleD.Net if things go the C# route. The sooner this app has a name, the sooner it becomes "alive" for both developers and users, so to speak, so it's important to come up with something soon.
I have no problems with DeleD being in the name, as long as things are taken very seriously. I have confidence in you guys, but if this tool isn't finished for whatever reason and it ends up being crappy or whatever, I wouldn't want DeleD's name to be used for it, of course, because it would look bad on DeleD itself. Perhaps a working title would be in order. Suggestions anyone?
Also, this app should be discussed in the DeleD Development forum. I've created a new topic for this here. To be sure, I'll lock this topic. _________________ Check out Figuro, our online 3D app! More powerful 3D tools for free. |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|