Besides its type, a plugin (the scene object) may belong to one or more plugin category or categories such as being a Light, a Material, a Texture, etc.
The following plugin categories are available in App SDK version 7.0:
Bitmap
BSDF
GeometricObject
GeometrySource
Light
Material
RenderChannel
RenderView
Settings
Texture
TextureFloat
TextureInt
TextureMatrix
TextureTransform
TextureVector
UVWGen
Volumetric
To get all lights using the categories API:
lights = renderer.categories.Light.getInstances()
PluginCategories categories; categories.setLightCategory(); std::vector<Plugin> lights = renderer.getPluginsOfCategories(categories);
PluginCategories categories = new PluginCategories(); categories.IsLight = true; IList<Plugin> lights = renderer.GetPluginsOfCategories(categories);
var lights = renderer.categories.Light.getInstances();
Or to get all plugins that are both lights and geometric objects:
geomLight = renderer.categories.getInstances([renderer.categories.Light, renderer.categories.GeometricObject])
PluginCategories categories; categories.setLightCategory(); categories.setGeometricObject(); std::vector<Plugin> geomLight = renderer.getPluginsOfCategories(categories);
PluginCategories categories = new PluginCategories(); categories.IsLight = true; categories.GeometricObject = true; IList<Plugin> geomLight = renderer.GetPluginsOfCategories(categories);
var geomLight = renderer.categories.getInstances([renderer.categories.Light, renderer.categories.GeometricObject]);
Plugin categories can also be useful to identify which plugin (as source) can be connected to another plugin input parameter. E.g. the plugin parameter definition type (the type you get by obtaining the property meta) besides the other standard V-Ray types like int
, Color
, Matrix
, etc. can also beTexture
, TextureFloat
, TextureInt
, TextureMatrix
, TextureTransform
, TextureVector
,
and there are plugins belonging to categories with the same and they can be connected to those input parameters.
The GeometrySource plugins serve as source for some GeometricObject plugins connected to their geometry
input parameter, etc.