Features:

--Add support for Exr files which use 32-bit floats for each RGBA channel. Seems to come out too washed out.
--Allow for clearing an individual color curve.
--Allow for saving multiple image types in EmberRender and EmberAnimate. All writes are threaded.
--Remove --bpc command line argument. Add format png16 as a replacement.
--Remove --enable_jpg_comments and --enable_png_comments command line arguments, and replace them with --enable_comments which applies to jpg, png and exr.
--Add menu items to variations and affine spinners which allow for easy entry of specific numeric values like pi.
--Make final render dialog be wider rather than so tall.

Bug fixes:
--Fix some OpenCL compile errors on Mac.
--Remove ability to save bitmap files on all platforms but Windows.

Code changes:
--New dependency on OpenEXR.
--Allow Curves class to interact with objects of a different template type.
--Make m_Curves member of Ember always use float as template type.
--Set the length of the curves array to always be 2^17 which should offer enough precision with new 32-bit float pixel types.
--Set pixel types to always be 32-bit float. This results in a major reduction of code in the final accumulation part of Renderer.h/cpp.
--Remove corresponding code from RendererCL and FinalAccumOpenCLKernelCreator.
--Remove Transparency, NumChannels and BytesPerPixel setters from Renderer.h/cpp.
--Add new global functions to format final image buffers and place all alpha calculation and scaling code in them.
--Blending is no longer needed in OpenGLWidget because of the new pixel type.
--Make new class, AffineDoubleSpinBox.
--Attempt to make file save dialog code work the same on all OSes.
--Remove some unused functions.
This commit is contained in:
Person
2017-07-22 13:43:35 -07:00
parent d5760e451a
commit de613404de
68 changed files with 1755 additions and 1276 deletions

160
.gitignore vendored
View File

