← Back to team overview

kicad-developers team mailing list archive

Re: Some new sweet features on the new 3D-Viewer

 

Hi Jakub,


> Yes, there can be a button for that. But naming must be done for ordinary users.

I will evaluate that. Stay tuned in ..


> preferences button from toolbar 

I was planning to remove the "display options" button and replace it with the render.
It is a problem to keep the Menus and dialogue updated, my self as user I dont user the "Display options" button. Anyone here about this?



> zoom +-, Top View and others should be too in menu

I think this is not necessary and complicated to use, to go to Zoom in on the menu VS when it is faster to press F1 or "Zoom icon" ..
Also that options are already on toolbar, on right click and on keyboard shortcuts....



> For the "pivot and rotation center" I think that it is an option for
> future development. But why it can not be as mCAD ?

How does it work on mCAD?
In any case, it can only work in the way it is implemented.. and some one have to implement it :)


> I think that 3D PCB design coming to light nowadays. So 3D viewer may not remain only a as viewer but can be a editor.

we have all nice ideas :) .. but some one have to get it into life!
I am working on KiCad 3D-Viewer for about 2.. 3 years and since that only Cirilo join to help on the model parsers/plugins and there were other small fixes and improvements by other authors in the mailing list.

So doing this as a hobby in the free times, I think I (we) are advance very well, but we need to keep our ideas "grounded"... otherwise.. that will become a mega project work for just one person or two and not possible to maintain.

There is also another thing, is that 3d viewer (and parser) are not design to do MCAD checks. I have no experience on that.
At moment also, we dont have MCAD formats (eg: STEP) import to do MCAD.
So that kind of job, must be performed by a proper MCAD 3rd part software.

At this moment, we can only advance in very small steps.


> Features should not be limited by current way or "competitive" eCADs but only by what you can imagine.

I would be happy If you could convert "imagination" into thousand of lines of working source code :)


> for future there can be communication in both ways between 3D viewer, eeschema and pcbnew. So modifications, highlihgting and other features can be realtime.

There are things missing (on that parts) to be able to get that working.
At this moment it is out of scope for me to work on that since that implies modify pcbnew..etc.. so I don't want to touch that and I dont have the knowledge to do it.


> For GPU acceleration, I mean both, raytracing and OpenGL. It seems as in
> OpenGL mode is GPU used - in my system when I rotating the board then I
> get about 30% utilization of GPU and about same for CPU.

The OpenGL mode, as the name says, is implemented via openGL and that is a GPU accelerated library (the rendering is by triangle rasterization on GPU).
Raytracing mode is a CPU implementation of a Raytrace rendering method (Rays are tracing to mathematical objects representation) and it is not possible to convert (my code) in any type of acceleration to a GPU.


Keep testing and give your feedback!,... but mind how much effort could be involved on (what looks to be ) a simple request.

Cheers!
Mario Luzeiro
________________________________________
From: Jakub Kozdon [fldrivers@xxxxxxxxx]
Sent: 07 March 2016 17:20
To: easyw; Mário Luzeiro
Cc: kicad-developers@xxxxxxxxxxxxxxxxxxx
Subject: Re: [Kicad-developers] Some new sweet features on the new 3D-Viewer

Hi Mário, Maurice,

Yes, there can be a button for that. But naming must be done for
ordinary users. They probably do not know what is OpenGL or raytracing.
I think that OpenGL mode should be used as default and raytracing should
be used for creating images or for one time render. It can be made as
button with description like "Give me better quality".

When I see the menu then I can say that Preferences it can be splitted
into Preferences and Render. And preferences button from toolbar should
be in Preferences menu as an item too. And zoom +-, Top View and others
should be too in menu, I suggesting View.

For the "pivot and rotation center" I think that it is an option for
future development. But why it can not be as mCAD ?

I think that 3D PCB design coming to light nowadays. So 3D viewer may
not remain only a as viewer but can be a editor. Imagine that you have
an enclosure model and you need to align the holes. So you going to open
PCB design in 3D editor and click add hole tool, click to axis of round
support of  enclosure and you will get a hole in PCB, ideally with
diameter not to collide with enclosure but little bigger.

Or another example. You need to place a LEDs. So you have in enclosure a
hole, select align tool, you click to LEDs axis, click to hole axis and
you have LED in place. Of course, you can set a lock to enclosure so
when you are moving with enclosure then locked parts move with board.

And only dimensioning. It can be like here:
https://forum.kicad.info/t/this-is-what-the-footprint-editor-should-look-like/1499
. So you choose s dimensioning tool, click to one edge, click to other
edge and you will get a dimension. And if editing is possible then you
can edit the dimension to set distance between parts.

