Ogre3D

Working an important refactoring of the classes for…

Working an important refactoring of the classes for the next release of the engine (v0.2). The works will starts beginning of 2018. There is a complete description of the new classes here: https://bitbucket.org/polymorphteam/pe.2.0/wiki/pobject

PLine a class to draw lines It might…

PLine, a class to draw … lines! It might seems stupid, but drawing lines is no the default purpose of a game engine. Drawing a line that connect 2 objects for instance is painfull to do with a parallelepiped, especially when you need its thickness to stay constant! The class PLine is there to help.

1K spheres 7 static boxes It has been…

1K spheres, 7 static boxes. It has been a hard day: the communication between Bullet and Ogre has been completely reviewed: update of the physical world is now linked to the Ogre rendering cycle through Ogre::RenderQueueListener, meaning a more consistent frame cycle; PObjects (any renderable object in the scene) are smart enough to update the

Working on a two passes material the shadow…

Working on a two passes material, the shadow pass being potentially added automatically in the material by enabling shadows. Here is how it looks: material two_pass_shadows {   receive_shadows on   technique   {          shadow_caster_material shadowscaster          pass standard     {       ambient 0.0 0.0 0.0 1.0       diffuse 0.8 0.8 0.8 1.0       specular 0.0 0.0 0.0 1.0 0.0       emissive

Juste pour vos yeux le dump d’un matériau…

Juste pour vos yeux, le dump d’un matériau Ogre:  PMaterial:     group: General     name: shadows_pssm_cube     receive shadows: 1     transparency cast shadows: 0     size: 3862     techniques: 1         technique[0]             name:             scheme: Default             lod index: 0     passes: 1         pass[0]             name: 0         ** programs:             vertex program: Shadows_pssm_vs             fragment program: Shadows_pssm_ps             compute program:             shadow caster fragment program:             shadow caster vertex program:

Back to shadows problem currently implementing a clean…

Back to shadows problem, currently implementing a clean version of the Parallel-split shadow maps (pssm) in a way it could be packed nicely in the standard assets of the engine. , source: https://www.researchgate.net/publication/220805307_Parallel-split_shadow_maps_for_large-scale_virtual_environments End of the day PSSM shadows are applied “correctly” in the materials. Still a lot do to to be able to set

Long time no see but polymorph engine development…

Long time no see, but polymorph engine development is back on track! The XML describing a polymorph’s project is now able to configure the Ogre’s compositor, understand the post-processing module. The first screenshot is using a custom compositor with this configuration: <workspace name=”TuningScoreWS”>   <script group=”General” workspace=”CustomCompositor” />   <colors>     <color name=”background_center” value=”0,1,0″ node=”0″ pass=”1″ index=”4″/>     <color

Several hours of work later the class PMaterial…

Several hours of work later, the class PMaterial is fully integrated to PNode. This part has been tricky: materials and textures are shared objects, managed by managers below the objects. The approach is to create PMaterial on demand, when you call pnode.getMaterial, for instance. Once created, it stays in the pnode until you destroy it

new class in package PMaterial This class is…

new class in package: PMaterial. This class is an helper that simplify the access to the multiple layers of Ogre’s materials. There are 3 levels in a material: technique pass texture units The usual Ogre way to access to modify a pass diffuse is looking like this: Ogre::MaterialPtr ptr = Ogre::MaterialManager::getSingleton( ).load( “mat”, “group” );

I’ve learned something really important today an OpenGL…

I’ve learned something really important today: an OpenGL context can be accessed by one and ONLY one thread! See Under what circumstances would glGenBuffers/glGenBuffersARB fail?. And this is the first time I feel annoyed by the singleton approach of Ogre3D. In my asset converter util, I use Ogre object, the MeshManager mainly, to convert xml

I’m currently working on a more user friendly…

I’m currently working on a more user friendly mesh, skeleton & materials converter. For the little story, when you export a model from blender, the blender addon outputs xml files. These files have to be parsed by the OgreXMLConverter to produce the final files. *.mesh & *.skeleton files are binaries. It’s a tedious process, especially

from world space to camera space [PE]

New example showing how to go from world space to camera space. A bit of explanation. The black sphere is attached to the pink camera. Therefore, it is located in the camera space, meaning that its position, rotation and scale depends on the camera ones. By default, the sphere is static in the point of

Currently working on PCamera class a class to…

Currently working on PCamera class (a class to manage … camera!). The new samples/0.1/example.cam shows how to create one and render it onto a texture. In these images, the pink texture on the cube is the rendering of the camera rotating in the center of the scene, the tall pink cone. It is very ogry

Working on a debugging view for skeletons a…

Working on a debugging view for skeletons, a good way to learn how #ogre3d is storing skeletal data. There’s a scaling issue: the points in the face are not correctly placed, they should be at the lips borders, at the basis of the nose and closer to the eyebrows. The visualisation is not the same