Class 3: Slim, Part I

Introduction to Slim

Slim is the "shader UI" part of MTOR. It communicates with Maya to query certain lighting parameters, material attrs, etc. For the most part, shaders in Maya are ignored - equivalent RenderMan ones need to be set up via Slim.

Rich shader networks can be created using Slim..

Palettes, appearances, connections

Here's a small scene with a shader network.

Palettes can be renamed, stored on disk and read back

Here is how palette info. is stored in a Maya scene:


createNode partition -n "mtorPartition";
	addAttr -ci true -sn "inmsg" -ln "inmessage" -bt "UNKN" -at "message";
	addAttr -ci true -sn "rmd" -ln "rmanData" -bt "UNKN" -dt "string";
	addAttr -ci true -sn "sd" -ln "slimData" -bt "UNKN" -dt "string";
	setAttr ".rmd" -type "string" (
		"  RManControls {\n\tRIBFormat ascii\n\tRIBGen immediate\n\tRIBStyle flattened\n\talfCrews {}\n\talfEnvKey {}\n\talfJobOptions {}\n\talfJobPriority 0\n\talfMetaData {}\n\talfNRMMax 3\n\talfNRMMin 1\n\talfPause 0\n\talfRendererArgs {}\n\talfSvc {}\n\talfTag {}\n\talfWhenDoneCmd {}\n\talfWhenErrorCmd {}\n\tanimFPS 24\n\tbackPlane 0\n\tblurCamera 0\n\tblurSubframe 0\n\tbokehAngle 0\n\tbokehDensity 0\n\tbokehRoundness 0\n\tbokehSides 0\n\tcamName perspShape\n\tchannelDspyDither_1 0\n\tchannelDspyDither_10 0\n\tchannelDspyDither_11 0\n\tchannelDspyDither_12 0\n\tchannelDspyDither_13 0\n\tchannelDspyDither_14 0\n\tchannelDspyDither_15 0\n\tchannelDspyDither_16 0\n\tchannelDspyDither_17 0\n\tchannelDspyDither_18 0\n\tchannelDspyDither_19 0\n\tchannelDspyDither_2 0\n\tchannelDspyDither_20 0\n\tchannelDspyDither_21 0\n\tchannelDspyDither_22 0\n\tchannelDspyDither_23 0\n\tchannelDspyDither_24 0\n\tchannelDspyDither_25 0\n\tchannelDspyDither_26 0\n\tchannelDspyDither_27 0\n\tchannelDspyDither_28 0\n\tchannelDspyDither_29 0\n\tchannelDspyDither_3 0\n\tchannelDspyDither_30 0\n\tchannelDspyDither_31 0\n\tchannelDspyDither_32 0\n"
		+ "\tchannelDspyDither_33 0\n\tchannelDspyDither_34 0\n\tchannelDspyDither_35 0\n\tchannelDspyDither_36 0\n\tchannelDspyDither_37 0\n\tchannelDspyDither_38 0\n\tchannelDspyDither_39 0\n\tchannelDspyDither_4 0\n\tchannelDspyDither_40 0\n\tchannelDspyDither_41 0\n\tchannelDspyDither_42 0\n\tchannelDspyDither_5 0\n\tchannelDspyDither_6 0\n\tchannelDspyDither_7 0\n\tchannelDspyDither_8 0\n\tchannelDspyDither_9 0\n\tchannelDspyFilterWidthX_1 1\n\tchannelDspyFilterWidthX_10 1\n\tchannelDspyFilterWidthX_11 1\n\tchannelDspyFilterWidthX_12 1\n\tchannelDspyFilterWidthX_13 1\n\tchannelDspyFilterWidthX_14 1\n\tchannelDspyFilterWidthX_15 1\n\tchannelDspyFilterWidthX_16 1\n\tchannelDspyFilterWidthX_17 1\n\tchannelDspyFilterWidthX_18 1\n\tchannelDspyFilterWidthX_19 1\n\tchannelDspyFilterWidthX_2 1\n\tchannelDspyFilterWidthX_20 1\n\tchannelDspyFilterWidthX_21 1\n\tchannelDspyFilterWidthX_22 1\n\tchannelDspyFilterWidthX_23 1\n\tchannelDspyFilterWidthX_24 1\n\tchannelDspyFilterWidthX_25 1\n\tchannelDspyFilterWidthX_26 1\n\tchannelDspyFilterWidthX_27 1\n\tchannelDspyFilterWidthX_28 1\n\tchannelDspyFilterWidthX_29 1\n"
		+ "\tchannelDspyFilterWidthX_3 1\n\tchannelDspyFilterWidthX_30 1\n\tchannelDspyFilterWidthX_31 1\n\tchannelDspyFilterWidthX_32 1\n\tchannelDspyFilterWidthX_33 1\n\tchannelDspyFilterWidthX_34 1\n\tchannelDspyFilterWidthX_35 1\n\tchannelDspyFilterWidthX_36 1\n\tchannelDspyFilterWidthX_37 1\n\tchannelDspyFilterWidthX_38 1\n\tchannelDspyFilterWidthX_39 1\n\tchannelDspyFilterWidthX_4 1\n\tchannelDspyFilterWidthX_40 1\n\tchannelDspyFilterWidthX_41 1\n\tchannelDspyFilterWidthX_42 1\n\tchannelDspyFilterWidthX_5 1\n\tchannelDspyFilterWidthX_6 1\n\tchannelDspyFilterWidthX_7 1\n\tchannelDspyFilterWidthX_8 1\n\tchannelDspyFilterWidthX_9 1\n\tchannelDspyFilterWidthY_1 1\n\tchannelDspyFilterWidthY_10 1\n\tchannelDspyFilterWidthY_11 1\n\tchannelDspyFilterWidthY_12 1\n\tchannelDspyFilterWidthY_13 1\n\tchannelDspyFilterWidthY_14 1\n\tchannelDspyFilterWidthY_15 1\n\tchannelDspyFilterWidthY_16 1\n\tchannelDspyFilterWidthY_17 1\n\tchannelDspyFilterWidthY_18 1\n\tchannelDspyFilterWidthY_19 1\n\tchannelDspyFilterWidthY_2 1\n\tchannelDspyFilterWidthY_20 1\n\tchannelDspyFilterWidthY_21 1\n\tchannelDspyFilterWidthY_22 1\n"
		+ "\tchannelDspyFilterWidthY_23 1\n\tchannelDspyFilterWidthY_24 1\n\tchannelDspyFilterWidthY_25 1\n\tchannelDspyFilterWidthY_26 1\n\tchannelDspyFilterWidthY_27 1\n\tchannelDspyFilterWidthY_28 1\n\tchannelDspyFilterWidthY_29 1\n\tchannelDspyFilterWidthY_3 1\n\tchannelDspyFilterWidthY_30 1\n\tchannelDspyFilterWidthY_31 1\n\tchannelDspyFilterWidthY_32 1\n\tchannelDspyFilterWidthY_33 1\n\tchannelDspyFilterWidthY_34 1\n\tchannelDspyFilterWidthY_35 1\n\tchannelDspyFilterWidthY_36 1\n\tchannelDspyFilterWidthY_37 1\n\tchannelDspyFilterWidthY_38 1\n\tchannelDspyFilterWidthY_39 1\n\tchannelDspyFilterWidthY_4 1\n\tchannelDspyFilterWidthY_40 1\n\tchannelDspyFilterWidthY_41 1\n\tchannelDspyFilterWidthY_42 1\n\tchannelDspyFilterWidthY_5 1\n\tchannelDspyFilterWidthY_6 1\n\tchannelDspyFilterWidthY_7 1\n\tchannelDspyFilterWidthY_8 1\n\tchannelDspyFilterWidthY_9 1\n\tchannelDspyMax_1 0\n\tchannelDspyMax_10 0\n\tchannelDspyMax_11 0\n\tchannelDspyMax_12 0\n\tchannelDspyMax_13 0\n\tchannelDspyMax_14 0\n\tchannelDspyMax_15 0\n\tchannelDspyMax_16 0\n\tchannelDspyMax_17 0\n\tchannelDspyMax_18 0\n\tchannelDspyMax_19 0\n"
		+ "\tchannelDspyMax_2 0\n\tchannelDspyMax_20 0\n\tchannelDspyMax_21 0\n\tchannelDspyMax_22 0\n\tchannelDspyMax_23 0\n\tchannelDspyMax_24 0\n\tchannelDspyMax_25 0\n\tchannelDspyMax_26 0\n\tchannelDspyMax_27 0\n\tchannelDspyMax_28 0\n\tchannelDspyMax_29 0\n\tchannelDspyMax_3 0\n\tchannelDspyMax_30 0\n\tchannelDspyMax_31 0\n\tchannelDspyMax_32 0\n\tchannelDspyMax_33 0\n\tchannelDspyMax_34 0\n\tchannelDspyMax_35 0\n\tchannelDspyMax_36 0\n\tchannelDspyMax_37 0\n\tchannelDspyMax_38 0\n\tchannelDspyMax_39 0\n\tchannelDspyMax_4 0\n\tchannelDspyMax_40 0\n\tchannelDspyMax_41 0\n\tchannelDspyMax_42 0\n\tchannelDspyMax_5 0\n\tchannelDspyMax_6 0\n\tchannelDspyMax_7 0\n\tchannelDspyMax_8 0\n\tchannelDspyMax_9 0\n\tchannelDspyMin_1 0\n\tchannelDspyMin_10 0\n\tchannelDspyMin_11 0\n\tchannelDspyMin_12 0\n\tchannelDspyMin_13 0\n\tchannelDspyMin_14 0\n\tchannelDspyMin_15 0\n\tchannelDspyMin_16 0\n\tchannelDspyMin_17 0\n\tchannelDspyMin_18 0\n\tchannelDspyMin_19 0\n\tchannelDspyMin_2 0\n\tchannelDspyMin_20 0\n\tchannelDspyMin_21 0\n\tchannelDspyMin_22 0\n\tchannelDspyMin_23 0\n\tchannelDspyMin_24 0\n\tchannelDspyMin_25 0\n\tchannelDspyMin_26 0\n"
		+ "\tchannelDspyMin_27 0\n\tchannelDspyMin_28 0\n\tchannelDspyMin_29 0\n\tchannelDspyMin_3 0\n\tchannelDspyMin_30 0\n\tchannelDspyMin_31 0\n\tchannelDspyMin_32 0\n\tchannelDspyMin_33 0\n\tchannelDspyMin_34 0\n\tchannelDspyMin_35 0\n\tchannelDspyMin_36 0\n\tchannelDspyMin_37 0\n\tchannelDspyMin_38 0\n\tchannelDspyMin_39 0\n\tchannelDspyMin_4 0\n\tchannelDspyMin_40 0\n\tchannelDspyMin_41 0\n\tchannelDspyMin_42 0\n\tchannelDspyMin_5 0\n\tchannelDspyMin_6 0\n\tchannelDspyMin_7 0\n\tchannelDspyMin_8 0\n\tchannelDspyMin_9 0\n\tchannelDspyMode_1 {color _indirectdiffuse}\n\tchannelDspyMode_10 {color _Oi}\n\tchannelDspyMode_11 {float _float}\n\tchannelDspyMode_12 {color _shadow}\n\tchannelDspyMode_13 {color _surfacecolor}\n\tchannelDspyMode_14 {color _incandescence}\n\tchannelDspyMode_15 {color _ambient}\n\tchannelDspyMode_16 {color _indirect}\n\tchannelDspyMode_17 {color _diffuse}\n\tchannelDspyMode_18 {color _thintranslucence}\n\tchannelDspyMode_19 {color _subsurfacescattering}\n\tchannelDspyMode_2 {float _occlusion}\n\tchannelDspyMode_20 {color _backscattering}\n\tchannelDspyMode_21 {color _specular}\n"
		+ "\tchannelDspyMode_22 {color _rim}\n\tchannelDspyMode_23 {color _reflection}\n\tchannelDspyMode_24 {color _refraction}\n\tchannelDspyMode_25 {point P}\n\tchannelDspyMode_26 {normal N}\n\tchannelDspyMode_27 {normal Ng}\n\tchannelDspyMode_28 {vector E}\n\tchannelDspyMode_29 {vector dPdu}\n\tchannelDspyMode_3 {vector _environmentdir}\n\tchannelDspyMode_30 {vector dPdv}\n\tchannelDspyMode_31 {float s}\n\tchannelDspyMode_32 {float t}\n\tchannelDspyMode_33 {float u}\n\tchannelDspyMode_34 {float v}\n\tchannelDspyMode_35 {float du}\n\tchannelDspyMode_36 {float dv}\n\tchannelDspyMode_37 {vector dPdtime}\n\tchannelDspyMode_38 {color Cs}\n\tchannelDspyMode_39 {color Os}\n\tchannelDspyMode_4 {color _radiance_t}\n\tchannelDspyMode_40 {color Ci}\n\tchannelDspyMode_41 {color Oi}\n\tchannelDspyMode_42 {float __CPUtime}\n\tchannelDspyMode_5 {float _area}\n\tchannelDspyMode_6 {color _albedo}\n\tchannelDspyMode_7 {color _diffusemeanfreepath}\n\tchannelDspyMode_8 {color _color}\n\tchannelDspyMode_9 {color _Ci}\n\tchannelDspyOne_1 0\n\tchannelDspyOne_10 0\n\tchannelDspyOne_11 0\n\tchannelDspyOne_12 0\n"
		+ "\tchannelDspyOne_13 0\n\tchannelDspyOne_14 0\n\tchannelDspyOne_15 0\n\tchannelDspyOne_16 0\n\tchannelDspyOne_17 0\n\tchannelDspyOne_18 0\n\tchannelDspyOne_19 0\n\tchannelDspyOne_2 0\n\tchannelDspyOne_20 0\n\tchannelDspyOne_21 0\n\tchannelDspyOne_22 0\n\tchannelDspyOne_23 0\n\tchannelDspyOne_24 0\n\tchannelDspyOne_25 0\n\tchannelDspyOne_26 0\n\tchannelDspyOne_27 0\n\tchannelDspyOne_28 0\n\tchannelDspyOne_29 0\n\tchannelDspyOne_3 0\n\tchannelDspyOne_30 0\n\tchannelDspyOne_31 0\n\tchannelDspyOne_32 0\n\tchannelDspyOne_33 0\n\tchannelDspyOne_34 0\n\tchannelDspyOne_35 0\n\tchannelDspyOne_36 0\n\tchannelDspyOne_37 0\n\tchannelDspyOne_38 0\n\tchannelDspyOne_39 0\n\tchannelDspyOne_4 0\n\tchannelDspyOne_40 0\n\tchannelDspyOne_41 0\n\tchannelDspyOne_42 0\n\tchannelDspyOne_5 0\n\tchannelDspyOne_6 0\n\tchannelDspyOne_7 0\n\tchannelDspyOne_8 0\n\tchannelDspyOne_9 0\n\tchannelDspyPixelFilter_1 {}\n\tchannelDspyPixelFilter_10 {}\n\tchannelDspyPixelFilter_11 {}\n\tchannelDspyPixelFilter_12 {}\n\tchannelDspyPixelFilter_13 {}\n\tchannelDspyPixelFilter_14 {}\n\tchannelDspyPixelFilter_15 {}\n\tchannelDspyPixelFilter_16 {}\n"
		+ "\tchannelDspyPixelFilter_17 {}\n\tchannelDspyPixelFilter_18 {}\n\tchannelDspyPixelFilter_19 {}\n\tchannelDspyPixelFilter_2 {}\n\tchannelDspyPixelFilter_20 {}\n\tchannelDspyPixelFilter_21 {}\n\tchannelDspyPixelFilter_22 {}\n\tchannelDspyPixelFilter_23 {}\n\tchannelDspyPixelFilter_24 {}\n\tchannelDspyPixelFilter_25 {}\n\tchannelDspyPixelFilter_26 {}\n\tchannelDspyPixelFilter_27 {}\n\tchannelDspyPixelFilter_28 {}\n\tchannelDspyPixelFilter_29 {}\n\tchannelDspyPixelFilter_3 {}\n\tchannelDspyPixelFilter_30 {}\n\tchannelDspyPixelFilter_31 {}\n\tchannelDspyPixelFilter_32 {}\n\tchannelDspyPixelFilter_33 {}\n\tchannelDspyPixelFilter_34 {}\n\tchannelDspyPixelFilter_35 {}\n\tchannelDspyPixelFilter_36 {}\n\tchannelDspyPixelFilter_37 {}\n\tchannelDspyPixelFilter_38 {}\n\tchannelDspyPixelFilter_39 {}\n\tchannelDspyPixelFilter_4 {}\n\tchannelDspyPixelFilter_40 {}\n\tchannelDspyPixelFilter_41 {}\n\tchannelDspyPixelFilter_42 {}\n\tchannelDspyPixelFilter_5 {}\n\tchannelDspyPixelFilter_6 {}\n\tchannelDspyPixelFilter_7 {}\n\tchannelDspyPixelFilter_8 {}\n\tchannelDspyPixelFilter_9 {}\n\tchannelDspyQuantize_1 1\n"
		+ "\tchannelDspyQuantize_10 1\n\tchannelDspyQuantize_11 1\n\tchannelDspyQuantize_12 1\n\tchannelDspyQuantize_13 1\n\tchannelDspyQuantize_14 1\n\tchannelDspyQuantize_15 1\n\tchannelDspyQuantize_16 1\n\tchannelDspyQuantize_17 1\n\tchannelDspyQuantize_18 1\n\tchannelDspyQuantize_19 1\n\tchannelDspyQuantize_2 1\n\tchannelDspyQuantize_20 1\n\tchannelDspyQuantize_21 1\n\tchannelDspyQuantize_22 1\n\tchannelDspyQuantize_23 1\n\tchannelDspyQuantize_24 1\n\tchannelDspyQuantize_25 1\n\tchannelDspyQuantize_26 1\n\tchannelDspyQuantize_27 1\n\tchannelDspyQuantize_28 1\n\tchannelDspyQuantize_29 1\n\tchannelDspyQuantize_3 1\n\tchannelDspyQuantize_30 1\n\tchannelDspyQuantize_31 1\n\tchannelDspyQuantize_32 1\n\tchannelDspyQuantize_33 1\n\tchannelDspyQuantize_34 1\n\tchannelDspyQuantize_35 1\n\tchannelDspyQuantize_36 1\n\tchannelDspyQuantize_37 1\n\tchannelDspyQuantize_38 1\n\tchannelDspyQuantize_39 1\n\tchannelDspyQuantize_4 1\n\tchannelDspyQuantize_40 1\n\tchannelDspyQuantize_41 1\n\tchannelDspyQuantize_42 1\n\tchannelDspyQuantize_5 1\n\tchannelDspyQuantize_6 1\n\tchannelDspyQuantize_7 1\n\tchannelDspyQuantize_8 1\n"
		+ "\tchannelDspyQuantize_9 1\n\tchannelDspyZero_1 0\n\tchannelDspyZero_10 0\n\tchannelDspyZero_11 0\n\tchannelDspyZero_12 0\n\tchannelDspyZero_13 0\n\tchannelDspyZero_14 0\n\tchannelDspyZero_15 0\n\tchannelDspyZero_16 0\n\tchannelDspyZero_17 0\n\tchannelDspyZero_18 0\n\tchannelDspyZero_19 0\n\tchannelDspyZero_2 0\n\tchannelDspyZero_20 0\n\tchannelDspyZero_21 0\n\tchannelDspyZero_22 0\n\tchannelDspyZero_23 0\n\tchannelDspyZero_24 0\n\tchannelDspyZero_25 0\n\tchannelDspyZero_26 0\n\tchannelDspyZero_27 0\n\tchannelDspyZero_28 0\n\tchannelDspyZero_29 0\n\tchannelDspyZero_3 0\n\tchannelDspyZero_30 0\n\tchannelDspyZero_31 0\n\tchannelDspyZero_32 0\n\tchannelDspyZero_33 0\n\tchannelDspyZero_34 0\n\tchannelDspyZero_35 0\n\tchannelDspyZero_36 0\n\tchannelDspyZero_37 0\n\tchannelDspyZero_38 0\n\tchannelDspyZero_39 0\n\tchannelDspyZero_4 0\n\tchannelDspyZero_40 0\n\tchannelDspyZero_41 0\n\tchannelDspyZero_42 0\n\tchannelDspyZero_5 0\n\tchannelDspyZero_6 0\n\tchannelDspyZero_7 0\n\tchannelDspyZero_8 0\n\tchannelDspyZero_9 0\n\tcomputeBy 1\n\tcomputeLocation local\n\tcomputeOrder counting\n\tcomputeStart 1\n\tcomputeStop 24\n"
		+ "\tcomputedMaps use\n\tcontextString {}\n\tconvertTextures 1\n\tcropWinXMax 1\n\tcropWinXMin 0\n\tcropWinYMax 1\n\tcropWinYMin 0\n\tcustomImageMetrics {}\n\tcustomImageSvc {}\n\tcustomImageTag {}\n\tcustomImager {}\n\tcustomJobSettings none\n\tcustomPreRenderCmd {}\n\tcustomPreRenderMetrics {}\n\tcustomPreRenderSvc {}\n\tcustomPreRenderTag {}\n\tcustomRenderMetrics {}\n\tcustomRenderSvc {}\n\tcustomRenderTag {}\n\tcustomRenderer notepad\n\tdiceCamera worldcamera\n\tdiceStrategy planarprojection\n\tdoAnim 0\n\tdoCrop 0\n\tdoDOF 0\n\tdoMotionBlur 0\n\tdofUseLookat 0\n\tdspyBucketX 0\n\tdspyBucketY 0\n\tdspyFormatX 640\n\tdspyFormatY 480\n\tdspyGain 1\n\tdspyGamma 1\n\tdspyGrid 0\n\tdspyName untitled\n\tdspyPrimaryOnly 0\n\tdspyQuantizeDither .5\n\tdspyQuantizeMax 255\n\tdspyQuantizeMin 0\n\tdspyQuantizeMode none\n\tdspyQuantizeOne 255\n\tdspyServer it\n\tdspyServerMode rgba\n\tdspyUnique 1\n\tfilterWidthX 2\n\tfilterWidthY 2\n\tframeCamName {}\n\tfrontPlane 0\n\thider standard\n\timager none\n\tirradianceFileMode ignore\n\tirradianceHandle {[irradiancecache global]}\n\tirradianceMaxError -1\n\tirradianceMaxPixelDist -1\n"
		+ "\tjitter 1\n\tjobChunkSize subframe\n\tjobCleanup {rib map tex}\n\tlazyCompute off\n\tlightsOnly 0\n\tmotionFactor 1\n\tobjectsOnly 0\n\tphotonCausticMap {}\n\tphotonEstimator 50\n\tphotonGlobalMap {}\n\tphotonShadingModel matte\n\tpixelFilter separable-catmull-rom\n\tpixelRatio 1\n\tpixelSamplesX 3\n\tpixelSamplesY 3\n\tpostFrameScript {}\n\tpreFrameScript {}\n\trasterOrient 1\n\trayTrace 1\n\treferenceFrame 0\n\trenderer render\n\tselectedSet {}\n\tsequenceStart 1\n\tsequenceStop 100\n\tshadingInterp 1\n\tshadingRate 0.50\n\tshadowBias 0\n\tshutterAngle 90\n\tshutterClosing 1\n\tshutterConfig moving\n\tshutterOpening 0\n\tshutterTiming frameOpen\n\tstatisticsFile {}\n\tstatisticsLevel 0\n\tsuperframeCount 5\n\ttraceBias 0.05\n\ttraceBreadthSampleFactor 1\n\ttraceDepthSampleFactor 1\n\ttraceDisplacements 0\n\ttraceMaxDepth 10\n\ttraceMaxDiffuseDepth 1\n\ttraceMaxSpecularDepth 2\n\ttraceSampleMotion 0\n\ttraceSpecularThreshold 10\n\tzealousCaching 0\n  }");
	setAttr ".sd" -type "string" (
		"slim 1 TOR slim {\npalette N-___BIzrP400000 {\n  guiinfo 456x249+859+225 1 {\n    view icon\n    panes {\n      icon {160 -1}\n      list {250 -1}\n    }\n    graphArea {\n      graphState \"work area 0\" {\n        zoom 0\n        offset 0 0\n      }\n    }\n  }\n  label PaletteA\n  description {}\n  savemode minimal\n  function shadingmodel_aov \"Glass\" \"pixar,Glass#1\" {\n    identity N-___7azrP400000\n    templatehints shadingmodels.slim \n    master {$::torShaders/$::INSTANCENAME}\n    modified 1182135873\n    previewinfo {\n      shadingrate 1\n      objectsize 1\n      objectshape Sphere\n      frame 1\n    }\n    parameter color Incandescence {\n    }\n    parameter float Kspec {\n      label {Specular Strength}\n    }\n    parameter color cspec {\n      label {Specular Tint}\n    }\n    parameter string specmodel {\n      label {Specular Model}\n    }\n    parameter float Sharpness {\n    }\n    parameter float Roughness {\n    }\n    parameter float ior {\n      label {Index of Refraction}\n    }\n    parameter float twosided {\n      label {Two Sided}\n"
		+ "    }\n    parameter string TraceSet {\n      label {Trace Set}\n    }\n    parameter float MaxDistance {\n      label {Max Distance}\n    }\n    collection void Reflection {\n      drawmode all\n      state open\n      parameter float Krefl {\n        label Strength\n      }\n      parameter color crefl {\n        label Tint\n      }\n      parameter float reflsamps {\n        label Samples\n      }\n      parameter float reflcone {\n        label Blur\n      }\n    }\n    collection void Refraction {\n      drawmode all\n      state open\n      parameter float Krefr {\n        label {Refraction Strength}\n      }\n      parameter color crefr {\n        label {Refraction Tint}\n      }\n      parameter float refrsamps {\n        label Samples\n      }\n      parameter float refrcone {\n        label Blur\n      }\n    }\n    collection shadingmodel_aov result {\n      drawmode all\n      state closed\n      parameter color cResult {\n      }\n      parameter color oResult {\n      }\n      parameter color c_shadow {\n      }\n      parameter color c_surfacecolor {\n"
		+ "      }\n      parameter color c_incandescence {\n      }\n      parameter color c_ambient {\n      }\n      parameter color c_indirect {\n      }\n      parameter color c_diffuse {\n      }\n      parameter color c_thintranslucence {\n      }\n      parameter color c_subsurfacescattering {\n      }\n      parameter color c_backscattering {\n      }\n      parameter color c_specular {\n      }\n      parameter color c_rim {\n      }\n      parameter color c_reflection {\n      }\n      parameter color c_refraction {\n      }\n    }\n  }\n}\npalettereference C:/Temp/PalB.splt\n}\n");



Slim nodes have properties whose values can be set in several ways

Collecting, exploding, flattening, bundling, instancing


In addition to being collected/flattened/bundled, an appearance network can also be instanced.

Misc