0.7.0.0
Change log
This page is here to inform about the changes since the earliest versions of the engine
Version 0.6.1.2
Adds
-
Created Dx9Renderer to render with Direct3D 9. Stills things to correct, in shaders and matrices, but it's almost done.
-
Created different files for OpenGL contexts (X11, Gtk, Msw), X11 and Gtk still untested.
-
Created a splash screen for CastorViewer and CastorShape, created a dialog box in order to choose the renderer at startup.
-
Added a small app to converet from an image to a XPM.
-
Added new features to scene files (alpha_rejection, rgb_blend, alpha_blend, hl_shader_program, ...)
Modifications
-
Optimised CMakeLists file and 'cmake_modules' files in order to take care of various configurations in a better way.
-
Revised VertexBuffers and IndexBuffers, introducing VertexDeclaration and BufferElementGroup, so we can create VertexBuffersof customisable types.
-
Vertex class now derives from BufferElementGroup.
-
TextureEnvironment are going to disappear in the next version, now multitexturing management is done with passes and texture units.
-
Suppressed GLU dependencies.
Bugs
-
Trouble with Direct3D matrices (maybe differences between right-handed / left-handed).
-
Trouble with HLSL shaders, surely linked to previous trouble.
-
Still troubles with Cg shaders (not worked on it).
Version 0.6.1.1
Adds
-
Created a CMakeLists file to generate the solution from CMake.
-
Reorganised folders to make them more compliant with CMake.
-
Splitted Plugin class in 3 parts : Renderer, Divider et Importer.
-
Created one project per importer (OBJ, PLY, MD2, MD3, 3DS, ...)
-
PNTrianglesDivider is left in Castor3D because it is sstill used by Icosahedron, LoopDivider is exported in a plugin.
-
Began Cg shaders implementation. This implies a scene file modification because in Cg, uniform variables are are linked to a shader instead of being linked to the whole program. Still buggy.
Modifications
-
Suppressed FreeImagePlus dependencies.
-
Vertex, Attribute and Index buffers are now created by RenderSystem so they can be created out of the renderers.
-
Suppressed Singletons for the Managers (Image, Font, Scene, Material, Animation and Mesh).
-
Remerged SceneNode classes.
-
Created IdPoint class, it is a point with just an index. Submes::AddPoint creates now IdPoints and Submesh::AddFace uses them to create the vertex.
-
Subdividers can subdivide in a thread in order not to freeze the main thread. It is possible to define a function to use at the end of the subdivision (cf. CastorShape).
Corrections
-
Corrected LoopDivider which didn't reposition the Vertex
Version 0.6.1.0
Adds
-
Using std or tr1 or boost smart pointers.
-
Created OpenGlCommon for common treatments between GL2RenderSystem and GL3RenderSystem
-
Created class Pipeline which performs the matrix computings and other functions (frustum, perspective, ortho, ...)
Modifications
-
Modified MemoryManager, added a template class MemoryTraced which overload new, delete new [] et delete [] operators in order to have better trace of allocations and deallocations. Each Castor class derive from this one and 3 files are created in root folder to log allocations, deallocations : memoryleaks.log, memoryalloc.log and memorydealloc.log
-
TransformationMatrix no longer exists, it is now a collection of functions which computes 4x4 matrix operations
-
Modification SceneNode management : base class NodeBase holds the informations that were in SceneNode, 3 derived classes (GeometryNode, CameraNode et LightNode) take care of each category specificities.
-
MovableObject class now has less features (name and NodeBase), Light and Camera now derive from it
-
Renamed UniformVariable to FrameVariable.
-
OpenGL 3.x/4.x now fully supported.
-
Modified Vertex class in order to make them include texture coordinates and normals in order to have only 1 vertex buffer instead of 3 in a mesh.
Corrections
-
Corrected the shutdown crash.
-
Corrected the black render with OpenGL 3.x
Version 0.6.0.0
Adds
-
Added a projection/normal and view matrices management class, in order to suppress the fixed pipeline support in OpenGl renderers.
-
Added personnal smart pointers.
-
Added an agle management class in order not to take care of degrees or radians.
-
Added a path class, to manage slashes or backslashes according to OS.
-
Created thread safe containers derived from STL ones (vector, list, map, multimap, set).
-
Splitted GLRenderer in two parts : one compatible OpenGL 2.x and before (GL2RenderSystem), one compatible OpenGL3.x et after (GL3RenderSystem).
-
GL2RenderSystem : according to client configuration, the fixed pipe is suppressed or keeped
Modifications
-
Modified thread management, leaving the user choosing between Win32, MFC or boost.
-
Modified point and matrices classes.
-
Modified String class which now is independant from MBCS or Unicode.
-
Modified File class which now only uses streams.
-
Modified the render system, added a class Renderable used to create associated renderer in order to ease the creation of derived classes (submesh, scene node, light, camera...)
-
Changed scenes/materials/meshes files name (respectively cscn/cmtl/cmsh)
Corrections
-
Protected managers with recursive mutexes to avoid random crashes.
Bugs
-
Still a crash at shutdown, supposedly due to shaders.
-
In GL3RenderSystem, I've got a black screen (?!?) but transformations seem to be correct.
Version 0.5.0.1
Adds
-
Tangent space is computed and available in GLSL shaders.
-
Only tangent is computed, bitangent can be in the shader with a cross product.
-
To access to the tangent you must declare the following attribute in the vertex shader :
-
attribute vec3 tangent;
Modifications
-
The points classes have their members in a union so you can call it as you wish (xyz, rgb, left right top bottom)
Corrections
-
Corrected the crash on shutdown. It was due to VBOs which are now destroyed in a final render loop.