-
Notifications
You must be signed in to change notification settings - Fork 8
/
CHANGES
489 lines (454 loc) · 18.2 KB
/
CHANGES
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
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
Fluxus : (C) 2008 Dave Griffiths : dave at pawfal dot org : www.pawfal.org
0.18
* compressed texture support
* added (midi-program) and (midi-cc-event) by Hugo van Galen
* midi out support
* midi incremental cc messages (midi-set-cc-mode), (midi-get-cc-mode)
* updated to Racket
* added (draw-line)
* pixel primitives with more texture attachments for feedback effects and FFGL plugins
* (shader-set!) accepts keyword arguments as shader parameters
* new primitive: (draw-teapot), (build-teapot)
* alt+l for λ
0.17
* added render to texture support to pixel primitives,
(with-pixels-renderer), (pixels-renderer-activate)
* added sphere mapping, (hint-sphere-map)
* added FreeFrame GL support
* added scratchpad effects (jiggle, wave, ripple, swirl)
* anti-aliasing works on the type primitive
* windows support
* multitexturing crash fix on nvidia
* objects removable from physics
* shader fixes for nvidia
* OpenAL support for 3D sample playback
* French translation of manual
* (build-image) for 2D overlays
* AR module
* overtyping and cursor blowup (ctrl-b) in scratchpad
* extrusion modelling functions
* (hint-frustum-cull) added
* (bb/point-intersect?) added
* (hint-normalize)
* array arguments for GLSL shaders
* full stack trace with scheme errors
* (pdata-exists?)
* (set-gravity-mode) (add-force) (add-torque)
* planetarium rendering/dome projection
* (ga) - gets audio buffer directly
* clear screen (ctrl-q)
* (hint-noblend)
* (hint-nozwrite)
* video module(!)
* new voxel primitive
* big fft fix
* the number of fft harmonic groups is controllable,
(set-num-frequency-bins), (get-num-frequency-bins)
* obj import optimisations
* obj import, supports all face types (and triangulates them)
* (active-mesh) and (passive-mesh) for mesh based physics collisions
* (voxel->blobby)
* unicode support in editor
* (build-icosphere), sphere generated by subdividing an icosahedron
0.16
* fixed autodetect of GLSL and multitexturing
* frame-hooks
* fixed orientations and texture coordinates to be more consistent
* particle depth sorting
* tiled-framedump for massive resolutions
* moved install out of plt collects
* (mouse-wheel)
* GLSL and multitexturing on by default
* new documentation pdf
* lots of fluxa stability fixes
* internal depth sort on particles
* added (build-type) and (build-extruded-type)
* added Perlin noise and Simplex noise functions (noise), (snoise)
* lots of fixes to fluxa to make it stable
* (reparent)
* (get-global-transform)
* (bb-intersect)
* inline GLSL code
* F4 execute s expr
* added stippled lines, (hint-wire-stippled), (line-pattern)
* added (set-cursor)
* new example game, fluxus invaders
* colour support for NURBS primitives
* OSX application
0.15
* ported to PLT 3.99
* removed scheme versions of obj import/export
* midi support - gabor papp
* added fluxa - an audio synth
* added text opacity on F10 and F11
* fixed saveas dialog, cursor and shift works
* inlined most of dada.h (~5% speedup)
* renamed build-line to build-ribbon
* more meshes to play with (used in frisbee examples)
* shadows now work on immediate mode objects
* key release fixed in drflux
* multi views/cameras
* better random functions with randomness.ss
* frisbee: a functional reactive game engine using frtime
* added -lang (not how useful this is now)
* added -fs and -x for fullscreen and run script at startup
* fixed crashes to do with garbage collection using threads
* sped up pdata-get/ref
* made (backfacecull) local state rather than global
* added (hint-cull-ccw)
* documentation changed so we can have functions in different files sharing the same section
* ported html and text doc conversion to plt 4
* (line-intersect) for raytracing poly primitives
* pixel primitive changes
- (pixels-width) and (pixels-height) for querying dimensions
- added a load of commands for drawing into pixels primitives:
(pixels-circle), (pixels-blend-circle), (pixels-dodge), (pixels-burn) and (pixels-clear)
see docs for more info...
* added (fmod)
* more polygon querying
- (poly-indices) gets the index list
- (poly-type) returns the type of the polygon 'triangle-strip, 'triangle-list etc
- (poly-indexed?) returns #t if the polygon is index mode
* added a load of shortcuts for accessing vectors:
- (vx (vector 1 2 3)) returns 1
- (vy (vector 1 2 3)) returns 2
- (vz (vector 1 2 3)) returns 3
- (vr (vector 1 2 3)) returns 1
- (vg (vector 1 2 3)) returns 2
- (vb (vector 1 2 3)) returns 3
- (vx-set! (vector 0 0 0) 1) returns (vector 0 0 1)
- etc ...
* added (occlusion-texture-bake)
* added tools for evaluating polygons - these should eventually work on any type of polygon primitive, they do on most of them now:
- poly-for-each-face
- poly-for-each-triangle
- poly-for-each-tri-sample (random sampling)
* added (rndhemi) and (hrndhemi) for generating points on hemispheres (solid or hollow)
* added HSV colour support, (rgb->hsv), (hsv->rgb), (colour-mode)
0.14
* added vertex colouring to wireframe lines
* fixed torus texture coordinates
* added build option for ACCUM_BUFFER, off by default - bad tempered drivers
* bounds checked the primitive functions
* repl crashfix
* removed force-load-texture and added clear-texture-cache
* (wire-opacity) courtesy of Gabor Papp
* new get-searchpaths and set-searchpaths
* added optional load parameters to (load-texture) for mipmapping or cubemapping
* added (texture-params) for better texture support
* added vreflect
* fixed a bug where poly topology was being regenerated every time (pdata-copy)
was called
* put the user callback inside a push/pop state
* added (with-state) (with-primitive) (pdata-map!) (pdata-fold)
* added (pdata-index-map!) (pdata-index-fold)
* collada scene import
* drflux now fully operational - but a little crash prone with some commands
* text improvements courtesy of Gabor Papp
* obj-export for saving out model data
* obj-import fixes
* saves currentscript.scm~ as backup on F5
* osc argument range checking crash fix
* improved parentheses highlighting
* flashing cursor
* fixed the editor text for newer versions of libfreetype (now using 2.3.5)
* added docs/fluxus-documentation.txt
0.13
* stereo rendering support by Alex Norman, adding:
- (set-stereo-mode ['no-stereo 'crystal-eyes 'colour])
- (get-stereo-mode)
- (get-eye-separation)
- (set-eye-separation)
* (draw-buffer) added by Alex Norman
* libfluxus clean up, removed old cruft, simplified renderer
* removed (begin-scene) and (end-scene), added (render)
* removed feedback for aesthetic reasons
* added (clear-zbuffer)
* added (pixels-load) for loading pngs into pixel prims
* renamed (upload-pixels) to (pixels-upload)
* added indexed mode polygon support
- (poly-set-index index-list)
- (poly-convert-to-indexed)
* stencil buffer shadows for poly primitives
- (shadow-light)
- (shadow-length)
- (shadow-debug)
* livecode recorder startup flags
- -r filename : record to file
- -p filename : playback from file
- -d time : seconds per frame time override (for use with frame-dump)
* added (build-copy) for making copies of any primitive
* pfuncs added (replacement for pdata-op)
- (make-pfunc)
- (pfunc-run)
- (pfunc-set!)
- arithmetic pfunc
* skinning
- genskinweights pfunc
- skinweights->vertcolours pfunc
- skinning pfunc
* changed from strings to symbols
make-light
light-attenuation
blend-mode
* changed from int's to symbols
build_polygons
* changed pdata-set to pdata-set!
* changed pdata-get to pdata-ref
* (hint-lazy-parent) for building scenegraph subtrees which don't
inherit transforms - this makes building skeletons which are controlled
by the physics possible
* (blobby->poly) extracts the blobbies mesh into a polygon primitive
* (hint-box) fix
* Portuguese translations of the documentation (thanks to Glauber Alex Dias
Prado)
* huge text possible with auto livecoding zoom and tracking
* editor and repl fixes
* all error reporting goes to the repl
* new scratchpad font renderer, uses truetype fonts
* minimal unicode support added
* unified helpmap locales, added (set-help-locale!)
* added (help "sections") & section information with function lists
* apple fixes
* (time) now returns time since fluxus startup - to avoid precision problems
* added (draw-torus) and (build-torus)
* fluxus GLSL shader library
0.12
* now uses plt scheme
* fluxus scripts can be written and viewed from the drscheme IDE
* lots of new documentation
* split fluxus up into modular parts - a livecoding application called the
scratchpad and a collection of plt extensions for graphics, audio and osc.
* a new autogenerated documentation system and online help command
* new low-level renderer control, with support for multiple renderers,
scenegraphs and physics worlds
* ported lots of application code into scheme modules
* removed the (edit) and (save-name) commands and added a minimal script
file browser interface to the scratchpad
* added (hint-depth-sort) for correctly ordering and rendering transparent
objects
0.11
* glsl support with (shader) and (shader-set!)
* big (recalc-normals) speedup
* normals recalculated for primitives of type POLYGON
* (keys-down) returns vector of the ascii values of all keys pressed
* (key-special-pressed id) for cursor keys etc
* (keys-special-down) returns vector of all special keys pressed
* kick/twist static object crash fix
* save with text highlighted now actually really safe (saves all rather than
selection + random characters)
* immediate mode state fix
* fixed (hint-points) for polygons
* fixed (draw-plane) and (draw-cube) no longer has a plane inside it :)
* equal? implemented for primitive types
* fixed picking when show-fps is turned on
* editor/repl bug fixes
* wireframe/solid z fighting fix
* (time) returns posix time now (don't ask)
* (turtle-attach object) : attaches the turtle to an existing primitive for
recalculating it's points (turtle-vert) writes into the vertex position
for the current index
* (turtle-skip count) : when attached to a primitive, this tells the turtle
to skip points - can be negative to go backwards. the indexing wraps
* (turtle-position) returns current vertex when attached to a primitive
* (hint-ignore-depth) as a cheap fix for transparency
* pgup/pgdown work
* escape - editor panic button
* ppm frame dump format support
* blobby implicit surface objects
* more examples
* (flx-major-version) and (flx-minor-version)
0.10
* scheme repl (read evaluate print loop) interpreter on ctrl 0
* new cursor
* major overhaul for guile 1.8
* (every frame) now takes a function directly rather than a string
* livecode + osc input recorder for recording and rerendering performances
* (get-projection-transform) gets the projection matrix
* (get-screen-size) returns the resolution as a two value vector
* (set-screen-size (vector x y)) sets the res, and updates the window to match
* support for executable scripts with #!/usr/local/bin/fluxus -x
* grab stack implemented
* (maim) fixed
* (edit) works from the local path again, but searches the searchpaths
first. all script loading uses guile's %load-path, while textures use the
fluxus searchpath, needs unifying maybe and documenting.
* (osc-source) can change port. seems to fail if you set it back to one
used previously, not sure why this is, looking into it. should also be
more stable than before.
* sincos lookup table disabled - was causing "jitteryness" due to lack of
precision in some cases (and it wasn't really helping out speed wise)
* (qaxisangle) : builds a quat with a rotation axis and angle in degrees
* (qmul) : returns two quats multiplied
* (qnormalise) : returns the normalised quat
* (qtomatrix) : returns the rotation matrix for the quaternion
* (build-pixels width height) makes a new pixel primitive
* (upload-pixels) uploads texture data, you need to call this when you've
finished writing to the pixelprim, and while it's grabbed
* (pixels->texture pixelprim) returns a texture you can use exactly like a
normal loaded one
* (camera-lag amount) when locked to a primitive, lags the camera - does
a linear interpolation on the matrix, so you can get some wacky stuff
happening with rotations/scales. smaller numbers are more laggy
* (set-camera-transform) overrides and turns off the mouse camera control - use
(reset-camera) to switch mouse control back on
* a multiply pdata-op for colour pdata and single float values
* stricter typing - primitive type/exact used where required
* infinite asteroids example
* locator primitive
* (hint-origin) renders the local origin for a primitive
* guile debugging and stack trace supported
* lighting fixes and directional/spotlight support
0.9
* (recalc-normals smooth) now takes an optional smooth flag
* osc fix
* blur works for coloured backgrounds
* (searchpath '("path/to/textures" "path/to/scripts" "path/to/scripts2" "path/to/etc"))
* ctrl-x with no selection no longer eats random bits of your script!
* characters not supported by the editor are now represented by yellow blocks, rather than
troublesome invisible entities
* decent camera rotation control with left mouse
* delete/backspace switched for the mac build
* (osc-msg) now stores all messages in a fifo
* (wire-colour colour)
* hide mouse on ctrl m
* locators for all the joints on (show-axis 1)
* (build-fixedjoint obj)
* rotations work with the physics system properly now
* (turtle-push) (turtle-pop) turtle state stack
* (hint-vertcols)
* (get-transform) when not used between a (grab) and (ungrab) this returns the
current transform from the stack
* save with text highlighted now safe (saves all rather than selection)
* (full-path) searches the searchpaths and returns a fullpath, or the filename
if not found
* (hint-box) renders object bounding box
* (clip front back) sets the clipping plane positions, defaults to 1 10000
* (frustum top bottom left right) sets screen area, defaults to -0.75 0.75 -1 1
* (hint-multitex) turns on multitexturing
* (multitexture n texture) loads a texture into multitexture slot n.
* orthographic fixes - mouse zoom works, editor projection fixed
0.8
* fixed object picking (mouse-over)
* framedump
* memory leak fixed
* outputs jpg files rather than tiff
* uses 6 character frame no filenames (so we can save over 6 minutes
of animation :)
* no more portaudio! fluxus now uses jack directly.
* (smoothing-bias) a kind of weighted average for the harmonic bands
which smooth them out over time. this setting was hardcoded before (to
1.5) but the best setting really depends on the quality of the music,
and ranges from 0 -> 2. it's obvious if you give it a try with the
bars.scm script
* (oscsend) now takes a type string, so you can differenciate between
floats and ints in a message
* (has-collided) returns true if the currently grabbed object collided
with another object in the last update
* (pdata-op "operator" a b) a one call operator for pdata - performs
operation on all values in the pdata array at once. speeds up rendering
of a particle system of 5000 particles from 20fps (looping through each
particle in scheme the old way), to running at 60fps using pdata-op on
my old laptop.
* (grab)/(ungrab) fixed properly - calling (push) or (pop) when an
object is grabbed will cause it to be ungrabbed and print a warning
* polys can be now be rendered in wireframe only (seems this wasn't
working before)
* (fog colour density start end) sets global fog (density to 0 to
disable)
* (selectable bool) whether an object is selectable by (mouse-over)
* (blend-mode src dest)
* (force-load-texture texturefilename)
* (build-seg-plane) takes x,y tesselation values and builds a poly plane
* added a new mode to the particle primitive so you can render textured
sprites (I'll be expanding it a little more to allow different sized
sprites etc)
* (recalc-normals) works for polygons, and smoothes the normals
* lots of fixes to the editor
* some misc bugs fixes with gl state
* html documentation with pics (cheers to Nik for helping out)
0.7
overhauled the osc support (osc-msg) (osc) (osc-peek)
operations for matrix and vector types in scheme
primitive (set) and (get) for changing per vert primitive values (pdata)
(get-transform) returns grabbed object transform matrix in world space
nurbs objects
(hide)
(draw-instance)
(get-camera-transform)
(build-nurbs-sphere) (build-burbs-plane)
removed flocking stuff - should be a toplevel script
more error checking
(build-text)
new library of useful scheme code
primitive operations (pop.scm)
(pop-deformer)
(pop-shade)
(engine-callback) renamed to (every-frame)
(frame) removed and replaced with (time) and (delta)
(line-width) fixed
added:
(build-hingejoint)
(build-sliderjoint)
(build-amotorjoint)
(joint-param)
big document update
loads more scripts, including live ones
more editor features
0.6
scons build system
OSC support with (start-osc) and (from-osc)
new physics commands: (gravity), (set-mass) and (surface-params)
removed fltk
removed fluxface
Built in OpenGL editor
multiple editor workspaces
changed occurances of _ to - in scheme functions to match standard
fftw3 support
decent error reports from guile (still go to commandline)
keyboard support improved
more scripts, including a game.scm example
0.5
assert build error fixed
"Insufficient GL support" error in fltk fixed
texture loader only caches one copy of each texture
much faster retained mode scenegraph lookups
fullscreen mode ("f" or "w" in renderer window)
fps clamping
init $HOME/.fluxus.scm sourced on startup
(start_framedump) (end_framedump) tiff framesave
F5 without text selected executes all
commandline script load
(build_line)
(random) changed to (flxrnd)
(getharmonic) now wraps the harmonic no. so you always get something
(source) loads and executes scripts
(clear_fluxface) crash fixed
fluxface bug fixes and tidy ups
physics groundplane crash fixed
(make_light) and light descriptions
sphere builder fix
parentheses highlighting - good idea for scheme ;)
lock camera works again
polybuilder turtle (normals not working yet, use wireframe hints)
(collisions) allows you to turn off ode collisions - defaults off
(process) for offline wavfile processing
0.4
split up into libfluxus, libfluxphysics and main app
fixed newbie texturing errors - should be much faster
added ambient and emmisive to the materials (shaded f+b)
smoothed cylinders
fixed spheres
fixed problem with fltk-gl depth buffer
fixed active_sphere
tex coords for spheres
clear clears engine callback
portaudio replacement for jack/oss
0.3
Jack support fixed
0.2
gcc 3.2 compatibility
added user guide to docs
removed kdevelop project, simple makefile
0.1
initial release