Subversion Repository Public Repository

Divide-Framework

This repository has no backups
This repository's network speed is throttled to 100KB/sec

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<terrain>terrain.xml</terrain>
<assets>assets.xml</assets>

<vegetation>
	<grassVisibility>80</grassVisibility>
	<treeVisibility>80</treeVisibility>
</vegetation>

<wind>
	<windDirX>1</windDirX>
	<windDirZ>-1</windDirZ>
	<windSpeed>1</windSpeed>
</wind>

<water>
	<waterLevel>25</waterLevel>
	<waterDepth>50</waterDepth>
</water>

<options>
	<visibility>700</visibility>
	<cameraStartPosition x="50" y="38" z="-79.3" xOffsetDegrees="15.8" yOffsetDegrees="75.41"/>
</options>

Commits for Divide-Framework/trunk/XML/Scenes/MainScene.xml

Diff revisions: vs.
Revision Author Commited Message
168 Diff Diff k1ngp1n picture k1ngp1n Sat 26 Oct, 2013 19:03:21 +0000

- Reworked the Camera class[[BR]]
— Now fully quaternion based [[BR]]
— Basic camera types added but not used yet (third person, first person, orbit) [[BR]]
- Cleaned up Material and Texture handling [[BR]]
- Added clipping plane support [[BR]]
— Similar to OpenGL fixed-function clip planes but fully shader driven [[BR]]
— Added a new class, “Plane”, that helps define clip planes [[BR]]
- Optimized the Singleton class to allow faster “getInstance” calls without performance penalties [[BR]]
-- “createInstance” must be called for each singleton class before usage. Or “gerOrCreateInstance” can be used, which is basically the former “getInstance” implementation [[BR]]
- Improved console logging by changing some heap allocations to stack and removing dependencies on the std::string class [[BR]]
- Added a lot of performance optimizations related to coding standards and redundant calculations [[BR]]
— e.g. Frustum AABB check didn’t need to recompute the AABB points as they were calculated already [[BR]]
— e.g. A vector did not need to be set to 0 on initialization as that is already it’s default state on creation [[BR]]
— e.g. Faster Framerate and Timing calculations by using less member variables that are not needed outsied of calling functions [[BR]]
- The SceneState now contains the SceneRenderState and is passed on to the SceneGraph’s update calls [[BR]]
- Better material export/import to/from XML format [[BR]]
- More bug fixes and cleanups [[BR]]

149 Diff Diff k1ngp1n picture k1ngp1n Sun 21 Apr, 2013 21:38:05 +0000

[Ionut] [[BR]]
- Major GUI revamp: [[BR]]
— Fixed CEGUI rendering (invalid state reset after VBO/VAO unbind) [[BR]]
— Added a working Console window with a basic command parser [[BR]]
— GUI inputs take priority over scene (e.g. pressing a key in the console, does not affect the scene)[[BR]]
— Added AutoKey repeat [[BR]]
— Added config options for the GUI [[BR]]
- Revamped OpenGL Vertex Array Object class [[BR]]
— VBO’s without a shader attached will not use VAO’s [[BR]]
— VAO’s and VBO’s cleanup all states after them [[BR]]
- Added multiple Joystick support [[BR]]
- FrameBufferObject take in account the combination of texture id and bind slot when checking for double binds [[BR]]
- Upgraded Framerate/timing system [[BR]]
- Fixed Deferred rendering (typo in normal buffer creation) [[BR]]
- Fixed initial camera placement via scene config (RotateX(Y) replace with setAngleX(Y)) on camera init) [[BR]]
- Added better thread deletion in Event class [[BR]]
- Major mutex/semaphore/shared_lock rework in threaded classes [[BR]]
- Better A.I. initialization/destruction [[BR]]
- Fixed a typo in window positioning [[BR]]
- Better Unit movement code [[BR]]

146 Diff Diff k1ngp1n picture k1ngp1n Wed 10 Apr, 2013 13:20:15 +0000

[Ionut] [[BR]]
*Final LightBranch updates 2/3 : Main trunk merge and build test (VC90, VC100, gDebugger) [[BR]]
-Merged light branch with trunk [[BR]]
-Deleted light branch [[BR]]

