ArnoldAttributes::ArnoldAttributes( const std::string &name ) : GafferScene::Attributes( name ) { Gaffer::CompoundDataPlug *attributes = attributesPlug(); // Visibility parameters attributes->addChild( new Gaffer::NameValuePlug( "ai:visibility:camera", new IECore::BoolData( true ), false, "cameraVisibility" ) ); attributes->addChild( new Gaffer::NameValuePlug( "ai:visibility:shadow", new IECore::BoolData( true ), false, "shadowVisibility" ) ); attributes->addChild( new Gaffer::NameValuePlug( "ai:visibility:shadow_group", new IECore::StringData( "" ), false, "shadowGroup" ) ); attributes->addChild( new Gaffer::NameValuePlug( "ai:visibility:diffuse_reflect", new IECore::BoolData( true ), false, "diffuseReflectionVisibility" ) ); attributes->addChild( new Gaffer::NameValuePlug( "ai:visibility:specular_reflect", new IECore::BoolData( true ), false, "specularReflectionVisibility" ) ); attributes->addChild( new Gaffer::NameValuePlug( "ai:visibility:diffuse_transmit", new IECore::BoolData( true ), false, "diffuseTransmissionVisibility" ) ); attributes->addChild( new Gaffer::NameValuePlug( "ai:visibility:specular_transmit", new IECore::BoolData( true ), false, "specularTransmissionVisibility" ) ); attributes->addChild( new Gaffer::NameValuePlug( "ai:visibility:volume", new IECore::BoolData( true ), false, "volumeVisibility" ) ); attributes->addChild( new Gaffer::NameValuePlug( "ai:visibility:subsurface", new IECore::BoolData( true ), false, "subsurfaceVisibility" ) ); // Transform parameters attributes->addChild( new Gaffer::NameValuePlug( "ai:transform_type", new StringPlug( "value", Plug::In, "rotate_about_center" ), false, "transformType" ) ); // Shading parameters attributes->addChild( new Gaffer::NameValuePlug( "ai:matte", new IECore::BoolData( false ), false, "matte" ) ); attributes->addChild( new Gaffer::NameValuePlug( "ai:opaque", new IECore::BoolData( true ), false, "opaque" ) ); attributes->addChild( new Gaffer::NameValuePlug( "ai:receive_shadows", new IECore::BoolData( true ), false, "receiveShadows" ) ); attributes->addChild( new Gaffer::NameValuePlug( "ai:self_shadows", new IECore::BoolData( true ), false, "selfShadows" ) ); attributes->addChild( new Gaffer::NameValuePlug( "ai:sss_setname", new StringPlug( "value", Plug::In, "" ), false, "sssSetName" ) ); // Subdivision parameters attributes->addChild( new Gaffer::NameValuePlug( "ai:polymesh:subdiv_iterations", new IntPlug( "value", Plug::In, 1, 1 ), false, "subdivIterations" ) ); attributes->addChild( new Gaffer::NameValuePlug( "ai:polymesh:subdiv_adaptive_error", new FloatPlug( "value", Plug::In, 0.0f, 0.0f ), false, "subdivAdaptiveError" ) ); attributes->addChild( new Gaffer::NameValuePlug( "ai:polymesh:subdiv_adaptive_metric", new StringPlug( "value", Plug::In, "auto" ), false, "subdivAdaptiveMetric" ) ); attributes->addChild( new Gaffer::NameValuePlug( "ai:polymesh:subdiv_adaptive_space", new StringPlug( "value", Plug::In, "raster" ), false, "subdivAdaptiveSpace" ) ); attributes->addChild( new Gaffer::NameValuePlug( "ai:polymesh:subdiv_uv_smoothing", new StringPlug( "value", Plug::In, "pin_corners" ), false, "subdivUVSmoothing" ) ); attributes->addChild( new Gaffer::NameValuePlug( "ai:polymesh:subdiv_smooth_derivs", new BoolPlug( "value" ), false, "subdivSmoothDerivs" ) ); attributes->addChild( new Gaffer::NameValuePlug( "ai:polymesh:subdivide_polygons", new BoolPlug( "value" ), false, "subdividePolygons" ) ); // Curves parameters attributes->addChild( new Gaffer::NameValuePlug( "ai:curves:mode", new StringPlug( "value", Plug::In, "ribbon" ), false, "curvesMode" ) ); attributes->addChild( new Gaffer::NameValuePlug( "ai:curves:min_pixel_width", new FloatPlug( "value", Plug::In, 0.0f, 0.0f ), false, "curvesMinPixelWidth" ) ); // Volume parameters attributes->addChild( new Gaffer::NameValuePlug( "ai:volume:step_size", new FloatPlug( "value", Plug::In, 0.0f, 0.0f ), false, "volumeStepSize" ) ); attributes->addChild( new Gaffer::NameValuePlug( "ai:volume:step_scale", new FloatPlug( "value", Plug::In, 1.0f, 0.0f ), false, "volumeStepScale" ) ); attributes->addChild( new Gaffer::NameValuePlug( "ai:shape:step_size", new FloatPlug( "value", Plug::In, 0.0f, 0.0f ), false, "shapeStepSize" ) ); attributes->addChild( new Gaffer::NameValuePlug( "ai:shape:step_scale", new FloatPlug( "value", Plug::In, 1.0f, 0.0f ), false, "shapeStepScale" ) ); attributes->addChild( new Gaffer::NameValuePlug( "ai:shape:volume_padding", new FloatPlug( "value", Plug::In, 0.0f, 0.0f ), false, "volumePadding" ) ); attributes->addChild( new Gaffer::NameValuePlug( "ai:volume:velocity_scale", new FloatPlug( "value", Plug::In, 1.0f, 0.0f ), false, "velocityScale" ) ); attributes->addChild( new Gaffer::NameValuePlug( "ai:volume:velocity_fps", new FloatPlug( "value", Plug::In, 24.0f, 0.0f ), false, "velocityFPS" ) ); attributes->addChild( new Gaffer::NameValuePlug( "ai:volume:velocity_outlier_threshold", new FloatPlug( "value", Plug::In, 0.001f, 0.0f ), false, "velocityOutlierThreshold" ) ); }
DelightOptions::DelightOptions( const std::string &name ) : GafferScene::Options( name ) { Gaffer::CompoundDataPlug *options = optionsPlug(); // Rendering options->addChild( new Gaffer::NameValuePlug( "dl:bucketorder", new IECore::StringData( "horizontal" ), false, "bucketOrder" ) ); options->addChild( new Gaffer::NameValuePlug( "dl:numberofthreads", new IECore::IntData( 0 ), false, "numberOfThreads" ) ); // Quality options->addChild( new Gaffer::NameValuePlug( "dl:oversampling", new IECore::IntData( 9 ), false, "oversampling" ) ); options->addChild( new Gaffer::NameValuePlug( "dl:quality.shadingsamples", new IECore::IntData( 64 ), false, "shadingSamples" ) ); // Ray depth options->addChild( new Gaffer::NameValuePlug( "dl:maximumraydepth.diffuse", new IECore::IntData( 1 ), false, "maximumRayDepthDiffuse" ) ); options->addChild( new Gaffer::NameValuePlug( "dl:maximumraydepth.hair", new IECore::IntData( 4 ), false, "maximumRayDepthHair" ) ); options->addChild( new Gaffer::NameValuePlug( "dl:maximumraydepth.reflection", new IECore::IntData( 1 ), false, "maximumRayDepthReflection" ) ); options->addChild( new Gaffer::NameValuePlug( "dl:maximumraydepth.refraction", new IECore::IntData( 4 ), false, "maximumRayDepthRefraction" ) ); // Texturing options->addChild( new Gaffer::NameValuePlug( "dl:texturememory", new IECore::IntData( 250 ), false, "textureMemory" ) ); // Network cache options->addChild( new Gaffer::NameValuePlug( "dl:networkcache.size", new IECore::IntData( 15 ), false, "networkCacheSize" ) ); options->addChild( new Gaffer::NameValuePlug( "dl:networkcache.directory", new IECore::StringData( "" ), false, "networkCacheDirectory" ) ); // Licensing options->addChild( new Gaffer::NameValuePlug( "dl:license.server", new IECore::StringData( "" ), false, "licenseServer" ) ); options->addChild( new Gaffer::NameValuePlug( "dl:license.wait", new IECore::BoolData( true ), false, "licenseWait" ) ); }