Tagged: tech demo Toggle Comment Threads | Keyboard Shortcuts

  • frankiezafe 20:38 on 2017-10-10 Permalink | Reply
    Tags: , , tech demo, ,   

    Visualisation of contact events in the engine. Wireframe objects are the actual physical objects. The small plain spheres are placed at the position of the contact (or the average of all points), and reacts to impulse. Impulse is one of the components of the forces applied on the objects while bullet resolves the world.

    Legend:

    • impulse > 1000: red material;
    • impulse > 1: yellow material;
    • by default: cyan material;
    • scale calculation: (3 + impulse * 0.00001) caps at 15.

    To be precise, the impulse used here is the delta of the previous and current impulse.

    The video shows only one of the 2 contact events you can retrieve from engine:

    • pairs: represents the relation between 2 objects in contact (visualised here);
    • per object: it is also possible to retrieve contacts for a specific object.

    In future version, I plan to enable specific pair listening (“i want to know when this specific object touch this other specific object”).

     
  • frankiezafe 19:50 on 2017-10-06 Permalink | Reply
    Tags: , pssm, , tech demo,   

    Tech info: 3 splits, 4096, 2048 & 1024 maps, 2 pass materials on all objects, gpu: GTX 980.

    Working on an “easy” to deploy shadow system for the engine. The work now is to make the activation of these as simple as possible.

    For the moment, the activtion has to be done manually through many steps: loading specific resources, activating them, modification of the default PolymorphApplication methods, etc.

    To make it simplier, the resources should be placed in zip, like the PolymorphTrays.zip (containing the UI style), and loaded via standard methods.

    Just to mention, I discovered the “import” feature in ogre’s materials, just wonderful! To modify the appearence of the balls in the video, one just have to inherit from a complex material called two_pass_shadows declared in the shadow package, in shadows_pssm.material file.

    import * from “shadows_pssm.material”
    material ball_mat : two_pass_shadows
    {
      technique
      {
        pass standard
        {
          diffuse 0.1 0.99 0.95 1.0
          texture_unit
          {
            texture retro.png
            colour_op alpha_blend
          }
        }
      }
    }

    see Script-Inheritance for details.

     
  • frankiezafe 18:25 on 2017-02-01 Permalink | Reply
    Tags: , , tech demo,   

    Technical demo.

    Based on the patches started yesterday evening, the example.pd shows how PD can be used with its user interface to interact RT with the engine. Once the work is done, by commenting a #define in the main class, you switch to release mode, without changing anything to the patch!

    Parts of the video:

    1. edition: puredata used with ogre3d
    2. release: libpd loads the pd patch inside of ogre3d

    As explained in this post, the edition is based on an OSC communication between the two apps, it works with the basic puredata.

    There is 2 VERY important objects in this patch:

    • pobject_in: it can parse osc messages as well as internal messages (when used in release mode); it also create 4 internal senders pobject_in_trans, pobject_in_rot, pobject_in_scale & pobject_in_all; no need to be plugged to the pobject_in box, you can receive the messages anywhere in your patches;
    • pobject_out: it can pack osc messages for the engine as well as internal messages (when used in release mode); it also create 4 internal receivers pobject_out_trans, pobject_out_rot, pobject_out_scale & pobject_out_all; no need to be plugged to the pobject_out box, you can send messages from anywhere in your patches;

    On the C++ side, the PdEngine has to be set in edition or release mode to works properly with pd. The communication with pd happens through the same methods. The idea here is to make the two modes transparent to the user, even if the c++ guy has to know what he’s doing :).

    Keep in mind it’s a demo and there is a lot of optimisation to do on the C++ level, but it gives a good idea of the integration of the 2 libraries.

    And, yeah, i’ll have to check how to record the sound with ffmpeg on linux…

     
c
Compose new post
j
Next post/Next comment
k
Previous post/Previous comment
r
Reply
e
Edit
o
Show/Hide comments
t
Go to top
l
Go to login
h
Show/Hide help
shift + esc
Cancel