2014-07-08 03:11:14 -04:00
|
|
|
#include "EmberPch.h"
|
|
|
|
#include "EmberDefines.h"
|
|
|
|
#include "Isaac.h"
|
2015-04-13 07:18:33 -04:00
|
|
|
|
|
|
|
namespace EmberNs
|
|
|
|
{
|
|
|
|
template<> unique_ptr<QTIsaac<ISAAC_SIZE, ISAAC_INT>> QTIsaac<ISAAC_SIZE, ISAAC_INT>::GlobalRand = unique_ptr<QTIsaac<ISAAC_SIZE, ISAAC_INT>>(new QTIsaac<ISAAC_SIZE, ISAAC_INT>());
|
2016-02-12 00:38:21 -05:00
|
|
|
template<> std::recursive_mutex QTIsaac<ISAAC_SIZE, ISAAC_INT>::s_CS = std::recursive_mutex();
|
2015-04-13 07:18:33 -04:00
|
|
|
}
|
|
|
|
|
2015-03-21 18:27:37 -04:00
|
|
|
#include "Curves.h"
|
2014-07-08 03:11:14 -04:00
|
|
|
#include "Ember.h"
|
|
|
|
#include "Utils.h"
|
|
|
|
#include "Iterator.h"
|
|
|
|
#include "Palette.h"
|
|
|
|
#include "PaletteList.h"
|
|
|
|
#include "Point.h"
|
2015-12-31 16:41:59 -05:00
|
|
|
#include "VarFuncs.h"
|
2014-07-08 03:11:14 -04:00
|
|
|
#include "Variation.h"
|
|
|
|
#include "Variations01.h"
|
|
|
|
#include "Variations02.h"
|
|
|
|
#include "Variations03.h"
|
|
|
|
#include "Variations04.h"
|
|
|
|
#include "Variations05.h"
|
--User changes
-Add new variations: bubbleT3D, crob, hexaplay3D, hexcrop, hexes, hexnix3D, loonie2, loonie3, nBlur, octapol and synth.
-Allow for pre/post versions of dc_bubble, dc_cylinder and dc_linear whereas before they were omitted.
-When saving a file with multiple embers in it, detect if time values are all the same and if so, start them at zero and increment by 1 for each ember.
-Allow for numerous quality increases to be coalesced into one. It will pick up at the end of the current render.
-Show selection highlight on variations tree in response to mouse hover. This makes it easier to see for which variation or param the current mouse wheel action will apply.
-Make default temporal samples be 100, whereas before it was 1000 which was overkill.
-Require the shift key to be held with delete for deleting an ember to prevent it from triggering when the user enters delete in the edit box.
-This wasn't otherwise fixable without writing a lot more code.
--Bug fixes
-EmberGenome was crashing when generating a sequence from a source file with more than 2 embers in it.
-EmberGenome was improperly handling the first frame of a merge after the last frame of the loop.
-These bugs were due to a previous commit. Revert parts of that commit.
-Prevent a zoom value of less than 0 when reading from xml.
-Slight optimization of the crescents, and mask variations, if the compiler wasn't doing it already.
-Unique file naming was broken because it was looking for _# and the default names ended with -#.
-Disallow renaming of an ember in the library tree to an empty string.
-Severe bug that prevented some variations from being read correctly from params generated outside this program.
-Severe OpenCL randomization bug. The first x coordinates of the first points in the first kernel call of the first ember of a render since the OpenCL renderer object was created were not random and were mostly -1.
-Severe bug when populating xform selection distributions that could sometimes cause a crash due to roundoff error. Fix by using double.
-Limit the max number of variations in a random ember to MAX_CL_VARS, which is 8. This ensures they'll look the same on CPU and GPU.
-Prevent user from saving stylesheet to default.qss, it's a special reserved filename.
--Code changes
-Generalize using the running sum output point inside of a variation for all cases: pre, reg and post.
-Allow for array variables in variations where the address of each element is stored in m_Params.
-Qualify all math functions with std::
-No longer use our own Clamp() in OpenCL, instead use the standard clamp().
-Redesign how functions are used in the variations OpenCL code.
-Add tests to EmberTester to verify some of the new functionality.
-Place more const and override qualifiers on functions where appropriate.
-Add a global rand with a lock to be used very sparingly.
-Use a map instead of a vector for bad param names in Xml parsing.
-Prefix affine interpolation mode defines with "AFFINE_" to make their purpose more clear.
-Allow for variations that change state during iteration by sending a separate copy of the ember to each rendering thread.
-Implement this same functionality with a local struct in OpenCL. It's members are the total of all variables that need to change state within an ember.
-Add Contains() function to Utils.h.
-EmberRender: print names of kernels being printed with --dump_kernel option.
-Clean up EmberTester to handle some of the recent changes.
-Fix various casts.
-Replace % 2 with & 1, even though the compiler was likely doing this already.
-Add new file Variations06.h to accommodate new variations.
-General cleanup.
2015-11-22 17:15:07 -05:00
|
|
|
#include "Variations06.h"
|
--User changes
-Allow for pausing the renderer in the main window. This makes is more efficient when entering many parameters, such as when following a tutorial.
-Add support for new variations: erf, gamma, jac_cn, jac_dn, jac_sn, logDB, pressure_wave, pRose3D, splits3D, w, waves2b, x, xerf, y, z.
-Inform user of the start and stop of file parsing in EmberAnimate because the files could potentially be very large.
-Move the follwing fields to a new table called Animation: Interpolation, Affine Interpolation, Temporal Samples, Temporal Filter Width, Temporal Filter Type.
-These currently have no effect on the interactive renderer and instead are used when running flames through EmberGenome to generate sequences, and then animating them in Fractorium or EmberAnimate.
-Add new parameter overrides for EmberRender and EmberAnimate which directly assign values to all flames being rendered, rather than scale:
--quality
--demin
--demax
--Bug fixes
-Left pad instead of right pad names of sequence outputs from EmberGenome.
-Unique file naming was broken for files which already had an underscore in them.
-Properly report that png is the default format of EmberRender and EmberAnimate output instead of erroneously claiming it was jpg.
-Make command line programs search these folders in this order for the palette file:
./
~/.fractorium
~/.config/fractorium
/usr/share/fractorium
/usr/local/share/fractorium
-Fix possible bad values in hexes.
-Better assignment of Z variables.
-Fix boarders due to use of poorly implemented rint() function from flam3. Use std::rint() now.
-wedge_sph was completely wrong due to having accidentally swapped the mapping of two parameters.
-Make juliascope juliascope_power parameter be of type REAL_NONZERO since it's used as a denominator.
-Make Z assignment compatible with the originals in:
-arch, bcircle, bCollide, bent, bent2, bisplit, blob, blur_linear, blur_square, bMod, boarders, boarders2, bSwirl, bTransform, butterfly, cardioid, cell, circleblur, circlize, circlize2, circus, collideoscope, cos, cosine, cosh, coth, cpow, cpow2, crescents, cropn, csc, csch, curl, curve, dc_gridout, deltaa, diamond, disc2, eclipse, eCollide, edisc, eJulia, elliptic, eMod, eMotion, ennepers, epispiral, ePush, eRotate, eScale, eSwirl, ex, exp, expo, exponential, fan, fdisc, fibonacci, fibonacci2, fisheye, flipcircle, flipy, flower, flux, funnel, glynnia, GlynnSim1, GlynnSim2, GlynnSim3, gridout, handkerchief, heart, hole, idisc, julia, julian2, juliaNab, kaleidoscope, lazyTravis, Lissajous, mask, MobiusN, mobius_strip, modulus, murl, murl2, npolar, ortho, oscilloscope, parabola, perspective, petal, phoenix_julia, pie (was also inconsistent between cpu and gpu), poincare, popcorn, popcorn2, power, pow_block, rational3, rays, rblur, rings, rippled, roundspher, sec, secant2, sigmoid, sin, sineblur, sinh, sinusgrid, sphericaln, spiralwing, spirograph, split, squarize, squirrel, squish, sschecks, starblur, stripes, stwin, super_shape, tan, tancos, tangent, tanh, TwinTrian, twoface, unpolar, waves, wavesn, wedge_julia, whorl, xheart, zblur, zscale.
--Code changes
-Generalize Variation::PrecalcHelper() and rename to PrePostPrecalcHelper().
--Do the same for the OpenCL version and rename it PrePostPrecalcOpenCLString().
-Rename Variation::m_AssignType to m_PrePostAssignType since it's only relevant to pre/post variations.
2016-01-29 20:02:15 -05:00
|
|
|
#include "Variations07.h"
|
2014-07-08 03:11:14 -04:00
|
|
|
#include "VariationsDC.h"
|
|
|
|
#include "VariationList.h"
|
|
|
|
#include "Affine2D.h"
|
|
|
|
#include "Xform.h"
|
2015-07-07 00:36:46 -04:00
|
|
|
#include "EmberMotion.h"
|
2014-07-08 03:11:14 -04:00
|
|
|
#include "EmberToXml.h"
|
|
|
|
#include "XmlToEmber.h"
|
|
|
|
#include "SpatialFilter.h"
|
|
|
|
#include "DensityFilter.h"
|
|
|
|
#include "TemporalFilter.h"
|
|
|
|
#include "Interpolate.h"
|
|
|
|
#include "Renderer.h"
|
|
|
|
#include "Timing.h"
|
|
|
|
#include "SheepTools.h"
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// Explicit instantiation of all templated classes which aren't implemented in cpp files.
|
|
|
|
/// All new templated classes, such as new variations, must be added here.
|
|
|
|
/// Additional instances of static class member variables.
|
|
|
|
/// </summary>
|
|
|
|
namespace EmberNs
|
|
|
|
{
|
|
|
|
bool Timing::m_TimingInit = false;
|
2014-12-11 00:50:15 -05:00
|
|
|
uint Timing::m_ProcessorCount;
|
2014-07-08 03:11:14 -04:00
|
|
|
|
|
|
|
#define EXPORTPREPOSTREGVAR(varName, T) \
|
|
|
|
template EMBER_API class varName##Variation<T>; \
|
|
|
|
template EMBER_API class Pre##varName##Variation<T>; \
|
|
|
|
template EMBER_API class Post##varName##Variation<T>;
|
|
|
|
|
|
|
|
#define EXPORT_SINGLE_TYPE_EMBER(T) \
|
2015-04-08 21:23:29 -04:00
|
|
|
template<> const char* PaletteList<T>::m_DefaultFilename = "flam3-palettes.xml"; \
|
2016-02-12 00:38:21 -05:00
|
|
|
template<> map<string, vector<Palette<T>>> PaletteList<T>::s_Palettes = map<string, vector<Palette<T>>>(); \
|
2015-01-14 04:39:42 -05:00
|
|
|
template<> bool XmlToEmber<T>::m_Init = false; \
|
|
|
|
template<> vector<string> XmlToEmber<T>::m_FlattenNames = vector<string>(); \
|
--User changes
-Add new variations: bubbleT3D, crob, hexaplay3D, hexcrop, hexes, hexnix3D, loonie2, loonie3, nBlur, octapol and synth.
-Allow for pre/post versions of dc_bubble, dc_cylinder and dc_linear whereas before they were omitted.
-When saving a file with multiple embers in it, detect if time values are all the same and if so, start them at zero and increment by 1 for each ember.
-Allow for numerous quality increases to be coalesced into one. It will pick up at the end of the current render.
-Show selection highlight on variations tree in response to mouse hover. This makes it easier to see for which variation or param the current mouse wheel action will apply.
-Make default temporal samples be 100, whereas before it was 1000 which was overkill.
-Require the shift key to be held with delete for deleting an ember to prevent it from triggering when the user enters delete in the edit box.
-This wasn't otherwise fixable without writing a lot more code.
--Bug fixes
-EmberGenome was crashing when generating a sequence from a source file with more than 2 embers in it.
-EmberGenome was improperly handling the first frame of a merge after the last frame of the loop.
-These bugs were due to a previous commit. Revert parts of that commit.
-Prevent a zoom value of less than 0 when reading from xml.
-Slight optimization of the crescents, and mask variations, if the compiler wasn't doing it already.
-Unique file naming was broken because it was looking for _# and the default names ended with -#.
-Disallow renaming of an ember in the library tree to an empty string.
-Severe bug that prevented some variations from being read correctly from params generated outside this program.
-Severe OpenCL randomization bug. The first x coordinates of the first points in the first kernel call of the first ember of a render since the OpenCL renderer object was created were not random and were mostly -1.
-Severe bug when populating xform selection distributions that could sometimes cause a crash due to roundoff error. Fix by using double.
-Limit the max number of variations in a random ember to MAX_CL_VARS, which is 8. This ensures they'll look the same on CPU and GPU.
-Prevent user from saving stylesheet to default.qss, it's a special reserved filename.
--Code changes
-Generalize using the running sum output point inside of a variation for all cases: pre, reg and post.
-Allow for array variables in variations where the address of each element is stored in m_Params.
-Qualify all math functions with std::
-No longer use our own Clamp() in OpenCL, instead use the standard clamp().
-Redesign how functions are used in the variations OpenCL code.
-Add tests to EmberTester to verify some of the new functionality.
-Place more const and override qualifiers on functions where appropriate.
-Add a global rand with a lock to be used very sparingly.
-Use a map instead of a vector for bad param names in Xml parsing.
-Prefix affine interpolation mode defines with "AFFINE_" to make their purpose more clear.
-Allow for variations that change state during iteration by sending a separate copy of the ember to each rendering thread.
-Implement this same functionality with a local struct in OpenCL. It's members are the total of all variables that need to change state within an ember.
-Add Contains() function to Utils.h.
-EmberRender: print names of kernels being printed with --dump_kernel option.
-Clean up EmberTester to handle some of the recent changes.
-Fix various casts.
-Replace % 2 with & 1, even though the compiler was likely doing this already.
-Add new file Variations06.h to accommodate new variations.
-General cleanup.
2015-11-22 17:15:07 -05:00
|
|
|
template<> unordered_map<string, string> XmlToEmber<T>::m_BadParamNames = unordered_map<string, string>(); \
|
2015-01-14 04:39:42 -05:00
|
|
|
template<> vector<pair<pair<string, string>, vector<string>>> XmlToEmber<T>::m_BadVariationNames = vector<pair<pair<string, string>, vector<string>>>(); \
|
2014-07-08 03:11:14 -04:00
|
|
|
template EMBER_API class Point<T>; \
|
2014-09-01 00:25:15 -04:00
|
|
|
template EMBER_API struct Color<T>; \
|
2014-07-08 03:11:14 -04:00
|
|
|
template EMBER_API class Palette<T>; \
|
|
|
|
template EMBER_API class PaletteList<T>; \
|
|
|
|
template EMBER_API class Iterator<T>; \
|
|
|
|
template EMBER_API class StandardIterator<T>; \
|
|
|
|
template EMBER_API class XaosIterator<T>; \
|
|
|
|
template EMBER_API class Xform<T>; \
|
2015-07-07 00:36:46 -04:00
|
|
|
template EMBER_API class MotionParam<T>; \
|
|
|
|
template EMBER_API class EmberMotion<T>; \
|
2014-07-08 03:11:14 -04:00
|
|
|
template EMBER_API class IteratorHelper<T>; \
|
2015-12-31 16:41:59 -05:00
|
|
|
template EMBER_API class VarFuncs<T>; \
|
2014-07-08 03:11:14 -04:00
|
|
|
template EMBER_API class Variation<T>; \
|
|
|
|
template EMBER_API class ParamWithName<T>; \
|
|
|
|
template EMBER_API class ParametricVariation<T>; \
|
|
|
|
EXPORTPREPOSTREGVAR(Linear, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Sinusoidal, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Spherical, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Swirl, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Horseshoe, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Polar, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Handkerchief, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Heart, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Disc, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Spiral, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Hyperbolic, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Diamond, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Ex, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Julia, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Bent, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Waves, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Fisheye, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Popcorn, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Exponential, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Power, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Cosine, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Rings, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Fan, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Blob, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Pdj, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Fan2, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Rings2, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Eyefish, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Bubble, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Cylinder, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Perspective, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Noise, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(JuliaNGeneric, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(JuliaScope, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Blur, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(GaussianBlur, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(RadialBlur, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Pie, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Ngon, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Curl, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Rectangles, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Arch, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Tangent, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Square, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Rays, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Blade, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Secant2, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(TwinTrian, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Cross, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Disc2, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(SuperShape, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Flower, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Conic, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Parabola, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Bent2, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Bipolar, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Boarders, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Butterfly, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Cell, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Cpow, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Curve, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Edisc, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Elliptic, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Escher, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Foci, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(LazySusan, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Loonie, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Modulus, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Oscilloscope, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Polar2, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Popcorn2, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Scry, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Separation, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Split, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Splits, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Stripes, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Wedge, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(WedgeJulia, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(WedgeSph, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Whorl, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Waves2, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Exp, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Log, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Sin, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Cos, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Tan, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Sec, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Csc, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Cot, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Sinh, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Cosh, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Tanh, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Sech, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Csch, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Coth, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Auger, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Flux, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Hemisphere, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Epispiral, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Bwraps, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Extrude, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(BlurCircle, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(BlurZoom, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(BlurPixelize, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Crop, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(BCircle, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(BlurLinear, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(BlurSquare, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Boarders2, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Cardioid, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Checks, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Circlize, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Circlize2, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(CosWrap, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(DeltaA, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Expo, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(FDisc, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Fibonacci, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Fibonacci2, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Glynnia, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(GridOut, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Hole, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Hypertile, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Hypertile1, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Hypertile2, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Hypertile3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Hypertile3D1, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Hypertile3D2, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(IDisc, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Julian2, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(JuliaQ, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Murl, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Murl2, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(NPolar, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Ortho, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Poincare, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Poincare3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Polynomial, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(PSphere, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Rational3, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Ripple, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Sigmoid, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(SinusGrid, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Stwin, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(TwoFace, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Unpolar, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(WavesN, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(XHeart, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Barycentroid, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(BiSplit, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Crescents, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Mask, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Cpow2, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Curl3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Disc3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Funnel, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Linear3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(PowBlock, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Squirrel, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Ennepers, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(SphericalN, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Kaleidoscope, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(GlynnSim1, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(GlynnSim2, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(GlynnSim3, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Starblur, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Sineblur, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Circleblur, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(CropN, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(ShredRad, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Blob2, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Julia3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Julia3Dz, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(LinearT, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(LinearT3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Ovoid, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Ovoid3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Spirograph, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Petal, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(RoundSpher, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(RoundSpher3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(SpiralWing, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Squarize, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Sschecks, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(PhoenixJulia, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Mobius, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(MobiusN, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(MobiusStrip, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Lissajous, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Svf, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Target, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Taurus, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Collideoscope, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(BMod, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(BSwirl, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(BTransform, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(BCollide, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Eclipse, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(FlipCircle, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(FlipY, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(ECollide, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(EJulia, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(EMod, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(EMotion, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(EPush, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(ERotate, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(EScale, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(ESwirl, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(LazyTravis, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Squish, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Circus, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Tancos, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Rippled, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Flatten, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Zblur, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Blur3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(ZScale, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(ZTranslate, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(ZCone, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(RotateX, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(RotateY, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(RotateZ, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(MirrorX, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(MirrorY, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(MirrorZ, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Depth, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(RBlur, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(JuliaNab, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Sintrange, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Voron, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Waffle, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Square3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(SuperShape3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Sphyp3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Circlecrop, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Julian3Dx, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Fourth, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Mobiq, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Spherivoid, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Farblur, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(CurlSP, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Heat, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Interference2, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Sinq, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Sinhq, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Secq, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Sechq, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Tanq, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Tanhq, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Cosq, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Coshq, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Cotq, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Cothq, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Cscq, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Cschq, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Estiq, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Loq, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Curvature, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Qode, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(BlurHeart, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Truchet, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Gdoffs, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Octagon, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Trade, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Juliac, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Blade3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Blob3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Blocky, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Bubble2, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(CircleLinear, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(CircleRand, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(CircleTrans1, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Cubic3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(CubicLattice3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Foci3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Ho, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Julia3Dq, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Line, T) \
|
--User changes
-Add new variations: bubbleT3D, crob, hexaplay3D, hexcrop, hexes, hexnix3D, loonie2, loonie3, nBlur, octapol and synth.
-Allow for pre/post versions of dc_bubble, dc_cylinder and dc_linear whereas before they were omitted.
-When saving a file with multiple embers in it, detect if time values are all the same and if so, start them at zero and increment by 1 for each ember.
-Allow for numerous quality increases to be coalesced into one. It will pick up at the end of the current render.
-Show selection highlight on variations tree in response to mouse hover. This makes it easier to see for which variation or param the current mouse wheel action will apply.
-Make default temporal samples be 100, whereas before it was 1000 which was overkill.
-Require the shift key to be held with delete for deleting an ember to prevent it from triggering when the user enters delete in the edit box.
-This wasn't otherwise fixable without writing a lot more code.
--Bug fixes
-EmberGenome was crashing when generating a sequence from a source file with more than 2 embers in it.
-EmberGenome was improperly handling the first frame of a merge after the last frame of the loop.
-These bugs were due to a previous commit. Revert parts of that commit.
-Prevent a zoom value of less than 0 when reading from xml.
-Slight optimization of the crescents, and mask variations, if the compiler wasn't doing it already.
-Unique file naming was broken because it was looking for _# and the default names ended with -#.
-Disallow renaming of an ember in the library tree to an empty string.
-Severe bug that prevented some variations from being read correctly from params generated outside this program.
-Severe OpenCL randomization bug. The first x coordinates of the first points in the first kernel call of the first ember of a render since the OpenCL renderer object was created were not random and were mostly -1.
-Severe bug when populating xform selection distributions that could sometimes cause a crash due to roundoff error. Fix by using double.
-Limit the max number of variations in a random ember to MAX_CL_VARS, which is 8. This ensures they'll look the same on CPU and GPU.
-Prevent user from saving stylesheet to default.qss, it's a special reserved filename.
--Code changes
-Generalize using the running sum output point inside of a variation for all cases: pre, reg and post.
-Allow for array variables in variations where the address of each element is stored in m_Params.
-Qualify all math functions with std::
-No longer use our own Clamp() in OpenCL, instead use the standard clamp().
-Redesign how functions are used in the variations OpenCL code.
-Add tests to EmberTester to verify some of the new functionality.
-Place more const and override qualifiers on functions where appropriate.
-Add a global rand with a lock to be used very sparingly.
-Use a map instead of a vector for bad param names in Xml parsing.
-Prefix affine interpolation mode defines with "AFFINE_" to make their purpose more clear.
-Allow for variations that change state during iteration by sending a separate copy of the ember to each rendering thread.
-Implement this same functionality with a local struct in OpenCL. It's members are the total of all variables that need to change state within an ember.
-Add Contains() function to Utils.h.
-EmberRender: print names of kernels being printed with --dump_kernel option.
-Clean up EmberTester to handle some of the recent changes.
-Fix various casts.
-Replace % 2 with & 1, even though the compiler was likely doing this already.
-Add new file Variations06.h to accommodate new variations.
-General cleanup.
2015-11-22 17:15:07 -05:00
|
|
|
EXPORTPREPOSTREGVAR(Loonie2, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Loonie3, T) \
|
2014-07-08 03:11:14 -04:00
|
|
|
EXPORTPREPOSTREGVAR(Loonie3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Mcarpet, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Waves23D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Pie3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Popcorn23D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Sinusoidal3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Scry3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Shredlin, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(SplitBrdr, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Wdisc, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Falloff, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Falloff2, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Falloff3, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Xtrb, T) \
|
--User changes
-Add new variations: bubbleT3D, crob, hexaplay3D, hexcrop, hexes, hexnix3D, loonie2, loonie3, nBlur, octapol and synth.
-Allow for pre/post versions of dc_bubble, dc_cylinder and dc_linear whereas before they were omitted.
-When saving a file with multiple embers in it, detect if time values are all the same and if so, start them at zero and increment by 1 for each ember.
-Allow for numerous quality increases to be coalesced into one. It will pick up at the end of the current render.
-Show selection highlight on variations tree in response to mouse hover. This makes it easier to see for which variation or param the current mouse wheel action will apply.
-Make default temporal samples be 100, whereas before it was 1000 which was overkill.
-Require the shift key to be held with delete for deleting an ember to prevent it from triggering when the user enters delete in the edit box.
-This wasn't otherwise fixable without writing a lot more code.
--Bug fixes
-EmberGenome was crashing when generating a sequence from a source file with more than 2 embers in it.
-EmberGenome was improperly handling the first frame of a merge after the last frame of the loop.
-These bugs were due to a previous commit. Revert parts of that commit.
-Prevent a zoom value of less than 0 when reading from xml.
-Slight optimization of the crescents, and mask variations, if the compiler wasn't doing it already.
-Unique file naming was broken because it was looking for _# and the default names ended with -#.
-Disallow renaming of an ember in the library tree to an empty string.
-Severe bug that prevented some variations from being read correctly from params generated outside this program.
-Severe OpenCL randomization bug. The first x coordinates of the first points in the first kernel call of the first ember of a render since the OpenCL renderer object was created were not random and were mostly -1.
-Severe bug when populating xform selection distributions that could sometimes cause a crash due to roundoff error. Fix by using double.
-Limit the max number of variations in a random ember to MAX_CL_VARS, which is 8. This ensures they'll look the same on CPU and GPU.
-Prevent user from saving stylesheet to default.qss, it's a special reserved filename.
--Code changes
-Generalize using the running sum output point inside of a variation for all cases: pre, reg and post.
-Allow for array variables in variations where the address of each element is stored in m_Params.
-Qualify all math functions with std::
-No longer use our own Clamp() in OpenCL, instead use the standard clamp().
-Redesign how functions are used in the variations OpenCL code.
-Add tests to EmberTester to verify some of the new functionality.
-Place more const and override qualifiers on functions where appropriate.
-Add a global rand with a lock to be used very sparingly.
-Use a map instead of a vector for bad param names in Xml parsing.
-Prefix affine interpolation mode defines with "AFFINE_" to make their purpose more clear.
-Allow for variations that change state during iteration by sending a separate copy of the ember to each rendering thread.
-Implement this same functionality with a local struct in OpenCL. It's members are the total of all variables that need to change state within an ember.
-Add Contains() function to Utils.h.
-EmberRender: print names of kernels being printed with --dump_kernel option.
-Clean up EmberTester to handle some of the recent changes.
-Fix various casts.
-Replace % 2 with & 1, even though the compiler was likely doing this already.
-Add new file Variations06.h to accommodate new variations.
-General cleanup.
2015-11-22 17:15:07 -05:00
|
|
|
EXPORTPREPOSTREGVAR(Hexaplay3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Hexnix3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Hexcrop, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Hexes, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Nblur, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Octapol, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Crob, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(BubbleT3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Synth, T) \
|
2015-12-31 16:41:59 -05:00
|
|
|
EXPORTPREPOSTREGVAR(Crackle, T) \
|
--User changes
-Allow for pausing the renderer in the main window. This makes is more efficient when entering many parameters, such as when following a tutorial.
-Add support for new variations: erf, gamma, jac_cn, jac_dn, jac_sn, logDB, pressure_wave, pRose3D, splits3D, w, waves2b, x, xerf, y, z.
-Inform user of the start and stop of file parsing in EmberAnimate because the files could potentially be very large.
-Move the follwing fields to a new table called Animation: Interpolation, Affine Interpolation, Temporal Samples, Temporal Filter Width, Temporal Filter Type.
-These currently have no effect on the interactive renderer and instead are used when running flames through EmberGenome to generate sequences, and then animating them in Fractorium or EmberAnimate.
-Add new parameter overrides for EmberRender and EmberAnimate which directly assign values to all flames being rendered, rather than scale:
--quality
--demin
--demax
--Bug fixes
-Left pad instead of right pad names of sequence outputs from EmberGenome.
-Unique file naming was broken for files which already had an underscore in them.
-Properly report that png is the default format of EmberRender and EmberAnimate output instead of erroneously claiming it was jpg.
-Make command line programs search these folders in this order for the palette file:
./
~/.fractorium
~/.config/fractorium
/usr/share/fractorium
/usr/local/share/fractorium
-Fix possible bad values in hexes.
-Better assignment of Z variables.
-Fix boarders due to use of poorly implemented rint() function from flam3. Use std::rint() now.
-wedge_sph was completely wrong due to having accidentally swapped the mapping of two parameters.
-Make juliascope juliascope_power parameter be of type REAL_NONZERO since it's used as a denominator.
-Make Z assignment compatible with the originals in:
-arch, bcircle, bCollide, bent, bent2, bisplit, blob, blur_linear, blur_square, bMod, boarders, boarders2, bSwirl, bTransform, butterfly, cardioid, cell, circleblur, circlize, circlize2, circus, collideoscope, cos, cosine, cosh, coth, cpow, cpow2, crescents, cropn, csc, csch, curl, curve, dc_gridout, deltaa, diamond, disc2, eclipse, eCollide, edisc, eJulia, elliptic, eMod, eMotion, ennepers, epispiral, ePush, eRotate, eScale, eSwirl, ex, exp, expo, exponential, fan, fdisc, fibonacci, fibonacci2, fisheye, flipcircle, flipy, flower, flux, funnel, glynnia, GlynnSim1, GlynnSim2, GlynnSim3, gridout, handkerchief, heart, hole, idisc, julia, julian2, juliaNab, kaleidoscope, lazyTravis, Lissajous, mask, MobiusN, mobius_strip, modulus, murl, murl2, npolar, ortho, oscilloscope, parabola, perspective, petal, phoenix_julia, pie (was also inconsistent between cpu and gpu), poincare, popcorn, popcorn2, power, pow_block, rational3, rays, rblur, rings, rippled, roundspher, sec, secant2, sigmoid, sin, sineblur, sinh, sinusgrid, sphericaln, spiralwing, spirograph, split, squarize, squirrel, squish, sschecks, starblur, stripes, stwin, super_shape, tan, tancos, tangent, tanh, TwinTrian, twoface, unpolar, waves, wavesn, wedge_julia, whorl, xheart, zblur, zscale.
--Code changes
-Generalize Variation::PrecalcHelper() and rename to PrePostPrecalcHelper().
--Do the same for the OpenCL version and rename it PrePostPrecalcOpenCLString().
-Rename Variation::m_AssignType to m_PrePostAssignType since it's only relevant to pre/post variations.
2016-01-29 20:02:15 -05:00
|
|
|
EXPORTPREPOSTREGVAR(Erf, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Xerf, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(W, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(X, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Y, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Z, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Splits3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Waves2B, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(JacCn, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(JacDn, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(JacSn, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(PressureWave, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(Gamma, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(PRose3D, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(LogDB, T) \
|
2016-01-12 23:42:12 -05:00
|
|
|
template EMBER_API class PostSmartcropVariation<T>; /*Only implemented as post.*/ \
|
--User changes
-Add new variations: bubbleT3D, crob, hexaplay3D, hexcrop, hexes, hexnix3D, loonie2, loonie3, nBlur, octapol and synth.
-Allow for pre/post versions of dc_bubble, dc_cylinder and dc_linear whereas before they were omitted.
-When saving a file with multiple embers in it, detect if time values are all the same and if so, start them at zero and increment by 1 for each ember.
-Allow for numerous quality increases to be coalesced into one. It will pick up at the end of the current render.
-Show selection highlight on variations tree in response to mouse hover. This makes it easier to see for which variation or param the current mouse wheel action will apply.
-Make default temporal samples be 100, whereas before it was 1000 which was overkill.
-Require the shift key to be held with delete for deleting an ember to prevent it from triggering when the user enters delete in the edit box.
-This wasn't otherwise fixable without writing a lot more code.
--Bug fixes
-EmberGenome was crashing when generating a sequence from a source file with more than 2 embers in it.
-EmberGenome was improperly handling the first frame of a merge after the last frame of the loop.
-These bugs were due to a previous commit. Revert parts of that commit.
-Prevent a zoom value of less than 0 when reading from xml.
-Slight optimization of the crescents, and mask variations, if the compiler wasn't doing it already.
-Unique file naming was broken because it was looking for _# and the default names ended with -#.
-Disallow renaming of an ember in the library tree to an empty string.
-Severe bug that prevented some variations from being read correctly from params generated outside this program.
-Severe OpenCL randomization bug. The first x coordinates of the first points in the first kernel call of the first ember of a render since the OpenCL renderer object was created were not random and were mostly -1.
-Severe bug when populating xform selection distributions that could sometimes cause a crash due to roundoff error. Fix by using double.
-Limit the max number of variations in a random ember to MAX_CL_VARS, which is 8. This ensures they'll look the same on CPU and GPU.
-Prevent user from saving stylesheet to default.qss, it's a special reserved filename.
--Code changes
-Generalize using the running sum output point inside of a variation for all cases: pre, reg and post.
-Allow for array variables in variations where the address of each element is stored in m_Params.
-Qualify all math functions with std::
-No longer use our own Clamp() in OpenCL, instead use the standard clamp().
-Redesign how functions are used in the variations OpenCL code.
-Add tests to EmberTester to verify some of the new functionality.
-Place more const and override qualifiers on functions where appropriate.
-Add a global rand with a lock to be used very sparingly.
-Use a map instead of a vector for bad param names in Xml parsing.
-Prefix affine interpolation mode defines with "AFFINE_" to make their purpose more clear.
-Allow for variations that change state during iteration by sending a separate copy of the ember to each rendering thread.
-Implement this same functionality with a local struct in OpenCL. It's members are the total of all variables that need to change state within an ember.
-Add Contains() function to Utils.h.
-EmberRender: print names of kernels being printed with --dump_kernel option.
-Clean up EmberTester to handle some of the recent changes.
-Fix various casts.
-Replace % 2 with & 1, even though the compiler was likely doing this already.
-Add new file Variations06.h to accommodate new variations.
-General cleanup.
2015-11-22 17:15:07 -05:00
|
|
|
EXPORTPREPOSTREGVAR(DCBubble, T) \
|
2014-07-08 03:11:14 -04:00
|
|
|
EXPORTPREPOSTREGVAR(DCCarpet, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(DCCube, T) \
|
--User changes
-Add new variations: bubbleT3D, crob, hexaplay3D, hexcrop, hexes, hexnix3D, loonie2, loonie3, nBlur, octapol and synth.
-Allow for pre/post versions of dc_bubble, dc_cylinder and dc_linear whereas before they were omitted.
-When saving a file with multiple embers in it, detect if time values are all the same and if so, start them at zero and increment by 1 for each ember.
-Allow for numerous quality increases to be coalesced into one. It will pick up at the end of the current render.
-Show selection highlight on variations tree in response to mouse hover. This makes it easier to see for which variation or param the current mouse wheel action will apply.
-Make default temporal samples be 100, whereas before it was 1000 which was overkill.
-Require the shift key to be held with delete for deleting an ember to prevent it from triggering when the user enters delete in the edit box.
-This wasn't otherwise fixable without writing a lot more code.
--Bug fixes
-EmberGenome was crashing when generating a sequence from a source file with more than 2 embers in it.
-EmberGenome was improperly handling the first frame of a merge after the last frame of the loop.
-These bugs were due to a previous commit. Revert parts of that commit.
-Prevent a zoom value of less than 0 when reading from xml.
-Slight optimization of the crescents, and mask variations, if the compiler wasn't doing it already.
-Unique file naming was broken because it was looking for _# and the default names ended with -#.
-Disallow renaming of an ember in the library tree to an empty string.
-Severe bug that prevented some variations from being read correctly from params generated outside this program.
-Severe OpenCL randomization bug. The first x coordinates of the first points in the first kernel call of the first ember of a render since the OpenCL renderer object was created were not random and were mostly -1.
-Severe bug when populating xform selection distributions that could sometimes cause a crash due to roundoff error. Fix by using double.
-Limit the max number of variations in a random ember to MAX_CL_VARS, which is 8. This ensures they'll look the same on CPU and GPU.
-Prevent user from saving stylesheet to default.qss, it's a special reserved filename.
--Code changes
-Generalize using the running sum output point inside of a variation for all cases: pre, reg and post.
-Allow for array variables in variations where the address of each element is stored in m_Params.
-Qualify all math functions with std::
-No longer use our own Clamp() in OpenCL, instead use the standard clamp().
-Redesign how functions are used in the variations OpenCL code.
-Add tests to EmberTester to verify some of the new functionality.
-Place more const and override qualifiers on functions where appropriate.
-Add a global rand with a lock to be used very sparingly.
-Use a map instead of a vector for bad param names in Xml parsing.
-Prefix affine interpolation mode defines with "AFFINE_" to make their purpose more clear.
-Allow for variations that change state during iteration by sending a separate copy of the ember to each rendering thread.
-Implement this same functionality with a local struct in OpenCL. It's members are the total of all variables that need to change state within an ember.
-Add Contains() function to Utils.h.
-EmberRender: print names of kernels being printed with --dump_kernel option.
-Clean up EmberTester to handle some of the recent changes.
-Fix various casts.
-Replace % 2 with & 1, even though the compiler was likely doing this already.
-Add new file Variations06.h to accommodate new variations.
-General cleanup.
2015-11-22 17:15:07 -05:00
|
|
|
EXPORTPREPOSTREGVAR(DCCylinder, T) \
|
2014-07-08 03:11:14 -04:00
|
|
|
EXPORTPREPOSTREGVAR(DCGridOut, T) \
|
--User changes
-Add new variations: bubbleT3D, crob, hexaplay3D, hexcrop, hexes, hexnix3D, loonie2, loonie3, nBlur, octapol and synth.
-Allow for pre/post versions of dc_bubble, dc_cylinder and dc_linear whereas before they were omitted.
-When saving a file with multiple embers in it, detect if time values are all the same and if so, start them at zero and increment by 1 for each ember.
-Allow for numerous quality increases to be coalesced into one. It will pick up at the end of the current render.
-Show selection highlight on variations tree in response to mouse hover. This makes it easier to see for which variation or param the current mouse wheel action will apply.
-Make default temporal samples be 100, whereas before it was 1000 which was overkill.
-Require the shift key to be held with delete for deleting an ember to prevent it from triggering when the user enters delete in the edit box.
-This wasn't otherwise fixable without writing a lot more code.
--Bug fixes
-EmberGenome was crashing when generating a sequence from a source file with more than 2 embers in it.
-EmberGenome was improperly handling the first frame of a merge after the last frame of the loop.
-These bugs were due to a previous commit. Revert parts of that commit.
-Prevent a zoom value of less than 0 when reading from xml.
-Slight optimization of the crescents, and mask variations, if the compiler wasn't doing it already.
-Unique file naming was broken because it was looking for _# and the default names ended with -#.
-Disallow renaming of an ember in the library tree to an empty string.
-Severe bug that prevented some variations from being read correctly from params generated outside this program.
-Severe OpenCL randomization bug. The first x coordinates of the first points in the first kernel call of the first ember of a render since the OpenCL renderer object was created were not random and were mostly -1.
-Severe bug when populating xform selection distributions that could sometimes cause a crash due to roundoff error. Fix by using double.
-Limit the max number of variations in a random ember to MAX_CL_VARS, which is 8. This ensures they'll look the same on CPU and GPU.
-Prevent user from saving stylesheet to default.qss, it's a special reserved filename.
--Code changes
-Generalize using the running sum output point inside of a variation for all cases: pre, reg and post.
-Allow for array variables in variations where the address of each element is stored in m_Params.
-Qualify all math functions with std::
-No longer use our own Clamp() in OpenCL, instead use the standard clamp().
-Redesign how functions are used in the variations OpenCL code.
-Add tests to EmberTester to verify some of the new functionality.
-Place more const and override qualifiers on functions where appropriate.
-Add a global rand with a lock to be used very sparingly.
-Use a map instead of a vector for bad param names in Xml parsing.
-Prefix affine interpolation mode defines with "AFFINE_" to make their purpose more clear.
-Allow for variations that change state during iteration by sending a separate copy of the ember to each rendering thread.
-Implement this same functionality with a local struct in OpenCL. It's members are the total of all variables that need to change state within an ember.
-Add Contains() function to Utils.h.
-EmberRender: print names of kernels being printed with --dump_kernel option.
-Clean up EmberTester to handle some of the recent changes.
-Fix various casts.
-Replace % 2 with & 1, even though the compiler was likely doing this already.
-Add new file Variations06.h to accommodate new variations.
-General cleanup.
2015-11-22 17:15:07 -05:00
|
|
|
EXPORTPREPOSTREGVAR(DCLinear, T) \
|
2015-12-31 16:41:59 -05:00
|
|
|
EXPORTPREPOSTREGVAR(DCPerlin, T) \
|
2014-07-08 03:11:14 -04:00
|
|
|
EXPORTPREPOSTREGVAR(DCZTransl, T) \
|
|
|
|
EXPORTPREPOSTREGVAR(DCTriangle, T) \
|
|
|
|
template EMBER_API class VariationList<T>; \
|
|
|
|
template EMBER_API class SpatialFilter<T>; \
|
|
|
|
template EMBER_API class GaussianFilter<T>; \
|
|
|
|
template EMBER_API class HermiteFilter<T>; \
|
|
|
|
template EMBER_API class BoxFilter<T>; \
|
|
|
|
template EMBER_API class TriangleFilter<T>; \
|
|
|
|
template EMBER_API class BellFilter<T>; \
|
|
|
|
template EMBER_API class BsplineFilter<T>; \
|
|
|
|
template EMBER_API class MitchellFilter<T>; \
|
|
|
|
template EMBER_API class BlackmanFilter<T>; \
|
|
|
|
template EMBER_API class CatromFilter<T>; \
|
|
|
|
template EMBER_API class HanningFilter<T>; \
|
|
|
|
template EMBER_API class HammingFilter<T>; \
|
|
|
|
template EMBER_API class Lanczos3Filter<T>; \
|
|
|
|
template EMBER_API class Lanczos2Filter<T>; \
|
|
|
|
template EMBER_API class QuadraticFilter<T>; \
|
|
|
|
template EMBER_API class DensityFilter<T>; \
|
|
|
|
template EMBER_API class TemporalFilter<T>; \
|
|
|
|
template EMBER_API class ExpTemporalFilter<T>; \
|
|
|
|
template EMBER_API class GaussianTemporalFilter<T>; \
|
|
|
|
template EMBER_API class BoxTemporalFilter<T>; \
|
|
|
|
template EMBER_API class SpatialFilterCreator<T>; \
|
|
|
|
template EMBER_API class TemporalFilterCreator<T>; \
|
|
|
|
template EMBER_API class Interpolater<T>; \
|
|
|
|
template EMBER_API class Ember<T>; \
|
|
|
|
template EMBER_API class CarToRas<T>; \
|
2015-03-21 18:27:37 -04:00
|
|
|
template EMBER_API class Curves<T>; \
|
2014-07-08 03:11:14 -04:00
|
|
|
template EMBER_API class XmlToEmber<T>; \
|
2015-01-14 04:39:42 -05:00
|
|
|
template EMBER_API class EmberToXml<T>;
|
2014-07-08 03:11:14 -04:00
|
|
|
|
|
|
|
EXPORT_SINGLE_TYPE_EMBER(float)
|
|
|
|
|
|
|
|
#define EXPORT_TWO_TYPE_EMBER(T, bucketT) \
|
|
|
|
template EMBER_API class SheepTools<T, bucketT>;
|
|
|
|
|
|
|
|
EXPORT_TWO_TYPE_EMBER(float, float)
|
|
|
|
|
|
|
|
#ifdef DO_DOUBLE
|
|
|
|
EXPORT_SINGLE_TYPE_EMBER(double)
|
2015-08-10 23:10:23 -04:00
|
|
|
EXPORT_TWO_TYPE_EMBER(double, float)
|
2014-07-08 03:11:14 -04:00
|
|
|
#endif
|
2014-09-01 00:25:15 -04:00
|
|
|
}
|