Of course it not tend to be an mCAD but a 3D PCB editor. So there can be
only a tools for PCB design not tools as in mCAD.

So generally speaking. Features should not be limited by current way or
"competitive" eCADs but only by what you can imagine. Current progress
is great. But for future there can be communication in both ways between
3D viewer, eeschema and pcbnew. So modifications, highlihgting and other
features can be realtime.

For GPU acceleration, I mean both, raytracing and OpenGL. It seems as in
OpenGL mode is GPU used - in my system when I rotating the board then I
get about 30% utilization of GPU and about same for CPU.

Thank you all for your hard work. KiCad is getting better and better day
by day.

Jakub

Dne 7.3.2016 v 14:52 easyw napsal(a):
> Hi mario,
>>> anyway maybe it could be useful to just Raytrace a scene as
>>> positioned/zoomed in OpenGL render engine... in Blender that is the
>>> way is done...
>>
>> I didnt understood,
>> Could you better explain this?
> I mean in Blender you move your objects in a specific position with
> the angle and the zoom you desire in an environment (scene) with a
> fast rendering time, then you press F12 to render your picture/image...
> In kicad 3d-viewer OpenGL interface you could zoom and position your
> board as you would like to see it for Raytracing and then invoke the
> raytracing engine with i.e. Alt+R to get the screenshot of your OpenGL
> preview with Raytracing features ... and go back to OpenGL with i.e.
> Alt+R
> That will avoid the i.e. the recalculation in case of a zoom when in
> Raytracing engine...
> I think Jakub suggested something similar...
>
> Maurice
>
> On 07/03/2016 13.26, Mário Luzeiro wrote:
>> Hi Maurice,
>>
>>> that was me pointing out of Raytracing in Blender :) ...
>> Sorry Maurice, I wrote Nick but I was thinking on you :)
>>
>>
>>> anyway maybe it could be useful to just Raytrace a scene as
>>> positioned/zoomed in OpenGL render engine... in Blender that is the
>>> way is done...
>>
>> I didnt understood,
>> Could you better explain this?
>>
>>
>>> Just a feedback on release 5921... in win8-64b-wx3.02 I get the
>>> rendering hanging and the progress status locked to 25%...
>>> also waiting looong time I don't get any rendering out ...
>>
>> work in progress.. wait :) .. It was working on Linux.. but not on
>> Windows.. some issue with threads (openMP) and wxWidgets... I will
>> fix it latter..
>>
>> Mario Luzeiro
>>
>> ________________________________________
>> From: easyw [easyw@xxxxxxxxxxxx]
>> Sent: 07 March 2016 12:22
>> To: Mário Luzeiro; kicad-developers@xxxxxxxxxxxxxxxxxxx
>> Subject: Re: [Kicad-developers] Some new sweet features on the new
>> 3D-Viewer
>>
>> Hi Mario,
>>
>>> On relation to Raytracing,
>>> As Nick already pointed, similar images rendered in other softwares
>>> (eg: Blender) could take minutes to render.
>> that was me pointing out of Raytracing in Blender :) ...
>> anyway maybe it could be useful to just Raytrace a scene as
>> positioned/zoomed in OpenGL render engine... in Blender that is the way
>> is done...
>>
>>> I can confirm issues found by Nick:
>>> - in opengl Mode building the 3D view roughly takes 3 times the
>>> calculation time of stable or 3d initial merge version for the same
>>> board.
>> I can confirm that slower rendering time also in OpenGL in
>> win8-64b-wx3.02, but just the first time, after the cache is built the
>> rendering time is much faster (about 1/10)
>> Anyway I think it would be useful to fix also the first rendering time
>>
>> about the improvement for the "pivot and rotation center", I think at
>> the moment the pivot is just fine; kicad is not a MCAD sw, so for
>> inspecting the board and parts, the actual implementation is just much
>> better the previous one with a fixed centered pivot...
>>
>> Just a feedback on release 5921... in win8-64b-wx3.02 I get the
>> rendering hanging and the progress status locked to 25%...
>> also waiting looong time I don't get any rendering out ...
>>
>> Maurice
>>
>>
>>
>>
>> On 06/03/2016 17.53, Mário Luzeiro wrote:
>>> Thanks Jakub for testing and your feedback!
>>>
>>> @Jakub, @Nick, @JP,
>>>
>>> On relation to Raytracing,
>>>
>>> "I found that low resolution can be only seen after zooming/rotating
>>> before render is done, but because render takes long time so then it
>>> can
>>> be seen as low resolution view for long time. In raytracing mode the
>>> render is made for all board. So when board is zoomed in or rotated
>>> then
>>> it can be seen in low resolution until a new render is done. But more
>>> zoomed board needs more details. So all board must be rendered again in
>>> better resolution and it takes more time than zoomed out board."
>>>
>>>
>>> I think this describes exactly how it was implemented.
>>> There are still room for improvements and suggestions are welcomed
>>> to do it in a different way.
>>>
>>> The fact is that Raytracing is a natural slow (or not, depends)
>>> algorithm. (No, it cannot be accelerated by GPU in this case)
>>> As Nick already pointed, similar images rendered in other softwares
>>> (eg: Blender) could take minutes to render. So what I implemented
>>> was some compromise to get a rendering in some seconds.
>>>
>>>
>>> So because it is a slow rendering method, there is a preview mode,
>>> the way I have it implemented at moment is:
>>>
>>> - Camera movements (and after loading or change parameters): "low
>>> resolution" preview mode.
>>> - You can do more movements during 1s and it will keep the "preview
>>> mode".
>>> - After 1s idle (after last movement), it will start working on the
>>> final render.
>>>
>>> A possibility would be to add a button "Click to render as
>>> Raytracing" and as Jakub said, there is no need to switch between
>>> render mode options.
>>>
>>>
>>>> Can you add into status bar a rendering progress ?
>>>
>>> I didn't find a way yet to do it.. but I keep investigate.
>>>
>>> I will reply your other questions and feedback latter...
>>>
>>> Thanks!
>>> Mario Luzeiro
>>>
>>> ________________________________________
>>> From: Jakub Kozdon [fldrivers@xxxxxxxxx]
>>> Sent: 06 March 2016 16:27
>>> To: Nick Østergaard; Mário Luzeiro
>>> Cc: kicad-developers@xxxxxxxxxxxxxxxxxxx
>>> Subject: Re: [Kicad-developers] Some new sweet features on the new
>>> 3D-Viewer
>>>
>>> Hi Mário,
>>>
>>> I was testing 5912. New features looks promising.
>>>
>>> I can confirm Nick's issues. Low resolution in raytraing mode and long
>>> render time. Long render time leads to "Program is not responding" in
>>> Windows.
>>>
>>> I found that low resolution can be only seen after zooming/rotating
>>> before render is done, but because render takes long time so then it
>>> can
>>> be seen as low resolution view for long time. In raytracing mode the
>>> render is made for all board. So when board is zoomed in or rotated
>>> then
>>> it can be seen in low resolution until a new render is done. But more
>>> zoomed board needs more details. So all board must be rendered again in
>>> better resolution and it takes more time than zoomed out board. So
>>> maybe
>>> you can made a raytracing only as option for exporting an image or made
>>> it default for exporting an images and OpenGL mode use only for 3D
>>> viewer. So user do not need to switch renderer engines.
>>>
>>> I found one bug. In OpenGL after first open of 3D viewer the traces,
>>> holes and maybe other has square shape.
>>>
>>> Can you add into status bar a rendering progress ?
>>>
>>> And is possible to do some render in GPU ? I have Nvidia NVS 3100M and
>>> i5 M520 CPU.
>>>
>>> I have two improvements for "pivot and rotation center". The first is
>>> that animated arrow can be made persistent and movable by mouse to
>>> getting the center at desired location. And the second improvement
>>> is on
>>> top of the first. When user moves the arrow so that arrow can be
>>> sticked
>>> to models - surface, center, edges - selectable by user, or somehow
>>> intelligent.
>>>
>>> Nicks sidenote - for cutting board artworks, it can be shown with some
>>> transparency to better imagine where the board edge is.
>>>
>>> Jakub
>>>
>>> Dne 5.3.2016 v 10:55 Nick Østergaard napsal(a):
>>>> .2016-03-05 0:22 GMT+01:00 Mário Luzeiro <mrluzeiro@xxxxx>:
>>>>> Hi NickOe,
>>>>>
>>>>> tanks for testing it!
>>>>>
>>>>> The issues you describe I didn't experienced it yet, would you
>>>>> like to try a latest version?
>>>>> I am testing on a linux machine and on a windows machine.
>>>> I was testing 5909 Fix an issue on raytracing it was not reset a bbox.
>>>> of lp:~mrluzeiro/kicad/kicad_new3d-viewer
>>>>
>>>> This is on archlinux x86_64.
>>>>
>>>> I will retest with 5912.
>>>>
>>>>> What CPU do you have?
>>>> Intel(R) Core(TM) i5 CPU       M 540  @ 2.53GHz
>>>>
>>>> That is two cores, and I have enabled hyperthreading.
>>>>
>>>>> On Raytracing, complex boards will take about 10seconds per CPU
>>>>> core just for rendering, it means if you have more cores it should
>>>>> take less. (depending also on the resolution)
>>>>>
>>>>> Regarding the load times, I was expecting the same or faster (it
>>>>> should be faster in the future even more).
>>>>>
>>>> Currently I am mostly concerned about the time that I open the
>>>> 3dviewer untill I can see my board (in opengl).
>>>>
>>>>>> I have also noticed that there are not holes rendered in the solder
>>>>>> paste in the opengl view.
>>>>> (I believe you mean solder mask ?)
>>>> On a second though, I mean solder paste and solder mask actually. :)
>>>>
>>>>> Since I received lots of requests (you and Maurice :P)
>>>>> I implemented that feature (on solder mask) in my latest commit.
>>>>>
>>>>> I was not very clear on if / how should I implemented the holes of
>>>>> the vias.
>>>> The old viewer shows holes in the solder make and paste at least.
>>>>
>>>>> Since there is no information to remove solder mask, that in the
>>>>> fab. will be "tented" vias.
>>>>> I leave it as discussion.Maybe I can add an option to remove it or
>>>>> not... but at moment it is by default implemented.
>>>>>
>>>>> There is an issue with that.. this is only work (at moment?) with
>>>>> THT vias.
>>>>> So it will not remove if it is a "micro via" between B_Cu/F_Cu and
>>>>> a inner layer.
>>>> I am not too concerned about the microvias, personally. My concern was
>>>> only on though hole pads such and the normal vias.
>>>>
>>>> I see your implementaiton of the holes in the mask now. But it looks
>>>> like the plating tube of the hole is smaller than the hole, is that
>>>> how it was intended?
>>>>
>>>> In trying to test the render speed, I tried to change an option in the
>>>> of the mask, it takes about 19 seconds, measured with a stopwatch
>>>> manually. It looks like only one thread is execution when looking at
>>>> the CPU usage in top. It is on 100% and the other three are below 15%
>>>> as when idling.
>>>>
>>>> A slight bug I noted that, I saw that the pivot point is reset after a
>>>> setting change to the viewer.
>>>>
>>>>> Hope advanced users that develop multilayer boards dont request it
>>>>> much! :P
>>>> On a sidenote; what was your plan on actually cutting board artworks
>>>> such as silk and pads and such that was outside of the board edge? If
>>>> implemented, I hope this will happen sometime in the future, then it
>>>> should be an option that can be enabled or disabled for the viewer.
>>>>
>>>>> Let me know when you try the latest updates...
>>>>>
>>>>> Mario Luzeiro
>>>>> ________________________________________
>>>>> From: Nick Østergaard [oe.nick@xxxxxxxxx]
>>>>> Sent: 04 March 2016 18:23
>>>>> To: Mário Luzeiro
>>>>> Cc: easyw; kicad-developers@xxxxxxxxxxxxxxxxxxx
>>>>> Subject: Re: [Kicad-developers] Some new sweet features on the new
>>>>> 3D-Viewer
>>>>>
>>>>> Hi Mario
>>>>>
>>>>> I just tried your branch the other day, but there the raytracing did
>>>>> not seem work properly at all. It was not rendering anything
>>>>> sometimes
>>>>> and when it did it was one of the very low res views. I don't remeber
>>>>> the revno, have you see this before? (I have not tried the latest of
>>>>> today yet, in case you already fixed it).
>>>>>
>>>>> I have a desing in similar complexity as that board and maybe a bit
>>>>> less, but it takes 17 seconds to load the board in the 3d view,
>>>>> whereas in the 3d viewer in 4.0.2 it takes 3 seconds for it to render
>>>>> in the 3d viewer.
>>>>>
>>>>> I have also noticed that there are not holes rendered in the solder
>>>>> paste in the opengl view.
>>>> _______________________________________________
>>>> Mailing list: https://launchpad.net/~kicad-developers
>>>> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>>>> Unsubscribe : https://launchpad.net/~kicad-developers
>>>> More help   : https://help.launchpad.net/ListHelp
>>> _______________________________________________
>>> Mailing list: https://launchpad.net/~kicad-developers
>>> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>>> Unsubscribe : https://launchpad.net/~kicad-developers
>>> More help   : https://help.launchpad.net/ListHelp
>>>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help   : https://help.launchpad.net/ListHelp



Follow ups

References