Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

Posts posted by laurups

  1. attribute create:
    set Group Type to Points.
    set Group to which points should receive new value. (This should be setup the same way as the attribute. Such as if attribute "a" is a float, "Type" should be float. If it's a vector, "Type" should be vector)

    Attribute Wrangle:
    set Group to points that should receive new value
    get attribute and define value
    i@a = (value);

    Attribute Adjust Integer/Float/Vector:
    set Group to points that should  receive new value
    Which attribute
    Set constant value

    All these have a similar result to this:

    • Like 1

  2. What might be going wrong is because normals and positions work with floats.
    Which is a lot harder to compare to each other.

    What you could do instead, is actually multiplying your vectors by 1000 or so and then use trunc() to remove the decimals.
    This way the check will be a bit more stable. As floats can have many decimals.

  3. image.png.58de1dd0119e9e914208db6f2d49d9d2.png

    Is this what you meant?
    I took the Cd values and placed it in the light color.

    Because the color attribute is stored in points. And all the points have the same Cd info.
    I used these expressions to send it to light:
    point("../Random_Hue_Colour_Generator", 0, Cd, 0)
    I will break it down if you don't get what's happening.
    point() < get value from a specific attribute and from a specific point.
    1. is from which node it should receive the info
    2. point number
    3. attribute name
    4. index, in this case, XYZ, 0 = X, 1 = Y, 2 = Z

    This is the color stored in Random_Hue_Colour_Generator.                 This is the color value stored in Light.
    image.png.6ca453bca2992c15c3dc68b9e536e30e.png                                  image.png.75aaf13b37df4df2f8a3438a96ec0966.png 

  4. On 12/26/2020 at 1:13 PM, CinnamonMetal said:

    n other words, take one point from the mesh which contains an attribute array and for that one point create a group for all the points for that point in that points attribute array ?

    Well from how I understood how it was working, which I tried to simulate in the file I send.
    That a point contains an array. Obviously I don't know what kind of system you were working with, so maybe you have multiple points with different arrays, who knows!

    But if it's only 1 array, what I like to do is store it in detail, as I don't have to think about the point that contains the info I need.
    In This_Is_A_Setup < AttribWrangle in my file.
    I made a pointattrib for the array. But I could have easily created a detail attrib array instead.

    Left are points and right is detail. It would be easier to grab the detail one.


    It's just something I like to do. Sometimes you need 1 value, but it's stored in every point/prim. Which I think is not needed. Then I like to use detail instead.
    Does this make sense? I can be bad at explaining.

  5. Hello!
    I added a file, the question seemed a little confusing to me, but I think I got it.
    A point cannot contain multiple points, instead you have integers that corresponds as point numbers. That is how I understood it at least.

    I'm not sure why it's saved on a specific point, if it's a single array, it could be saved on detail as well.
    But I tried to recreate what you described.

    What I basically did, was make an attribute wrangle, which would get the array you need. And using a foreach() loop to get each index and put that in setpointgroup().

    I hope this helps