GUI Prototyping thread...

Discussion related to the development & design of the LuxRender Graphical User Interface
coordinator: none (position is open)

Moderator: coordinators

Re: GUI Prototyping thread...

Postby Carbonflux » Tue Oct 14, 2008 6:55 pm

Ratow...

Well you were right about learning the api better, and wx for that matter,

I wanted to have this done sooner but I needed another learning loop with wx and I had a problem with one of my monitors and was down to lower res for a few days which is very bad for wxFormBuilder. :)

Anyway, here is a first pass at the tone mapping controls...
lux.ui.tonemap.1.png


Please ignore the Network tab for now, I will have that implemented in a few days. :)

All the controls "work" in that they modify each other and store the values in member vars etc, the tool tips tell you what the various controls are which I thought was a fair way to save real estate, the defaults are taken from the lux source and ranges of values are taken from the what Violet uses. Still having some struggle with the text edit controls tho, wx does not want to do floating point values in sliders or limit a text control to just numeric input so there are still a few control flow paths that will lead to bugs.

I had to alter luxgui quite a bit, I also added a real options dialog class that handles its events correctly etc.

But, the tone mapping controls are ready to hook up to the luxFilm api when that is ready.

Its my understanding that if I call luxFilm right now it will just alter the Context::renderOptions, I can see that propagating to the render farm but I am assuming its not having a effect on the current rendering, looking at the code and talking with LordCrc it does look like I could expose some members of the film class and alter them, but that seems like a hack, heh, anyway I need some direction for this part.

I can generate dif files for these changes so far or wait and prototype the network tab, which is almost done really in simple form, it will just have a list of the servers and the file they are rendering etc. I plan on hooking it up to the api for demoing it as it looks like I can get all that information from the api right now.

Ratow: I also need some help understanding the wximages.h file and how it was generated, the copy and reset button need icons etc, I can make a place holder set or even take a shot at doing real ones. :)

Best Regards :)
www.carbonflux.org - photographing the imagination.
User avatar
Carbonflux
Developer
 
Posts: 1394
Joined: Thu Aug 07, 2008 7:22 pm
Location: Seattle, WA, USA.

Re: GUI Prototyping thread...

Postby jeanphi » Wed Oct 15, 2008 3:13 am

Hi,

Just a comment on the mockup: it is not clear at all what each value is for, and you might try to add a refresh button to force an update of the displayed image (you would then also need to reset the update timer).

Jeanphi
jeanphi
Developer
 
Posts: 6569
Joined: Mon Jan 14, 2008 7:21 am

Re: GUI Prototyping thread...

Postby Radiance » Wed Oct 15, 2008 3:40 am

even though i think it looks cool :), i think we should have the tonemapping controls in it's own section,
and leave basic controls for controlling rendering function/slaves/threads and window update ontop of the render pane.

the tonemapping controls will also become too much/complex to fit them on there soon i guess. ?

Radiance
User avatar
Radiance
 
Posts: 3968
Joined: Wed Sep 19, 2007 2:13 am

Re: GUI Prototyping thread...

Postby Ratow » Wed Oct 15, 2008 8:36 pm

Yeah, it's looking nice. What about that idea of putting configuration stuff on a dialog window? If it's set to be non-modal, it can be used to change the tonemapping and you could see the results almost immediately.

It would be great if those controls were in one of those little toolbox windows like there is in photoshop/gimp. I don't think wxwidgets has these pre-made though... :(

There is some work being done to separate the core (in a dll/so) from the renderers so any functions called from the gui should be from the external api (api.h). Unfortunately this usually means some extra work since some wrapper functions will be needed to access the film. I can't help much here since I've out of touch with the core for some time now. :cry:

And sorry about the wximages.h. I should have written some info about it ages ago but it's pretty simple really. As is written on its header, I used wxInclude to convert pngs to c arrays. You can find some more info about it and a link to in here. Just generate a file with your pngs and copy/paste the relevant parts in wximages.h

-Ratow
User avatar
Ratow
Developer
 
Posts: 308
Joined: Sun Oct 28, 2007 8:19 am
Location: São Paulo, SP, Brazil

Re: GUI Prototyping thread...

Postby Radiance » Wed Oct 15, 2008 8:57 pm

That reminds me,

Apparently it's possible to configure/get/set aui pane positions and other drag and drop positions/scales of aui objects in wxwidgets using the aui framework.

Radiance
User avatar
Radiance
 
Posts: 3968
Joined: Wed Sep 19, 2007 2:13 am

