Artworks Crystal Module
It's as clear as crystal to Geoffrey Dean that this new add-on is essential for all ArtWorks users
I have reviewed several of Martin Würthner's ArtWorks modules in the past and have never been less than impressed; they're always well implemented, invariably highly useful if not downright essential, and they extend the usefulness of ArtWorks significantly. But never before have I seen any kind of third party upgrade that delivers the kind of unquantifiably overwhelming improvement that the new Crystal module provides.
It's well worth recalling, I feel, that Computer Concepts told us many years ago that transparency in ArtWorks was impossible. Apparently they would have had to rewrite ArtWorks from the ground up, as they did with Xara Studio ('ArtWorks 2' for the PC), in order to implement it. Some people felt that they were almost using the issue like a stick with which to beat Acorn users about the wallet: "buy our new product, Xara Studio, and 'upgrade' to a PC in order to run it," they seemed to be saying, shortly prior to abandoning the Acorn platform entirely.
Well, not very long ago, Martin Würthner finally got into the position of being able to make changes to the ArtWorks core software, which opened the door to true new facilities being made available, beyond what's possible via the standard module mechanism, and, aside from fixes to a few minor but long-standing bugs, Martin's first major effort to improve the program has been to add the most ambitious-sounding and most frequently-requested feature to ArtWorks. To coin a cliché, he has come up with the Holy Grail of ArtWorks improvements: true transparency.
What's more, he's done it with astonishing speed and success. A mere handful of months after announcing that he was working on it, we have a fully-fledged and profoundly useful transparency facility in the program; one that permeates the entire range of things that ArtWorks can do and integrates so seamlessly that you'll wonder if it wasn't there, and just hiding, all the time!
Frankly, Computer Concepts ought to be ashamed of itself. If transparency were this quick and easy to add by a single individual, it should have been included in an official upgrade many years ago. But to say that is perhaps to denigrate Martin's efforts, which must have been considerable, and obviously I have no desire to do that. There's no doubt whatsoever that he's a very clever chap, and transparency cannot have been a trivial addition to make, regardless of the consummate ease with which he appears to have pulled it off.
So, eleven out of ten for effort and brainpower to Martin Würthner, and minus two out of ten to Computer Concepts for dedication and customer support. Having got that off my chest, let's have a look at what the Crystal module offers and how well it actually works.
Looking through Crystal
Installing Crystal is as easy as installing any other ArtWorks module, though Martin Würthner now supplies an integrated installer which makes installing and updating modules quicker and easier than before.
Once installed, the first obvious change (beyond the expected appearance of a new button in the toolbox) is the fact that the info bar at the bottom of the ArtWorks window is now significantly wider than before: extra space has been inserted in the 'well' area (the bit that changes as you switch between tools). At present, the Crystal tool itself is the only one to make use of the extra space.
Transparency might be a technically complex thing to achieve, but the interface presented to the user for controlling it is simplicity itself. There's a switch to turn the display of transparency on and off, a pop-up menu to determine what kind of transparency you want for an object (from a choice of three possibilities), a percentage entry icon and slider to determine the level of transparency, and another switch to deal with grouped items. There's also a help icon which, when clicked, causes the Crystal help file to be opened, though I shouldn't think that many users would need to refer to it often, having read it once.
The ability to toggle the display on and off needs to be there, but can really be forgotten for most of the time because it's turned on automatically when you use the tool, or when you load an ArtWorks file containing transparent objects. (Exactly when it's switched on automatically can be determined in the module's choices.)
To apply transparency, all you have to do is select an object or objects, go into the Crystal tool and drag the slider. Utterly simple. Alternatively you could just pick a transparency type from the pop-up menu to apply transparency. You can then edit the transparency level precisely by using the bump arrows to move in steps of 1% or typing in a number directly, but a quick drag of the slider will suffice for most purposes.
Crystal offers three distinct types of transparency, each of which effects the way in which overlapping colours are combined together to produce new shades. The setting of the transparency strength obviously affects the strength with which the transparency is applied, but, as we'll see below, setting it to 0% (for no transparency) does not necessarily mean that the transparency setting will have no effect! See below for an explanation of this. The available transparency types are, in order of appearance on the menu and of probable usefulness, Mix, Stained glass and Bleach.
The Mix setting is what you'll probably make use of most of the time: it simply averages the colours, so that placing a translucent red object over a yellow background would show an orange shape, for example. This effect, which is what most people would expect from using transparency, causes a simple mixing of the colours.
Stained glass transparency is quite similar to Mix in general effect, but is better suited for 'window' effects because it simulates the filtering of light through tinted glass. This is a subtractive effect which causes colours to be darkened.
The Bleach effect is in fact the logical opposite of the Stained glass effect: think of a slide projector, and what the effect would be if two slides got stuck together and were projected onto the screen at the same time. It is an additive effect which causes colours to be lightened.
This all probably sounds quite abstract, and indeed it does take a few moments to adjust one's mind to how the effects actually work. Therefore, here are three similar examples to illustrate what each effect does.
Let's take them in reverse order, starting with Bleach. Imagine three spotlights, of red, green and blue colours, being shone onto a black wall so that the circles of light they produce overlap. Or, alternatively, think of the three colour guns (red, green and blue) in a CRT monitor firing together to produce mixtures of colours in the pixels of the screen. Seen alone, the pure colours will be visible on the black background, but where they overlap, new colours will be produced. The results are as follows:
Because Bleach is an additive effect, it adds colours together to produce white; hence the white area in the centre of the illustration where all three colours meet. So, on a white background you'll never see an object with Bleach applied to it because white is the colour extreme to which it tends; but on a black background, the full range of the effect can be seen. In the example above, Bleach has been applied at 0% strength to all three colours, which means that there's no transparency as such, and the black background will not show through the pure colours themselves; but they still combine to produce full-intensity new colours where they overlap, with white in the centre. Applying some transparency strength would merely darken the colours (as the black background shows through), until they were invisible at 100% strength.
Now let's consider Stained glass. This is the converse of Bleach because it's a subtractive effect, and hence tends towards black. In other words, it would not show up at all on an entirely black background. The following illustration shows the effect; here, the three spots have been coloured cyan, magenta and yellow, as in colour printing:
Just as in the Bleach example, the effect has been applied at 0% transparency so that the background doesn't show through the objects at all. The colours therefore combine together at full strength. White light is subtracted from them where they overlap, producing a black centre where all three colours combine. Therefore, a white background is now necessary for the colours to be seen, whereas a black background was required for them to be visible in Bleach mode.
In other words, in terms of their treatments of white and black, Bleach can be thought of as being like RGB colour representation on a computer monitor (emitted light), whereas Stained glass is akin to colour printing on white paper (reflected light). This analogy may help to make the differences between them clearer.
For completeness, the next illustration uses C, M and Y circles on a white background again, this time to demonstrate the Mix mode. It's quite clear that the overlapping areas are the averages of the common colours. Think of the circles, in this instance, as being like pieces of transparent plastic which you've placed on a piece of white paper.
(Actually, in reality this is a fairly accurate representation of the results you get when printing in C, M and Y inks. Theoretically the three colours should combine to make black, but in reality the actual result of combining the colours is a kind of muddy brown, as seen in the centre, here, which is why a true black ink is also needed when printing in colour.)
In this example, note that the basic colour circles (i.e. the non-overlapping areas) look a bit washed out. This is because the Mix effect has been applied at 50% strength, which allows all three colours to be seen at half-intensity. Because of this, the white background is showing through the three colours and lightening them. If Mix had been used at 0% strength there would have been no colour at all in the shapes (you wouldn't see anything), whereas at 100% there would have been no transparency.
The three examples above actually show off the power and flexibility of Crystal very well. Aside from the actual colour-mixing effects, just consider how difficult the shapes created by the overlapping circles would normally be to draw in ArtWorks. There are seven distinct colour segments in each illustration (discounting the background). How would you go about drawing these accurately in ArtWorks?
Your choice would be either to start off with three circles and then use ArtWorks' path-editing tools to add control points where they overlap and produce new shapes based on these points; or you would need to use another of Martin Würthner's tools, Intersect, in various brain-bending ways to create new shapes from the overlapping pieces. Either way would be difficult at best and, in the former instance, of dubious accuracy.
But with Crystal the effect is child's play to achieve. It's just made up of three genuine, overlapping circles; nothing more.
There's just one other subtlety to consider when using Crystal: how to handle groups. Consider the circles-based demonstration we've been looking at so far. There are three overlapping circles, which may in theory be appearing over a changing background which has to show through them. In combining the three circles into a group, do we want the resulting shape to become entirely translucent, appearing in the same form as when it's solid, or do we want the overlapping parts within the set of shapes to become apparent as well?
An illustration makes the point more clearly:
In other words, the Crystal tool's Group switch determine whether or not the group is made translucent as a whole, or whether its elements are treated separately. If Group transparency is turned on, in effect the whole group is drawn as normal and then made transparent; whereas, if it's off, the constituent shapes of the group are made transparent independently and thus interact with each other.
For the incorporation of transparent artwork within other pieces of work, clearly Group transparency is the most useful option, and produces the results which will normally be required. And yet, according to the documentation accompanying Crystal, the Group transparency feature is not offered even by more advanced packages such as Xara X for the PC. Given than Xara X is the latest version of the PC-only successor to ArtWorks itself, it's amusing to note that ArtWorks is now one-up on Computer Concepts' own superior replacement!
How well does it work?
And that pretty much completes the description of what Crystal does. Once you've got your head around the three different kinds of transparency, it's incredibly easy to use. (Indeed, it's still extremely easy to use even if you find the different transparency types hard to grasp; just stick to using Mix and you'll generally get the results you want!)
As for what it allows you to do, well, that takes a much longer time to sink in simply because of the sheer scale of it all. It may sound contradictory, but on the one hand Crystal integrates into ArtWorks so well that it has almost no impact on the user interface, and seems as though the program was designed with it in mind from the outset; and on the other hand, to make full use of it actually requires you to completely rethink the way you approach ArtWorks.
Confused? Think of it like this. If you are setting out to create a new piece of artwork which uses transparency, you'll have to create many of your shapes in a different way than you would otherwise have done. Imagine you're wanting to draw a car: when it comes to doing the windows, you would previously have had to draw highlights and lowlights to produce a glassy effect, and draw little bits of objects inside, like the tops of seats, passengers' heads and so on. But now you can draw the things inside the car 'properly' (you might even import a figure from another piece of artwork), cover the insides over with a few shapes to represent tinted glass with reflective highlights, and then make the glass genuinely transparent to show the occupants of the car.
When it comes to the bodywork, previously you'd have to draw solid highlights to give the impression of objects reflecting off the curves of the body. But with Crystal you can do something more powerful: you could, for example, use a separate picture of a landscape, trees or whatever, distort it to fit over the side of the car, and apply it with Bleach transparency so that the bright highlights pick out a shape over the car body, producing a real reflection of a genuine scene (drawn or photographic). As for shadows below the car, rather than being solid shapes these can now just darken whatever's underneath them.
So, in drawing your car, at the very least you'll have to be a bit more careful in terms of the shapes you draw, bearing in mind that certain rough edges might possibly show through where previously they'd have been hidden. But if you want to take full advantage of the new facilities of Crystal and produce an ultra-realistic image, there are various new techniques that you can now use to enhance both transparent objects and reflections.
A very simple example can suffice to prove all of the above claims. I found two clip-art images on the CD edition of ArtWorks: one of a car and one of the heads and shoulders of three women, and my aim was to make one of the women look as though she was sitting inside the car. These are the two original ArtWorks images:
For the reflection on the side of the car, I found a JPEG photo with some trees in it that I took on holiday a few years ago:
So, first I copied the rightmost head from the first ArtWorks image, as it was facing in the right direction for use in the car, and I pasted two copies of it into the 'Figaro' car image. I scaled them down slightly to get them about the right size in relation to the car, and positioned them at an appropriate distance from each other and grouped them together. Then I simply shuffled them down the stacking order of shapes until they appeared just behind the shapes comprising the windows. I then made the window pieces transparent using Crystal's Stained glass effect.
At this point, one difficulty was apparent: the white top of the car was drawn crudely behind the window shapes, and as soon as the windows were made transparent, previously invisible parts of the white shape showed through. Also, the white roof shape needed to be in front of the heads in order to obscure part of the face at the right of the picture. However, it blanked out the whole of the side window, and the head couldn't be seen at all. So it was necessary to reshape the previously invisible part of the white roof shape so that it traced around the edges of the two windows. Having done that, though, the heads showed through the glass perfectly.
Indeed, although there is no new detail in the picture beyond the addition of the two heads, the windows look altogether more convincing because a darkened version of the graded background can now be seen through them; previously they looked too black. I also made the shadow underneath the car transparent, using Mix, which gave it a more realistic effect.
Finally, using Martin Würthner's JPEGObject module, I imported my digital photo into the picture, then compressed, rotated and skewed it so that it would fit at an angle along the entire side of the car. Then I set it to be transparent in the Bleach mode, using 60% transparency. The bright sky therefore appeared to be reflected on the side of the car, but the dark trees had no visible effect and just produced an interesting outline in the reflection.
And that was it. The results were surprisingly good, and the whole process took no more than five minutes. Imagine how good the results could be if new artwork were designed with these capabilities in mind from the outset! Here's the updated image:
As the use of a JPEG image confirms in the above example, Crystal is capable of making anything that ArtWorks can display translucent, including bitmap images. You're free to use any combination of transparent vector and bitmap graphics you wish, and if you've got Martin's JPEGObject module installed then you can have translucent JPEGs as well as translucent sprites.
This even allows you to do various kinds of straightforward image processing in ArtWorks. Take the following example, for instance:
This might not be a terribly exciting example, but it does illustrate the point. Three copies of a photo were made and a same-size rectangle was placed over each. A radial fill was applied inside each rectangle over an area of interest in the photo. Then the different transparency modes were used to create different effects, but in each case the aim was to go from a full-colour 'area of interest' highlight to a duotone background (either blue and black or blue and white). The most successful of the methods in this instance, I would say, is the Stained glass version at the top-left. Of course, there's no real purpose to this image except to illustrate that such effects are now not only possible but are in fact very easy to achieve.
As a final example I'd like to point out one particularly gratifying aspect of Crystal: it finally makes the creation of soft shadows perfectly feasible. As recently as a couple of months ago, when I reviewed Cerilica's Insignia for RISC World, I complained about how difficult genuine soft shadows are to achieve without a dedicated function in an image processing package. In a vector package, all but the simplest soft shadows are virtually impossible to achieve if you're drawing them manually.
But now, with the arrival of Crystal, that whole situation has changed: soft shadows are now really quite straightforward to create in ArtWorks! I won't say easy because in some instances (particularly for complex shapes like text) they still need a bit of fiddling to get right, but they're well within the bounds of possibility. To prove it, take a look at the following illustration:
The background to the lettering has been made as garish as possible to illustrate how the colour of the shadow alters to suit the background, thanks to its transparency. The shadow itself was created by producing larger versions of the letters and then blending them into smaller versions. The colour of the blend was black on the inside fading to white at the outside edges. In combination with Stained glass transparency, this caused the outside (white) edges to become completely invisible, with the solidity increasing towards the centres of the letters. Thus the shadow becomes more intense as it approaches the letters. (Had Bleach been used, the effect would have been reversed, with the letters being surrounded by ghostly white bubbles; actually, quite a nice effect.)
This illustrates yet another possibility provided by Crystal: if a graduated fill or blend is used from a colour to black with Stained glass transparency (or to white with Bleach), then the black (or white) end will actually become invisible when the transparency is applied, giving the possibility of graduated-transparency effects. Very nice indeed!
The icing on the cake of the Crystal tool is that it has astonishingly little impact on the performance of ArtWorks. It might be expected that use of transparency would slow down the program massively, but in fact it actually has very little effect in terms of the overall speed of the software.
There are, in fact, a few noticeable changes, most particularly in the way in which ArtWorks redraws its windows. There are three important changes here (and they only come into effect if the transparency display is turned on; switch it off and ArtWorks reverts to its normal behaviour). First of all, for technical reasons, ArtWorks' so-called background-redraw facility is no longer available (this affected the way in which windows other than the current drawing window were updated, and isn't really very important).
Secondly, rather than drawing every single shape while updating its window, ArtWorks now updates its window every couple of seconds; in other words, it now redraws things in chunks or batches. The overall effect can be to make the program feel slower to update its window, but in fact the speed is not much different; the difference is merely in the perception of its speed. In fact, the new method of redrawing can even be faster than the old way if a lot of screen updating is involved, because the updates don't need to happen as frequently (and this can be important for users of ViewFinder graphics cards in particular). Crystal allows you to specify how often the window should be updated (in centiseconds), so you can tweak the timing as you see fit.
Finally, with Crystal's display mode turned on, ArtWorks now uses error-diffused dithering to simulate colours in screen modes with fewer than 16 million colours, which gives a rather attractive grainy appearance to the graphics. Error diffusion produces much better-looking results than the previous regular dithering patterns that ArtWorks has used up to now, and in fact the new dithering method is a good reason to have Crystal's display mode enabled all the time, whether or not you actually use transparency in a document. It's a marked improvement over the previous way of dithering, as the following examples should show; both are screenshots taken in a 256-colour mode:
Can there be any limitations in such a wonderful piece of software as this? Well yes, there can, but thankfully they are few and mostly not very serious.
The most important problem at present is support for files that use transparency in other programs. Having the facility available in ArtWorks is all very well, but if you can't use your transparent ArtWorks files in DTP packages and the like, then their usefulness is limited.
At present that's the situation, and it's the most frustrating limitation of the new facility. However, there's no need to despair: an updated version of the AWRender module, which other programs use to display ArtWorks files, is in the pipeline, so in the near future it should become possible to use transparent files in other programs, as before. In the meantime, you can use Martin's BMExport module to save out a high-resolution bitmap rendition of your artwork and use that in your DTP software instead of the vector original.
Of secondary importance is the fact that blends and replicated objects can only be given one overall transparency (like Group transparency); you can't set different transparencies for their internal components. In some situations that could be slightly restrictive, but it's hardly likely to affect most users and can be worked around in any case.
There are also certain implications for printing; with transparency turned on, all rendering is done in RGB mode, so CMYK separations might not look quite right. This isn't likely to be a bit problem for most users, however. It's possible to print directly to PostScript, though, and transparencies are handled by converting them into bitmaps; you can set the resolution to use in the Crystal choices.
It's not possible to export Draw files and EPS files with transparency intact, though, for the obvious reason that these file formats don't support transparency. (The work-around would be to use a bitmap graphic instead.) Other minor restrictions within Crystal are so trivial as to be not worth mentioning.
So, in terms of limitations, Crystal has so few that they're barely worth considering; and several of them are likely to be addressed in any case.
If the fact isn't already apparent, I'm seriously impressed by Crystal. It completely transforms an already exceptionally useful program into a totally indispensable one, and massively increases the range of things that ArtWorks can do.
Without a doubt, Crystal is the single most useful tool for ArtWorks that Martin has yet produced, and if you buy only one of his tools, make it this one (Actually buy them all - ED). Anyone who makes even the slightest use of ArtWorks should consider it an absolutely essential purchase.
The prices quoted are for email delivery. Please add a further £2.50 for regular mail delivery on disc. Note also that the software may be ordered online via the MW Software Web site.