← Back to team overview

kicad-developers team mailing list archive

Re: 3D-Viewer - Request for merge evaluation

 

Le 22/06/2016 à 10:37, Mário Luzeiro a écrit :
> Hi JP,
> 
>> for instance, when changing material options, the 3D board is not redrawn, giving the
>> impression of an unresponsive command
> 
> You mean when changing options in the Preferences? It is true that some commands are not updating
> / reload the view, I didn't made yet a proper logic behavior on that because some of the reasons
> explained below related with reloading.
> 
>> 1 - your rev 6066 (Do not redraw the 3D viewer after a change in pcbnew) is not good.
> 
>> I saw the comment: // This function is used by moduleframe.cpp // while editing the pcb board,
>> so it will not redraw to not slow the pcbnew But if the user displays the 3D view during an
>> edition, he expects to see the changes (on my computer, a change in footprint editor takes less
>> than 0.1 sec to be redrawn in the 3D viewer)
> 
> As you see in the comment, it was firstly implemented that way: Any change on pcbnew it will
> reload the 3D-Viewer and redraw. But after some user feedback (Maurice) and I try it my self, on
> complex boards (eg: with fill zones) it will take longer (eg: the video demo, depending on the 3D
> options, can take 2 .. 10 seconds)

Yes, I missed the board editor.
Perhaps (as a first approach) it could be worth to separate the 3D view rebuild when the rebuild
comes from the 3D viewer, or the board/component editor.
(perhaps for now an option like bool aRebuildNow in a reload request).


> 
> During that time, the 3D-viewer will use as much as possible the CPU to reload the board and it
> is not practical to make changes during that time on pcbnew. Everytime you change a footprint or
> track.. etc. How does the stable 3d-viewer behaves? I understood that it was not updating until
> you click on the windows. I was trying to follow the same behavior.
> 
> 
> This is all related with some of my initial idea just before start working on this new 3D viewer,
> I was expecting that the changes on pcbnew could be fast updated on 3D-viewer - almost realtime. 
> At this moment, I didn't implemented it yet because I was looking for changes on pcbnew that will
> be needed. For instance, the pcbnew is just flagging that the 3D viewer needs to be reload, but I
> was looking for a way that it could tell with more precision what changed. So it will be possible
> to tell if it was a footprint change, what layers were effected, if the fill zones changed,
> etc..
> 
> that way, it would be possible to just change that specific part and quickly update the
> 3d-viewer.
> 
> That is way I didn't yet implement properly the updates while changing parameters (Preferences)
> because I was looking for some general way to flag with precision the 3d-viewer on what changed.
> 
> Any suggestions? Would it be possible to do on pcbnew?

Clearly, flagging that the 3D viewer needs to rebuild the view needs a finer info than just rebuild
the 3D view.

At least, the footprint editor can ask for an immediate rebuild, and the board editor a rebuild only
when the 3D viewer has the focus.

I do not see any problem to modify/optimize Pcbnew for that.

We can even use a more sophisticated communication between the 3D viewer and pcbnew (based on
messages, like cross-probing  between Eeschema and Pcbnew).

> 
> 
>> 2 - A minor other issue: if you rotate the view from the toolbar icons, there is a strange mix
>> of raytracing and opengl mode, until you change the view from the mouse.
> 
> Yeah there are still some strange states, I will have a look...
> 
>> Thanks, Mário, for your hard work.
> 
> Thanks for your valuable testing! Mario
> 

Thanks.

-- 
Jean-Pierre CHARRAS


References