Hello
I've been suffering a bit with points not redrawing correctly in the viewport.
They'll quite often leave a ghost point behind or occasionally just not update their position, but if you look in the geo spreadsheet can see them moving.
A scene reload fixes it. Not sure but seems like it might more common with a sop solver
Are there any settings that I might need to adjust to avoid this?
I’m running a RTX30 series card 460.89 studio drivers, 18.5.408, win10
Any thoughts appreciated
Found 127 posts.
Search results Show results as topic list.
Technical Discussion » Viewport point redraw ghosting
- Hatchery
- 133 posts
- Offline
Technical Discussion » From wrangle, get point list from a group sop?
- Hatchery
- 133 posts
- Offline
Is this what you were thinking - see attached?
Detail wrangle 1
Detail wrangle 2
Detail wrangle 1
i[]@pointnumbers; for(int i = 0; i < npoints(0); i++){ if(inpointgroup(0,"pick_3_points",i)){ append(i[]@pointnumbers,i); } } int firstindex = i[]@pointnumbers[0]; push(i[]@pointnumbers, firstindex);
Detail wrangle 2
addprim(0,"polyline",i[]@pointnumbers);
Houdini Indie and Apprentice » Eye art using boolean
- Hatchery
- 133 posts
- Offline
Hello - I’m pretty new to Houdini but been creating this image (attached)
I've managed to put it together pretty easily copying a number of slightly deformed tubes to the points of circle with its normals facing outwards.
There is then a voronoifracure object used to create the segments and this is all brought together and Boolean to create the cell like gaps –
Now the trouble is, although this works and actually maintains some level of proceduralism, the nature of the detail and the Boolean means it's pretty slow and it feels like there might be a more efficient way of doing this? Just wondered if someone might be able to point me in the right direction of some possible ways to have another crack at it.
Just have to say, coming from 3DS Max for the past 10+ years, that fact that you actually can use a boolean on this and update the tube and it still feedback through to the render is jaw dropping
Thank you
I've managed to put it together pretty easily copying a number of slightly deformed tubes to the points of circle with its normals facing outwards.
There is then a voronoifracure object used to create the segments and this is all brought together and Boolean to create the cell like gaps –
Now the trouble is, although this works and actually maintains some level of proceduralism, the nature of the detail and the Boolean means it's pretty slow and it feels like there might be a more efficient way of doing this? Just wondered if someone might be able to point me in the right direction of some possible ways to have another crack at it.
Just have to say, coming from 3DS Max for the past 10+ years, that fact that you actually can use a boolean on this and update the tube and it still feedback through to the render is jaw dropping
Thank you
Edited by Hatchery - June 19, 2020 13:10:43
Technical Discussion » Vex and solver
- Hatchery
- 133 posts
- Offline
Hello
As part of learning Houdini and vex, i've been adapting some stuff from Daniel Shiffmans excellent Nature of Code book, in this case a pretty basic random walker.
To make it my own I've used a Solver followed by a trail node and metaballs to create a fairly cool organic mitosis setup.
It's all working okay but im just really conscious that by trying to teach myself i might not be doing things in the most efficent way possible and was hoping someone could offer any tip/suggestion on ways they might condense/optimize the code
In the solver ive setup two Attribute Wrangles (that's all there is in the sop), the first is set to run over a single point in the first frame and then multiple points as frames progress.
The second wrangle is a set to detail to create new points.
Wrangle 1
Wrangle 2 linked to Wrangle 1
Any comments much appreciated
Also should this type of thing actually be posted in the Indie/Apprentice channel?
As part of learning Houdini and vex, i've been adapting some stuff from Daniel Shiffmans excellent Nature of Code book, in this case a pretty basic random walker.
To make it my own I've used a Solver followed by a trail node and metaballs to create a fairly cool organic mitosis setup.
It's all working okay but im just really conscious that by trying to teach myself i might not be doing things in the most efficent way possible and was hoping someone could offer any tip/suggestion on ways they might condense/optimize the code
In the solver ive setup two Attribute Wrangles (that's all there is in the sop), the first is set to run over a single point in the first frame and then multiple points as frames progress.
The second wrangle is a set to detail to create new points.
Wrangle 1
string RandDir = "none"; float ranLoc = fit01(rand(@ptnum),-0.01,0.01); float ranNum = rand(@ptnum+@numpt); if (ranNum > 0 && ranNum < 0.2){ RandDir = "up"; i@Age = i@Age +1; @P.z = @P.z +ranLoc; } else if (ranNum > 0.2 && ranNum < 0.4) { RandDir = "down"; i@Age = i@Age +1; @P.z = @P.z -ranLoc; } else if (ranNum > 0.4 && ranNum < 0.6){ RandDir = "left"; i@Age = i@Age +1; @P.x = @P.x -ranLoc; } else { RandDir = "right"; i@Age = i@Age +1; @P.x = @P.x +ranLoc; }
Wrangle 2 linked to Wrangle 1
i@Age = point(0,'Age',0); vector pos = point(0,'P',i@numberOfPoints); //Adds a new point from the last point every XX frames if (i@Age == 10){ addpoint(0,pos); setpointattrib(0,'Age',0,0,"set"); i@numberOfPoints++; }
Any comments much appreciated
Also should this type of thing actually be posted in the Indie/Apprentice channel?
Edited by Hatchery - June 8, 2020 07:37:41
Technical Discussion » Push a value to an array if it's not already in the array
- Hatchery
- 133 posts
- Offline
Technical Discussion » Push a value to an array if it's not already in the array
- Hatchery
- 133 posts
- Offline
Hello - since posting this i actually figured i could do like the below - please do let me know if there's any better approach:
i[]@pointsArray1 = {0,2,7,8,10}; i[]@pointsArray2 = {0,3,5,7,8,11,15,16,10}; for (int i=0; i<len(i[]@pointsArray2);i++){ if (!(find(i[]@pointsArray1, i[]@pointsArray2[i])>=0)) { push(i[]@pointsArray1,i[]@pointsArray2[i]); } }
Technical Discussion » Push a value to an array if it's not already in the array
- Hatchery
- 133 posts
- Offline
Hello
New to VEX and i have a question on arrays.
Is there a way to take the values from Array2 and push()them into Array1, but only if the value in Array2 doesn't already exist in Array1, preventing duplicates? (Ill be using in a solver, finding more and more points as it progresses)
I've figured out a way to do the reverse (see below)- Comparing Array1 and Array2, pushing the duplicates to a separate array and then using this to remove the values from a combined Array1&2 - but this seem a but long winded or inefficient?
Any thoughts much appreciated
New to VEX and i have a question on arrays.
Is there a way to take the values from Array2 and push()them into Array1, but only if the value in Array2 doesn't already exist in Array1, preventing duplicates? (Ill be using in a solver, finding more and more points as it progresses)
I've figured out a way to do the reverse (see below)- Comparing Array1 and Array2, pushing the duplicates to a separate array and then using this to remove the values from a combined Array1&2 - but this seem a but long winded or inefficient?
i[]@pointsArray1 = {0,2,7,8,10}; i[]@pointsArray2 = {0,3,5,7,8,11,15,16,10}; i[]@newArray; //Compare both arrays and extract the duplicate values foreach (int num; i[]@pointsArray1){ for(int i = 0; i<len(i[]@pointsArray2);i++){ if(num == i[]@pointsArray2[i]){ push(i[]@newArray,i[]@pointsArray2[i]); } } } //Combine both arrays into one push(i[]@pointsArray1,i[]@pointsArray2); //Take the know duplicates and remove from the combined array for(int i = 0; i<len(i[]@newArray);i++){ removevalue(i[]@pointsArray1,i[]@newArray[i]); }
Any thoughts much appreciated
-
- Quick Links