111 Diff Diff k1ngp1n picture k1ngp1n Tue 08 May, 2012 21:49:31 +0000

[Ionut] [[BR]]
-Added animation support based on Scott Lee’s animation loader library added a few revision’s back [[BR]]
--Added cached skeleton rendering to the library [[BR]]
--Added cached AABB transformations based on current animation frame [[BR]]
--Scene animators are added per submesh and only processed if said submesh is visible and only in the rendering stage: FINAL_STAGE [[BR]]
[[BR]]
-Added support for shader-based VBO data upload (glVertexAttribPointer) with full backwards compatibility to old method (glTexCoordPointer)[[BR]]
-Added support for Index Buffer Object (improper name) indice upload for VBO’s with full backwards compatibility to old method [[BR]]
-Reworked coordination class to better handle AIEntity teams [[BR]]
-Added “updateSceneState(currentTime)” callback that is called once per frame (used for animation update)[[BR]]
-Added “initializeAI/deinitializeAI” scene callbacks for AI creation/destruction [[BR]]
-Templatized the Quaternion class [[BR]]
-Added a “drawLines” subroutine to the rendering api[[BR]]
-Disabled tree loading in MainScene as current ASSIMP implementation is slow. Will be restored after backing and loading models to own format is added in next revision [[BR]]
-Other various small performance tweaks [[BR]]

92 Diff Diff k1ngp1n picture k1ngp1n Sun 22 Jan, 2012 00:58:26 +0000

[Ionut] [[BR]]
-Improved RenderState management (not yet complete)[[BR]]
-Fixed water transparency. [[BR]]
-Fixed Frustum Culling and distance checks on every SceneNode [[BR]]
-Terrain will now be at the begging of every Render queue and water will always render after it [[BR]]
-Added support for double sided materials [[BR]]
-Added OpenGL command validation checks [[BR]]
-Fixed the findNode function of the SceneGraph to search based on SceneNode name as well as SceneGraphNode name [[BR]]

87 Diff Diff k1ngp1n picture k1ngp1n Wed 16 Nov, 2011 22:06:17 +0000

[Ionut Cava] [[BR]]
-Major changes: [[BR]]
--Transformations are now part of the SceneGraphNode and not the object itself[[BR]]
--Resource reference counting is now per-resource instead of centralized in the ResourceManager[[BR]]
--Resource reference counting now supports copying all of the resource’s dependencies[[BR]]
--SceneGraph rendering/updating routines changed dramatically for future threading/batching considerations[[BR]]
--Added SSE2 matrix transformations[[BR]]
--All used materials are dumped to XML and loaded from there if found. Makes editing materials easier[[BR]]
--Depth maps and shadows are automatically enabled if a scene creates the depthMap[] FBO’s [[BR]]
--SceneGraph automatically unloads child objects from nodes (clearing up Sky, Terrain, Water etc)[[BR]]
[[BR]]
-Minor changes / bug fixes[[BR]]
--Terrain material+shader are now properly set and used[[BR]]
--SceneGraph structure can be printed in the console[[BR]]
--Converted most tga resources to png only due to size[[BR]]
--Mesh-SubMesh <-> SceneGraphNode Parent-Children conversion fixed[[BR]]
--inline’d most functions that could be inlined[[BR]]
--Fixed PostFX frame buffer generation at init step[[BR]]
--cached BoundingBox data on retrieval [[BR]]
--fixed some transformation code (rotation on specific axis was buggy)[[BR]]
--resources can not be copied! (copy constructor and assignment operator are private). Use ResourceManager to get a new reference to the resource [[BR]]
--SceneNodes now have 2 functions, prepareMaterial and releaseMaterial that are called before respectively after the node is rendered [[BR]]
--SceneGraphNodes now call a SceneNode’s function called postLoad that passes a pointer to the SGN from which it’s called so that the SN can update accordingly.[[BR]]
--cleaned up OpenGL-specific rendering pipeline[[BR]]
--removed most iterator based map traversal with boost’s foreach allowing future support for tr1’s foreach with lambda expressions[[BR]]
--A lot of other small changes not worth mentioning as of yet[[BR]]
[[BR]]

