As with Computer Vision, 3D Computer Graphics can be explained in a few different way - so I’ll stick to the simple, the medium and the advanced explanation. The simple explanation is that it’s what you see on the screen when playing many modern computer games or when seeing movies such as Shrek or Ice Age. These are often done with tools such as 3Ds Max or Maya by the professionals, or with free tools like Blender for the hobby artist or the learning 3D designer.
The 3D Computer Graphics (CG for short) I’ve been using is both the professional wysiwyg tools (mostly 3Ds Max) and the programming further behind the scenes,
with both DirectX, OpenGL and Cg development for the GPU (translates as a CPU for graphics calculations). Going further behind the scene lets you create more advanced features and scenes with less computational power than if using the traditional tools - meaning the effect is mostly positive, but of course the cost is in time, and developing for 3D is not a simple thing.
Leading on to the medium advanced explanation of CG, we have high school mathematics, simple physics models such as gravitation and not walking through walls and the more advanced physics when looking at how light works and how it reflects on different types of surfaces.
As with Computer Vision, I will create a separate post for the more advanced parts of Computer Graphics, before becoming more detailed in the subject. Given time, I will also introduce simple tutorials both for programming and for software packages to create 3D scenes and objects - and suggest literature and online resources which can help in learning more.
There’s a simple explanation to everything, at least if you don’t care about how sufficient the explanation is. The simple explanation for Computer Vision is that this is the reversed technology for 3D Computer Graphics. The medium explanation makes the simple one look ashamed, while the advanced could be seen as advanced physics warping the universe .
Let’s start with the simple explanation - the ‘opposite of 3D Computer Graphics’ - which tells us that since 3D CG maps locations in 3D space to a 2D screen, Computer Vision should do the opposite, meaning we have one or more images of a location and want to find the scene from these images. This translation from 2D back to three dimensions can be done in a number of ways, most of them needing more complex explanations than the simple version can offer.
Moving on to the medium difficulty explanation, we see that Computer Vision has close relatives in fields such as Photogrammetry, Signal Processing and Image Analysis, that it can be used in for example robotics or for creating 3D scenes to walk around in, and that it is one of the most advanced fields in Computer Science at the moment, with very few systems which are both simple/fast to use and completely robust. Much of the focus is on cameras, and the external and internal parameters of these cameras as photos were taken.
The internal camera parameters include the zoom/focal length, the aspect ratio and the pixel size, while the external parameters are the position and rotation of the camera in three dimensions. Since the taken photos are always in two dimensions this leads to major mathematical computational difficulties. These difficulties have for some applications lead to combining the area with preparatory methods. An example is to create an estimated ‘pre-model’ with constraints for the final result, when trying to recreate a scene using Computer Vision methods, or putting constraints by trying to predict the next step of a tracked object.
Since this post is getting a bit long I’ll continue with the advanced explanation and some tips for books and online resources in another post…