-
Notifications
You must be signed in to change notification settings - Fork 1.3k
A port of Blender's AgX to darktable #19026
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
TurboGit
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not yet tested, only a first pass on the code, just some QA checks.
I hope I was able to take care of most formatting issues, please let me know if I missed or misunderstood any. I'll take care of the extraction of deg2rad later this week. What's the policy regarding resolving discussions? Should I resolve them, indicating they should now be fixed, or does the person who started the conversation resolve them, indicating they are satisfied with the outcome? |
If you have resolved them, then do click on the resolve button. I'll anyway do another and possible multiple pass on the code. |
|
I don't know what to do about that macOS build failure. The error is not shown in the output, and agx.c was also not part of it. |
|
See #19035, same error
Search for |
|
@TurboGit : maybe the |
|
@kofa73 : The CI error is not related to this PR. I have merged the fix from @victoryforce. If you rebase your PR on top of current master and push back the branch kofa73:agx it should be green now. The tiling callback is needed for module using lot of memory. I suppose it is not the case here, so yes as for Sigmoid you could probably remove the tilling code/ |
TurboGit
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A second pass on the code, still not tested.
|
I've really only glanced at the ui related code, because there's obviously too much to catch up on here and on pixls to fully understand what's going on. It is hard to get a feel for the ui code quickly because it follows very different conventions from the other modules. We have standards, like a pointer to Separate from whether it is advisable to duplicate widgets over several tabs, like is done when For shortcuts, it might be helpful to create some order in the long list of parameters using |
|
Thanks for the feedback. You are right, of course, I'll update the names for The sizegroups I've never heard of. I'll try to check, and will rely on the offered help if I'm completely lost. I'll have a look at the You've given me quite a bit to work on; 'fortunately', it looks like it'll be rainy weekend. I'm sure I won't get everything done, and I'm going on vacation in a few days, cut off from any development environment (I may work a little bit on the docs, though). So if I'm not responding in a timely manner, it's not due to indifference/laziness, but lack of access. |
|
Param name clean-up, reparenting and DT_IOP_SECTION_FOR_PARAMS done. I hope I didn't make a mess of them. I kept Regarding the size-groups: as we have multiple tabs as well as collapsible sections, the size of the 'current tab' can vary greatly. I don't know if it would be useful to keep the height of the module always the same, as people were already complaining about vertical space taken up by the module (that's why the curve page was introduced). We have some other modules whose height varies, e.g. Anyway, I don't know how to make the sizes better behaved, so if you have some ideas, or can help with that, @dterrahe, I'd be grateful. |
ffbde74 to
06f0b0b
Compare
…ms()" This reverts commit 1370620.
…culate the matrices later, instead of computing them. This is done in process(), where we have access to the actual processing profiles.
Since the edits that can be done with the sliders of the look-box are display-referred, it is best to position the box at the bottom. The position at the top is misleading the users. These modifications should be the last ones and in many cases they are not even necessary.
…le; look neutral; restore hue = 0
…ntrols always visible
Messy, see https://discuss.pixls.us/t/blender-agx-in-darktable-proof-of-concept/48697/1883
Now supported via |
|
@kofa73 : Let's forget about the colored sliders, we'll handle that later if really needed. |
TurboGit
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tested again, works on my side. At this stage I think it is ready for integration.
Is that ok or do you plan some other minor changes?
Thank you. No other changes are planned. |
|
Now merged! Congrats! Can you propose a release note entry? TIA. |
|
I'll update files for AgX to be translatable and will add a regression test. |
|
Lots of congrats also from my side. Really good stuff and good to see you fully landing in the dev team! |
|
@kofa73 Congrats! This is a real and significant improvement to darktable as a photo processing tool. |
How about:
|
|
@kofa73 : For such a great feature I would expect a paragraph with minimum 5 lines or so. We need to talk about the different controls, the curve, the primaries. Maybe also have some words about why it was developed. What is different compared to Filmic or Sigmoid. How does that sound to you? |
|
Err... I'm not good at this. It's like a list of the controls. Added a new tone mapper implementation based on Blender's AgX display transform. The new module's color output is similar to that of |
|
Good to me, thanks! We can improve later if needed but this make it more appealing :) |
* A port of Blender's AgX to darktable --------- Co-authored-by: Anna <[email protected]>
An attempt to port Blender's AgX tone mapper to darktable, based on @EaryChow's https://github.com/EaryChow/AgX_LUT_Gen/blob/main/AgXBaseRec2020.py.
The tinting sliders are not implemented, no one seemed to require them at pixls, and I think darktable provides plenty of controls to implement that in other modules.
iop_profile.chas been altered to make the output profile available as a source of base primaries. It is not essential to the module, but I think it would be useful to keep, e.g. for future gamut compression code. If accepted, maybe it'd make sense to update sigmoid, as well, where sRGB can currently be selected as a set of base primaries, too.(TBH, I'm scared witless. I feel like I'm in The Emperor's New Clothes, and I'm no emperor, just a clown, to be exposed to the world -- and being aware of the situation just makes it worse.)