Detailed Description
- See also:
- Class InterfaceServer, Class IIRenderMgr, Class
INode, Class ViewExp, Class Bitmap, Class DefaultLight, Class IRenderProgressCallback,
Class Animatable,
Class
ActionTable
- Description:
- This class is available in release 4.0 and later only.
This is the abstract class (Interface) for a a renderer supporting
interactive rendering.
With the likelihood of evolving rendering and shading techniques
which are going to be markedly different from what is being used
now, the 3ds Max SDK provides the infrastructure to support
interactive rendering. Since renderers are a plugin to 3ds Max and
since each renderer has a different set of resources and
capabilities the interactive rendering and shading API has been
made as general and independent as possible. The independence of
the renderer also means that the renderer must do a fair amount of
work that could be done by the system for all renderers.
Interactive rendering and shading is a separate interface which can
be optionally supported by 3rd party renderers and can be obtained
by using the
GetInterface() method on the renderer. I_RENDER_ID
is passed as the ID parameter to a renderer's implementation of
Animatable::GetInterface().
The renderer returns a pointer to a class IInteractiveRender
instance if it supports interactive rendering, otherwise the
default implementation will return NULL, indicating that
interactive rendering is not supported. This class, IInteractiveRender is
defined in /MAXSDK/INCLUDE/interactiveRendering.h.
As it is, interactive renderers will reference any and all objects,
as well as lights and materials in the scene that they can respond
to changes from. Via the normal 3ds Max notification system the
interactive shader will then receive messages whenever one of these
referenced objects changes and it must then decide how best to
update the scene for the user.
#include <interactiverender.h>
List of all
members.
Member Function Documentation
virtual void BeginSession |
( |
|
) |
[pure virtual] |
virtual void EndSession |
( |
|
) |
[pure virtual] |
virtual void SetOwnerWnd |
( |
HWND |
hOwnerWnd |
) |
[pure virtual] |
- Parameters:
- HWND hOwnerWnd
A handle to the owner window.
virtual HWND GetOwnerWnd |
( |
|
) |
const [pure virtual] |
virtual void SetIIRenderMgr |
( |
IIRenderMgr * |
pIIRenderMgr |
) |
[pure virtual] |
- Parameters:
- IIRenderMgr *pIIRenderMgr
A pointer to the controlling interactive rendering manager.
- Parameters:
- IIRenderMgr *pIIRenderMgr
A pointer to the render manager interface.
Used internally. This should always be set to NULL.
virtual void SetBitmap |
( |
Bitmap * |
pDestBitmap |
) |
[pure virtual] |
- Parameters:
- Bitmap
*pDestBitmap
A pointer to the destination bitmap to set.
virtual Bitmap* GetBitmap |
( |
Bitmap * |
pDestBitmap |
) |
const [pure virtual] |
- Parameters:
- Bitmap
*pDestBitmap
A pointer to the destination bitmap.
Used internally. This should always be set to NULL.
virtual void SetSceneINode |
( |
INode * |
pSceneINode |
) |
[pure virtual] |
- Parameters:
- INode
*pSceneINode
A pointer to the scene root node.
virtual INode* GetSceneINode |
( |
|
) |
const [pure virtual] |
virtual void SetUseViewINode |
( |
bool |
bUseViewINode |
) |
[pure virtual] |
- Parameters:
- bool bUseViewINode
If FALSE, ViewParams
obtained from ViewExp
should be used.
virtual bool GetUseViewINode |
( |
|
) |
const [pure virtual] |
virtual void SetViewINode |
( |
INode * |
pViewINode |
) |
[pure virtual] |
- Parameters:
- INode
*pViewINode
A pointer to the view node.
virtual INode* GetViewINode |
( |
|
) |
const [pure virtual] |
virtual void SetViewExp |
( |
ViewExp * |
pViewExp |
) |
[pure virtual] |
virtual ViewExp* GetViewExp |
( |
|
) |
const [pure virtual] |
virtual void SetRegion |
( |
const Box2 & |
region |
) |
[pure virtual] |
- Parameters:
- const Box2
®ion
A reference to the rectangular area.
virtual const Box2& GetRegion |
( |
|
) |
const [pure virtual] |
virtual void SetDefaultLights |
( |
DefaultLight * |
pDefLights, |
|
|
int |
numDefLights |
|
) |
|
[pure virtual] |
- Parameters:
- DefaultLight *pDefLights
A pointer to a default light source.
int numDefLights
The number of default lights.
virtual const DefaultLight* GetDefaultLights |
( |
int & |
numDefLights |
) |
const [pure virtual] |
- Parameters:
- int &numDefLights
The number of default lights returned.
virtual void Render |
( |
Bitmap * |
pDestBitmap |
) |
[pure virtual] |
- Parameters:
- Bitmap
*pDestBitmap
The destination bitmap to render to.
virtual ULONG GetNodeHandle |
( |
int |
x, |
|
|
int |
y |
|
) |
|
[pure virtual] |
- Parameters:
- int x, int y
The x and y coordinate of the bitmap pixel.
- Returns:
- The node handle or 0 if there is no node.
virtual bool GetScreenBBox |
( |
Box2
& |
sBBox, |
|
|
INode * |
pINode |
|
) |
|
[pure virtual] |
- Parameters:
- Box2&
sBBox
The screen bounding box.
INode
*pINode
The INode for which you
wish to retrieve the screen bounding box.
- Returns:
- TRUE if successful, otherwise FALSE.
virtual ActionTableId GetActionTableId |
( |
|
) |
[pure virtual] |
virtual void* GetInterface |
( |
|
) |
[inline, virtual] |
- Default Implementation:
- { return NULL; }
virtual BOOL IsRendering |
( |
|
) |
[pure virtual] |
IInteractiveRender IInteractiveRender
IInteractiveRender IInteractiveRender IInteractiveRender
IInteractiveRender IInteractiveRender IInteractiveRender
IInteractiveRender IInteractiveRender
IInteractiveRender IInteractiveRender
IInteractiveRender IInteractiveRender IInteractiveRender
IInteractiveRender IInteractiveRender IInteractiveRender
IInteractiveRender IInteractiveRender