85 Diff Diff k1ngp1n picture k1ngp1n Sun 16 Oct, 2011 16:28:05 +0000

[Ionut Cava] \\
-Major changes: \\
--All the framework code is now licensed under the GNU Lesser General Public License. Read the copyright files added in this commit as well as the copyright notice in each of the code headers \\
--Added a SceneGraph framework to handle scene hierarchy. The SceneGraph is composed of SceneGraphNodes that have a SceneNode and any number of SceneGraphNode children. Rendering is done recursively for now, but upgrades to spatial ordering and material batching will be added soon.
--More work on the material system. All material properties (diffuse, ambient, specular etc) are now stored in a mat4 vertex and sent to the frag shaders as such. The Material class also does all the shading initialization. The Material class is now a Resource and is also loaded/created/returned using the ResourceManager.\\
--Materials, BoundingBoxes and Transforms are now moved from Object3D to the SceneNode class, making the Object3DFlyWeight superseded. \\
--The ResourceManager now loads resources based on a ResourceDescriptor that holds information such as the resource’s name, physical file location, special flags etc. \\
--Modified terrain rendering and loading algorithms as well as the terrain shaders for better performance, as well as support for an extra channel in the AlphaMask (now textures can be placed based on a RGBA alpha mask). \\
--The Light class is a SceneNode now \\
--The Material class is a SceneNode now \\
--The Manager class has been fixed to support proper loading/unloading/deletion/insertion/extraction of resources to and from the unordered map \\

-Minor changes: \\
--Fixed the buggy removal of resources (pointer reference issue) \\
--More use of std::make_pair() instead of std::pair<>() \\
--More base class initialization from derived class’s constructor as well as some base class unload() calls \\
--Renamed the “Con” class to “Console” for better readability \\
--Added experimental state changing methods to the rendering API and using them in limited cases for now (setting texture matrix, preparing geometry transforms, etc) \\
--Cleaned up the geometry importer a bit. \\
--Water position and depth can now be set in the scene’s XML description file \\
--TerrainManager class is superseded by the SceneGraph => removed \\
--Camera class is now derived from Resource \\
-Known bugs: \\
--Without proper depth sorting, semi-transparent objects render wrong \\
--Water rendering is really bugged \\
--Random crashes may appear during application shutdown do to garbage left in DB’s \\

78 Diff Diff k1ngp1n picture k1ngp1n Thu 23 Jun, 2011 22:05:45 +0000

[Ionut]
-Added a Camera Manager class and support for multiple camera types and multiple cameras per scene
-Added Shadow Mapping support (not finished yet -> only shadow outlines are drawn)
-Faster tree loading and rendering through an Object3DFlyweight class implementation.
-Removed some Raw OpenGL code calls and implemented them via the GFXDevice interface.
-Improved rendering performance by removing object cleanup while application is idle and moved the cleanup methods to a per-object basis. Each object deletes itself if it’s set to do so (instead of the SceneManager deleteing all pending objects).
-Removed std/tr1 namespace usage declarations from headers as recommended
-Removed more ‘cout’ calls and used the ‘Con’ class instead.

71 Diff Diff k1ngp1n picture k1ngp1n Thu 20 Jan, 2011 09:18:19 +0000

[k1ngp1n]
-Removed most OpenGL specific code from the engine and moved it in the Hardware/Video/OpenGL subdirectory (Textures for example)
-Added a RenderState class to enable/disable various rendering options
--Still need some fixes (renderstates are applied before texture level, need to be applied before geometry rendering)
-More work on networking code (on the patching system speciffically)
-Fixed Mesh deletion
-Other fixes and updates

66 k1ngp1n picture k1ngp1n Wed 12 Jan, 2011 15:03:55 +0000

[k1ngp1n]
-Moved mesh and predefined geometry rendering code to Graphics API level. Shaders and VBO’s are handled at this level
--Use GFXDevice::getInstance().drawModel or .drawBox3D or drawSphere3D etc to draw your geometry.

-Added Text3D support (without extrude/bevel)
-Fixed selection of 3D objects based on Ray-AABB intersection. Max distance is still buggy -> you need to be really close to select something for now.