VertexMap colouring



  • On 31/08/2013 at 07:24, xxxxxxxx wrote:

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

    ---------
    Hi folks,

    I feel a bit guilty asking this one as I've gone in circles on similar subjects previously. But...

    How does the vertex map tag do it's drawing? Is that done through a SceneHook, using DrawPolygon()?

    I'm wishing to draw a similar vertex-map-style shading where a colour is interpolated between points on polys. And the only reference I've found doesn't really answer how it's done.

    My experiences with drawing polygons has been somewhat mixed. Some ways seem very slow, while other ways are limited in their scope. Is DrawPolygon() the only way to really achieve vertex-map style colouring?

    WP.



  • On 31/08/2013 at 12:20, xxxxxxxx wrote:

    This doesn't seem to be slow at all to me.
    But I have to confess that I haven't used it in anything with a substantial number of vertices.
    Are you saying that this kind of thing is slow when used on dense meshes?

    TOOLDRAW LiquidToolData::Draw(BaseDocument *doc, BaseContainer &data, BaseDraw *bd, BaseDrawHelp *bh, BaseThread *bt,TOOLDRAWFLAGS flags)  
    {  
      
      Vector red = Vector(1.0, 0.0, 0.0);     //The color Red  
      Vector green = Vector(0.0, 1.0, 0.0);   //The color Green  
      
      Vector vp[4];                           //An array that will hold four vertices  
      vp[0] = Vector(-100.0, -100.0, 0.0);  
      vp[1] = Vector(-100.0, 100.0, 0.0);     //Draws the polygon using the four point positions  
      vp[2] = Vector(100.0, 100.0, 0.0);  
      vp[3] = Vector(100.0, -100.0, 0.0);  
      
      Vector vf[4];                          //An array that holds four colors  
      vf[0] = red;  
      vf[1] = green;                         //Assign the desired color to each specific vertice  
      vf[2] = green;  
      vf[3] = red;  
      
      bd->DrawPoly(vp, vf, NULL, 4, NULL);   //Draw the polygon using the above information  
      
      
      //The rest of the liquid painter code...
    

    -ScottA



  • On 01/09/2013 at 07:21, xxxxxxxx wrote:

    Hi Scott,

    I had some code back home that was using DrawPolygon() - or something similar to what you've got above there. It worked, but at around 500+ polys it started to become quite sluggish. That part of my plugin I've since changed.

    But I'm still in need of a similar draw colouring in the viewport. And it really should be able to handle more than 500-odd polys! The vertex-map seems to do what I'm wishing to achieve colour-wise. But I'm not sure how that does it's draw.

    Is there a way to draw this kind of shading on a PolygonObject() perhaps?

    WP.


Log in to reply