Demo: Green Dragon

Articles with the tag: CharSim

CharSim: release and summary

System architecture for version 001

What I planned in the spec is now complete and ready for release. The GLSL shaders now work at version level 120 (compatible with OpenGL 2.2) in order to support older graphics cards.

What has been the point of the project?

  • Am familiarised with 3D APIs and shaders.
  • Have explored and incorporated third-party libraries.
  • Learn and apply knowledge of mathematics and algorithms for a technical animation framework and basic game engine.
  • Handle debugging using exception handling and gdb.
  • Designed an object-oriented framework model.
  • Used C++ standard library tools (smart pointers to automatically refcount resource objects, lambda functions and their relation to STL algorithms, vectors, lists, maps, iterators).
  • Explored C++ design patterns (abstract classes used as interfaces, compositing and inheritance patterns).
  • Have worked with the distributed version control system Git for revisions and distribution.

Of course there are many features I still want to explore ...

Read More »

Framework: checking memory leaks with Valgrind

Profiling with Valgrind memcheck and gprof to check for memory leaks and performance problems. Could things be sped up by not using so much C++ standard library things (which I used copiously for educational purposes, instead of clobbering everything together in C)? One mustn't assume so, sez Stroustrup - testing is needed.

Loading could be drastically improved by saving JSON and COLLADA model formats in a form suitable for my game environment. The vertex indexer currently involves a triple-nested for-loop!

[29/06/14 23:13]

All the valgrind warnings are gone apart from one about the OpenGL library. That can't be my fault, right?

Read More »

Character animation: adding logic for face movement

Bugs: First mesh to be rendered in Mouth Features node has no shading... Mouth features don't always load the first time (FIXED) Have to use SkinnedMorphMesh because MorphMesh is broken, or its resman loader is. (FIXED) Armature stops moving when the focus goes outside the window at certain times. Eyes and other features translated from the origin don't seem to be shaded properly.

Optimisation: I'm loading and rendering dragon character's mouth features (tongue, teeth, etc) as separate meshes. For lots of smaller meshes, it should be more efficient to put them all in one VBO to save a lot of buffer context switching each frame cycle. It should be theoretically possible to load the entire scene in one VBO, though there is a vertex limit.

Features added and active. Not sure why top teeth and eyes are so bright.

[28/06/14 19:54]

Implementing random ...

Read More »

Character animation: eye movement constraints

I'm using simple constraints on the rotation angles for the eyes because that's quick to implement, but that will result in abrupt stops when the eye reaches its rotation limits. A better way would be to determine a Field of Vision (FOV) for the eye, and if the target escapes the boundaries of this FOV, the target can be adjusted according to the desired animation behaviour: it could clamp to the sides, so that the eye is still trained to it, or the eye could simply reset and look at something else.

This way the motion-smoothing acceleration/deceleration of eye-movement will remain, while nicely limiting the eye rotation.

[25/06/14 14:16]

If the eye FOV is defined as a viewing frustum similar to that of the camera, the eye can have its own Eye Space, with the frustum defined as a box. The target point can ...

Read More »

Read More »

Character animation: interactive eye movement

Implemented cursor-following eye movement.

Needs some constraints to prevent the eyes from going inwards, though. It'd be neat if they snap back to looking straight ahead when the cursor is detected to go outside the window. That should be easy to do.

[23/06/14 21:56]

Eyes tend to move in immediate motions, so interpolation isn't necessary, but a small amount would look nice. I also want there to be a slight lag and smoothing in the dragon's head and neck movement - the immediate cursor following doesn't look realistic.

A simple approach to this would be to smooth the target point motion - which is what the head/neck movement and the eye movement are following. It could be mapped to a normalised range which can then be put through functions for smoothing and artificial delays.

Or... better: make another point follow the target point with ...

Read More »

Page 1 / 14 Older »