File: CHANGES

package info (click to toggle)
sipp 3.1-9
  • links: PTS
  • area: main
  • in suites: woody
  • size: 1,268 kB
  • ctags: 744
  • sloc: ansic: 8,534; makefile: 304; lex: 65; sh: 14
file content (134 lines) | stat: -rw-r--r-- 5,789 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
Changes in version 3.1 vs. version 3.0

    - Use of the pixel-buffer has been changed so that hidden surface
      elimination is done before shading. The result is that a shader is never
      called unless its value is going to be used. Renderings of complex
      scenes spend a large proportion of their time in the shaders so this
      often result in large speedups. The cost is a little more memory
      usage and a slight slowdown of very simple scenes due to less
      incremental calculations.

    - Support for user specified normal vectors at polygon vertices.

    - Its possible to define free form deformation functions on surfaces. This
      is done in a way similar to the shader function scheme. There are some
      known caveats with this, check out the TeXinfo documentation for more
      details. THIS IS EXPERIMENTAL!

    - A user can now register a callback function which SIPP will call at
      regular intervals during a rendering (this interval is also user
      specified). This is helpful for interactive applications who might need
      to check for events and such.

    - A new function, sipp_render_terminate(), designed to be called from the
      callback function to abort a running rendering.

    - New function sipp_render_direction() which selects if rendering goes
      top to bottom or bottom to top.

    - object_delete() renemed to object_unref() for better understanding of
      what it actually does. object_delete() is still available for
      compatibility. 

    - New function: surface_unref() to "match" object_unref() on the surfaces.

    - A new primitive object: sipp_teapot() to create the famous Utah Teapot.

    - ANSI-prototypes (in compilers that support it) in the include files.

    - Support in the Makefile for making SIPP as a shared library under
      Sun-OS. 

    - The internal data structures for Object and Surface rewritten to use
      dynamic arrays of pointers instead of linked list. This cleaned up the
      code and removed some subtle possibilies to create memory corruption.

    - User selectable reference counting behavior for surfaces and objects.
      This is for developers of more complex applications on top of SIPP who
      need more control over memory manegement. 

    - Support for reference counting and automatic deallocation of surface
      descriptions. This is also for developers of more complex applications
      on top of SIPP who need more control over memory manegement.

    - Various minor bugfixes.


Changes in version 3.0 vs. version 2.1

    - Pure z-buffer replaced with a more powerful "pixel-buffer" which
      allow transparent surfaces to be rendered. Transparency is controlled
      in the shaders which allow interesing effects, like 
      "transparency-mapping"

    - Shadow casting supported through depth-maps.

    - A more general lightsource concept which make it possible to have 
      colored lightsources of different kind, turn these on and off and
      manipulate them in various other ways.

    - It is possible to create several virtual cameras and then use
      any of them as viewpoint in a rendering.

    - Viewing vectors sent to the shaders are no longer an approximation.

    - Shaders can be more powerful since more information is sent to them, 
      and a more flexibel shader-lightsource interface is used.

    - A background color can be specified.

    - Texture coordinate interpolation is finally done right (I hope...)

    - Bezier patches and surfaces of revoultion can be created with a
      simple function call instead of reading them from a file in our
      weird format.

    - All object primitives can now be created with one of a few different 
      texture coordinate mappings.

    - A new shader: The familiar Phong illumination model.

    - A complete user manual in texinfo format.


Changes in version 2.1 vs. version 2.0.*

    - Support for more rendering modes: Phong, Gouraud, flat and line.
      Only Phong mode can do real texture mapping though.

    - Support for rendering into other places than files. We have chosen
      to call this rendering into pixmaps, but there is no restriction on
      what is really used. This is accomplished through a callback function
      similar to the shader interface. A basic implementation of pixmaps
      and bitmaps that could be used are supplied in the library.

    - Oversampling for antialiasing can now be arbitrarily large.

    - It is possible to turn off backface culling. This is useful if you
      have a database of objects that are inconsequent in the ordering
      of its vertices (clockwize/counterclockwize).

    - Two new object primitives, cone and prism.
      Thanks to David Jones (djones@awesome.berkeley.edu) for these.

    - Two new shaders. 
        1. strauss_shader() - This is an implementation of the shading 
           model designed by Paul S. Strauss at Silicon Graphics Inc.
           and described in IEEE CG&A November 1990.
        2. wood_shader() - A shader that simulates wood texture using
           noise and turbulence.

    - Matrix and vector handling functions and macros are now "public".

    - Correct interpolation of texture coordinates. Previously there
      were disturbing "rubberband" effects on objects spanning large
      depths in the picture.

    - A full polygon clipper is now used instead of the previous, rather
      strange approach. Objects behind the viewpoint are now handled correctly
      (I hope), previously they caused strange effects.

    - It is possible to get the current transformation matrix from an object
      and not only to set it. This makes it a lot easier to do animations.

    - Subobjects and surfaces can now be removed from objects.