basechannel?



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

    On 27/03/2006 at 03:14, xxxxxxxx wrote:

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

    ---------
    Hi.
    Ive recently shifted to c++ from coffee, and find the 8.5 material system difficult to use... I need to create a new bitmap shader.  I can do it using basechannels, grabbing ,say, the color channel and reading/assignong its bitmap.    I know that basechannels are now old hat, but how do you create a new shader[xbitmap] and  then assign a new bitmap to it?  Can someone show me a quick example how to do this?  
     The prob I have is the basecontainer IDs.  With basechannels  you can set a new filename for the InitTexture to find , but what  are the IDs for an xbitmap ?
    Is it okay to continue using basechannels? Will they suddenly be removed from future versions......?
    thanks for ANY help at all....
    tone.



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

    On 27/03/2006 at 09:21, xxxxxxxx wrote:

    Hi.
    I just need to understand the ethos of materials now...
    If you attach a new shader to a material,  how do you decide which material channel it is working for?  e.g. create a noise shader and apply it to the material`s color channel..
    anyone..........?



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

    On 29/03/2006 at 08:02, xxxxxxxx wrote:

    References to Shaders are now stored in BaseLinks. So you can just do mat->GetDataInstance()->GetLink( MATERIAL_COLOR_SHADER, doc, Xshader ) to get the shader in the color channel for example.
    The id's can be found in mmaterial.h in the resource/res/description folder.

    Some of the shader headers are in
    resource/res/description
    But most of them are in
    resource\modules\shader\res\description
    and
    modules\CINEMA 4D\sla\res\description

    Look for files like Xshadername.h
    The id's for the Bitmap shader are in
    resource/res/description/Xbitmap.h

    To give a channel a bitmap texture you would do something like:
    PluginShader* shd = PluginShader::Alloc(Xbitmap);
    shd->GetDataInstance()->SetFilename(BITMAPSHADER_FILENAME,"texture.jpg");
    mat->GetDataInstance()->SetLink( MATERIAL_COLOR_SHADER, shd );

    Of course, don't forget to check the result of allocations, delete shaders that are not needed anymore.. well you know.. all the memory management stuff that is not needed in coffee..



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

    On 30/03/2006 at 02:09, xxxxxxxx wrote:

    Thanks  Michael....
    I know you pros are generally too busy to help new starters with the basics, but this is much appreciated.
    cheers..
    tone.



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

    On 30/03/2006 at 07:39, xxxxxxxx wrote:

    Hmm..
    Sorry for sounding thick, but  I can use the above to make noise shaders etc. but cannot make a new LayerShader.   .
    I assume you use Insertshader to add layers to an Xlayer..   and then   link to a full-blown LayerShader...    but can`t seem to get it to work.
    cheers...



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

    On 30/03/2006 at 11:23, xxxxxxxx wrote:

    Hi,

    the Layershader is quite special. From the R9.5 SDK upwards, there is a library to deal with it. Look for lib_layershader, or so. If you can't find there what you need, i guess you are out of luck. InsertShader will not work i think.



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

    On 30/03/2006 at 11:27, xxxxxxxx wrote:

    Ah well..
    can`t win em all......
    ta.


Log in to reply