Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

Community Reputation

0 Neutral

About nicholas_yue

  • Rank

Personal Information

  • Name
    Nicholas Yue
  1. Hi, At work, we have commercial licenses of Houdini (H9) [network license] I want to learn more about the pipeline features in H14 so I installed the apprentice version. Houdini and Mantra works fine with the local license but hython (from the command line, not the Python shell within Houdini) complains that there is no license. Does hython defaults to network license (hence picking up older H9) rather than honor $HFS/houdini/Licensing.opt unless told to do so specifically via some hython specific environment variable ? Cheers
  2. Hi, In the method ::cookMySop(OP_Context &context) is there a way to differentiate between geometry data changes e.g. points x,y,z change, vs topology changes ? I am writing a SOP which takes input from a node like the Alembic SOP. On initial input connection or reconnection, it's a brand new data input so I am making provision to compute my internal stuff from scratch but when the user drag the time line or hit play, I hope to avoid making the assumption that the topology remains the same but if it does, I want to skip the much heavier construction from scratch. Does Houdini pass on such status between nodes which we can query ? Cheers
  3. VRAY_Procedural questions

    Hi Alexey, I have started learning about Mantra procedural recently. I see the benefit of bounding box differently. In addition to it's useful in REYES-like algorithm, the bounding box may be useful (in ray-tracer like PBR) for e.g (1) Determining the relative level-of-detail so it can decide on geometry generation techniques, quality and/or quantity (2) Possibly subdivide (like octree) to smaller chunk for more efficient memory foot print. Naturally, the feasibility of the above will depend largely on the inputs (upstream source or external file etc) and influence to some extent by the production pipeline constraints. Cheers
  4. Hi, Using GT_ subclass to display OpenGL geometry, I see vertex normal, point number and face normal Whereas using GR_ subclasses, the viewport is only able to display the raw geometry. Is there something additional I need to setup to enable them. I need them for debugging purposes as the face/point normals in my code does not look correct. Cheers
  5. Answering my own post. The usage of the points to draw geometry is determined in the call myGeo->connectSomePrimsI() There are a variety of options closely related to OpenGL primitives GL_* enums. Cheers
  6. Hi, I am studying the tetprim example code. I see the following code and would like to find out if the returned GL buffer always expect one to fill them in with triangles ? Therefore if we have quads, we need to split it up into two triangles per quads ? If I have misunderstood the GL buffer returned by pos->map() and that it supports n-gon, where should one specify the per-polygon vertex count ? I have had a look at the GT code and it has the concept of vertex_order[] so I am fine with that. I want to test out a GR implementation hence the above question. ============= CODE ======================= // Initialize the number of points in the geometry. myGeo->setNumPoints( 12 * num_tets); // Fetch P (point position). If its cache version matches, no upload is // required. pos = myGeo->findCachedAttribOrArray(r, posname, RE_GPU_FLOAT32, 3, RE_ARRAY_POINT, true); if(pos->getCacheVersion() != p.geo_version) { // map() returns a pointer to the GL buffer UT_Vector3F *pdata = static_cast<UT_Vector3F *>(pos->map®); if(pdata) { for(int t=0; t<num_tets; t++) { pdata[0] = pt(t*4); pdata[1] = pt(t*4+1); pdata[2] = pt(t*4+2); pdata[3] = pt(t*4); pdata[4] = pt(t*4+2); pdata[5] = pt(t*4+3); pdata[6] = pt(t*4+1); pdata[7] = pt(t*4+2); pdata[8] = pt(t*4+3); pdata[9] = pt(t*4); pdata[10] = pt(t*4+3); pdata[11] = pt(t*4+1); pdata += 12; } Cheers
  7. GT relation to GR : Custom geometry display

    I had a look at the GUI example GUI_PolySoupBox.C but I think that is not suitable for my needs. GUI_* seems to be global toggle (at least in the example). I want the frustum display only for specific camera I am connecting/associating with, rather than all the cameras in a scene. I think DM_* is the way to go for now. Is there an example of registering DM_* hook directly in a SOP or must it be via GDP+GU_* code ? Cheers
  8. GT relation to GR : Custom geometry display

    I wish to display a frustum like object associated with a camera. Looking at the tetraprim example and knowledge that GT is optional, I am down to the minimal required classes as SOP_Frustum, GU_Frustum, GR_Frustum and GEO_Frustum which I need to implement, to draw a 6 side box. If I am not interested in the SOP being renderable (i.e. in Mantra etc) as it is for feedback to the artists. Are all the G* subclasses still required or is one able to simply implement and register a draw hook in SOP_Frustum ? Cheers
  9. Hi, I am starting to learn about writing a custom geometry display. I started looking at the tetprim example. I have read about GR_* code in the past and also previous post on odforce.net I have only recently discover GT_* whilst looking at the tetprim. Is there an overview as to the relationship between GR and GT ? Is GT something recent ? I am guessing it is related to tessellation. Is it optional ? Cheers
  10. Hi, I came across this method which I am planning to use but there is no document about the return values. virtual int evaluateInteriorPointV4(UT_Vector4 &pos, fpreal u, fpreal v, fpreal w = 0) const; I am guessing there must be a reason for not simply returning a boolean. Cheers
  11. Hi, Given a GU_Detail which has a mesh with UV, is there in-build API to query a point position at an arbitrary UV location [assuming the input UV is within the UV range of the mesh] ? Cheers
  12. Hi, If I set the Mantra to single thread, is it erroneous to expect ::render() to be called only once ? I am wondering how many times my geometries are generated and for which part of a render. Cheers
  13. Hi Graham, Where can I find example of recursive procedural and child procedural ? Cheers