Maxon Developers Maxon Developers
    • Documentation
      • Cinema 4D Python API
      • Cinema 4D C++ API
      • Cineware API
      • ZBrush GoZ API
      • Code Examples on Github
    • Forum
    • Downloads
    • Support
      • Support Procedures
      • Registered Developer Program
      • Plugin IDs
      • Contact Us
    • Categories
      • Overview
      • News & Information
      • Cinema 4D SDK Support
      • Cineware SDK Support
      • ZBrush 4D SDK Support
      • Bugs
      • General Talk
    • Unread
    • Recent
    • Tags
    • Users
    • Login
    1. Maxon Developers Forum
    2. freeze
    F
    • Profile
    • Following 0
    • Followers 0
    • Topics 5
    • Posts 15
    • Best 0
    • Controversial 0
    • Groups 0

    freeze

    @freeze

    0
    Reputation
    8
    Profile views
    15
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    freeze Unfollow Follow

    Latest posts made by freeze

    • RE: Continuously refresh the render result to the view port

      @ferdinand Thank you very much ! Learned a lot from this.

      posted in Cinema 4D SDK
      F
      freeze
    • RE: Continuously refresh the render result to the view port

      @ferdinand Thank you very much for replying a lot ! We do have own view port program for renderer ,but some users would like to see the result in viewport of c4d as using redshift .
      And I find that I can send the datas into ShowBitmap to show image in picture viewer, like:

              AutoAlloc<BaseBitmap> bitmap;
              CheckState(bitmap);
              bitmap->Init(500, 500, 32);
              ShowBitmap(bitmap);
      

      so I wonder if there is similar way to show image on viewport of c4d.I tried to find the answer in SDK DOC BaseDraw part but not get the answer yet.
      Great Thanks !

      posted in Cinema 4D SDK
      F
      freeze
    • Continuously refresh the render result to the view port

      I made a VideoPostPlugin to render images ,with Excute method like:

      RENDERRESULT SmarayPlugin::Execute(BaseVideoPost* node, VideoPostStruct* vps)   {
           if (!vps || !vps->render) return RENDERRESULT::FAILED;
           if (vps->vp != VIDEOPOSTCALL::RENDER || !vps->open)
               return RENDERRESULT::OK;
      
           VPBuffer* rgba = vps->render->GetBuffer(VPBUFFER_RGBA, NOTOK);
           if (!rgba) 
               return RENDERRESULT::OUTOFMEMORY;
      
           BaseContainer* data = node->GetDataInstance();
           if (!data)
               return RENDERRESULT::FAILED;
      //// SOME RENDERER CODES AND SET RENDER RESULT INTO BUFFER LIKE
      //         for (Int32 y = 0; y < height; ++y)
      //         {
      //             rgba->GetLine(0, y, width, buffer.data(), 32, true);
      //             b = buffer.data();
      //             for (Int32 x = 0; x <= width; x++, b += channels)
      //             {
      //                 auto idx = (height - y - 1) * width + x;
      //                 b[0] = datas[idx * 4];
      //                 b[1] = datas[idx * 4 + 1];
      //                 b[2] = datas[idx * 4 + 2];
      //             }
      //             rgba->SetLine(0, y, width, buffer.data(), bitdepth, true);
      //         }
      ////END
           return RENDERRESULT::OK;
      }
      

      Now I've created a CommandPlugin .I want to make this Command to controll a thread which continuously refresh the render result to the view port ,anyway to do this by some APIs or can I find some examples for this?
      Many Thanks!

      posted in Cinema 4D SDK c++ windows 2025
      F
      freeze
    • RE: How to add command plugins' dropdown menu on to c4d main menu bar

      @ferdinand Thank you for replying!

      posted in Cinema 4D SDK
      F
      freeze
    • How to add command plugins' dropdown menu on to c4d main menu bar

      How to add command plugins' dropdown menu on to c4d main menu bar or viewport menu bar like redshift ,as the picture shows:
      111.png
      The examples in C++ SDK put them all into the Extensions as default.

      posted in Cinema 4D SDK c++ windows 2025
      F
      freeze
    • RE: Start IPR rendering in the viewport

      @ferdinand Thank you for answering ,I 'll try it.

      posted in Cinema 4D SDK
      F
      freeze
    • RE: Start IPR rendering in the viewport

      Hello @ferdinand ,
      I have created a Message method as:

      Bool SmarayPlugin::Message(GeListNode* node, Int32 type, void* data) 
      {
      
          BaseList2D* const item = static_cast<BaseList2D*>(node);
          if (!item)
              return false;
      
          BaseContainer* renderdata = item->GetDataInstance();
      
          switch (type)
          {
          case MSG_DESCRIPTION_COMMAND:
          {
              DescriptionCommand* dc = static_cast< DescriptionCommand*>(data);
              if (dc->_descId[0].id == AOV_MANAGER_BUTTON)
              {
                  if (aov_dialog) {
                      aov_dialog->Close();
                      DeleteObj(aov_dialog);
                  }
      
                  aov_dialog = NewObjClear(UISmarayAOVManager, renderdata);
                  if (aov_dialog) {
                      aov_dialog->Open(DLG_TYPE::ASYNC, 800, 800, 800, 600);
                  }
              }
              break;
          }
          default:
              break;
          }
      
          return VideoPostData::Message(node, type, data);
      }
      

      I use it to get the button clicked event to create dialog for setting the AOVs and I find that it may get different type of Message .So can I just check if it is EVMSG_CHANGE and go through my own logic here?

      posted in Cinema 4D SDK
      F
      freeze
    • Start IPR rendering in the viewport

      I register a VideoPostPlugin as a renderer.Now I can render an image to viewport or picture viewer in c4d with my own renderer plugin.
      How can I get the message that the scene changed so I can update the render view with new scene data and display in the viewport of c4d ,just like Redshift Start IPR ,using c++.
      Many Thanks!

      posted in Cinema 4D SDK windows c++ 2025
      F
      freeze
    • RE: Get the random result of Cloner Object

      @ferdinand Thank you very much! The problem is solved and now I know the way of MODATA_CLONE used.

      posted in Cinema 4D SDK
      F
      freeze
    • RE: Get the random result of Cloner Object

      @ferdinand I got the transform I need as a result matrix by following code:

      			Matrix clonerMatrix = clonerObj->GetMg();
      			Int32 matrixItemsCnt = moData->GetCount();
      			Matrix* itemsMtxArray = static_cast<Matrix*>(moData->GetArray(MODATA_MATRIX));
      			for (int matrixIdx = 0; matrixIdx < matrixItemsCnt; matrixIdx++)
      			{
      				auto result = clonerMatrix * itemsMtxArray[matrixIdx];
      			}
      

      In this case I have 2 objects as children of clonerObj like the picture below:
      3.png
      Now I just want to find out that every result matrix I got before belongs "Cube" or "group" Object. Any way to do this in c++? Thanks!

      posted in Cinema 4D SDK
      F
      freeze