getting final object state, add event [SOLVED]



  • On 05/09/2014 at 06:12, xxxxxxxx wrote:

    User Information:
    Cinema 4D Version:   13++ 
    Platform:   Windows  ;   
    Language(s) :     C++  ;

    ---------
    I'm creating a render engine, so what I want is to get the final object state at current frame (the whole triangle pointer after applying all deformers,tags,xpresso,generators, getting mograph final object data, etc..), getting UVs, other necessary data (like object Matrix4x4,..)

    also what I want is to add a new event to Cinema4D event loop (so I can do other stuff like catching my Qt widgets events inside that added event)



  • On 07/09/2014 at 09:37, xxxxxxxx wrote:

    1. VolumeData should already allow you to access all final data.

    2. SpecialEventAdd() allows you to send your own custom event.



  • On 07/09/2014 at 17:42, xxxxxxxx wrote:

    thanks Samir to point out about VolumeData, I have checked it here http://www.maxonexchange.de/sdk/CINEMA4DSDK/help/pages/c4d_tools/struct_VolumeData1663.html
    but for some reason I sense it is "tied" to Cinema4D Render engine module

    what I wanted is something similar to a "current state to object" which will contain final geometry data, + a "flattened" mograph cloner final data (to get cloned objects final form, know if they are instances or not)



  • On 08/09/2014 at 04:34, xxxxxxxx wrote:

    You can use the VolumeData to retrieve these information. The RayObjects are the scene objects but converted to final polygon state (with all deformers etc. already applied). So you can read them from the VolumeData before your Renderer kicks in and you can then convert them to whatever data you need for your renderer.



  • On 08/09/2014 at 06:08, xxxxxxxx wrote:

    wow 😄 , this is really helpful, thanks Samir



  • On 09/10/2014 at 14:09, xxxxxxxx wrote:

    one question now as I'm involved in the process, I'm kinda stuck in understanding how to "dominate" the "render" call!!

    I guess the only option to create a render engine plugin is VideoPostData plugin
    now how to "override" other shader/render data in the scene? for example when the user hit "render" it should render the scene with my render engine , ignoring native materials, where to start from?

    edit:
    from VPVisualizeNormals example, I see VIDEOPOSTCALL_RENDER is the message that I need to check about, but it still executes Cinema 4D standard renderer, how to make it execute "only" my renderer? "or may be it is the wrong plugin type!!"



  • On 10/10/2014 at 01:19, xxxxxxxx wrote:

    SkipRenderProcess() is what you need.



  • On 10/10/2014 at 01:28, xxxxxxxx wrote:

    for example  
      
    if (vps->vp==VIDEOPOSTCALL_RENDER && vps->open)
     vps->vd->SkipRenderProcess();
    


  • On 10/10/2014 at 02:21, xxxxxxxx wrote:

    thanks Samir , you saved my day here



  • On 10/10/2014 at 02:55, xxxxxxxx wrote:

    one last question which is related to user interface, I'm kinda "LOST" in understanding how user interface works

    what I understand: customizing a simple object plugin, modifying user interface "from text files, .." , and I know that each plugin should have its own area for data, like tags, objects, materials,..

    what I needed to know:
    1- how to do this "graphically" , I checked ResEdit plugin, but couldn't understand how it works
    2- can ResEdit help with "extending" UI? for example I wanna add my render engine in the renderers drop down "standard, physical, software, hardware, cineman, ..others.."

    I know this is kinda a noob question, but I sense that I need to understand it properly, feel free to explain the whole concept on how they work

    what I expect from UI:
    1- layout: buttons, checkboxes, sliders, .....
    2- where it lies: inside xpresso node, material, videopost, ...

    I'm kinda understanding (1) but need to do it graphically, and totally not understanding (2) or the connection between both



  • On 21/10/2014 at 08:24, xxxxxxxx wrote:

    Hi MohamedSakr,

    You confirmed the original question of this topic was answered, so I set the thread to [SOLVED].  However, you then asked a very open ended question about how user interfaces work.  Could you please start a separate thread about it?  That would make it easier to keep the original and new topic separate.  Otherwise, if you've found what you needed for that topic too, please mention it.

    Thanks,

    Joey Gaspe
    SDK Support



  • On 21/10/2014 at 10:25, xxxxxxxx wrote:

    hi Joey,
    thanks , I will post a new question, I didn't mark as solved because I was gonna ask further questions about events, but nvm, I will ask them at a latter stage in another thread


Log in to reply