InitBakeTexture compile error



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

    On 23/09/2010 at 03:00, xxxxxxxx wrote:

    I don't know why, but the err parameter in InitBakeTexture(...) is BAKE_TEX_ERR_WRONG_BITMAP, after call the function.

    I'm really confused, because InitBakeTexture() does not handle a bitmap as parameter... so why it says wrong bitmap??

    And BakeTexture(...) returns BAKE_TEX_ERR_NO_DOC. I have two BaseDocuments, one is doc, is the main document in the plugin:

    virtual Bool SequentialBaking::Execute(BaseDocument *doc)

    And the other is created only for the baking process, bakeDoc:

    BaseDocument* bakeDoc = BaseDocument::Alloc();

    My calls to bake texture:

    ---------------------------------------------------------

    bakeDoc = InitBakeTexture((BaseDocument* )doc, (TextureTag* )textag, (UVWTag* )uvwtag, NULL, bakeSettings, &error3, NULL);

    // error3 = BAKE_TEX_ERR_WRONG_BITMAP

    // BaseBitmap:
                      BaseBitmap* resultbitmap = BaseBitmap::Alloc();

    error = BakeTexture((BaseDocument* )bakeDoc, NULL, resultbitmap, NULL,NULL,NULL);

    //error = BAKE_TEX_ERR_NO_DOC

    // and of course resultbitmap->Save returns NULL...

    -------------------------------------------------------

    I'm really confused... Anyone knows how to make it work?? I only want to save the baked textures in a folder, with the name of the baked object...

    Thanks for the help.

    Cheers



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

    On 29/09/2010 at 06:09, xxxxxxxx wrote:

    It seems that the BAKE_TEX_AUTO_xxx IDs are causing the errors. It's not quite clear to me how to use them either. I will ask the developers.

    Using a fixed texture size seems to work fine though (BAKE_TEX_WIDTH, BAKE_TEX_HEIGHT).

    cheers,
    Matthias



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

    On 30/09/2010 at 04:30, xxxxxxxx wrote:

    Ok thanks Matthias, I will try using a fixed size, would be great to view autosize working... 🙂

    I will post the results.

    Cheers



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

    On 01/10/2010 at 01:17, xxxxxxxx wrote:

    Same errors using a fixed 1024x1024 size...



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

    On 04/10/2010 at 06:57, xxxxxxxx wrote:

    It seems to work fione here.

    Here my test code:

      
    Bool MenuTest::Execute(BaseDocument *doc)  
    {  
      BaseObject *obj = doc->GetFirstObject();  
      if (!obj) return FALSE;  
      
      BaseContainer bakeSettings;  
      
      bakeSettings.SetBool(BAKE_TEX_USE_CAMERA_VECTOR, FALSE);  
      bakeSettings.SetBool(BAKE_TEX_USE_POLYSELECTION, FALSE);  
      bakeSettings.SetBool(BAKE_TEX_AMBIENT_OCCLUSION, FALSE);  
      bakeSettings.SetBool(BAKE_TEX_NORMAL, FALSE);  
      bakeSettings.SetBool(BAKE_TEX_SURFACECOLOR, FALSE);  
      bakeSettings.SetBool(BAKE_TEX_COLOR, FALSE);  
      bakeSettings.SetBool(BAKE_TEX_DIFFUSION, FALSE);  
      bakeSettings.SetBool(BAKE_TEX_LUMINANCE, FALSE);  
      bakeSettings.SetBool(BAKE_TEX_ALPHA, FALSE);  
      bakeSettings.SetBool(BAKE_TEX_ALPHA, FALSE);  
      bakeSettings.SetBool(BAKE_TEX_ILLUMINATION, TRUE);  
      bakeSettings.SetBool(BAKE_TEX_SHADOWS, TRUE);  
      
      bakeSettings.SetBool(BAKE_TEX_BUMP, FALSE);  
      bakeSettings.SetBool(BAKE_TEX_TRANSPARENCY, FALSE);  
      bakeSettings.SetBool(BAKE_TEX_UVMAP, FALSE);  
      bakeSettings.SetBool(BAKE_TEX_REFLECTION, FALSE);  
      
      bakeSettings.SetBool(BAKE_TEX_USE_PHONG_TAG, TRUE);  
      bakeSettings.SetBool(BAKE_TEX_COLOR_ILLUM, TRUE);  
      bakeSettings.SetBool(BAKE_TEX_COLOR_SHADOWS, TRUE);  
      
      bakeSettings.SetLong(BAKE_TEX_WIDTH, 512);  
      bakeSettings.SetLong(BAKE_TEX_HEIGHT, 512);  
      bakeSettings.SetLong(BAKE_TEX_PIXELBORDER, 2);  
      bakeSettings.SetVector(BAKE_TEX_FILL_COLOR, Vector(1.0));  
      
      BaseTag* textag = obj->GetTag(Ttexture);  
      BaseTag* uvwtag = obj->GetTag(Tuvw);  
      
      if(textag)  
      {  
          LONG error;  
      
          BaseDocument *bakeDoc = InitBakeTexture(doc, (TextureTag* )textag, (UVWTag* )uvwtag, NULL, bakeSettings, &error, NULL);  
      
          AutoAlloc<BaseBitmap> bmp;  
          if (!bmp) return FALSE;  
            
          if (bakeDoc) error = BakeTexture(bakeDoc, bakeSettings, bmp, NULL, NULL, NULL);  
      
          ShowBitmap(bmp);  
      }  
        
      return TRUE;  
    }  
    

    cheers,
    Matthias



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

    On 04/10/2010 at 15:30, xxxxxxxx wrote:

    Modifing the code like your example works (YES, THANK YOU!😄), but only if I use a fixed bitmap size.

    Can you give a working autosize example please??

    Thank you again for your help, Matthias



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

    On 02/01/2012 at 20:34, xxxxxxxx wrote:

    Sorry for resurrecting this old thread. But I can't get the example Matthias posted to work.
    The error I get is: no instance of overloaded function "InitBakeTexture" matches the argument list

    I'm puzzled why it's asking me to overload a method. Because there is never one used in any of the above examples.
    And when I try to make one inside of my class. I can't get it to compile.

    Did something change between then and now that's making this not work anymore?

    -ScottA



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

    On 03/01/2012 at 00:22, xxxxxxxx wrote:

    Hi,

    The compiler doesn't tell you to overload  InitBakeTexture (). InitBakeTexture() has 2 overloads (2 versions of the function but with different arguments) and it just can't find which overload to call.

    Instead of declaring error as LONG:

    LONG error;
    

    Declare it as BAKE_TEX_ERR:

    BAKE_TEX_ERR error; 
    

    And it compiles fine now - yes just that... poor compilers :).



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

    On 03/01/2012 at 01:32, xxxxxxxx wrote:

    I've just looked in the SDK docs up to R13 and the error parameter is given as a LONG. So this looks like a documentation error. Can't really blame the compiler for that :-)

    (Looking in c4d_tools.h shows that InitBakeTexture does use BAKE_TEX_ERR but this change hasn't made it into the docs.)

    Steve



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

    On 03/01/2012 at 02:36, xxxxxxxx wrote:

    Originally posted by xxxxxxxx

    I've just looked in the SDK docs up to R13 and the error parameter is given as a LONG. So this looks like a documentation error. Can't really blame the compiler for that :-)

    (Looking in c4d_tools.h shows that InitBakeTexture does use BAKE_TEX_ERR but this change hasn't made it into the docs.)

    Right. The parameter type is wrong in the docs. So... blame the docs 🙂.
    Thanks for pointing that out Steve.



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

    On 03/01/2012 at 07:38, xxxxxxxx wrote:

    Thanks.
    Works fine now with the correct type.

    -ScottA


Log in to reply