freetype-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Devel] 'tension' in splines, Hermite Splines [Re: Rendering (by FreeTyp


From: Vadim Plessky
Subject: [Devel] 'tension' in splines, Hermite Splines [Re: Rendering (by FreeType) and hinting of Latin small 'a']
Date: Wed, 11 Sep 2002 20:38:06 +0400
User-agent: KMail/1.4.6

Hello David!

On Tuesday 10 September 2002 12:43 am, David Turner wrote:
|  Hello Vadim,
|
|  Vadim Plessky wrote:
|  > I'd like to discuss (again) rendering of Serif fonts, and, in particular
|  > (to narrow the scope) - Latin small 'a'.
[...]
|
|  > 3) My testing of 5 different Times clones (variants), in addition to the
|  > version I develop,  demonstrates, that all variants of Times, with
|  > exception of Times New Roman, have similiar problem described above.
|  > See screenshots at th ebottom of th epage (Times New Roman is 2nd in
|  > series, each three rendered glyphs are 12pt, 11pt, 10pt Latin 'a')
|  >
|  > Here are my questions:
|  > a) can this *topology* (visually broken  curve) issue be fixed?
|  > I demonstrated problem on example of 'a', but many other glyphs are
|  > affected (in AA or RGN-AA modes), too.
|
|  Maybe, please test and report your opinion on that..
|
|  > b) how rendering (by FreeType, not too much interested in Adobe Type
|  > Manager or Windpows' rasterizer) of middle part of 'a' can be enhanced?
|  > Should I artificially deformate curve to make constrains snapping to
|  > horizontal position? (like is done in Times New Roman)
|  > This is not very desirable, as 'a' in Times New Roman has too small
|  > bottom part, IMO, and this is not easy for screen reading.
|  > Diagonal hinting also doesn't help here, as, frankly speaking, this part
|  > does't conform to diagonal hinting definition.
|
|  Try to make the stem slightly larger when it connects to the vertical
|  stem in the "a". This should help make it stronger/visible. Otherwise,
|  I don't see what could really done..
|
|  > c) Is it possible, in some way, to increase *tension* for FT rasterizer
|  > when it follows some part of the contour/curve?
|  > It's like of driving a car with high speed, and follow smooth turn to,
|  > say, left at 80km/hour.
|  > It can be done, if you increase your speed instantly /with acceleration/
|  > :-) So, I think we should find a way to do the same with such curves. Is
|  > it possible to do?  What are your opinions?
|
|  I fail to understand precisely what you mean here. Do you have anything
|  more visual as an explanation (maybe a small graphics could help ??)
|

I think I found good visual for this. It even has some animation! ;-)

I was looking for details of IKARUS format (grand-grand-father of all modern 
font editors), and found this:
http://www.faqs.org/faqs/fonts-faq/part6/
...
IkarusM displays all "on-curve" points, treating the curves
  as Hermite splines, which it converts to Beziers when making Type1 or
  Type3 fonts, and to quadratic B-splines when making TrueType fonts.
  On-curve points are helpful because they are intuitively more like what
  a naive user would expect--to change a curve, change a point on its
  contour. Fontographer uses bezier on-curve and off-curve control
  points. ...

Further search for Hermite Splines provided several quite interesting links.
[1] http://www.cubic.org/~submissive/sourcerer/hermite.htm
[2] http://patrick.wagstrom.net/projects/cs411/prog4/
[3] 
http://www.siggraph.org/education/materials/HyperGraph/modeling/splines/hermite.htm

Author of [2] has working sample (sources also available) of program which 
draws different splines - Hermite, Cardinal, Bezier.
pre-compiled binary (for RedHat 7.2) runs ok on my Linux-Mandrake 8.2
Drawing different kinds of splines in that program is a lot of fun :-)

Author of [1]  has this interesting info:
***
The Kochanek-Bartels Splines (also called TCB-Splines)

 Now we're going down to the guts of curve interpolation:
 The kb-splines (mostly known from Autodesk's 3d-Studio Max and Newtek's 
Lightwave) are nothing more than hermite curves and a handfull of formulas to 
calculate the tangents. 
These curves have been introduced by D. Kochanek and R. Bartels in 1984 to 
give animators more control over keyframe animation.

 They introduced three control-values for each keyframe point:
* Tension: How sharply does the curve bend?
* Continuity: How rapid is the change in speed and direction?
* Bias: What is the direction of the curve as it passes through the keypoint?
-------------------------------------------------------------------

I think 'Tension' and 'Continuity' add extra level of semantics to *ordinary* 
curve, which AA rasterizer so badly needs to preserve original shape of the 
glyph.

What do you think about all this?

Kind Regards,

Vadim
-- 

Vadim Plessky
http://kde2.newmail.ru  (English)
33 Window Decorations and 6 Widget Styles for KDE
http://kde2.newmail.ru/kde_themes.html
KDE mini-Themes
http://kde2.newmail.ru/themes/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]