summaryrefslogtreecommitdiffstats
path: root/chalk/doc/background_paper.txt
diff options
context:
space:
mode:
authortpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2011-06-26 00:41:16 +0000
committertpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2011-06-26 00:41:16 +0000
commit698569f8428ca088f764d704034a1330517b98c0 (patch)
treebf45be6946ebbbee9cce5a5bcf838f4c952d87e6 /chalk/doc/background_paper.txt
parent2785103a6bd4de55bd26d79e34d0fdd4b329a73a (diff)
downloadkoffice-698569f8428ca088f764d704034a1330517b98c0.tar.gz
koffice-698569f8428ca088f764d704034a1330517b98c0.zip
Finish rebranding of Krita as Chalk
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/koffice@1238363 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'chalk/doc/background_paper.txt')
-rw-r--r--chalk/doc/background_paper.txt84
1 files changed, 84 insertions, 0 deletions
diff --git a/chalk/doc/background_paper.txt b/chalk/doc/background_paper.txt
new file mode 100644
index 00000000..96226fe2
--- /dev/null
+++ b/chalk/doc/background_paper.txt
@@ -0,0 +1,84 @@
+Background, paper, layers, blobs
+
+An image in Chalk is imposed upon a plane. Perhaps, using OpenGL,
+we'll be able to rotate and elevate that plane at the users' whim.
+If we can elevate the plane, there will be a direction of gravity
+that naturalistic media can play with. Note: Wet & Sticky make it
+possible to "paint" gravity. This looks like a fun feature, but
+that needs to be done per-layer, and not for the whole image.
+
+The plane is represented by the checkered background. Ideally,
+we'd be able to set the color of the checks & the size, and the
+size shouldn't change with the zoomlevel. The checks are one
+pattern, repeated for the whole image:
+
+O#
+#O
+
+Placed on the plane is optionally the substrate -- a naturalistic
+representation of canvas, linen, paper, board, wood, levkas. Or
+something weird, kopper, rock, sand... There is one substrate
+per image. The substrate can be a small texture repeated for the
+whole image, or as big as the image -- the latter is important
+if we want to make it possible to perturb the substrate (think scoring
+lines into levkas or erasing through the paper).
+
+Provisionally, the substrate has the following properties:
+
+height
+smoothness
+absorbency
+reflectiveness
+
+(Of course, layers below the current layer can influence these values
+for layers on top of them.)
+
+I have a hunch that the effect of these properties are really easy to
+render using OpenGL, but not so easy using plain QPainter. In any case,
+media layers will need to know these values at every pixel. We need
+a really easy & fast way to acquire them.
+
+We need to avoid the Corel Painter feature where you can use a naturalistic
+paper and then paint away the paper structure, mixing the color of the paper
+with your paint as if the paper were paint. So, we need to separate paper
+and paint thoroughly.
+
+On top of the substrate and background are the layers themselves.
+Some layers are just color; others contain media. Media means color,
+but possibly in a kubelka-munk colorspace, and properties like:
+
+height
+graininess
+viscosity
+wetness
+smoothness
+absorbency
+stickiness (i.e, charcoal isn't sticky at all, acryl paints very
+sticky)
+
+Note: Impasto models thick, 3-d paint, where tufts of thick oipaint can
+cast shadows...
+
+Ordinary color layers (Shoup layers in the terminology of Cockshott) can
+make use of the substrate parameters using special paint ops, and ordinary
+color can be painted on a media layer, but the ordinary color paintops
+do not deposit the above properties. Media paint just leaves color on the
+color layers. We need to avoid at all costs the Corel Painter effect where
+trying to use a pencil on a watercolor layer causes a nasty flow-impeding
+useless error box to popup.
+
+Media and ordinary layers can be grouped and mixed at will, together with adjustment
+layers. Adjustment layers can also be attached to selection tqmasks, per layer.
+
+The composited layers is either scaled and color corrected, or color corrected and
+then scaled, depending on whether the zoom > 100% or < 100%.
+
+Note: do we need a visualisation layer on top of the layers for things
+like wetness, reflectiveness, height? Perhaps this is the right place for that.
+We need perhaps to add a light source or two, in OpenGL mode... I think
+we do.
+
+On top of the layers are what Xara calls blobs: the temporary droppings of
+tools, like rubber bands, vector paths, brush tqshape cursors.
+
+