I have written, in version 2.0 of the .NET framework, a simple 3d engine, the primary function of which is to render a sphere (the earth). I have written a Matrix class and a Vector class. The Matrix class handles multiplication with objects of the same type and Vectors. (Vectors have a W element for the purpose of perspective projection math). The 3d engine itself is in a user control (and uses GDI/GDI+ functions). The problem is I'm that not 100% confident of the math - the particular problem is with hidden surface removal ... simple backface culling. I try to take the dotproduct of the surface normal and the camera view vector, with mixed results. Multiplying the surface normal and/or the camera view vector by the view matrix have again yielded mixed results. I'd just like to get the issue sorted. I believe its caused simply by my amateurness; either I'm preparing the projection/view matrices wrong, applying them wrong, or something similar. NOTE: I need someone with a great understanding of projection, view, camera matrices, matrix math, vector math, and the THEORY behind it. I'm looking for someone to tell me how my algorithms are wrong, NOT supply a library to do it for me / tell me to use D3D / OGL. I suppose I'm looking for someone who could write a 3d wireframe engine, like this one, from scratch - ideally they will already have written such an engine. I'm not interested in depth buffers, triangle rasterisation, or polygon math. Just what I'm asking. If you could write/have written your own routines to perform matrix math, including generating perspective projection matrices, you may be the person I need. If you've only ever used other people's libraries / OpenGL / Direct3D, you're probably not the person I need.
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Deliverables must be in ready-to-run condition, as follows (depending on the nature of the deliverables):
a) For web sites or other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment.
b) For all others including desktop software or software the buyer intends to distribute: A software installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request.
3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).
Microsoft .NET Framework 2.0 (e.g. Windows XP Pro, 2.0 SDK, Visual Studio .NET 2005).