|
1. I will include the code for the Sharp3D.Math unit tesing library. It should supply some basic code samples for working with the library.
As for a sample application I started working on a basic ray tracer but it'll take some time to finish...
2. Can you specify where exactly you think the documentation is lacking?
3. I will try to add some more content to the article. Cover the basic structures (vectors, matrices, complex numbers) etc. but its all pretty much straightforward and I wouldnt want to write stuff just to make the article's line count higher.
Thanks for the comments...
Eran Kampf
tentacle@zahav.net.il
|
|
|
|
|
Eran Kampf wrote:
As for a sample application I started working on a basic ray tracer but it'll take some time to finish
That sounds great.
Eran Kampf wrote:
Can you specify where exactly you think the documentation is lacking?
Well, like I said, it could use more <remarks> sections. Take a look at MSDN to see what they have. There are some items that do have a remarks section, but all they seem to say is "See xxx for details". I guess I am so used to reading MSDN, and because NDoc produces documentation that looks like MSDN I want to see the same kind of things.
Eran Kampf wrote:
I will try to add some more content to the article...but its all pretty much straight forward and I wouldn't want to write stuff just to make the article's line count higher.
Pick an area that is interesting to you (remember it isn't straight forward to everyone), or produce a tutorial style for the ray tracer demo to explain how it is put together and how all the components hang together.
When I read an article I generally read the top couple of paragraphs, and if it seems to be interesting I'll scroll to the bottom to see how much there is. Sometimes, if it is long, I'll bookmark it and come back when I have more time. If it is too short I sometimes won't go any further because I hate digging through code with no explanation of where to start or what bits are core.
I hope this helps. It looks like you have an excellent library and I would very much like to have the time to explore it further.
"You can have everything in life you want if you will just help enough other people get what they want." --Zig Ziglar
The Second EuroCPian Event will be in Brussels on the 4th of September
Can't manage to P/Invoke that Win32 API in .NET? Why not do interop the wiki way!
My Blog
|
|
|
|
|
|
Would you care to elaborate rather than just scream "Trash!" and "Cheater!"?
"You can have everything in life you want if you will just help enough other people get what they want." --Zig Ziglar
The Second EuroCPian Event will be in Brussels on the 4th of September
Can't manage to P/Invoke that Win32 API in .NET? Why not do interop the wiki way!
My Blog
|
|
|
|
|
1. Can you plZZZZZZZZZZZz put the exe-able binary there?
2. Instead put a 952k stupid junk chm, can you plZZZZZZZZZZZz just tell people use a NDoc? (NDoc is good but not for people reading your stupid help)
3. Can you plZZZZZZZZZZz at least put a figure inside the article?
4. TRASH!
|
|
|
|
|
Who is this?
Eran Kampf
tentacle@zahav.net.il
http://tentacle.flipcode.com
|
|
|
|
|
Why are interested to know my Indentity? We are here talking coding btw, I did not vote your article yet, so try to make it better!
|
|
|
|
|
If we're talking about coding then maybe you should out the code before you trash it...
Eran Kampf
tentacle@zahav.net.il
|
|
|
|
|
Then how about adding an exe and a figure?
|
|
|
|
|
Well, it says "A 3D Math Library", not Demo-Application
--pascal
|
|
|
|
|
1. It is a "library" after all. However a nice exe that demonstrates the library would be nice.
2. I don't understand what you mean by this. The help file was generated by NDoc. It seems perfectly acceptable to me - there are a few gaps that need plugged and some better descriptions (remark sections) would be good, but I don't see a huge problem with it.
3. A "figure"? If you mean that the article is a little short then I agree. I've done a bit of work in the past on 2D drawing/anaysis libraries (GIS related) I'd like to extend that knowledge to 3D and a little bit of explanation here would have been much appreciated.
4. No, not at all. While I can understand your point-of-view on the above I cannot say that it is trash. The article could use a little work for sure, but I would not say that this is trash.
"You can have everything in life you want if you will just help enough other people get what they want." --Zig Ziglar
The Second EuroCPian Event will be in Brussels on the 4th of September
Can't manage to P/Invoke that Win32 API in .NET? Why not do interop the wiki way!
My Blog
|
|
|
|
|
I currently dont have any sample application ready to be released. I am working on the Sharp3D engine (and studying for finals) so I dont have much time to release sample applications.
I will add the code for the Sharp3D.Math unit testing library. It should supply some code examples...
As for your comment in (3), what explanation do you think is necessary to add?
Teaching linear algebra, intersection algorithms etc is beyond the context of this article...
Eran Kampf
tentacle@zahav.net.il
http://tentacle.flipcode.com
|
|
|
|
|
oh, btw, you agree with me?
I did not vote for it yet, and hope the author can improve it!!!!!
|
|
|
|
|
I think this is a great work. Clearly, Eran spent a good deal of time and efford on the library and he is willing to share it with others. If you lack the intellect to appreciate a good work, please do not comment at all.
Keep up the good work Eran.
Life is what happens to you, while you are busy programming.
|
|
|
|
|
Eran, please ignore that guy/gal who is shouting trash. You've done a fine job in providing the .NET community with a valuable tool. I congratulate you for your efforts. Who ever mr yahoo is, I think he is just a bitter person.
|
|
|
|
|
Do u have any solution to draw a 3D surface?
I wanna display a 3D array as a 3D grapgh or surface.
Thanks
|
|
|
|
|
You can use the Sharp3D.Math structures (Vectors etc) to represent and transform the surface.
You'll have to do the rendering code yourself as Sharp3D.Math is a math library and not a graphics library.
I plan on adding surfaces support to the library (NURB rectangle, B-Spline rectangle etc...) but it'll take some time...
Eran Kampf
tentacle@zahav.net.il
http://tentacle.flipcode.com
|
|
|
|
|
There are some fairly inexpensive chart controls that you can use:
Here are some examples:
Scinet Chart $119 from www.obacs.com
Exceed Chart $499.95 from www.exceed.com
|
|
|
|
|
How would you go about building a struct that you could set how many rows and columns you had? From what I see of this class, you have the choice of a 2x2, 3x3, or 4x4 matrix. What if you wanted a 3x6? What I'm getting at here is that you could have matrix A which has the size HxJ and you have matrix B which has the size TxR. You can still add/subtract/multiply/divide these matricies. I know for multiply A times B, it would have the size HxR. And if you multiplied B times A, it would have the size TxJ. I think this would cut down the repition of code between your classes, because you now don't care what size it is so you don't have to cast for each one.
|
|
|
|
|
I am planning on adding a generic matrix class.
Having such a class wont cut down code repition because the 2x2, 3x3, 4x4 classes are made specifically for geometric and graphics related methods that require such classes.
Having a specific size class also allows speed optimizations etc...
Eran Kampf
tentacle@zahav.net.il
http://tentacle.flipcode.com
|
|
|
|
|
Hi Eran,
I understand you are concerned for the speed of your algorithms and this is why your code is repated in several places. However, by definition, a matrix is an operator. You could spend a little extra time on initializing your matrix and add a simple dimension check to the matrix operations. This wouldnt have significant effect on the speed of your matrix operations, but you could achieve the same effect with a lot less code. So the real question is: Does the time you gain by optimizing the code in this manner worth the effort and space?
Life is what happens to you, while you are busy programming.
|
|
|
|
|
Hi,
Having a generic N dimention matrix class does not only add several dimention checks etc. It also means that almost every operation now requires a loop which is a big overhead.
Besides, there are several other benefits of having fixed size structures:
- 3D API compatibility. Notice that all 3D APIs\Libraries\Engines out there also define fixed sized structures.
- When working in a specific dimention (like defining a ray\box\sphere\polygon in 3D space) having fixed size structures prevents alot of dimention checking and makes the code much nicer (plus it can prevent wierd errors).
Its just like the thing with generics and typed collections...
Why do we need typed collections for if we already have collections that store objects?
Eran Kampf
tentacle@zahav.net.il
http://tentacle.flipcode.com
|
|
|
|
|
|
Sharp3D.Math is a a library for handling complex math and thus it does not handle scene management (LOD, Collision detection etc).
Sharp3D.Math defines sevreal data stratures for various geomrtic shapes (such as AABB, OBB, Sphere etc..) and it supports testing for intersection, distance etc. between these shapes (for example testing the distance between a point and a bounding box)
Currently there arent many distance and intersection methods implemented but I am planning to add some more in the near future...
Eran Kampf
tentacle@zahav.net.il
http://tentacle.flipcode.com
|
|
|
|
|