Advertisement Jump to content
  • Advertisement


  • Content Count

  • Joined

  • Last visited

Community Reputation

130 Neutral

About vicviper

  • Rank
  1. A choice I am considering right now is [url=""]Axiom3D[/url] , it's a fork of Ogre3D, essentially they reprogrammed the engine in 100% managed code, and it targets both OpenGL (via OpenTK) and also XNA... so this might be a good choice. Its main advantages are that it's 100% managed, cross platform and open source, so if you have the purpose of learning/teaching, I think it can be a good choice to see how a 3D engine works under the hood. Its main disadvantage is that it tries to keep with Ogre3D main development, so it's lagging behind in terms of features... but, if your expectations are not very high, I think it has a good usability/feature rich balance. About Unity, I tried to use it myself, but I didn't liked it, since I like to be able to touch every element of a project... Unity 3D does everything for you, which is good for fast development, and also bad if you want to follow a path different than the one dictated by Unity. Also, Unity hides a lot of the complexities of game development, which, again, is good for fast development, but maybe not so good if what you want is to teach how these difficult things are done.
  2. vicviper

    Conformal mapping

    Hi For quite a while, I've been trying to understand how the Least Squares Conformal Mapping works, specially the "conformal mapping" part... I've read several papers, but I still don't understand them well... somehow, I understand maths much better if I read them as code, than as math terminology. So far, I understand the whole thing is a projection from one space to another, in which the transform is done using complex numbers as part of the process... the other part of the process involves solving very large linear equations. I've tried to see some code that does the stuff (Blender modifer, and another one I don't remember its name) both do the complex number parts, but also both rely on a third party library to solve the linear equations, so it's not possible to see "the whole thing" in the same piece of source code, and without understanding the latter, I can't understand the former. My guess is that the complex numbers are used to "weight" different parts of the surface, but the weights are interdependant, so all of them must be solved at the same time, and for that's the linear equation solver.. So, any help? some pseudocode would be great... thanks!
  3. vicviper

    Recent Updates and What's on Deck

    Please, do something to remove news, I can't read them because I am not registered there and I don't plan to. It really looks like spam!!
  4. vicviper

    Conflict of interest or am I ok?

    Where I used to work they didn't have the clause of wanting to own all intelectual property I produced, even at my spare time, thus, I was able to work on some small side projects. I understand that large companies might be able to enforce that clause, but I think if you have extra obligations, you should also have extra rights, which should usually translate to a much higher salary, compared to companies that do not enforce that clause. At some point, they wanted to change my contract and add that clause, so they could get a hand on my side projects, but they didn't wanted to pay me more for that, so I eventually left that company. I don't know how much companies enforce that clause, and I guess it's ok if you are beginning, but I think it's a wrong one because it stops developers to grow knowledge in other areas that might not be able to explore in office time, and that can also lead to less opportunities for finding another job in the long term.
  5. vicviper

    Windows Installer is Terrible

    I completely agree, we've been suffering windows installer because we have to support several legacy products which use it. For new projects, we're working with WIX, it's painful, but it gives the flexibility and control we need. I think there's a lot more people, even at microsoft, aware of this problem; Visual Studio installation also uses Wix: And I've read somewhere there's a possibility that next versions of Visual Studio will end incorporating wix toolset. So I think expending time with WIX is a good investment, and what's needed is more tools and visual to help simplify Wix project edition.
  6. vicviper

    fixed size vector?

    you have boost::array and, depending on your compiler edition, you might also have std::array (sometimes appears under std::tr1::array or std::tr2::array) std::array is the standarized version of boost::array, and was supposed to become a part of the new c++0x standard last year. But looks like c++0x was recalled, so the whole c++0x is still in some sort of limbo. Anyway, I'm confident std::array will become standard in the next c++ revision we get. using std::array is quite straightforward, since it essentially has the same functionality than a std::vector, except it is always initialized with a fixed number of items. a really cheak way of define a 3D vector with an std array would be this: typedef std::array<float,3> Vector3D; About constructors and destructors, same rules used on std::vector apply, which means that object contructors and destructors are called, but when using pointers to objects, it does NOT call new and delete for you.
  7. Flash CS and Flex are tools to create the same final product: flash files. Now, some developers and artists might be more comfortable with one tool or another.... so choosing between flash or flex is mostly about in which tool are you more comfortable. Flash CS is mostly for artists and designers that want to create flash files with a WYSIWYG editor, without having to deal with learning a programming language, or having to touch it minimally. The main advantage of Flash CS is that you can have a nice, running flash in a very short time, but it will look like most flash movies you see arround; a movie flic. Flex is mostly for coders, and almost everything is done by writing code, so it's intended for software developers that are used to development environments like Visual Studio, Eclipse, etc The main advantage is that you program in ActionScript3, which is becoming a first class programming language, and the disadvantage is that you really have to master the language to start having simple results. Overall, Flex is probably much more powerful, also much more complex, and with much longer development cycles.
  8. vicviper

    Software Skinner

    If it's an option to you, you can declare the whole function "unsafe": public unsafe void DoSkin(Matrix[] Matrixes) That way, you remove all the array out of range index checks, and you can get a considerable speedup. Not all managed platforms allow unsafe code, so this solution might not be suitable for you.
  9. vicviper

    Collada DOM bites me

    From what I've read from OpenCollada, is an XML SAX reader/writer, in theory, its designed to simplify loading files to your own structures, but it's not a DOM, it just reads the file and gives you temporary data you have to deal with. It's better than dealing with the XML itself, but it still leaves days and days of work to the end developer. I'm currently using FCollada, which is less painful than Collada DOM, but from what I've seen, they replaced the projects at sourceforge by OpenCollada, so I suspect the conditions/status/legal terms/license of FCollada might change in the near future, so I'm planning to migrate to OpenCollada eventually. Anyway, I've been expecting these changes for a long time, and what I've done is to create a small library that loads just what I need from Collada through my own wrapper, and everything is placed inside a DLL just to avoid library conflicts with the rest of the solution projects, so in case the dependencies change, or I decide to completely replace the collada SDK in use, only that DLL will be affected.
  10. vicviper

    Collada DOM bites me

    I, and probably many other developers understand your feelings, Collada is an extremely complex file format, that needs to be complex in order to support the wide range of features needed by different developers. But I also beleave they have cared too much about features and too little about ease of use, like adding simple wrappers for simple tasks (which is 80% of developers do) are trying to make the format a bit easier to read. I suggest you to begin looking to OpenCollada, which is a new official try (the third, after collada DOM and FCollada) to develop a proper, usable SDK About the /NODEFAULTLIB, this usually happens when mixing libs that are compiled using different options, it can be solved by making most critical project options to match, like: character type (none, ascii, unicode) CRT linking (single threaded, multithreaded, DLL) if you have one project with "multithreaded" and another one with "multithreaded DLL" you have 100% chances of getting /NODEFAULTLIB issue. There are a few others I can't recall, but at least these two must match in all the projects of the solution.
  11. vicviper

    Solving gimbal lock

    I suggest you to do this: keep a quaternion for every object you want to avoid gimbal lock for each step: multiply that quaternion by a quaternion representing the rotation change (usually a quaternion built with very small angle degrees) renormalize the quaternion convert the quaternion to euler angles or a matrix for rendering. Notice the quaternion is kept all the time, you only multiply it by other quaternions and renormalize it, but you don't rebuild it fron scratch every frame.
  12. There is a solution but it is not easy to implement if you don't have a good knowledge of matrix concatenations. I had the exact same problem than you, basically because I didn't want to be dependent of DirectX or OpenGl coordinate system, and also because I wanted to keep using the same coordinate system used by most content creation packages, that is right handed (+x rigt, +y depth, +z up) The solution is to create your own projection matrix in which the "depth" is computed in the Y Axis, instead of the Z Axis, which is what both OpenGL and DirectX utility functions do. I don't have the code at hand, but if I remember well, the resulting matrix was equivalent as to get the Right Handed projection matrix produced by D3DXMatrixPerspectiveRH and then, swap Matrix Rows 2 & 3. you probably need some other tweaks. But I guarantee it works, because I made it work down to the shader level (that is, in the shader computation the "Y" was depth, so if you're using shaders, or a 3D engine that uses shaders, you would probably need to modify the shaders to use Y instead of Z in some of the computations (fog depth comes to mind) There is an easier solution, but it does not always work, which is simply to rotate 90 degrees up the camera. This is a cheap solution if you're doing something very simple, but at the very bottom you're still using the old coordinate system, so when you have to deal with complex transforms for shadows, lights, etc, it becomes a nightmare, I personally preffer the "total solution" described above. I would love to see more people realize how important is this, because this coordinate system is simply the best; it's natural, it makes integrating terrain engines much easier, it lets you use content assets from 3D editors without any axis conversion (and for animation assets, this is a lifesaver!), and it makes you independent from the rendering API coordinate system, all this by just using a clever matrix trick at the end of the pipeline!
  13. Hi, I am working in a project that requires a small dialog for editing an XML. Right now I'm using plain old c# TextControl, but I realized how cumbersome is to edit an xml with a raw text editor. I'm sure someone else has done this before; an extended TextControl that is XML aware, and has modern IDE features like autocompletion, hinting, code highlight, etc. I've done a search arround and I found a few, I only found some expensive commercial controls with way more features than what I need, or simple examples that only extend a few methods of TextControl. I am looking for something in between, maybe an opensource project with components to use on user created tools. thanks in advance Vic
  14. vicviper

    Yet another language thread

    I completely agree with ToohrVyk, because this is exactly my case: where I work, I use C# and ActionScript, but the main reason I was hired above others was that I had a good knowledge of c++. C++ might be in use or not by many companies in the industry, but all of them aknowledge that knowing C++ requires being a -disciplined- programmer, which is what actually most companies value, it just means "you know the stuff" Now, I know I'm going to be bashed for this... I don't mind, the fact is that I have a job thanks to knowing c++, even if I program in other languages.
  15. there are a few better ways of using std::map instead of return ((*kIterator).second); you can use: return kIterator->second; also, a better way to insert an item in a map: instead of m_hpkSoundSources.insert( KeySoundSourcePair(name, pkSource) ); you can use: m_hpkSoundSources[ name ] = pkSource; and yes, I know it's shocking, but its the right way to insert an item in a map.
  • Advertisement

Important Information

By using, you agree to our community Guidelines, Terms of Use, and Privacy Policy. is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!