1 /********************************************************* 2 / MANDELBULBER 3 / definition of structures for image and effect 4 / parameters 5 / 6 / author: Krzysztof Marczak 7 / contact: buddhi1980@gmail.com 8 / licence: GNU GPL v3.0 9 / 10 ********************************************************/ 11 12 #ifndef FRACTPARAMS_H_ 13 #define FRACTPARAMS_H_ 14 15 #include "fractal.h" 16 #ifndef MANDELBULBER_EMBEDDED 17 #include "texture.hpp" 18 #endif 19 20 struct sParamRenderD 21 { 22 double zoom; //zoom 23 double DE_factor; //factor for distance estimation steps 24 double resolution; //resolution of image in fractal coordinates 25 double persp; //perspective factor 26 double quality; //DE threshold factor 27 double smoothness; 28 double alpha; //rotation of fractal 29 double beta; // 30 double gamma; 31 double DOFFocus; 32 double DOFRadius; 33 double mainLightAlpha; 34 double mainLightBeta; 35 double auxLightIntensity; 36 double auxLightMaxDist; 37 double auxLightDistributionRadius; 38 double auxLightVisibility; 39 double auxLightPreIntensity[4]; 40 double stereoEyeDistance; 41 double viewDistanceMin; 42 double viewDistanceMax; 43 double volumetricLightIntensity[5]; 44 double fogDensity; 45 double fogColour1Distance; 46 double fogColour2Distance; 47 double fogDistanceFactor; 48 double colourSaturation; 49 double fastAoTune; 50 double iterFogOpacity; 51 double iterFogOpacityTrim; 52 double fakeLightsIntensity; 53 double fakeLightsVisibility; 54 double fakeLightsVisibilitySize; 55 double shadowConeAngle; 56 double primitivePlaneReflect; 57 double primitiveBoxReflect; 58 double primitiveInvertedBoxReflect; 59 double primitiveSphereReflect; 60 double primitiveInvertedSphereReflect; 61 double primitiveWaterReflect; 62 63 #ifndef MANDELBULBER_EMBEDDED 64 sImageAdjustments imageAdjustments; 65 #endif 66 67 CVector3 vp; //view point 68 CVector3 auxLightPre[4]; 69 CVector3 auxLightRandomCenter; 70 }; 71 72 struct sParamRender 73 { 74 sParamRenderD doubles; 75 76 sFractal fractal; 77 int image_width; //image width 78 int image_height; //image height 79 int globalIlumQuality; //ambient occlusion quality 80 int reflectionsMax; 81 int coloring_seed; //colouring random seed 82 int auxLightRandomSeed; 83 int auxLightNumber; 84 int SSAOQuality; 85 int startFrame; 86 int endFrame; 87 int framesPerKeyframe; 88 int imageFormat; 89 int noOfTiles; 90 int tileCount; 91 92 int OpenCLEngine; 93 int OpenCLPixelsPerJob; 94 int OpenCLDOFMethod; 95 96 enumPerspectiveType perspectiveType; 97 98 bool shadow; //enable shadows 99 bool global_ilumination; //enable global ilumination 100 bool fastGlobalIllumination; //enable fake global ilumination 101 bool slowShading; //enable fake gradient calculation for shading 102 bool texturedBackground; //enable testured background 103 bool background_as_fulldome; 104 bool recordMode; //path recording mode 105 bool continueRecord; //continue recording mode 106 bool playMode; //play mode 107 bool animMode; //animation mode 108 bool SSAOEnabled; 109 bool DOFEnabled; 110 bool auxLightPreEnabled[4]; 111 bool volumetricLightEnabled[5]; 112 bool penetratingLights; 113 bool stereoEnabled; 114 bool quiet; 115 bool fishEyeCut; 116 bool fakeLightsEnabled; 117 #ifndef MANDELBULBER_EMBEDDED 118 sImageSwitches imageSwitches; 119 120 sRGB background_color1; //background colour 121 sRGB background_color2; 122 sRGB background_color3; 123 sRGB auxLightPreColour[4]; 124 sRGB fogColour1; 125 sRGB fogColour2; 126 sRGB fogColour3; 127 sRGB primitivePlaneColour; 128 sRGB primitiveBoxColour; 129 sRGB primitiveInvertedBoxColour; 130 sRGB primitiveSphereColour; 131 sRGB primitiveInvertedSphereColour; 132 sRGB primitiveWaterColour; 133 sEffectColours effectColours; 134 135 sRGB palette[256]; 136 137 char file_destination[1000]; 138 char file_envmap[1000]; 139 char file_background[1000]; 140 char file_lightmap[1000]; 141 char file_path[1000]; 142 char file_keyframes[1000]; 143 144 cTexture *backgroundTexture; 145 cTexture *envmapTexture; 146 cTexture *lightmapTexture; 147 #endif 148 std::vector<enumFractalFormula> formulaSequence; 149 std::vector<double> hybridPowerSequence; 150 151 double settingsVersion; 152 }; 153 154 #endif /* FRACTPARAMS_H_ */ 155