Object Hierarchy | Related C++ Class: RenderChannel
RenderChannel
v6.0
A render channel is a container for rendered image data output.
The channel describes what kind of data can be recorded into it.
There are two types of channels: renderer-provided and user-defined.
The renderer-provided type consists of channels that are implicitly
provided by the rendering engine (such as the main render output
and a depth output).
User-defined channels are used in conjunction with shaders which
can be set to record any data into those channels, depending on
their channel type.
The render channels are global to the scene and can be found on the
SceneRenderProperty.
Application | Categories | ChannelType | FullName |
Help | Name | NestedObjects | Origin |
OriginPath | Parent | Type | UserDefined |
// Create a new render channel to use to pipe a texture // into an output framebuffer before shading the object. // The create two regions to show the difference. NewScene( null, false ); oScene = ActiveProject.ActiveScene; // Create the render channel to pipe into. oSceneProp = oScene.PassContainer.Properties( "Scene Render Options" ); oChannel = oSceneProp.CreateRenderChannel( "TextureBypass", siRenderChannelColorType ); // Create a framebuffer to output the channel with. oScene.ActivePass.CreateFramebuffer( oChannel ); // Create a textured sphere with a Store In Channel shader oSphere = oScene.Root.AddGeometry( "Sphere", "MeshSurface", "TexturedSphere" ); oMaterial = oSphere.AddMaterial("Blinn"); oBlinn = oMaterial.Shaders("Blinn"); oStoreShd = oBlinn.diffuse.ConnectFromPreset( "Render_Channels/Color_StoreInChannel", siTextureShaderFamily ); oTextureShd = oStoreShd.input.ConnectFromPreset( "Terrain", siTextureShaderFamily ); oStoreShd.channel = oChannel.Name; // Make sure both viewports are looking at the same thing. oVM = Application.Desktop.ActiveLayout.Views( "vm" ); oVM.SetAttributeValue( "activecamera:a", "Camera" ); // Create two render regions in viewport A and B. // Set the B viewport to view the contents of the // "TextureBypass" render channel. RenderRegionCreate( siViewportA ); RenderRegionCreate( siViewportB ); RenderRegionSetRenderChannel( siViewportB, oChannel.Name ); |