Commit Graph

16 Commits

Author SHA1 Message Date
mfeemster
fb262c2469 --User changes
-Add motion support from Simon Detheridge at the ember level instead of just individual xforms:
  Add the ability to manipulate camera pitch, yaw and other goodies during flame rotation using a new element specified at the top-level of the flame.
  Create a new 'saw' motion function, so that these values can effectively be looped (e.g. yaw -1 to +1) over the course of a rotation.
  Add an offset to existing motion elements, to start them partway through their cycle. This would (for example) enable creating circular motion of xform affines, by combining two offset sine waves, one with an offset of 0.25 or 0.75.
  Fix loops in EmberGenome (they only had an on/off effect - this was broken in flame-genome as well) and make the loop count floating-point as well. For sequence animations, it's not necessary for clips to loop precisely if they're not designed specifically for the ES project.
  Similarly, there's no need for motion_frequency to be an integer value either so this was changed to allow motion that doesn't necessarily start or end at the loop boundary.
  I've attempted to keep each bit of functionality in its own commit.
  There's an argument as to whether to call the new flame motion elements <flame_motion/> (to differentiate programmatically) or just <motion/> (for consistency within the file) -- I opted for the former because it was easier to modify the xml parser that way.

--Code changes
 -Change FlameMotion.h to EmberMotion.h to keep the naming convention consistent.
 -Made elements of EmberMotion.m_MotionParams into their own type, MotionParam, which allows for CopyVec() to work.
 -Change m_FlameMotionElements to m_EmberMotionElements in Ember.
 -Use CopyVec() for EmberMotion instead of manual copy in copy constructors.
 -Add exports in Ember.cpp for EmberMotion.
 -Format eEmberMotionParam enum with one entry per line since it has many entries.
 -Use fabs() in XmlToEmber instead of glm::abs.
 -Minor formatting.
2015-07-06 21:36:46 -07:00
mfeemster
3a9ce0928f Merge branch 'motion-goodies' of https://github.com/gh2k/fractorium 2015-07-06 20:22:52 -07:00
mfeemster
570331adb5 --Bug fixes
-Allow for empty fields in template files.

--Code changes
 -When parsing, a boolean is not available to specify whether to use the default values if they are not present. This will be false for template files.
2015-07-06 20:04:38 -07:00
Simon Detheridge
efb39f8160 Make 'loops' param to EmberGenome work correcly, and convert to double 2015-07-06 16:15:58 +01:00
mfeemster
73cd4f9718 Fix incorrect parsing of legacy "symmetry" xform Xml element. 2015-01-23 18:26:18 -08:00
Simon Detheridge
c2ef02a8bf Write all non-xml data to cerr from EmberGenome
The command is intended to write XML output to stdout for piping into an xml file, but adds diagnostic information and warnings to the output, generating invalid XML.
2015-01-21 13:34:34 +00:00
Simon Detheridge
cc2ce44140 Don't prematurely terminate if doCross1 is not specified 2015-01-21 10:51:26 +00:00
mfeemster
623d417f0f More Linux work. Convert all casts to new style, away from legacy. 2014-12-06 23:51:44 -08:00
mfeemster
47dd9fe35c Replace unsigned int, and char with uint and uchar. 2014-12-05 21:05:09 -08:00
mfeemster
a15f6d6b32 More Linux work. This has Render, Animate and Genome building and running on Linux. 2014-12-05 18:30:46 -08:00
mfeemster
b29bedec38 0.4.1.5 Beta 11/28/2014
--User Changes
 Remove limit on the number of xforms allowable on the GPU. This was previously 21.
 Show actual strips count to be used in parens outside of user specified strips count on final render dialog.
 Allow for adjustment of iteration depth and fuse count per ember and save/read these values with the xml.
 Iteration optimizations on both CPU and GPU.
 Automatically adjust default quality spinner value when using CPU/GPU to 10/30, respectively.