Re: GUI Prototyping thread...

Postby Carbonflux » Wed Oct 15, 2008 11:20 pm

I was trying to save real estate etc so I did not label the controls but if you mouse over them it gives you a tool tip.

Originally I did have a tonemapping toolbar and it is very easy to return to that, really that is the simplest option and it does not have to be confined to the size of the render toolbar which would allow for better labels.

As far as making a kind of side window I 1/2 think thats possible by messing with the boxsizers, I can try it, or if you want it a non-model tool window I can in fact do that, I figured that out making the options dialog.

Putting the slaves on the toolbar etc is no problem but, I did want to propose a network/render queue tab that would in fact do a lot more, it might be over kill tho, I need a bit more time to have a prototype, if its wrong it will be fairly easy to implement the toolbar style. :)

I will start by making a tonemapping toolbar as a horz style toolbar and if that is wrong it should be easy to mess with the boxsizers to make it a options window.

I will investigate enabling the configuration of the aunotebook stuf, it does not seem to be enabled by default, but allowing the user to doc and undoc stuff would really be the ideal solution so long as we can manage the reorganization of the controls etc.

I will merge all these comments into another prototype pass and post it asap.

Ratow: thanks for the ref that helps and makes sense, I like the idea of embedding them in the bin, seems "clean" to me.

:)
www.carbonflux.org - photographing the imagination.
User avatar
Carbonflux
Developer
 
Posts: 1394
Joined: Thu Aug 07, 2008 7:22 pm
Location: Seattle, WA, USA.

Re: GUI Prototyping thread...

Postby Carbonflux » Thu Oct 16, 2008 9:41 pm

here is tone mapping on its own toolbar...
lux.ui.tonemap.2.png


This is what happens when you undock it by default...
lux.ui.tonemap.3.png


As you can see there are some issues, it leaves a dock for the toolbar, also I have not found a event yet for dock vs undock, if I find a way to hook that the controls can be rearranged into a tool pallet.

However, the docking only seems to work in GTK and not windows.

So unless we want to have windows/mac be limited to a toolbar it might be better to go with a floating tool pallet ( gimp style. ) I wanted to give the docking code a shot tho just to see how it worked :)

Also, I have yet to do icons, so the text on the buttons is just a place holder, unless we want to go with button text.

I investigated the aunotebook options and it does seem like you can move stuff around quite a bit, as far as I can see the only issue with saving that off is deciding on how, ie, some kind of configuration file etc.

More soon :)
www.carbonflux.org - photographing the imagination.
User avatar
Carbonflux
Developer
 
Posts: 1394
Joined: Thu Aug 07, 2008 7:22 pm
Location: Seattle, WA, USA.

Re: GUI Prototyping thread...

Postby Carbonflux » Fri Oct 17, 2008 7:12 pm

Here it is as a floating tool pallet, modeless but always on top...

lux.ui.toolpal.1.png

lux.ui.toolpal.2.png


The controls are not hooked up because the "options" dialog is a separate class but that would just take a hour or two, I can also code the calls to the luxFilm api with the new values etc.

I assume luxFilm( "film", "reinhard_prescale", &pre_scale, .... ); is the right way to do it ?

We can toggle the "tool pallet" with a entry in the view menu or on the toolbar.

:)
www.carbonflux.org - photographing the imagination.
User avatar
Carbonflux
Developer
 
Posts: 1394
Joined: Thu Aug 07, 2008 7:22 pm
Location: Seattle, WA, USA.

Re: GUI Prototyping thread...

Postby Radiance » Fri Oct 17, 2008 9:01 pm

Hey,

That's not the way to do it as that's for configuring a new scene...
As said there aren't any API hooks to change any of these params on the fly at the moment,
so i suggest you implement the gui and we add those afterwards :)

Radiance
User avatar
Radiance
 
Posts: 3968
Joined: Wed Sep 19, 2007 2:13 am

Re: GUI Prototyping thread...

Postby jeanphi » Sat Oct 18, 2008 4:25 pm

Hi,

Regarding system options:
- it might be interesting to have direct access to the number of threads instead of a panel
- the erase FLM at start option would be useless I think, except if you plan to make those settings supersed those provided in the lxs file at load time, but it will quickly lead to unexpected behaviours.

Jeanphi
jeanphi
Developer
 
Posts: 6569
Joined: Mon Jan 14, 2008 7:21 am

PreviousNext

Return to LuxGUI

Who is online

Users browsing this forum: No registered users and 1 guest