Krita/GSoC2010: Difference between revisions
Appearance
< Krita
No edit summary |
|||
(3 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
==This page is kept as an archive, a new tasklist was created for post GSoC hacking== | |||
= Pentalis = | = Pentalis = | ||
TODO to the midterm | TODO to the midterm | ||
Line 36: | Line 38: | ||
* <del>Create a heightmap-enabled colorspace.</del> Ugly and hacky at the moment. | * <del>Create a heightmap-enabled colorspace.</del> Ugly and hacky at the moment. | ||
* Bumpmapping algorithm: Allow illumination to work with different color spaces (use simple, hackish, temporary solution). | * Bumpmapping algorithm: Allow illumination to work with different color spaces (use simple, hackish, temporary solution). | ||
* Test point: take a Krita layer with a heightmap-enabled colorspace, save the impasted projection. | * <del>Test point: take a Krita layer with a heightmap-enabled colorspace, save the impasted projection.</del> | ||
* Create or patch a paintop to be able to write to the heightmap ("The fifth channel"). | * <del>Create or patch a paintop to be able to write to the heightmap ("The fifth channel").</del> Heightmap-enabled colorspaces turned out to be something REALLY complex to do, so... | ||
* | * Attach a greyscale paint device to KisImage that works as a height channel. | ||
* Create or patch a paintop to be able to write to this greyscale device. | |||
* Celebrate with champagne when it all works. | |||
* <del>Create a basic GUI to let the user control light sources and impasto behavior.</del> | * <del>Create a basic GUI to let the user control light sources and impasto behavior.</del> | ||
* Device a method to allow all relevant paintops to write to the impasto channel (This point may be extended later). | * Device a method to allow all relevant paintops to write to the impasto channel (This point may be extended later). | ||
Line 44: | Line 48: | ||
* Bumpmapping algorithm: Speed enhancements. | * Bumpmapping algorithm: Speed enhancements. | ||
** <del>Optimize cross products.</del> | ** <del>Optimize cross products.</del> | ||
** Optimize the algorithm itself. | ** <del>Optimize the algorithm itself.</del> | ||
** Optimize colorspace interaction. | ** Optimize colorspace interaction. | ||
Note: When I made this roadmap, I really had no idea of the difficulties I had to face. Speed was really, really important and nowhere in this list I took that into account. Anyway, speed is a solved matter, so here I go: | |||
<del> SPEED </del> | |||
==This page is kept as an archive, a new tasklist was created for post GSoC hacking== |
Latest revision as of 13:00, 17 August 2010
This page is kept as an archive, a new tasklist was created for post GSoC hacking
Pentalis
TODO to the midterm
Fixing the current glitch with duplicated hatchingPressure sensitivity to make lines thickerAdding a mode without sub-pixel precisionMaking an intuitive GUI to letPressure sensitivity to make more linesAbility to make crosshatchingEnabling pressure sensitivity to create crosshatching
Roadmap:
Finish the GUI containing all the widgets for a finished brush.Finished rc1, Evaluating design.Finish the GUI containing all widgets for a final release; crosshatching will have a prototype simplified interface.Clean all the code: 4 space indentation, use self-explaining long names,change class names to the definite ones,eliminate all chalk brush residuals.Link GUI. Only a window left.Implement the functions described by the GUI, from easiest to hardest or from most important to least important.- (
Most important: Scratch off algorithmnot so important, the algorithm would slow down both development and the user's computer by a huge amount, this may not be implemented;stylus setting sensitivityImplemented;Hard: interval based settingsthis was obsoleted by a discussion in IRCI'm reconsidering this, contrary to what others may think, the need for a DISCRETE list of settings controlled by the GUI is real and not perceived, the tool can only reach its full potential in that way).
Currently doing:
Considering how to approach impasto.Finishing the hatching brush.Fixing small remaining bugs.Intoxicating with yoghurtHeading to sleep after a long day of doing interesting things and learning, see today's commit 00:02, 27 June 2010 (PDT)Linking the last bits of GUI 11:39, 21 June 2010 (PDT)Linking the GUI 05:19, 18 June 2010 (PDT)Learning how to link new GUI widgets to the general config widget: the basic curve dialog and the BrushTip dialog. 07:08, 17 June 2010 (PDT)
Roadmap for Impasto:
Bumpmapping algorithm: Allow multiple light sources.Test point: take a greyscale Krita layer acting as a heightmap and bumpmap it.Create a heightmap-enabled colorspace.Ugly and hacky at the moment.- Bumpmapping algorithm: Allow illumination to work with different color spaces (use simple, hackish, temporary solution).
Test point: take a Krita layer with a heightmap-enabled colorspace, save the impasted projection.Create or patch a paintop to be able to write to the heightmap ("The fifth channel").Heightmap-enabled colorspaces turned out to be something REALLY complex to do, so...- Attach a greyscale paint device to KisImage that works as a height channel.
- Create or patch a paintop to be able to write to this greyscale device.
- Celebrate with champagne when it all works.
Create a basic GUI to let the user control light sources and impasto behavior.- Device a method to allow all relevant paintops to write to the impasto channel (This point may be extended later).
- Pretty Gimmick: Find the perfect heightmap to cause circles to look like semispheres and the impasto settings to make them look like droplets of water or a similar good-looking effect. Ask LukasT to make the spray brush able to create such droplets.
- Bumpmapping algorithm: Speed enhancements.
Optimize cross products.Optimize the algorithm itself.- Optimize colorspace interaction.
Note: When I made this roadmap, I really had no idea of the difficulties I had to face. Speed was really, really important and nowhere in this list I took that into account. Anyway, speed is a solved matter, so here I go:
SPEED