Jump to content

Syrux

Members
  • Posts

    26
  • Joined

  • Last visited

About Syrux

  • Birthday 02/12/1994

Personal Information

  • Name
    Linder

Recent Profile Visitors

1,934 profile views

Syrux's Achievements

Newbie

Newbie (1/14)

1

Reputation

  1. Check this code -> http://forums.odforce.net/topic/17811-openvdb-sdf-data-access/ Also UT_Vector3 is deprecated
  2. https://www.sidefx.com/index.php?option=com_forum&Itemid=172&page=viewtopic&p=165684#165684
  3. Hello, What is the best way to proceed for profiling the code? I'm using the built-in profiler in VS2010 without no luck. When I start the profiling session (CPU sampling) the report is showing me the time Houdini spends in all the dlls, like the graphics drivers, or the opengl driver, instead of showing me the time spent in each function of the custom plugin. When doing the instrumentation, VS opens Houdini with the default scene. That's it. I could use the random-pausing technique but the code ends so fast (0.1 s) that I'm unable to get any useful sample. I haven't found any post related to profiling code neither here or in SESI forums. Thanks in advance
  4. SOP Solver, That's it. I hook the previous frame to the plugin. The link you mentioned needs two frames to work (is basically the TimeCompare example in the documentation), so my logic says that you will end with two copies of the same geometry in the memory or cook the two frames at the time required. I recently saw this code that deals with particles and yes, you have to loop trough all the points to update the attribute, instead of changing only the attributes of the points I want. I am also using duplicateChangedSource(0, context, &changed_input); but still the plugin its not as fast as I expected (in fact my original Python Code its slow when setting the attributes) Looping half million points takes like 8 seconds or so (I don't know if this is considered fast in Houdini). I want to try multithreading but the documentation says that changing attributes is not safe. Happy Christmas!
  5. If you create attributes in POPs, do you have to create them in each cook like in SOPs or you set their values and the remain trough all the frames.
  6. What I found: GA_PrimCompat::TypeMask(0) is to primitives as GA_PointGroup is to points TypeMask(0) filters primitives which match the type mask specified. When you selected (0), Houdini takes all the primitives. It is not necessary, that's way you can omit the argument, it works in the same way when you don't define point groups (check that zero) in gdp->getPointBBox(&bbox, 0); and Houdini takes all the points. "GA_PrimCompat::TypeMask(0)" can also be used as mask to iterate the defined groups of primitives in iterators, check this http://www.sidefx.com/docs/hdk13.0/_g_a___g_b_macros_8h.html#accfa36a011faa15dad3800e6ce2320eb
  7. Don't auto and getAIFTuple() slow down the performance? auto because the compiler needs to guess what type is, getAIFTuple because the layer of abstraction may impact performance.
  8. @Mantra, found it! Oh my gosh what a headache, look at the code in this question: http://forums.odforce.net/topic/4310-hdk-sop-sim-cook-problem/?hl=timedep
  9. Does this means that I cant make a simple Game of Life or a Flood Fill algoritm in HDK, using SOP?
  10. @Mantra Funny thing is that I just started with HDK few days ago (when I made the first question), I now I am talking with you about these things, thank you for sharing your knowledge with me. Have a good night/day!
  11. Ok, That's basically my code, Another thing I want to get the bounding box, do I have to do it the same way? UT_BoundingBox bbox; gdp->getPointBBox(&bbox, 0); cout << bbox.ymax(); This works, but inside (again) cookmysop(). I know that there are some classes that allows you to define it outside the cook, like the VRAY procedural. But unfortunately, I'm working with point clouds.
  12. @Mantra Temporal solution: fpreal frame = OPgetDirector()->getChannelManager()->getSample(context.getTime()); if (frame == 1){ create attribute; }
  13. @Mantra Interesting solution. But unfortunately, I don't need to compare attributes, I just need to create the attribute. Like in the Game of Life. You don't compare initial values, you call the current value of neighbors. But as I explained before, I can't create the attribute if I need that attribute to change over time, that's why I need to create the attribute only one time (outside cookmysop).
  14. Well, that was my last resource. Any ideas? What if I create two cookmysop: one time dependant and the other time independent?
×
×
  • Create New...