--Bug Fixes
 Fix severe randomization bug with OpenCL.
 Fix undo list off by one error when doing a new edit anywhere but the end of the undo list.
 Make integer variation parameters use 4 decimal places in the variations list like all the others.
 New build of the latest Qt to fix scroll bar drawing bug.
 Prevent grid from showing as much when pressing control to increase a spinner's increment speed. Still shows sometimes, but better than before.

--Code Changes
 Pass count and fuse to iterator as a structure now to allow for passing more params in the future.
 Slightly different grid/block logic when running DE filtering on the GPU.
 Attempt a different way of doing DE, but #define out because it ended up not being faster.
 Restructure some things to allow for a variable length xforms buffer to be passed to the GPU.
 Add sub batch size and fuse count as ember members, and remove them from the renderer classes.
 Remove m_LastPass from Renderer. It should have been removed with passes.
 Pass seeds as a buffer to the OpenCL iteration kernel, rather than a single seed that gets modified.
 Slight optimization on CPU accum.
 Use case statement instead of if/else for xform chosing in OpenCL for a 2% speedup on params with large numbers of xforms.
 Add SizeOf() wrapper around sizeof(vec[0]) * vec.size().
 Remove LogScaleSum() functions from the CPU and GPU because they're no longer used since passes were removed.
 Make some OpenCLWrapper getters const.
 Better ogranize RendererCL methods that return grid dimensions.
2014-11-28 01:37:51 -08:00
mfeemster
b2600f0fff Remove passes.
Fix some table dimensions.
Proper locale for normalized weight.
2014-11-02 23:16:34 -08:00
mfeemster
69b8aaea5b Replace all instances of auto_ptr with unique_ptr.
Make EmberRender and EmberAnimate place their output renders in the same folder of the input parameter file. Previously it was just placing them in the same folder as the executable, which is wrong.
2014-10-18 14:07:07 -07:00
mfeemster
9e94170a70 0.4.1.3 Beta 10/14/2014
--User Changes
 Size is no longer fixed to the window size.
 Size scaling is done differently in the final render dialog. This fixes several bugs.
 Remove Xml saving size from settings and options dialog, it no longer applies.
 Final render can be broken into strips.
 Set default save path to the desktop if none is found in the settings file.
 Set default output size to 1920x1080 if none is found in the settings file.

--Bug Fixes
 Better memory size reporting in final render dialog.

--Code Changes
 Migrate to C++11, Qt 5.3.1, and Visual Studio 2013.
 Change most instances of unsigned int to size_t, and int to intmax_t.
 Add m_OrigPixPerUnit and m_ScaleType to Ember for scaling purposes.
 Replace some sprintf_s() calls in XmlToEmber with ostringstream.
 Move more non-templated members into RendererBase.
 Add CopyVec() overload that takes a per element function pointer.
 Add vector Memset().
 Replace '&' with '+' instead of "&amp;" in XmlToEmber for much faster parsing.
 Break strips rendering out into EmberCommon and call from EmberRender and Fractorium.
 Make AddAndWriteBuffer() just call WriteBuffer().
 Make AddAndWriteImage() delete the existing image first before replacing it.
 Add SetOutputTexture() to RendererCL to support making new textures in response to resize events.
 Remove multiple return statements in RendererCL, and replace with a bool that tracks results.
 Add ToDouble(), MakeEnd(), ToString() and Exists() wrappers in Fractorium.
 Add Size() wrapper in EmberFile.
 Make QString function arguments const QString&, and string with const string&.
 Make ShowCritical() wrapper for invoking a message box from another thread.
 Add combo box to TwoButtonWidget and rename.
2014-10-14 08:53:15 -07:00
mfeemster
d1196f4205 0.4.1.2 Beta 08/05/2014
--User Changes
Add --yaxisup and --supersample options for command line programs.

--Bug Fixes
Make certain options available only to the command line programs in
which they make sense. Most were good, some were misplaced.

--Code Changes
Include pure render time as part of stats.
Output iters/sec measurement in EmberRender and EmberAnimate.
2014-08-05 21:50:52 -07:00
mfeemster
ef56c16b2b Initial source commit
Initial source commit
2014-07-08 00:11:14 -07:00