|
Cortex 6.0.0
|
#include <Renderer.h>
Inheritance diagram for IECoreGL::Renderer:Public Member Functions | |
| IE_CORE_DECLARERUNTIMETYPEDEXTENSION (IECoreGL::Renderer, RendererTypeId, IECore::Renderer) | |
| virtual void | setOption (const std::string &name, IECore::ConstDataPtr value) |
| virtual IECore::ConstDataPtr | getOption (const std::string &name) const |
| Get the value of a previously set option. | |
| virtual void | camera (const std::string &name, const IECore::CompoundDataMap ¶meters) |
| virtual void | display (const std::string &name, const std::string &type, const std::string &data, const IECore::CompoundDataMap ¶meters) |
| virtual void | worldBegin () |
| virtual void | worldEnd () |
| Finishes the world block. | |
| ScenePtr | scene () |
| virtual void | transformBegin () |
| virtual void | transformEnd () |
| Returns to the transform state saved by the last transformBegin() call. | |
| virtual void | setTransform (const Imath::M44f &m) |
| Sets the current transform. | |
| virtual void | setTransform (const std::string &coordinateSystem) |
| virtual Imath::M44f | getTransform () const |
| Returns the current transform. | |
| virtual Imath::M44f | getTransform (const std::string &coordinateSystem) const |
| Returns the transform associated with the named coordinate system. | |
| virtual void | concatTransform (const Imath::M44f &m) |
| Concatenates the specified transform onto the current transform. | |
| virtual void | coordinateSystem (const std::string &name) |
| Creates a named coordinate system from the current transform. | |
| virtual void | attributeBegin () |
| virtual void | attributeEnd () |
| Return to the attribute state saved by the last call to attributeBegin(). | |
| virtual void | setAttribute (const std::string &name, IECore::ConstDataPtr value) |
| virtual IECore::ConstDataPtr | getAttribute (const std::string &name) const |
| Return the value of the named attribute. | |
| virtual void | shader (const std::string &type, const std::string &name, const IECore::CompoundDataMap ¶meters) |
| virtual void | light (const std::string &name, const std::string &handle, const IECore::CompoundDataMap ¶meters) |
| Specifies a light to apply to subsequent primitives. | |
| virtual void | illuminate (const std::string &lightHandle, bool on) |
| Turns the specified light on or off for the current attribute state. | |
| virtual void | motionBegin (const std::set< float > ×) |
| virtual void | motionEnd () |
| virtual void | points (size_t numPoints, const IECore::PrimitiveVariableMap &primVars) |
| virtual void | disk (float radius, float z, float thetaMax, const IECore::PrimitiveVariableMap &primVars) |
| virtual void | curves (const IECore::CubicBasisf &basis, bool periodic, IECore::ConstIntVectorDataPtr numVertices, const IECore::PrimitiveVariableMap &primVars) |
| virtual void | text (const std::string &font, const std::string &text, float kerning=1.0f, const IECore::PrimitiveVariableMap &primVars=IECore::PrimitiveVariableMap()) |
| Renders some text. | |
| virtual void | sphere (float radius, float zMin, float zMax, float thetaMax, const IECore::PrimitiveVariableMap &primVars) |
| virtual void | image (const Imath::Box2i &dataWindow, const Imath::Box2i &displayWindow, const IECore::PrimitiveVariableMap &primVars) |
| virtual void | mesh (IECore::ConstIntVectorDataPtr vertsPerFace, IECore::ConstIntVectorDataPtr vertIds, const std::string &interpolation, const IECore::PrimitiveVariableMap &primVars) |
| virtual void | nurbs (int uOrder, IECore::ConstFloatVectorDataPtr uKnot, float uMin, float uMax, int vOrder, IECore::ConstFloatVectorDataPtr vKnot, float vMin, float vMax, const IECore::PrimitiveVariableMap &primVars) |
| virtual void | patchMesh (const IECore::CubicBasisf &uBasis, const IECore::CubicBasisf &vBasis, int nu, bool uPeriodic, int nv, bool vPeriodic, const IECore::PrimitiveVariableMap &primVars) |
| Render a patch mesh. | |
| virtual void | geometry (const std::string &type, const IECore::CompoundDataMap &topology, const IECore::PrimitiveVariableMap &primVars) |
| virtual void | procedural (IECore::Renderer::ProceduralPtr proc) |
| virtual void | instanceBegin (const std::string &name, const IECore::CompoundDataMap ¶meters) |
| Starts the description of a portion of a scene to be instanced. | |
| virtual void | instanceEnd () |
| Ends the description of an instance. | |
| virtual void | instance (const std::string &name) |
| virtual IECore::DataPtr | command (const std::string &name, const IECore::CompoundDataMap ¶meters) |
| ShaderManager * | shaderManager () |
| TextureLoader * | textureLoader () |
The IECoreGL::Renderer class implements the IECore::Renderer interface to allow rendering to OpenGL. Immediate mode rendering allows the generation of images and deferred mode rendering allows scenes to be captured for later interactive display.
| virtual void IECoreGL::Renderer::attributeBegin | ( | ) | [virtual] |
Push a new attribute state onto the attribute stack. This is identical to the current state, but subsequent calls to setAttribute() will be discarded by the matching attributeEnd().
Implements IECore::Renderer.
| virtual void IECoreGL::Renderer::camera | ( | const std::string & | name, |
| const IECore::CompoundDataMap & | parameters | ||
| ) | [virtual] |
Implements IECore::Renderer.
| virtual IECore::DataPtr IECoreGL::Renderer::command | ( | const std::string & | name, |
| const IECore::CompoundDataMap & | parameters | ||
| ) | [virtual] |
"removeObject"
Expects a StringData parameter named "name", which specifies the name of an object to remove from the scene. This only has any effect in deferred mode. "editBegin"
This parameter-less command marks the start of an edit to an existing scene, and should be called before any other changes are made when re-using an existing renderer, that has already reached worldEnd. "editEnd"
This parameter-less command marks the end of an edit to an existing scene, and should be called after other changes have been made when re-using an existing renderer. Note that if a scene has been drawn with renderer->scene()->render() prior to this edit, then it is essential that editEnd is called by the same thread on which drawing was performed, so that GL resources can be released in the appropriate context. "editQuery"
This parameter-less command returns BoolData( true ) if an edit is in progress, and BoolData( false ) otherwise.
Implements IECore::Renderer.
| virtual void IECoreGL::Renderer::curves | ( | const IECore::CubicBasisf & | basis, |
| bool | periodic, | ||
| IECore::ConstIntVectorDataPtr | numVertices, | ||
| const IECore::PrimitiveVariableMap & | primVars | ||
| ) | [virtual] |
Supports the following primitive variables :
Vertex V3fVectorData "P" Constant FloatData "width"
| virtual void IECoreGL::Renderer::disk | ( | float | radius, |
| float | z, | ||
| float | thetaMax, | ||
| const IECore::PrimitiveVariableMap & | primVars | ||
| ) | [virtual] |
Renders a disk of the specified radius on the xy plane, at the specified z value. If the "rightHandedOrientation" attribute is true then the normal faces down positive z, otherwise it faces down negative z.
Implements IECore::Renderer.
| virtual void IECoreGL::Renderer::display | ( | const std::string & | name, |
| const std::string & | type, | ||
| const std::string & | data, | ||
| const IECore::CompoundDataMap & | parameters | ||
| ) | [virtual] |
Specifies an image to be output from the renderer. In the case of file outputs name specified the filename. type specifies the type of output to create and data specifies the data to be output, for instance "rgba". parameters provides an implementation specific set of parameters to control other aspects of the image created. It is only valid to call this before worldBegin.
Implements IECore::Renderer.
| virtual void IECoreGL::Renderer::geometry | ( | const std::string & | type, |
| const IECore::CompoundDataMap & | topology, | ||
| const IECore::PrimitiveVariableMap & | primVars | ||
| ) | [virtual] |
Supports the following geometry types with the specified topology data :
"sphere" "radius" FloatData 1 "zMin" FloatData -1 "zMax" FloatData 1 "thetaMax" FloatData 360
Implements IECore::Renderer.
| virtual void IECoreGL::Renderer::image | ( | const Imath::Box2i & | dataWindow, |
| const Imath::Box2i & | displayWindow, | ||
| const IECore::PrimitiveVariableMap & | primVars | ||
| ) | [virtual] |
Supports the following image formats specified as primitive variables :
"R", "G", "B", "A" : UCharVectorData "R", "G", "B", "A" : CharVectorData "R", "G", "B", "A" : UIntVectorData "R", "G", "B", "A" : IntVectorData "R", "G", "B", "A" : HalfVectorData "R", "G", "B", "A" : FloatVectorData "R", "G", "B", "A" : DoubleVectorData
As a convenience the names "r", "g", "b", "a" or "red", "green", "blue", "alpha" can appear in place of "R", "G", "B", "A".
Currently assumes dataWindow==displayWindow.
Implements IECore::Renderer.
| virtual void IECoreGL::Renderer::instance | ( | const std::string & | name | ) | [virtual] |
Instantiates a previously described instance at the current transform position, and using the current attribute state.
Implements IECore::Renderer.
| virtual void IECoreGL::Renderer::mesh | ( | IECore::ConstIntVectorDataPtr | vertsPerFace, |
| IECore::ConstIntVectorDataPtr | vertIds, | ||
| const std::string & | interpolation, | ||
| const IECore::PrimitiveVariableMap & | primVars | ||
| ) | [virtual] |
All meshes are treated as having interpolation=="linear".
| virtual void IECoreGL::Renderer::motionBegin | ( | const std::set< float > & | times | ) | [virtual] |
Starts a new motion block. You should then make times.size() calls to one of the primitive or transform functions to specify the motion for the block.
Implements IECore::Renderer.
| virtual void IECoreGL::Renderer::motionEnd | ( | ) | [virtual] |
Ends a motion block. Should be called when times.size() calls to an appropriate primitive or transform function have been made following a motionBegin() call.
Implements IECore::Renderer.
| virtual void IECoreGL::Renderer::points | ( | size_t | numPoints, |
| const IECore::PrimitiveVariableMap & | primVars | ||
| ) | [virtual] |
Supports the following primitive variables :
Vertex V3fVectorData "P"
Uniform StringData "type" Used to determine how the points are rendered. Supported types are :
"gl:point" Rendered as GL_POINTS
"particle" (the default) "disk" "blobby" Rendered as camera facing disks. The "width" and "constantwidth" variables are supported. Blobby is provided for vague compatibility with the IECoreRI::RIRenderer and 3delight.
"patch" Rendered as camera facing patches. Supports the "width" and "constantwidth" variables and in addition the "patchaspectratio" and "patchrotation" variables. See the 3delight documentation for a description of how these can be used.
"sphere" Rendered as spheres. Supports "width" and "constantwidth" variables to define the sizes of the spheres.
Constant FloatData "constantwidth"
Vertex|Varying FloatVectorData "width"
Constant|Vertex|Varying FloatData|FloatVectorData "patchaspectratio" Constant|Vertex|Varying FloatData|FloatVectorData "patchrotation" These two are used only by the "patch" type.
Implements IECore::Renderer.
| ScenePtr IECoreGL::Renderer::scene | ( | ) |
When in deferred mode (see setOption above), this method will return the Scene that was generated.
| virtual void IECoreGL::Renderer::setAttribute | ( | const std::string & | name, |
| IECore::ConstDataPtr | value | ||
| ) | [virtual] |
| virtual void IECoreGL::Renderer::setOption | ( | const std::string & | name, |
| IECore::ConstDataPtr | value | ||
| ) | [virtual] |
"gl:mode" StringData Valid values are "immediate" or "deferred". In immediate mode rendering is performed in a streaming fashion, drawing each primitive as it is specified. In deferred mode rendering is performed by building a Scene object which can be retrieved for further use by using the scene() method after the render is complete. Future versions may support advanced features such as motion blur and depth of field when in deferred mode but not in immediate mode.
"searchPath:shader" StringData "gl:searchPath:shader" StringData Specifies a set of colon separated paths on which to search for GLSL shaders. The default value is obtained from the environment variable IECOREGL_SHADER_PATHS.
"searchPath:shaderInclude" StringData "gl:searchPath:shaderInclude" StringData Specifies a set of colon separated paths on which to search for include files for GLSL shaders. The default value is obtained from the environment variable IECOREGL_SHADER_INCLUDE_PATHS.
"searchPath:texture" StringData "gl:searchPath:texture" StringData Specifies a set of colon separated paths on which to search for textures. The default value is obtained from the environment variable IECOREGL_TEXTURE_PATHS. Any image file format for which an IECore::Reader is available is suitable for use as a texture.
"shutter" V2fData
"gl:drawCoordinateSystems" BoolData false When this is true, coordinate systems created with the coordinateSystem() method will be visualised.
| virtual void IECoreGL::Renderer::setTransform | ( | const std::string & | coordinateSystem | ) | [virtual] |
Sets the current transform to a coordinate system previously created with a call to coordinateSystem().
Implements IECore::Renderer.
| virtual void IECoreGL::Renderer::shader | ( | const std::string & | type, |
| const std::string & | name, | ||
| const IECore::CompoundDataMap & | parameters | ||
| ) | [virtual] |
Supports only shader type "surface" or "gl:surface", looking for "name.vert" and "name.frag" GLSL source files in the paths defined by the "searchPath:shader" option. Alternatively if the parameter list contains "gl:vertexSource" and/or a "gl:fragmentSource" StringData then a new shader is created using the source provided. For shaders with sampler2D parameters, texture files for these parameters may be specified by passing the filename to an image as StringData.
Implements IECore::Renderer.
| ShaderManager* IECoreGL::Renderer::shaderManager | ( | ) |
Returns the internal ShaderManager object used to manage the shaders from this renderer. If called before worldBegin it returns 0.
| virtual void IECoreGL::Renderer::sphere | ( | float | radius, |
| float | zMin, | ||
| float | zMax, | ||
| float | thetaMax, | ||
| const IECore::PrimitiveVariableMap & | primVars | ||
| ) | [virtual] |
Renders a sphere of the specified radius. zMin and zMax are measured as a proportion of the radius - so no matter what the radius, the default values will always give a full sphere. If the "rightHandedOrientation" attribute is true then the normals point outwards, otherwise they point inwards.
Implements IECore::Renderer.
| TextureLoader* IECoreGL::Renderer::textureLoader | ( | ) |
Returns the internal TextureLoader object. If called before worldBegin it returns 0.
| virtual void IECoreGL::Renderer::transformBegin | ( | ) | [virtual] |
Push a new transform state identical to the current one. Modifications can then be made locally before calling transformEnd() to return to the previous transform state.
Implements IECore::Renderer.
| virtual void IECoreGL::Renderer::worldBegin | ( | ) | [virtual] |
Starts the world block and resets the current transform to the identity.
Implements IECore::Renderer.
1.7.3