@ -89,3 +89,163 @@ Builds/include/GL
/Builds/MSVC/VS2013/flam3-palettes.xml
/Builds/MSVC/VS2015/flam3-palettes.xml
*.dmg
/Deps/include/OpenEXR/OpenEXRConfig.h
/Deps/include/OpenEXR/ImfXdr.h
/Deps/include/OpenEXR/ImfWav.h
/Deps/include/OpenEXR/ImfVersion.h
/Deps/include/OpenEXR/ImfVecAttribute.h
/Deps/include/OpenEXR/ImfTimeCodeAttribute.h
/Deps/include/OpenEXR/ImfTimeCode.h
/Deps/include/OpenEXR/ImfTiledRgbaFile.h
/Deps/include/OpenEXR/ImfTiledOutputPart.h
/Deps/include/OpenEXR/ImfTiledOutputFile.h
/Deps/include/OpenEXR/ImfTiledInputPart.h
/Deps/include/OpenEXR/ImfTiledInputFile.h
/Deps/include/OpenEXR/ImfTileDescriptionAttribute.h
/Deps/include/OpenEXR/ImfTileDescription.h
/Deps/include/OpenEXR/ImfThreading.h
/Deps/include/OpenEXR/ImfTestFile.h
/Deps/include/OpenEXR/ImfStringVectorAttribute.h
/Deps/include/OpenEXR/ImfStringAttribute.h
/Deps/include/OpenEXR/ImfStandardAttributes.h
/Deps/include/OpenEXR/ImfSampleCountChannel.h
/Deps/include/OpenEXR/ImfRgbaYca.h
/Deps/include/OpenEXR/ImfRgbaFile.h
/Deps/include/OpenEXR/ImfRgba.h
/Deps/include/OpenEXR/ImfRationalAttribute.h
/Deps/include/OpenEXR/ImfRational.h
/Deps/include/OpenEXR/ImfPreviewImageAttribute.h
/Deps/include/OpenEXR/ImfPreviewImage.h
/Deps/include/OpenEXR/ImfPixelType.h
/Deps/include/OpenEXR/ImfPartType.h
/Deps/include/OpenEXR/ImfPartHelper.h
/Deps/include/OpenEXR/ImfOutputPart.h
/Deps/include/OpenEXR/ImfOutputFile.h
/Deps/include/OpenEXR/ImfOpaqueAttribute.h
/Deps/include/OpenEXR/ImfNamespace.h
/Deps/include/OpenEXR/ImfName.h
/Deps/include/OpenEXR/ImfMultiView.h
/Deps/include/OpenEXR/ImfMultiPartOutputFile.h
/Deps/include/OpenEXR/ImfMultiPartInputFile.h
/Deps/include/OpenEXR/ImfMisc.h
/Deps/include/OpenEXR/ImfMatrixAttribute.h
/Deps/include/OpenEXR/ImfLut.h
/Deps/include/OpenEXR/ImfLineOrderAttribute.h
/Deps/include/OpenEXR/ImfLineOrder.h
/Deps/include/OpenEXR/ImfKeyCodeAttribute.h
/Deps/include/OpenEXR/ImfKeyCode.h
/Deps/include/OpenEXR/ImfIO.h
/Deps/include/OpenEXR/ImfIntAttribute.h
/Deps/include/OpenEXR/ImfInt64.h
/Deps/include/OpenEXR/ImfInputPart.h
/Deps/include/OpenEXR/ImfInputFile.h
/Deps/include/OpenEXR/ImfImageLevel.h
/Deps/include/OpenEXR/ImfImageIO.h
/Deps/include/OpenEXR/ImfImageDataWindow.h
/Deps/include/OpenEXR/ImfImageChannelRenaming.h
/Deps/include/OpenEXR/ImfImageChannel.h
/Deps/include/OpenEXR/ImfImage.h
/Deps/include/OpenEXR/ImfHuf.h
/Deps/include/OpenEXR/ImfHeader.h
/Deps/include/OpenEXR/ImfGenericOutputFile.h
/Deps/include/OpenEXR/ImfGenericInputFile.h
/Deps/include/OpenEXR/ImfFramesPerSecond.h
/Deps/include/OpenEXR/ImfFrameBuffer.h
/Deps/include/OpenEXR/ImfForward.h
/Deps/include/OpenEXR/ImfFloatVectorAttribute.h
/Deps/include/OpenEXR/ImfFloatAttribute.h
/Deps/include/OpenEXR/ImfFlatImageLevel.h
/Deps/include/OpenEXR/ImfFlatImageIO.h
/Deps/include/OpenEXR/ImfFlatImageChannel.h
/Deps/include/OpenEXR/ImfFlatImage.h
/Deps/include/OpenEXR/ImfExport.h
/Deps/include/OpenEXR/ImfEnvmapAttribute.h
/Deps/include/OpenEXR/ImfEnvmap.h
/Deps/include/OpenEXR/ImfDoubleAttribute.h
/Deps/include/OpenEXR/ImfDeepTiledOutputPart.h
/Deps/include/OpenEXR/ImfDeepTiledOutputFile.h
/Deps/include/OpenEXR/ImfDeepTiledInputPart.h
/Deps/include/OpenEXR/ImfDeepTiledInputFile.h
/Deps/include/OpenEXR/ImfDeepScanLineOutputPart.h
/Deps/include/OpenEXR/ImfDeepScanLineOutputFile.h
/Deps/include/OpenEXR/ImfDeepScanLineInputPart.h
/Deps/include/OpenEXR/ImfDeepScanLineInputFile.h
/Deps/include/OpenEXR/ImfDeepImageStateAttribute.h
/Deps/include/OpenEXR/ImfDeepImageState.h
/Deps/include/OpenEXR/ImfDeepImageLevel.h
/Deps/include/OpenEXR/ImfDeepImageIO.h
/Deps/include/OpenEXR/ImfDeepImageChannel.h
/Deps/include/OpenEXR/ImfDeepImage.h
/Deps/include/OpenEXR/ImfDeepFrameBuffer.h
/Deps/include/OpenEXR/ImfDeepCompositing.h
/Deps/include/OpenEXR/ImfCRgbaFile.h
/Deps/include/OpenEXR/ImfConvert.h
/Deps/include/OpenEXR/ImfCompressionAttribute.h
/Deps/include/OpenEXR/ImfCompression.h
/Deps/include/OpenEXR/ImfCompositeDeepScanLine.h
/Deps/include/OpenEXR/ImfChromaticitiesAttribute.h
/Deps/include/OpenEXR/ImfChromaticities.h
/Deps/include/OpenEXR/ImfChannelListAttribute.h
/Deps/include/OpenEXR/ImfChannelList.h
/Deps/include/OpenEXR/ImfBoxAttribute.h
/Deps/include/OpenEXR/ImfB44Compressor.h
/Deps/include/OpenEXR/ImfAttribute.h
/Deps/include/OpenEXR/ImfArray.h
/Deps/include/OpenEXR/ImfAcesFile.h
/Deps/include/OpenEXR/ImathVecAlgo.h
/Deps/include/OpenEXR/ImathVec.h
/Deps/include/OpenEXR/ImathSphere.h
/Deps/include/OpenEXR/ImathShear.h
/Deps/include/OpenEXR/ImathRoots.h
/Deps/include/OpenEXR/ImathRandom.h
/Deps/include/OpenEXR/ImathQuat.h
/Deps/include/OpenEXR/ImathPlatform.h
/Deps/include/OpenEXR/ImathPlane.h
/Deps/include/OpenEXR/ImathNamespace.h
/Deps/include/OpenEXR/ImathMatrixAlgo.h
/Deps/include/OpenEXR/ImathMatrix.h
/Deps/include/OpenEXR/ImathMath.h
/Deps/include/OpenEXR/ImathLineAlgo.h
/Deps/include/OpenEXR/ImathLine.h
/Deps/include/OpenEXR/ImathLimits.h
/Deps/include/OpenEXR/ImathInterval.h
/Deps/include/OpenEXR/ImathInt64.h
/Deps/include/OpenEXR/ImathHalfLimits.h
/Deps/include/OpenEXR/ImathGLU.h
/Deps/include/OpenEXR/ImathGL.h
/Deps/include/OpenEXR/ImathFun.h
/Deps/include/OpenEXR/ImathFrustumTest.h
/Deps/include/OpenEXR/ImathFrustum.h
/Deps/include/OpenEXR/ImathFrame.h
/Deps/include/OpenEXR/ImathForward.h
/Deps/include/OpenEXR/ImathExport.h
/Deps/include/OpenEXR/ImathExc.h
/Deps/include/OpenEXR/ImathEuler.h
/Deps/include/OpenEXR/ImathColorAlgo.h
/Deps/include/OpenEXR/ImathColor.h
/Deps/include/OpenEXR/ImathBoxAlgo.h
/Deps/include/OpenEXR/ImathBox.h
/Deps/include/OpenEXR/IlmThreadSemaphore.h
/Deps/include/OpenEXR/IlmThreadPool.h
/Deps/include/OpenEXR/IlmThreadNamespace.h
/Deps/include/OpenEXR/IlmThreadMutex.h
/Deps/include/OpenEXR/IlmThreadForward.h
/Deps/include/OpenEXR/IlmThreadExport.h
/Deps/include/OpenEXR/IlmThread.h
/Deps/include/OpenEXR/IlmBaseConfig.h
/Deps/include/OpenEXR/IexThrowErrnoExc.h
/Deps/include/OpenEXR/IexNamespace.h
/Deps/include/OpenEXR/IexMathIeeeExc.h
/Deps/include/OpenEXR/IexMathFpu.h
/Deps/include/OpenEXR/IexMathFloatExc.h
/Deps/include/OpenEXR/IexMathExc.h
/Deps/include/OpenEXR/IexMacros.h
/Deps/include/OpenEXR/IexForward.h
/Deps/include/OpenEXR/IexExport.h
/Deps/include/OpenEXR/IexErrnoExc.h
/Deps/include/OpenEXR/IexBaseExc.h
/Deps/include/OpenEXR/Iex.h
/Deps/include/OpenEXR/halfLimits.h
/Deps/include/OpenEXR/halfFunction.h
/Deps/include/OpenEXR/halfExport.h
/Deps/include/OpenEXR/half.h