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