Hi,

How do I go about using BBNode (details in BBNode.cpp) and ON_Surface in
this OpenCL code?

On Thu, Jul 12, 2018, 11:32 PM Sreyansh Jain <sreyanshjai...@gmail.com>
wrote:

> Okay. Google only needs the final documentation, I need not submit any
> code to them right now for second evaluation. I'm attaching the code here
> for your reference.
>
> On Sun, Jul 8, 2018 at 10:56 AM Vasco Alexandre da Silva Costa <
> vasco.co...@gmail.com> wrote:
>
>> Show me what you have, by posting it to the list here, then submit the
>> finished version.
>> If Google demands that you send them something, also send them the code,
>> AFAIK they only want the code in the final submission. But check.
>>
>> On Sun, Jul 8, 2018 at 6:44 AM, Sreyansh Jain <sreyanshjai...@gmail.com>
>> wrote:
>>
>>> The code is simply walking the list. It ignores the nodes with 'deleted'
>>> mode on.
>>> Also, for the second evaluation, do I submit an incomplete patch or
>>> submit later after completing?
>>>
>>> On Thu, Jul 5, 2018 at 8:23 PM Vasco Alexandre da Silva Costa <
>>> vasco.co...@gmail.com> wrote:
>>>
>>>> PS: Does the BREP code do indexed accesses to the data structure or
>>>> does it simply walk the list?
>>>>
>>>> On Thu, Jul 5, 2018 at 3:40 PM, Vasco Alexandre da Silva Costa <
>>>> vasco.co...@gmail.com> wrote:
>>>>
>>>>> Instead of deleting items with 'delete' or 'free' simply add a
>>>>> 'deleted' bit to the nodes and set or reset it depending if the node is
>>>>> used or not.
>>>>> Then when walking the list, add an 'if' check to ignore the nodes with
>>>>> the 'deleted' bit on. Or you can move the 'deleted' nodes into a free 
>>>>> nodes
>>>>> list.
>>>>>
>>>>> This is a technique often used on lazy memory allocation/de-allocation
>>>>> algorithms and with node memory pools.
>>>>>
>>>>> On Wed, Jul 4, 2018 at 5:45 PM, Sreyansh Jain <
>>>>> sreyanshjai...@gmail.com> wrote:
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> I've converted most of the 'rt_brep_shot' code to C and some of it to
>>>>>> OpenCL already.
>>>>>>
>>>>>> I wanted to know the best way to implement the *erase* function.
>>>>>> I've taken 'hits' as pointer to array (*struct brep_hit *hits;*).
>>>>>> While *begin* and *end* are easily implemented, I'm stuck at direct
>>>>>> implementation of *erase*.
>>>>>>
>>>>>>
>>>>>>
>>>>>> Warm Regards,
>>>>>>
>>>>>> Sreyansh
>>>>>>
>>>>>>
>>>>>> On Thu, Jun 21, 2018 at 9:19 PM Vasco Alexandre da Silva Costa <
>>>>>> vasco.co...@gmail.com> wrote:
>>>>>>
>>>>>>> Basically the game plan to tackle NURBS I can think of is the one I
>>>>>>> sent to the list on March 20th:
>>>>>>>
>>>>>>> "With regards to BREP support, that should be more complex, since,
>>>>>>> for one, that is coded in C++ and also uses an auxiliary library also in
>>>>>>> C++.
>>>>>>> In order to run that on OpenCL 1.2 you would likely need to port C++
>>>>>>> parts of the library to OpenCL/C, including the generic ray-BREP
>>>>>>> intersection code, and the primitive-BREP conversion functions for any
>>>>>>> primitives you need to support.
>>>>>>>
>>>>>>> It should also be possible, as a first step, to basically just make
>>>>>>> a function that serializes the NURBS surfaces, etc, of the BREP
>>>>>>> form of the primitive, pass that serialized form to the GPU, and then 
>>>>>>> port
>>>>>>> just the generic ray-BREP intersection code, rather than doing the whole
>>>>>>> BREP conversion on the OpenCL side as well. i.e. serialize just the
>>>>>>> 'ON_Brep *' of the primitives, then pass that to the OpenCL side which 
>>>>>>> then
>>>>>>> performs the actual intersections.
>>>>>>>
>>>>>>> For example, this is the Ellipsoid->BREP conversion function: (you
>>>>>>> need to serialize and send to OpenCL the output of this)
>>>>>>>
>>>>>>> https://svn.code.sf.net/p/brlcad/code/brlcad/trunk/src/librt/primitives/ell/ell_brep.cpp
>>>>>>>
>>>>>>> It outputs the 'ON_Brep *' for that primitive.
>>>>>>>
>>>>>>> This contains the generic ray-BREP intersection function
>>>>>>> 'rt_brep_shot': (what you need to convert to OpenCL)
>>>>>>>
>>>>>>> https://svn.code.sf.net/p/brlcad/code/brlcad/trunk/src/librt/primitives/brep/brep.cpp
>>>>>>>
>>>>>>> In case you decide to tackle this, it is probably best to first make
>>>>>>> a simplified ANSI C version of 'rt_brep_shot' since that should be 
>>>>>>> easier
>>>>>>> to port to OpenCL/C."
>>>>>>>
>>>>>>>
>>>>>>> On Thu, Jun 21, 2018 at 2:35 PM, Christopher Sean Morrison <
>>>>>>> brl...@mac.com> wrote:
>>>>>>>
>>>>>>>> Sreyansh,
>>>>>>>>
>>>>>>>> rt_brep_prep() and rt_brep_shot() are the entry points for
>>>>>>>> BREP/NURBS ray tracing.  They use the openNURBS toolkit for data 
>>>>>>>> structures
>>>>>>>> and our libbrep library for surface evaluation.  That’s currently a 
>>>>>>>> very
>>>>>>>> complicated C/C++ interaction between librt, libbrep, and openNURBS.
>>>>>>>>
>>>>>>>> Vasco may have a better idea, but what may make sense is to extract
>>>>>>>> all of the evaluation functions in openNURBS used by rt_brep_shot() 
>>>>>>>> into
>>>>>>>> libbrep.  Then you'll only have to concern yourself with OpenCL code 
>>>>>>>> in one
>>>>>>>> place and not worry about openNURBS for ray tracing — it would only be 
>>>>>>>> used
>>>>>>>> for import/export (reading from and writing to disk).
>>>>>>>>
>>>>>>>> As for examples, openNURBS is the 3DM file format.  So that means
>>>>>>>> you can import a 3DM model (e.g., from GrabCAD or Google searches).  
>>>>>>>> You
>>>>>>>> could also just use our db/nist examples.
>>>>>>>>
>>>>>>>> Cheers!
>>>>>>>> Sean
>>>>>>>>
>>>>>>>>
>>>>>>>> On Jun 21, 2018, at 4:55 AM, Sreyansh Jain <
>>>>>>>> sreyanshjai...@gmail.com> wrote:
>>>>>>>>
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> Can you give me a detailed procedure with examples on what exactly
>>>>>>>> to do for BREP support? Right now, I'm converting the rt_brep_shot()
>>>>>>>> function from C++ to C since that would be easy to port to OpenCL/C.
>>>>>>>>
>>>>>>>>
>>>>>>>> On Sat, Jun 16, 2018 at 3:07 AM Sreyansh Jain <
>>>>>>>> sreyanshjai...@gmail.com> wrote:
>>>>>>>>
>>>>>>>>> Also, I've worked it out that after installing Ubuntu 16.04, apart
>>>>>>>>> from the dependencies mentioned in
>>>>>>>>> https://brlcad.org/wiki/Compiling, you need to install package*
>>>>>>>>> libgl1-mesa-dev *for opengl support. It's working for me now in
>>>>>>>>> Ubuntu 16.04 as well. Can you check once and update?
>>>>>>>>>
>>>>>>>>> On Sat, Jun 16, 2018 at 2:16 AM Sreyansh Jain <
>>>>>>>>> sreyanshjai...@gmail.com> wrote:
>>>>>>>>>
>>>>>>>>>> Hi,
>>>>>>>>>>
>>>>>>>>>> @Vasco: Thank you for the first evaluation results and feedback.
>>>>>>>>>> I'm done with both the METABALL and PIPE shot routines. I'm unable 
>>>>>>>>>> to do do
>>>>>>>>>> OpenCL kernels for memory size computation for bu_lists/arrays and
>>>>>>>>>> allocation. Any previous example which I can refer to?
>>>>>>>>>>
>>>>>>>>>> @Sean: I deployed the superell patch in my local system, but
>>>>>>>>>> results were not showing up. I'm sure they don't have any unintended
>>>>>>>>>> changes. I've checked my code thoroughly. It should be my local
>>>>>>>>>> installation problem. Can you check and let me know if it's working?
>>>>>>>>>>
>>>>>>>>>> On Fri, Jun 8, 2018 at 1:14 AM Christopher Sean Morrison <
>>>>>>>>>> brl...@mac.com> wrote:
>>>>>>>>>>
>>>>>>>>>>> Sorry to hear your system crashed.  Good job backing up your
>>>>>>>>>>> data.  We need to get you set up so you are able to directly save 
>>>>>>>>>>> changes
>>>>>>>>>>> as you go.
>>>>>>>>>>>
>>>>>>>>>>> Have you made sure your changes still apply to trunk?  You
>>>>>>>>>>> should manually inspect it also to make sure it doesn’t have 
>>>>>>>>>>> unintended
>>>>>>>>>>> changes.  If you have, I may be able to test it later today.
>>>>>>>>>>>
>>>>>>>>>>> Thank you for letting us know!
>>>>>>>>>>>
>>>>>>>>>>> Cheers!
>>>>>>>>>>> Sean
>>>>>>>>>>>
>>>>>>>>>>> On Jun 6, 2018, at 5:54 PM, Sreyansh Jain <
>>>>>>>>>>> sreyanshjai...@gmail.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>> Hey,
>>>>>>>>>>>
>>>>>>>>>>> My system crashed. While I've had the backup of most of the
>>>>>>>>>>> files, the very recent ones got lost. I wanted to inform that my 
>>>>>>>>>>> work will
>>>>>>>>>>> be a bit slowed for few days while I'll be working on my friend's 
>>>>>>>>>>> laptop
>>>>>>>>>>> and get mine fixed.
>>>>>>>>>>>
>>>>>>>>>>> Also, did you check whether there's problem with my superell
>>>>>>>>>>> patch or did I not properly apply it in my system?
>>>>>>>>>>>
>>>>>>>>>>> Thanks.
>>>>>>>>>>>
>>>>>>>>>>> On Tue, Jun 5, 2018, 9:11 PM Vasco Alexandre da Silva Costa <
>>>>>>>>>>> vasco.co...@gmail.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> On Tue, Jun 5, 2018 at 7:29 AM, Sreyansh Jain <
>>>>>>>>>>>> sreyanshjai...@gmail.com> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> Okay, let me look into it.
>>>>>>>>>>>>>
>>>>>>>>>>>>> I've started with METABALL primitive, although it is
>>>>>>>>>>>>> incomplete I believe (metaball method). Should I retain both new 
>>>>>>>>>>>>> and old
>>>>>>>>>>>>> code (shootalgo=2 and shootalgo=3) or just one in OpenCL?
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> For starters just pick one of those. You can start with the
>>>>>>>>>>>> default (new) code.
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>> Also, how do I take input/define *ap->a_onehit *, *rp->r_min*
>>>>>>>>>>>>> and *rp->r_max *in OpenCL?
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> You can start by just assuming that ap->a_onehit is TRUE. If
>>>>>>>>>>>> you do need that in the rendering phase, you can pass it as a 
>>>>>>>>>>>> parameter to
>>>>>>>>>>>> the respective kernels in
>>>>>>>>>>>> https://svn.code.sf.net/p/brlcad/code/brlcad/trunk/src/librt/primitives/primitive_util.c:clt_frame()
>>>>>>>>>>>> which is called in
>>>>>>>>>>>> https://svn.code.sf.net/p/brlcad/code/brlcad/trunk/src/rt/do.c:clt_run()
>>>>>>>>>>>> .
>>>>>>>>>>>>
>>>>>>>>>>>> As for rp->r_min, and rp->r_max IIRC those are the rmin,rmax
>>>>>>>>>>>> bounds determined in rt_in_rpp() in rt.cl. You can get their
>>>>>>>>>>>> values from bounds->p_min,bounds->p_max in rt.cl:shootray().
>>>>>>>>>>>> You'll have to pass those to the shot() function and then the 
>>>>>>>>>>>> respective
>>>>>>>>>>>> METABALL shot function.
>>>>>>>>>>>>
>>>>>>>>>>>> Regards,
>>>>>>>>>>>> -vasc
>>>>>>>>>>>>
>>>>>>>>>>>> ------------------------------------------------------------------------------
>>>>>>>>>>>> Check out the vibrant tech community on one of the world's most
>>>>>>>>>>>> engaging tech sites, Slashdot.org <http://slashdot.org/>!
>>>>>>>>>>>> http://sdm.link/slashdot
>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>> BRL-CAD Developer mailing list
>>>>>>>>>>>> brlcad-devel@lists.sourceforge.net
>>>>>>>>>>>> https://lists.sourceforge.net/lists/listinfo/brlcad-devel
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>> ------------------------------------------------------------------------------
>>>>>>>> Check out the vibrant tech community on one of the world's most
>>>>>>>> engaging tech sites, Slashdot.org!
>>>>>>>> http://sdm.link/slashdot_______________________________________________
>>>>>>>> BRL-CAD Developer mailing list
>>>>>>>> brlcad-devel@lists.sourceforge.net
>>>>>>>> https://lists.sourceforge.net/lists/listinfo/brlcad-devel
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> ------------------------------------------------------------------------------
>>>>>>>> Check out the vibrant tech community on one of the world's most
>>>>>>>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>>>>>>>> _______________________________________________
>>>>>>>> BRL-CAD Developer mailing list
>>>>>>>> brlcad-devel@lists.sourceforge.net
>>>>>>>> https://lists.sourceforge.net/lists/listinfo/brlcad-devel
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Vasco Alexandre da Silva Costa
>>>>>>> PhD in Computer Engineering (Computer Graphics)
>>>>>>> Instituto Superior Técnico/University of Lisbon, Portugal
>>>>>>>
>>>>>>> ------------------------------------------------------------------------------
>>>>>>> Check out the vibrant tech community on one of the world's most
>>>>>>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>>>>>>> _______________________________________________
>>>>>>> BRL-CAD Developer mailing list
>>>>>>> brlcad-devel@lists.sourceforge.net
>>>>>>> https://lists.sourceforge.net/lists/listinfo/brlcad-devel
>>>>>>>
>>>>>>
>>>>>>
>>>>>> ------------------------------------------------------------------------------
>>>>>> Check out the vibrant tech community on one of the world's most
>>>>>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>>>>>> _______________________________________________
>>>>>> BRL-CAD Developer mailing list
>>>>>> brlcad-devel@lists.sourceforge.net
>>>>>> https://lists.sourceforge.net/lists/listinfo/brlcad-devel
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Vasco Alexandre da Silva Costa
>>>>> PhD in Computer Engineering (Computer Graphics)
>>>>> Instituto Superior Técnico/University of Lisbon, Portugal
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Vasco Alexandre da Silva Costa
>>>> PhD in Computer Engineering (Computer Graphics)
>>>> Instituto Superior Técnico/University of Lisbon, Portugal
>>>>
>>>> ------------------------------------------------------------------------------
>>>> Check out the vibrant tech community on one of the world's most
>>>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>>>> _______________________________________________
>>>> BRL-CAD Developer mailing list
>>>> brlcad-devel@lists.sourceforge.net
>>>> https://lists.sourceforge.net/lists/listinfo/brlcad-devel
>>>>
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> Check out the vibrant tech community on one of the world's most
>>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>>> _______________________________________________
>>> BRL-CAD Developer mailing list
>>> brlcad-devel@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/brlcad-devel
>>>
>>>
>>
>>
>> --
>> Vasco Alexandre da Silva Costa
>> PhD in Computer Engineering (Computer Graphics)
>> Instituto Superior Técnico/University of Lisbon, Portugal
>>
>> ------------------------------------------------------------------------------
>> Check out the vibrant tech community on one of the world's most
>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>> _______________________________________________
>> BRL-CAD Developer mailing list
>> brlcad-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/brlcad-devel
>>
>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
BRL-CAD Developer mailing list
brlcad-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/brlcad-devel

Reply via email to