[dev-context] [contexttest-Feature Requests][70] Smooth shading

contexttest-featurerequests at foundry.supelec.fr contexttest-featurerequests at foundry.supelec.fr
Sun Feb 4 23:40:09 CET 2007


Feature Requests item #70, was opened at 2007-02-04 23:40
You can respond by visiting: 
http://foundry.supelec.fr/tracker/?func=detail&atid=164&aid=70&group_id=21
Or by replying to this e-mail entering your response between the following markers: 
#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+
(enter your response here)
#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+

Status: Open
Priority: 3
Submitted By: Mojca Miklavec (mojca)
Assigned to: Nobody (None)
Summary: Smooth shading 
Version: None
Category: Typesetting


Initial Comment:

(Mojca's summary of needed features - I'll try to implemented, but I need to "save" the requirements somewhere before I forget them ;)

Description is missing: this list is really taken "out of context".


To implement that, the following is needed:
- a well-defined metapost interface accepting optional parameters
- "dirty" metapost specials and trickery

My idea is to split the examples which have to be handled as streams (goraud shading for triangular meshes) and those that can be handled easily: linear & circular shading. I would worry about goraud shading later, since it's really difficult to make a sensible interface for it (unless it's about a single triangle).

At least for linear and circular shading I would propose to split the function and the code which generates linear and circular shadings. That way it will be much easier to support what Peter wants (and what I need for the gnuplot terminal) & plotting a rainbow in a single move.


(Type 2) For linear shadings we need:
- a closed path to which it has to be applied, to calculate the bounding box (for start and stop point), to crop the shading
- optional parameter if shading needs to extend over the two boundaries or not (not so important)
- optionally provide the start and stop point for shading (default values: depends on angle; shading has to exactly cover the whole path)
- optionally provide the angle (default 0)
- provide the function or two colors - if two colors are provided, they should be passed to the function in a proper way

(Type 3) For circular shadings we need:
- a closed path to which the shading has to be applied: I guess that now the shading needs radius of the first circle
- optional centers and radii of the two cicles (default values: both center in path center, one radius zero and one to cover the whole path)
- optional parameter if shading needs to extend over the two boundaries or not (not so important; default values probably false?)
- provide the function or two colors

(Type 4) For "Free-Form Gouraud-Shaded Triangle Meshes" we need:
- patched Gnuplot 4.3 (http://bugs.libgd.org/?do=details&task_id=39), m-gnuplot.tex and it's documentation ready; all other shadings functions and shadings listed here implemented; then we'll start discussing it



For functions we need:
* Type 0: sampled - let's worry about it later, I don't understand how to apply it; it can be mimicked with Type 3+Type 2 (although less efficient, but working OK)
* Type 2: exponential interpolation
- two colors
- optional exponent (default 1)
* Type 3: stitching (combining multiple functions)
- multiple functions
- optional bounds between them (default: evenly distributed)

Watch out for alpha channel and CMYK!


----------------------------------------------------------------------

You can respond by visiting: 
http://foundry.supelec.fr/tracker/?func=detail&atid=164&aid=70&group_id=21



More information about the dev-context mailing list