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

    MAXON Unveils CINEMA 4D Release 11.5

    SDK Help
    0
    23
    13.4k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • H
      Helper
      last edited by

      THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

      On 01/09/2009 at 06:20, xxxxxxxx wrote:

      Thanks Matthias. I tried to compile the C4D SDK in the demo but I cannot get it to fully compile. The API is not able to create the universal binary (Command /Developer/usr/bin/libtool failed with exit code 1) and also the SDK itself gives me a comparable error (Command /Developer/usr/bin/g++-4.2 failed with exit code 1) for building the according binaries.

      Otherwise the project compiles fine (so no code errors in general)

      I have XCode 3.1 and the latest version of OSX 10.5.8 installed. Started the project and compiled.

      Any idea?

      1 Reply Last reply Reply Quote 0
      • H
        Helper
        last edited by

        THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

        On 01/09/2009 at 06:47, xxxxxxxx wrote:

        ok ok, my fault my fault. Wrong permissions set in the folders. 😄

        1 Reply Last reply Reply Quote 0
        • H
          Helper
          last edited by

          THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

          On 01/09/2009 at 07:10, xxxxxxxx wrote:

          Until the CINEMA R11.5 SDK is avaible here an overview about some major changes:

          Introduction

          The R11.5 SDK is no longer backwards compatible in the following areas:

          - Shader
          - Materials
          - Videoposts / Renderer

          If your plugins make use of those areas it needs to be recompiled with R11.5 in order to be registered in the application. Otherwise no change is necessary.
          When trying to recompile you'll see some compilation errors in your source code, that need to be adapted. Also, if you made use of deprecated functions (with the name 'Ex') those parts need to be updated.
          As several data structures have changed substantially the compilation of a Hybrid SDK is no longer possible!

          Double Precision

          All parts of the render API have been moved to double precision to avoid several reoccuring problems. Note that all geometric points and vectors data should be held in double precision (datatypes LReal, LVector, LMatrix).
          Double precision is not necessary for uncritical parts like color calculation.
          To convert the datatype Vector to LVector use LV(), from LVector to Vector use SV(), to convert the datatype Matrix to LMatrix use LM(), from LMatrix to Matrix use SM().
          All ray and intersection calculations must be done in double precision.

          Render Instances

          Render Instances are 'regular' RayObjects, that point to the same data as the original RayObject. So 'padr', 'vadr' etc. are all the same as for the original RayObject. Only textures and materials can be different.
          Only polygonal objects will be Render Instances - all other objects will occur as regular objects.
          Render Instances have the RayObject's member instance set !=NULL. The structure RayObjectInstanceData gives you access to everything you need: instance_of_index is the RayObject index of the original object, 'transform' is the matrix to transform world space points from the original object to the instanced object (still world space). 'transform_inverse' is the path back and 'transform_tensor' allows you to transform normals (see below). 'link' stores the instance object (of type Oinstance) that this instanced RayObject belongs to.

          Transformation from original object's point to instanced object: new_point = old_point * instanced_rayobject- >instance->transform;

          Transformation from instanced object's point to original object: new_point = old_point * instanced_rayobject->instance->transform_inverse;

          Transformation of normal from original object to instanced object: new_normal = !(old_normal^instanced_rayobject->instance->transform_tensor);

          Render Instances are not critical for recompilation - and as long as you don't access the 'padr' field of such an object your code should work right away without any problem.

          RayHitID

          The new class RayHitID replaces the old LONG value that stored information of an object/polygon. It conveniently allows you to set objects with a polygon index, or read this information. SetSecond/GetSecond determine for a quadrangle which part of the quadrangle was stored (A-B-C or A-C-D).

          Instead of 'if (lhit==0)' you need to write 'if (lhit.Content())'
          Instead of 'lhit=0' you need to write 'lhit.Clear()'

          The routines ID_to_Obj and Obj_to_ID have been removed - use the RayHitID class instead.

          Deprecated Functions

          For most of the 'Ex' routines there is just a newer one that does the same.
          For TraceColor(Ex), TraceGeometry(Ex) and GetSurfaceData(Ex) the following statement is no longer true: "if you set last_hit to 0 then BaseVolumeData::lhit will be used". Instead the last hit will stay 0 (no intersection).

          Bucket Rendering

          C4D now renders the image as buckets. Usually this should have little to no effect on your source code.

          VideoPost effects

          VP effects that use the structure 'PixelPost' need to be aware that instead of formerly lines they're no presented with lines of a bucket. Make sure you take the members 'xmin' and 'xmax' into account.
          VP effects that evaluated the message MSG_VIDEOPOST_CREATERAY need to move the code into the new overload 'CreateRay' that is part of VideoPostData.

          RenderDocument

          The routine 'RenderDocument' no longer has the parameters left/top/right/bottom. Instead those values are set into the render data BaseContainer with RDATA_RENDERREGION_LEFT/TOP/RIGHT/BOTTOM, also RDATA_RENDERREGION needs to be set to TRUE if only parts shall be rendered.

          MemoryManagement

          In the past the SDK overloaded the operators new and delete. This is no longer the case. new and delete will allocated and free memory from the operating system, to allow easier linking of DLLs and DYLIBs.
          C4D data structures where control is passed on to C4D (so that you don't free it yourself anymore) must be allocated with gNew and gDelete (or bNew and bDelete for arrays). In general, we recommend to make use of gNew/gDelete whereever possible.

          Threading

          C4D can now run up to 64 render threads simultaneously. Usually this should have little to no effect on your source code.

          1 Reply Last reply Reply Quote 0
          • H
            Helper
            last edited by

            THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

            On 02/09/2009 at 19:25, xxxxxxxx wrote:

            Thanks for the info Matthias.

            I just successfully built my plugin with R11.5. Works quite well.

            One thing tho... GetDEnabling() does not work. The elements always stay enabled. Neither in a videopost nor in a materialdata plugin.

            Any idea how to fix that?

            Thanks in advance!
            Yves

            1 Reply Last reply Reply Quote 0
            • H
              Helper
              last edited by

              THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

              On 02/09/2009 at 19:36, xxxxxxxx wrote:

              nevermind, fixed.

              function definiton differs. before:
              GetDEnabling(GeListNode *node, const DescID &id;, GeData &t;_data, LONG flags, const BaseContainer *itemdesc);

              and now:
              GetDEnabling(GeListNode *node, const DescID &id;, const GeData &t;_data, LONG flags, const BaseContainer *itemdesc);

              compiler just eats it but it wont work 🙂

              1 Reply Last reply Reply Quote 0
              • H
                Helper
                last edited by

                THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

                On 02/09/2009 at 22:49, xxxxxxxx wrote:

                Does this 'RayHitID' affect GeRayColResult?

                Thanks for the heads-up on GetDEnabling(), fused! 🙂

                Arggggg, materials again. Ack.

                1 Reply Last reply Reply Quote 0
                • H
                  Helper
                  last edited by

                  THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

                  On 02/09/2009 at 23:19, xxxxxxxx wrote:

                  More questions:

                  1. AnimateDocument()? What's the replacement or should I change my dozens of references to AnimateDocumentExEx()?

                  2. UVWTag.Set(),Get(),Cpy() : What is the void* dataptr?

                  3. I see that a bunch of TreeViewFunctions have been made OBSOLETE and return error:

                  error C2555: 'FaveResultsFunctions::DrawCell': overriding virtual function return type differs and is not covariant from 'TreeViewFunctions::DrawCell'

                  In the middle of a commercial plugin project, having to update at least two other plugins is going to be distracting with so many changes. We haven't even touched materials yet. ;(

                  1 Reply Last reply Reply Quote 0
                  • H
                    Helper
                    last edited by

                    THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

                    On 02/09/2009 at 23:39, xxxxxxxx wrote:

                    Hey Robert,

                    no idea what the "void* dataptr" is or does, but the old functions are still there. They were just renamed to *Slow(). SetSlow(), GetSlow(), CpySlow().

                    1 Reply Last reply Reply Quote 0
                    • H
                      Helper
                      last edited by

                      THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

                      On 02/09/2009 at 23:42, xxxxxxxx wrote:

                      That was seen but while I'm updating (necessarily) these new methods should be employed. Hey, 'Slow()' infers that the new methods are faster and I can't pass that up! 😉

                      1 Reply Last reply Reply Quote 0
                      • H
                        Helper
                        last edited by

                        THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

                        On 02/09/2009 at 23:44, xxxxxxxx wrote:

                        yeah, true. i made me a bookmark in VS and will wait for the docs ^_^

                        (or Matthias answer)

                        1 Reply Last reply Reply Quote 0
                        • H
                          Helper
                          last edited by

                          THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

                          On 02/09/2009 at 23:53, xxxxxxxx wrote:

                          I'm coming to the conclusion that this might involve you using the previously nonrecommended VariableTag::GetDataAddressR/W() and sending it with these methods for the UVWTag. Why that makes a difference in speed is beyond me (if my assumption is correct).

                          1 Reply Last reply Reply Quote 0
                          • H
                            Helper
                            last edited by

                            THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

                            On 03/09/2009 at 03:30, xxxxxxxx wrote:

                            Coming back to your questions tomorrow.

                            cheers,
                            Matthias

                            1 Reply Last reply Reply Quote 0
                            • H
                              Helper
                              last edited by

                              THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

                              On 03/09/2009 at 23:24, xxxxxxxx wrote:

                              About GetDEnabling() and GetEnabling(), the t_data parameter is constant since CINEMA 4D R11.5.

                              virtual Bool GetDEnabling(GeListNode *node, const DescID &id;,const GeData &t;_data,LONG flags,const BaseContainer *itemdesc)

                              cheers,
                              Matthias

                              1 Reply Last reply Reply Quote 0
                              • H
                                Helper
                                last edited by

                                THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

                                On 03/09/2009 at 23:26, xxxxxxxx wrote:

                                Quote: Originally posted by kuroyume0161 on 02 September 2009
                                >
                                > * * *
                                >
                                > Does this 'RayHitID' affect GeRayColResult?
                                >
                                >
                                > * * *

                                No.

                                1 Reply Last reply Reply Quote 0
                                • H
                                  Helper
                                  last edited by

                                  THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

                                  On 03/09/2009 at 23:33, xxxxxxxx wrote:

                                  Quote: _AnimateDocument()?
                                  >
                                  > * * *
                                  _


                                  This is now:

                                  Bool ExecutePasses(BaseThread* bt, Bool animation, Bool expressions, Bool caches)

                                  > Quote: _UVWTag.Set(),Get(),Cpy() : What is the void* dataptr?
                                  >
                                  > * * *
                                  _


                                  It works now like this:

                                  > \> const void \*dataptr = uvwtag- >GetDataAddressR(); \> \> for (LONG i=0; i<cnt; i++) \> { \>      UVWStruct res \>      UVWTag::Get(dataptr, i, res); \>       \>      //do something with res \> } \>

                                  > Quote: _I see that a bunch of TreeViewFunctions have been made OBSOLETE and return error
                                  >
                                  > * * *
                                  _


                                  DrawCell() is the only new OBSOLETE function for tree views.

                                  cheers,
                                  Matthias

                                  1 Reply Last reply Reply Quote 0
                                  • H
                                    Helper
                                    last edited by

                                    THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

                                    On 04/09/2009 at 08:05, xxxxxxxx wrote:

                                    Quote: Originally posted by Matthias Bober on 03 September 2009
                                    >
                                    > * * *
                                    >
                                    >> Quote: Originally posted by kuroyume0161 on 02 September 2009
                                    >>
                                    >> * * *
                                    >>
                                    >> Does this 'RayHitID' affect GeRayColResult?
                                    >
                                    >
                                    >>
                                    >> * * *
                                    >
                                    >
                                    >
                                    > No.
                                    >
                                    >
                                    >
                                    > * * *

                                    Good. 😄

                                    1 Reply Last reply Reply Quote 0
                                    • H
                                      Helper
                                      last edited by

                                      THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

                                      On 04/09/2009 at 08:22, xxxxxxxx wrote:

                                      Quote: Originally posted by Matthias Bober on 03 September 2009
                                      >
                                      > * * *
                                      >
                                      >> Quote: AnimateDocument()?
                                      >>
                                      >> * * *
                                      >>
                                      >> * * *
                                      >
                                      >
                                      > _
                                      >
                                      > * * *
                                      >
                                      >
                                      > This is now:
                                      >
                                      > Bool ExecutePasses(BaseThread* bt, Bool animation, Bool expressions, Bool caches)
                                      >
                                      > * * *

                                      Strange, but okay.

                                      > Quote: _
                                      >
                                      >> Quote: UVWTag.Set(),Get(),Cpy() : What is the void* dataptr?
                                      >>
                                      >> * * *
                                      >>
                                      >> * * *
                                      >
                                      >
                                      >
                                      > It works now like this:
                                      >
                                      >
                                      >> const void \*dataptr = uvwtag->GetDataAddressR(); \> \> for (LONG i=0; i <cnt; i++) \> { \>      UVWStruct res \>      UVWTag::Get(dataptr, i, res); \>       \>      //do something with res \> }
                                      >
                                      > * * *

                                      Exactly as I surmised.

                                      > Quote: _
                                      >
                                      >> Quote: I see that a bunch of TreeViewFunctions have been made OBSOLETE and return error
                                      >>
                                      >> * * *
                                      >>
                                      >> * * *
                                      >
                                      >
                                      >
                                      > DrawCell() is the only new OBSOLETE function for tree views.
                                      >
                                      > * * *

                                      Yes, you are correct. I hadn't noticed having not used the others.

                                      1 Reply Last reply Reply Quote 0
                                      • H
                                        Helper
                                        last edited by

                                        THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

                                        On 09/09/2009 at 17:57, xxxxxxxx wrote:

                                        What happened to VIDEOPOST_REFRESH?

                                        Here's a code snippet that no longer compiles:

                                        > \> class spBakerVP : public VideoPostData \> { \> public: \>      virtual LONG GetRenderInfo(PluginVideoPost \*node) { return VIDEOPOST_REFRESH|VIDEOPOST_STOREFRAGMENTS; } \>

                                        Is there something that replaces VIDEOPOST_REFRESH? Or do I just omit it now?

                                        Thanks!

                                        1 Reply Last reply Reply Quote 0
                                        • H
                                          Helper
                                          last edited by

                                          THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

                                          On 10/09/2009 at 01:25, xxxxxxxx wrote:

                                          Quote: _Is there something that replaces VIDEOPOST_REFRESH? Or do I just omit it now?
                                          >
                                          > * * *
                                          _


                                          You just omit it.

                                          cheers,
                                          Matthias

                                          1 Reply Last reply Reply Quote 0
                                          • H
                                            Helper
                                            last edited by

                                            THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

                                            On 22/09/2009 at 02:26, xxxxxxxx wrote:

                                            The SDK docu is up:

                                            CINEMA 4D R11.514 SDKdocumentation[URL-REMOVED]


                                            [URL-REMOVED] @maxon: This section contained a non-resolving link which has been removed.

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post