Jump to content

Search the Community

Showing results for tags 'bezier'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • General
    • Lounge/General chat
    • Education
    • Jobs
    • Marketplace
  • Houdini
    • General Houdini Questions
    • Effects
    • Modeling
    • Animation & Rigging
    • Lighting & Rendering
    • Compositing
    • Games
    • Tools (HDA's etc.)
  • Coders Corner
    • HDK : Houdini Development Kit
    • Scripting
    • Shaders
  • Art and Challenges
    • Finished Work
    • Work in Progress
    • VFX Challenge
    • Effects Challenge Archive
  • Systems and Other Applications
    • Other 3d Packages
    • Operating Systems
    • Hardware
    • Pipeline
  • od|force
    • Feedback, Suggestions, Bugs

Found 4 results

  1. Hi all, can anyone please help me - I need to connect points in a certain order and then resample them to create the path with more specific/controllable bezier type interpolation rather than the default ouput of the resample sop as seen in yellow. Essentially I need a way to control the arriving/leaving orientation and the magnitude/stiffness, so beizer curves and handles in 3d would do the trick i think.. Been stuck on this for weeks would be amazing if someone can point me in the right direction - can i use the new curve sop somehow? the setup needs to be procedural and follow from the position of the points in blue and red. many thanks for any advice, H
  2. Hi, With the following code, I can write out a single bezier curve but anything more than one, the second bezier curves are not in the bgeo file being written out. The point count indicates that it is aware of additional points associated with the second curve. #include <string> #include <GU/GU_Detail.h> #include <GU/GU_PrimRBezCurve.h> #include <UT/UT_Version.h> #include <GEO/GEO_Point.h> #include <OpenEXR/ImathVec.h> #include <vector> typedef std::vector<Imath::V3d> V3dContainer; void create_single_bezier_curve(const std::string& bgeo_filename) { GU_Detail gdp; V3dContainer cvs; cvs.push_back(Imath::V3d(0,0,0)); cvs.push_back(Imath::V3d(1,1,0)); cvs.push_back(Imath::V3d(2,1,0)); cvs.push_back(Imath::V3d(3,0,0)); GA_Size num_points = cvs.size(); for ( size_t i = 0; i < num_points; ++i ) { GA_Offset pt = gdp.appendPointOffset(); gdp.setPos3(pt, cvs[i][0], cvs[i][1], cvs[i][2]); } GU_PrimRBezCurve* bezier_curve = GU_PrimRBezCurve::build(&gdp,num_points); if (bezier_curve) { for ( size_t i = 0; i < num_points; ++i ) { bezier_curve->setVertexPoint(i,gdp.pointOffset(i)); } gdp.save(bgeo_filename.c_str(), NULL); } } void create_multilpe_bezier_curves(const std::string& bgeo_filename) { GU_Detail gdp; V3dContainer cvs; // Curve 0 cvs.push_back(Imath::V3d(0,0,0)); cvs.push_back(Imath::V3d(1,1,0)); cvs.push_back(Imath::V3d(2,1,0)); cvs.push_back(Imath::V3d(3,0,0)); // Curve 1 double y_offset = 2.0; cvs.push_back(Imath::V3d(0,0 + y_offset,0)); cvs.push_back(Imath::V3d(1,1 + y_offset,0)); cvs.push_back(Imath::V3d(2,1 + y_offset,0)); cvs.push_back(Imath::V3d(3,0 + y_offset,0)); cvs.push_back(Imath::V3d(4,0 + y_offset,0)); // Store all the points GA_Size num_points = cvs.size(); for ( size_t i = 0; i < num_points; ++i ) { GA_Offset pt = gdp.appendPointOffset(); gdp.setPos3(pt, cvs[i][0], cvs[i][1], cvs[i][2]); } // Setup curve 0 GA_Size num_points_curve_0 = 4; GU_PrimRBezCurve* bezier_curve_0 = GU_PrimRBezCurve::build(&gdp,num_points_curve_0); if (bezier_curve_0) { for ( size_t i = 0; i < num_points_curve_0; ++i ) { bezier_curve_0->setVertexPoint(i,gdp.pointOffset(i)); } } // Setup curve 1 GA_Size num_points_curve_1 = 5; GA_Offset curve_offset_1 = 4; // because the first 4 points is for curve 0 GU_PrimRBezCurve* bezier_curve_1 = GU_PrimRBezCurve::build(&gdp,num_points_curve_1); if (bezier_curve_1) { for ( size_t i = 0; i < num_points_curve_1; ++i ) { bezier_curve_1->setVertexPoint(i,gdp.pointOffset(i+curve_offset_1)); // bezier_curve_1->setVertexPoint(i,curve_offset_1); } } gdp.save(bgeo_filename.c_str(), NULL); } int main(int argc, char *argv[]) { create_single_bezier_curve("single_bezier_curve.bgeo"); create_multilpe_bezier_curves("multiple_bezier_curves.bgeo"); return 0; }
  3. Bezier Handle State

    My implementation of a bezier handle using new custom states in H17. Please don't hesitate to criticize/suggest features. Thanks! ao_utility__bezierhandle__1_0.hdalc
  4. Bezier Plexus

    Hey everyone, I'm slowly starting to learn Houdini and I've had a bunch of help from the forums so I wanted to give back and share a hip that I just finished. It's not the most complicated thing in the world, but I learned a lot while making it, so maybe it'll help someone else out. Feel free to offer any suggestions/improvements on it (especially when it comes to how I coded the vex in the attr wrangles). Mike mb_bezier_plexus.hiplc
×