How Visibility Tag work



  • On 16/03/2017 at 08:20, xxxxxxxx wrote:

    I would like to know how exactly the visibility tag work.
    Basicly I want to make something that modify only the viewport aspect of an object like the visibility tag does. I starting diving into point cloud, and have really succesfull test with it and result look promising.
    http://img4.hostingpics.net/pics/289496pointCloud.jpg

    My first idea was simply to set visibility viewport on the attached mesh and then make my own stuff.
    But in this case I will have no control if I want to hide an object.

    About the pointcould impentation for the moment it's only TP particles, but good things with TP is I just have to emit particle and set them into the world position.
    But I was thinking to moving to BaseDraw only for speed since it do not have to handle all the TP things. wich is way more cleaner and maybe faster. But I have to redraw everythings on each camera move since point are only 2D and in top of that I must send a ray from the (3d)points to the camera for checking if any object is beetween and if yes don't display the 2d dots. So does it will be really faster? I doubt.

    But is There any other way for managing particles instead of TP (cause for now I must allocate a Tp-group, hide it, allow X numbers of particles to be viewed and so on)
    Or any other class for making 3d point with a color.
    Again if it's not possible in python it's ok :)
    Thanks in advance.



  • On 17/03/2017 at 02:52, xxxxxxxx wrote:

    Hello,

    there is no "Visibility" tag. Do you mean the "Display" tag?

    The "Display" tag actually doesn't do anything. It is just some data container that stores several settings. It is the job of the renderer or the viewport to handle these settings and to display objects accordingly.

    If you want to define a point cloud with colors you could create a point object and store the colors per point in an VertexColorTag.

    best wishes,
    Sebastian



  • On 17/03/2017 at 03:57, xxxxxxxx wrote:

    Thanks you S_Bach for your reply.

    Yes sorry I mean the Display tag.
    Then for exemple I set the visbility to 0% how to do the same things in my tag?

    About VertexColor tag is not a working solution for me since I want them to display everytime. Not only when I'm on point mode, I also select the object and I also select the Vertex Color Tag.
    Or maybe I have missed something. here is my code

    import c4d
      
    def main() :
        p_obj = c4d.BaseObject(5100)
        list_pt = [c4d.Vector(0,0,0), c4d.Vector(250, 250, 250)]
        p_obj.ResizeObject(len(list_pt))
        p_obj.SetAllPoints(list_pt)
        p_obj.Message(c4d.MSG_UPDATE)
        doc.InsertObject(p_obj)
        
        point_count = p_obj.GetPointCount()
        t_color = p_obj.GetTag(c4d.Tvertexcolor)
        if not t_color:
            t_color = c4d.VertexColorTag(point_count)
            p_obj.InsertTag(t_color)
        
        data = t_color.GetDataAddressW()
        for idx in xrange(point_count) :
            t_color.SetPoint(data, None, None, idx, c4d.Vector4d(1.0, 1.0, 1.0, 1.0))
      
        c4d.EventAdd()
        
    if __name__=='__main__':
        main()
    

    Then it's not a working solution for me. It's why for me only 2 solutions are Particles or manual drawing.
    Basicly I don't want any PointObject I just want a display ;) User won't be able to interact with.

    Anyway thanks you :)


Log in to reply