# RenderPlugIn class

Namespace: [Rhino.PlugIns](https://developer.rhino3d.com/api/rhinocommon/namespace/rhino.plugins.md) · Assembly: [RhinoCommon](https://developer.rhino3d.com/api/rhinocommon/assembly/rhinocommon.md)

```cs
public abstract class RenderPlugIn : PlugIn
```

A Rhino rendering plugin; applies materials, textures, and lights to a scene to produce rendered images.

## Constructors

- [RenderPlugIn](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.renderplugin/ctor.md)

## Properties

- [InitialChannelToDisplay](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.renderplugin/initialchanneltodisplay.md)
- [PerferBasicContent](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.renderplugin/perferbasiccontent.md): Set to true if you would like Rhino to quickly create a basic render content in response to 'Create New' commands. Set to false if you would prefer Rhino to display the render content chooser dialog.
- [SupportedChannels](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.renderplugin/supportedchannels.md): Override to communicate that the renderer supports more channels beside the default channels RGBA, Depth, Normal, Albedo. See RenderWindow.StandardChannels. RenderWindow.ChannelId can be used to get the GUIDs for the channels to support
- [SupportsEditProperties](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.renderplugin/supportseditproperties.md): Override this property and return true if your plug-in supports decals and overrides [RenderPlugIn.ShowDecalProperties(List<NamedValue>)](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.renderplugin/showdecalproperties.md)

## Methods

- [AllowChooseContent](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.renderplugin/allowchoosecontent.md): Default implementation returns true which means the content can be picked from the content browser by the user. Override this method and return false if you don't want to allow a certain content contentType to be picked from the content browser while your render engine is current.
- [CreatePreview](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.renderplugin/createpreview.md): Creates the preview bitmap that will appear in the content editor's thumbnail display when previewing materials and environments. If this function is not overridden or the PreviewImage is not set on the arguments, then the internal OpenGL renderer will generate a simulation of the content. This function is called with four different preview quality settings. The first quality level of RealtimeQuick is called on the main thread and needs to be drawn as fast as possible. This function is called with the other three quality settings on a separate thread and are meant for generating progressively refined preview.
- [CreateTexture2dPreview](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.renderplugin/createtexture2dpreview.md): Creates the preview bitmap that will appear in the content editor's thumbnail display when previewing textures in 2d (UV) mode. If this function is not overridden or the PreviewImage is not set on the arguments, then the internal OpenGL renderer will generate a simulation.
- [CurrentRendererSupportsFeature](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.renderplugin/currentrenderersupportsfeature.md): (static)
- [CustomChannelName](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.renderplugin/customchannelname.md): Return the localized name of your custom channel.
- [EnableAssignMaterialButton](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.renderplugin/enableassignmaterialbutton.md): Called to enable/disable the "Material" button located on the "Material" tab in the Properties and Layer dialog boxes. The default return value is false which will disable the button. If the button is disabled then the OnAssignMaterial function is never called.
- [EnableCreateMaterialButton](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.renderplugin/enablecreatematerialbutton.md): Called to enable/disable the "New" button located on the "Material" in the Properties and Layer dialog boxes. The default return value is false which will disable the button. If the button is disabled then the OnEditMaterial function is never called.
- [EnableEditMaterialButton](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.renderplugin/enableeditmaterialbutton.md): Called to enable/disable the "Edit" button located on the "Material" in the Properties and Layer dialog boxes. The default return value is false which will disable the button. If the button is disabled then the OnEditMaterial function is never called.
- [GetRenderSettingsSections](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.renderplugin/getrendersettingssections.md): This function returns a list of Guids for the render settings pages that should be displayed.
- [InitializeDecalProperties](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.renderplugin/initializedecalproperties.md): Initialize your custom decal properties here. The input list will be empty - add your default named property values and return.
- [OnAssignMaterial](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.renderplugin/onassignmaterial.md): This function is called by the Object Properties and Layer Control dialogs when the "Material" button is pressed in the "Render" tab. This is only called if EnableAssignMaterialButton returns true.
- [OnCreateMaterial](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.renderplugin/oncreatematerial.md): This function is called by the Object Properties and Layer Control dialogs when the "New" button is pressed in the "Material" tab. This is only called if EnableCreateMaterialButton returns true.
- [OnEditMaterial](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.renderplugin/oneditmaterial.md): This function is called by the Object Properties and Layer Control dialogs when the "Edit" button is pressed in the "Material" tab. This is only called if EnableEditMaterialButton returns true. A return value of true means the material has been updated.
- [OnSetCurrent](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.renderplugin/onsetcurrent.md): This plug-in (has become)/(is no longer) the current render plug-in
- [PreviewRenderType](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.renderplugin/previewrendertype.md): Tell what kind of preview rendering your renderer supports.
- [RegisterCustomRenderSaveFileTypes](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.renderplugin/registercustomrendersavefiletypes.md): Override this method to add custom file types to the render window save file dialog.
- [RegisterRenderPanels](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.renderplugin/registerrenderpanels.md): Override this method and call [RenderPanels.RegisterPanel(PlugIn, RenderPanelType, Type, string, bool, bool)](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.renderpanels/registerpanel.md) to add custom render UI to the render output window.
- [RegisterRenderTabs](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.renderplugin/registerrendertabs.md): Override this method and call [RenderTabs.RegisterTab(PlugIn, Type, Guid, string, Icon)](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.rendertabs/registertab.md) to add custom tabs to the render output window
- [Render](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.renderplugin/render.md): Called by Render and RenderPreview commands if this plug-in is set as the default render engine.
- [RenderContentSerializers](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.renderplugin/rendercontentserializers.md): Called by Rhino when it is time to register RenderContentSerializer derived classes. Override this method and return an array of an instance of each serialize custom content object you wish to add.
- [RenderOptionsDialogPage](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.renderplugin/renderoptionsdialogpage.md): Override this method to replace the render properties page in the Rhino document properties dialog. The default implementation returns null which means just use the default Rhino page.
- [RenderSettingsCustomSections](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.renderplugin/rendersettingscustomsections.md): Override this function to provide custom sections for the render settings panel that are displayed when your plug-in is the current render plug-in.
- [RenderSettingsSections](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.renderplugin/rendersettingssections.md): Override this method to provide the UUIDs of all sections that should be displayed in the Render Settings tab when this is the current renderer.The default implementation adds all the RDK's built-in Render Settings sections. These UUIDs start with the prefix uuidRenderSettingsSection'. They can be found in RhRdkUuids.h
- [RenderWindow](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.renderplugin/renderwindow.md): (2 overloads)
- [ShowDecalProperties](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.renderplugin/showdecalproperties.md): Override this function to handle showing a modal dialog with your plug-in's custom decal properties. You will be passed the current properties for the object being edited. The defaults will be set in InitializeDecalProperties.
- [SunCustomSections](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.renderplugin/suncustomsections.md): Override this function to provide custom sections for the sun panel that are displayed when your plug-in is the current render plug-in.
- [SupportedOutputTypes](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.renderplugin/supportedoutputtypes.md): Returns a list of output types which your renderer can write. The default implementation returns BMP, JPG, PNG, TIF, TGA, HDR, EXR and RIMAGE.
- [SupportsFeature](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.renderplugin/supportsfeature.md): Determines if your renderer supports a specific feature.
- [UiContentTypes](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.renderplugin/uicontenttypes.md): Override this method to provide the UUIDs of all content types that should be presented to the user in the types combo box or the[+] button types menu.The default implementation adds only RDK's built-in types. Rhino automatically adds types in the most efficient way to minimize the list length. If you override this method, you may call the base class first to add the built-in types, a separator will be inserted at the end of the standard list followed by your own types. You may omit the base class call and only chosen types yourself, followed by a separator and your own types. A 'More Types...' item is automatically added when needed by Rhino. Specify a separator by adding uuidUiContentType_Separator.

## Inherited Members

- From [PlugIn](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.plugin.md): [AddToHelpMenu](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.plugin/addtohelpmenu.md), [Assembly](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.plugin/assembly.md), [Description](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.plugin/description.md), [Id](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.plugin/id.md), [LicenseId](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.plugin/licenseid.md), [LoadAtStartup](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.plugin/loadatstartup.md), [LoadTime](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.plugin/loadtime.md), [LocalPlugInName](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.plugin/localpluginname.md), [Name](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.plugin/name.md), [Settings](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.plugin/settings.md), [SettingsDirectory](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.plugin/settingsdirectory.md), [SettingsDirectoryAllUsers](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.plugin/settingsdirectoryallusers.md), [Version](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.plugin/version.md), [WindowPositionSettings](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.plugin/windowpositionsettings.md), [SettingsSaved](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.plugin/settingssaved.md), [AskUserForLicense](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.plugin/askuserforlicense.md), [CommandSettings](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.plugin/commandsettings.md), [CreateCommands](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.plugin/createcommands.md), [DisplayHelp](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.plugin/displayhelp.md), [DocumentPropertiesDialogPages](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.plugin/documentpropertiesdialogpages.md), [GetCommands](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.plugin/getcommands.md), [GetLicense](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.plugin/getlicense.md), [GetLicenseOwner](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.plugin/getlicenseowner.md), [GetPlugInObject](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.plugin/getpluginobject.md), [Icon](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.plugin/icon.md), [IsTextureSupported](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.plugin/istexturesupported.md), [ObjectPropertiesPages](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.plugin/objectpropertiespages.md), [OnLoad](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.plugin/onload.md), [OnShutdown](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.plugin/onshutdown.md), [OptionsDialogPages](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.plugin/optionsdialogpages.md), [ReadDocument](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.plugin/readdocument.md), [RegisterCommand](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.plugin/registercommand.md), [ResetMessageBoxes](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.plugin/resetmessageboxes.md), [ReturnLicense](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.plugin/returnlicense.md), [SaveSettings](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.plugin/savesettings.md), [SetLicenseCapabilities](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.plugin/setlicensecapabilities.md), [ShouldCallWriteDocument](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.plugin/shouldcallwritedocument.md), [WriteDocument](https://developer.rhino3d.com/api/rhinocommon/type/rhino.plugins.plugin/writedocument.md)
