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 >
rt_brep_shot.cl
Description: Binary data
------------------------------------------------------------------------------ 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