Hi Nick,

Yes, I (probably) thought about that at the time and I did not consider it for 
some reasons (in no specif order but that makes sense altogether ):

- One of the big hard task on this was to convert the pcb from kicad into a 
structure of objects to render. (layers, segments, polygons, modules,...) This 
was so far about 1/3 of the work I had.
- The current 3d-viewer is a triangle based render. It need to convert every 
item to multiple triangles (ex a segment is converted in lots of triangles). 
One thing that is slowing down the pre-computation in the current 3d-viewer is 
the hole extraction (that will create more and more triangles), other is the 
polygon tesselation. (please read the next point)
- Most of top raytracers (i.e.: the ones that use SIMD instructions) are just 
triangle oriented, so, related with the point before, there was no much 
improvement to (spend time) convert everything to triangles. (My implementation 
uses tailored shapes like segments, etc and uses CSG to remove the holes so the 
pre-calc are very reduced as it removes the objects in run time)
- Most of the top raytracers (..that using SIMD) are using very recent CPU 
features (SSEx, AVX), that will not work on all computers.
- If I think using a good raytracing generic (i.e: not only triangles) library, 
they are usually huge and I guess it will be an issue to approve it(licences.. 
etc) to be integrate in kicad. Or in other way I could end with an external 
software piece to render kicad board.. but.. in that case it would be better to 
improve the exporters to render in a 3rd part software (eg: blender..etc)
- I have in mind to try to make it as fast / interactive as possible, so it 
will need some specific implementation.. some hacks .. that will target this 
specific propose.

... and I was a bit bored and need some motivation :) It was an area that I 
used to have fun so I try do something useful this time...
and so on.

Mario  


________________________________________
From: Nick Østergaard [[email protected]]
Sent: 27 October 2015 23:04
To: Mário Luzeiro
Cc: [email protected]
Subject: Re: [Kicad-developers] 3D-Viewer Raytraced render

Hi Mário,

This is some good news. I know this might be a bit late, but I wonder;
have you considered to use some other ray tracing engine instead of
writing it yourself? I was thinking about the Cycles rendering engine
used in Blender. It is Apache 2.0 licensed. They have some tine info
it as a standalone at [1] and the source repo is a [2].

I will try it out when I get the chance.

Regards
Nick

[1] http://wiki.blender.org/index.php/Dev:2.6/Source/Render/Cycles/Standalone
[2] https://developer.blender.org/diffusion/C/

2015-10-27 23:27 GMT+01:00 Mário Luzeiro <[email protected]>:
> Hello all,
>
> I would like to show you some screenshots of the progress of a 3d-viewer 
> render based on raytracing (with some vitamins) that I am working on:
> https://meocloud.pt/link/aaf06e3f-e308-40c8-bddb-f8aa762b4a16/20151027_3d-viewer/
> (please download the file image if you want see it in full resolution)
>
> To keep this email short, I will not add details, please feel free to make 
> any questions.
>
> There are (at moment) two modes of rendering: preview (while moving) or 
> quality rendering. In preview mode it render a fast draft  in order to get 
> some interactive framerate while adjusting the view of the board. So the 
> screenshots label as 'preview' shows it to compare draft/quality.
>
> The quality rendering time.. depends on how many CPUs you have and (special) 
> how fast your cache is. In my laptop, 8 cpu processor, it can take longer 
> than a eye blink.. ..probably two or three eye blinks.
>
> If you would like to try it in your machine, you can try built my branch:
> https://code.launchpad.net/~mrluzeiro/kicad/kicad_new3d-viewer
> (probably have issues to build on windows)
>
> There are still lot of room for improvements, ideas and things to do ... 
> special, add of 3D models (Cirilo is working on path, plugins and cache of 
> models, I plan to start next working on a parser or adding some support to 
> display the 3D models by the render... )
>
> I would welcome anyone interested in this areas to join us to speed up the 
> development or add a little more of improvements.
>
> Cheers,
> Mario Luzeiro
>
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to     : [email protected]
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help   : https://help.launchpad.net/ListHelp
_______________________________________________
Mailing list: https://launchpad.net/~kicad-developers
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~kicad-developers
More help   : https://help.launchpad.net/ListHelp

Reply via email to