Cool, can you show a different view like “ae 35 25”?

Cheers,
Sean


> On Aug 13, 2018, at 10:45 AM, Sreyansh Jain <sreyanshjai...@gmail.com> wrote:
> 
> 
> PFA screenshots for HYP primitive.
> 
> 
> Warm Regards,
> 
> Sreyansh 
> 
> On Mon, Aug 13, 2018 at 11:05 PM Sreyansh Jain <sreyanshjai...@gmail.com 
> <mailto:sreyanshjai...@gmail.com>> wrote:
> 
> Hi,
> 
> You can deploy the final superell patch submitted. It's working fine now. 
> I've attached the screenshot also for your reference. I have used -H32 -s2048 
> in both.
> I'll let you know as and when I'm done with others. 
> 
> 
> Warm Regards,
> 
> Sreyansh 
> 
> 
> On Sun, Aug 12, 2018 at 10:42 PM Sreyansh Jain <sreyanshjai...@gmail.com 
> <mailto:sreyanshjai...@gmail.com>> wrote:
> 
> Hi,
> 
> I've made the detailed report of my work here: 
> https://github.com/sreyanshjainrkl/GSoC-18 
> <https://github.com/sreyanshjainrkl/GSoC-18>. I've also submitted OpenCL code 
> for VOL primitive apart from the others mentioned earlier in the project 
> plan. Do let me know your reviews on the report so that I can submit it for 
> my final evaluation.
> 
> 
> Warm Regards,
> 
> Sreyansh 
> 
> 
> On Fri, Aug 10, 2018 at 10:54 AM Sreyansh Jain <sreyanshjai...@gmail.com 
> <mailto:sreyanshjai...@gmail.com>> wrote:
> Hi,
> 
> In the rt_brep_shot patch, do I have to include the glue code which packs and 
> unpacks it like it was done in case of primitives? If yes, will functions in 
> this C++ snippet be similar to the one in C?
> 
> On Fri, Aug 3, 2018, 1:07 AM Sreyansh Jain <sreyanshjai...@gmail.com 
> <mailto:sreyanshjai...@gmail.com>> wrote:
> How do I check which Domain() and Dimension() function to use? These are 
> defined in many opennurbs_*.cop but not in the ones they're referenced. (For 
> example, Domain() is used in On_Curve::EvTangent(..) but not defined in 
> opennurbs_curve.cpp).
> 
> On Thu, Jul 26, 2018, 1:56 AM Vasco Alexandre da Silva Costa 
> <vasco.co...@gmail.com <mailto:vasco.co...@gmail.com>> wrote:
> Basically make your own duplicates of the data in those structures that you 
> actually use to perform the ray tracing evaluation for the shots. Similar to 
> what is already done in the clt_*_pack functions.
> Since the BREP is a complex datastructure, looking at the BoT (bag of 
> triangles) pack function should be a decent guide (it's a triangle list with 
> a spatial triangle tree).
> 
> So you need to convert the C++ BREP functions and methods called in the _shot 
> function into C. You also want to serialize the C++ data structure into a 
> memory buffer that will be passed over to the OpenCL side prior to that. It's 
> likely you won't need to transfer all the data in the structure (this also 
> happens with the intersection of other primitives). I typically convert first 
> the _shot code and then the _prep code as typically a lot of the data 
> computed on _prep isn't used on _shot. This way you only copy into the buffer 
> the data that actually is need for it. This reduces the amount of OpenCL code 
> you need to write.
> 
> You can basically start by manually inlining any C++ function calls and 
> methods invoked on _shot(). This will probably take you several steps of 
> manually inlining and merging code. You can start with breaking down the 
> invoked C++ classes into C++ functions and C++ structs with the data.
> 
> Then you need to convert the C++ functions and C++ structs into C functions 
> and C structs.
> 
> To do that you'll need to eliminate any templates and replace uses of C++ 
> standard library data structures with your own ANSI C code. Like I said the 
> BoT code is a good example of a similarly complex data structure since it 
> also features a list and a BVH tree.
> 
> The BREP specific code in C++ should also be in:
> https://svn.code.sf.net/p/brlcad/code/brlcad/trunk/src/libbrep/ 
> <https://svn.code.sf.net/p/brlcad/code/brlcad/trunk/src/libbrep/>
> https://svn.code.sf.net/p/brlcad/code/brlcad/trunk/include/libbrep/ 
> <https://svn.code.sf.net/p/brlcad/code/brlcad/trunk/include/libbrep/>
> https://svn.code.sf.net/p/brlcad/code/brlcad/trunk/src/other/openNURBS/ 
> <https://svn.code.sf.net/p/brlcad/code/brlcad/trunk/src/other/openNURBS/>
> 
> For example this is where BBNode and ON_Surface are declared:
> https://svn.code.sf.net/p/brlcad/code/brlcad/trunk/include/brep/bbnode.h 
> <https://svn.code.sf.net/p/brlcad/code/brlcad/trunk/include/brep/bbnode.h>
> https://svn.code.sf.net/p/brlcad/code/brlcad/trunk/src/other/openNURBS/opennurbs_surface.h
>  
> <https://svn.code.sf.net/p/brlcad/code/brlcad/trunk/src/other/openNURBS/opennurbs_surface.h>
> 
> The 'ON' prefix means something is from the openNURBS library.
> 
> I suggest you use a C/C++ code browser to help you with this process. This 
> way you can follow functions and methods or declarations across the code 
> tree. For example I used Netbeans, in C/C++ mode, to code the hairier to port 
> bits.
> 
> Regards,
> 
> On Wed, Jul 25, 2018 at 10:59 AM, Sreyansh Jain <sreyanshjai...@gmail.com 
> <mailto:sreyanshjai...@gmail.com>> wrote:
> 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 
> <mailto: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 <mailto: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 
> <mailto: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 <mailto: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 <mailto: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 
> <mailto: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 <mailto: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
>  
> <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
>  
> <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 
> <mailto: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 
>> <mailto: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 
>> <mailto: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 
>> <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 
>> <mailto: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 
>> <mailto: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 
>> <mailto: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 <mailto:vasco.co...@gmail.com>> wrote:
>>> On Tue, Jun 5, 2018 at 7:29 AM, Sreyansh Jain <sreyanshjai...@gmail.com 
>>> <mailto: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()
>>>  
>>> <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() 
>>> <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 <http://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
>>> 
> 
> -- 
> 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 
> <http://sdm.link/slashdot>_______________________________________________
> BRL-CAD Developer mailing list
> brlcad-devel@lists.sourceforge.net <mailto:brlcad-devel@lists.sourceforge.net>
> https://lists.sourceforge.net/lists/listinfo/brlcad-devel 
> <https://lists.sourceforge.net/lists/listinfo/brlcad-devel>
> <hyp_c.png><hyp_cl.png>------------------------------------------------------------------------------
> 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_______________________________________________ 
> <http://sdm.link/slashdot_______________________________________________>
> BRL-CAD Developer mailing list
> brlcad-devel@lists.sourceforge.net <mailto:brlcad-devel@lists.sourceforge.net>
> https://lists.sourceforge.net/lists/listinfo/brlcad-devel 
> <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