RendParams Class Reference

RendParams Class Reference

#include <RendParams.h>

Class Description

This class has a set of data members, and these parameters are passed to the renderer when the renderer is opened.

All methods of this class are implemented by the system.

Data Members:
RendType rendType;

The type of rendering to perform.

BOOL isNetRender;

Determines if this is a render on a network slave.

BOOL fieldRender;

If TRUE the image will be field rendered; otherwise frame rendered.

int fieldOrder;

The field order used. One of the following values:

0 specifies even.

1 specifies odd.

TimeValue frameDur;

This is used, for example, by video post. In video post you can stretch time. A video post frame might be 1/2 frame long for example. This data member defines the duration of one frame in TimeValue units.

BOOL colorCheck;

Determines if the color is ranged checked.

int vidCorrectMethod;

Video correction method. One of the following values:

0 specifies FLAG (with black).

1 specifies SCALE_LUMA (scale luminance).

2 specifies SCALE_SAT (scale saturation).

int ntscPAL;

Determines if the color is range checked using NTSC or PAL standards. One of the following values:

0 specifies NTSC.

1 specifies PAL.

BOOL superBlack;

If TRUE Super Black is used.

int sbThresh;

Specifies the Super Black threshold.

BOOL rendHidden;

If TRUE hidden objects are rendered.

BOOL force2Side;

If TRUE two sided materials are used for all items in the scene.

BOOL inMtlEdit;

If TRUE the rendering is taking place in the material editor.

float mtlEditTile;

If rendering is taking place in the material editor, scale tiling.

BOOL mtlEditAA;

If TRUE antialiasing should be done in the material editor.

BOOL multiThread;

This is used internally.

BOOL useEnvironAlpha;

If TRUE one should use alpha from the environment map.

BOOL dontAntialiasBG;

If the low-order bit is set don't antialias against the background (this is often used for 'sprites' in video games). For 3ds Max 1.1 and 1.2 (in 2.0 and later see scanBandHeight below), this parameter may also be used to access the height of the abuffer in scan lines. This may be obtained using the following syntax:
abufBandHeight = rendpar.dontAntialiasBG>>8;
BOOL useDisplacement;

The apply displacement mapping setting.

bool useRadiosity;

Indicates if radiosity should be included in rendering.

bool computeRadiosity;

Indicates if radiosity should be computed before rendering.

Texmap *envMap;

The environment map. This may be NULL.

Atmospheric *atmos;

The atmosphere effects. This may be NULL. To the renderer it looks like there is only one atmosphere. You can use this atmosphere and it will go ahead and call all the individual atmospheric effects for you.

Effect *effect;

The post-processing effects. This may be NULL if there aren't any.

RadiosityEffect* pRadiosity;

Points to the radiosity effect.

ToneOperator* pToneOp;

Points to the tone operator if present. This may be NULL

MCHAR biFileName[MAX_PATH];

The bitmap output file name.

TimeValue firstFrame;

This is the first frame that will be rendered. This lets Open() know the first frame that will be rendered, so it will not have to evaluate at frame 0 when building.

int scanBandHeight;

This is the height of a scan band (for the default 3ds Max scanline renderer).

ULONG extraFlags;

RENDER_HIDE_FROZEN

Instruct the renderer to hide frozen objects

int width;

The image height.

int height;

The image width.

BOOL filterBG;

The filter background.
See also
Class Atmospheric, Class Effect, Class IRenderElementMgr, Class ToneOperator.
+ Inheritance diagram for RendParams:

Public Types

enum  Execute_Commands { kCommand_IsToneOpPreview = 0x4e80014c }
 List of commands that can be passed to Execute() More...
 

Public Member Functions

 RendParams ()
 Constructor. More...
 
virtual ~RendParams ()
 Destructor. More...
 
MAX_DEPRECATED int GetRenderMode ()
 
void SetRenderElementMgr (IRenderElementMgr *pIRenderElementMgr)
 Sets the render element manager used. More...
 
IRenderElementMgrGetRenderElementMgr () const
 Returns a pointer to the render element manager interface. More...
 
virtual INT_PTR Execute (int, ULONG_PTR=0, ULONG_PTR=0, ULONG_PTR=0)
 This is a general purpose function that allows the API to be extended in the future. More...
 
bool IsToneOperatorPreviewRender () const
 

Public Attributes

RendType rendType
 
BOOL isNetRender
 
BOOL fieldRender
 
int fieldOrder
 
TimeValue frameDur
 
BOOL colorCheck
 
int vidCorrectMethod
 
int ntscPAL
 
BOOL superBlack
 
int sbThresh
 
BOOL rendHidden
 
BOOL force2Side
 
BOOL inMtlEdit
 
float mtlEditTile
 
BOOL mtlEditAA
 
BOOL multiThread
 
BOOL useEnvironAlpha
 
BOOL dontAntialiasBG
 
BOOL useDisplacement
 
bool useRadiosity
 
bool computeRadiosity
 
TexmapenvMap
 
Atmosphericatmos
 
Effecteffect
 
RadiosityEffectpRadiosity
 
ToneOperatorpToneOp
 
TimeValue firstFrame
 
int scanBandHeight
 
ULONG extraFlags
 
int width
 
int height
 
BOOL filterBG
 
BOOL alphaOutOnAdditive
 
bool simplifyAreaLights
 

Additional Inherited Members

- Static Public Member Functions inherited from MaxHeapOperators
static UtilExport voidoperator new (size_t size)
 Standard new operator used to allocate objects If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, const std::nothrow_t &e)
 Standard new operator used to allocate objects if there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new (size_t size, const char *filename, int line)
 New operator used to allocate objects that takes the filename and line number where the new was called If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, int block_type, const char *filename, int line)
 New operator used to allocate objects that takes the type of memory, filename and line number where the new was called If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, const std::nothrow_t &e, const char *filename, int line)
 New operator used to allocate objects that takes the filename and line number where the new was called If there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new (size_t size, unsigned long flags)
 New operator used to allocate objects that takes extra flags to specify special operations If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, const std::nothrow_t &e, unsigned long flags)
 New operator used to allocate objects that takes extra flags to specify special operations If there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new[] (size_t size)
 New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new[] (size_t size, const std::nothrow_t &e)
 New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new[] (size_t size, const char *filename, int line)
 New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new[] (size_t size, int block_type, const char *filename, int line)
 New operator used to allocate arrays of objects. More...
 
static UtilExport voidoperator new[] (size_t size, const std::nothrow_t &e, const char *filename, int line)
 New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new[] (size_t size, unsigned long flags)
 New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new[] (size_t size, const std::nothrow_t &e, unsigned long flags)
 New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned. More...
 
static UtilExport void operator delete (void *ptr)
 Standard delete operator used to deallocate an object If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete (void *ptr, const std::nothrow_t &e)
 Standard delete operator used to deallocate an object If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete (void *ptr, const char *filename, int line)
 Delete operator used to deallocate an object that takes the filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete (void *ptr, int block_type, const char *filename, int line)
 Delete operator used to deallocate an object that takes the type of memory, filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete (void *ptr, const std::nothrow_t &e, const char *filename, int line)
 Delete operator used to deallocate an object that takes the filename and line number where the delete was called If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete (void *ptr, unsigned long flags)
 Delete operator used to deallocate an object that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete (void *ptr, const std::nothrow_t &e, unsigned long flags)
 Delete operator used to deallocate an object that takes extra flags to specify special operations If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete[] (void *ptr)
 Standard delete operator used to deallocate an array of objects If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete[] (void *ptr, const std::nothrow_t &e)
 Standard delete operator used to deallocate an array of objects If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete[] (void *ptr, const char *filename, int line)
 Delete operator used to deallocate an array of objects that takes the filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete[] (void *ptr, int block_type, const char *filename, int line)
 Delete operator used to deallocate an array of objects that takes the type of memory, filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete[] (void *ptr, const std::nothrow_t &e, const char *filename, int line)
 Delete operator used to deallocate an array of objects that takes the filename and line number where the delete was called If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete[] (void *ptr, unsigned long flags)
 Delete operator used to deallocate an array of objects that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete[] (void *ptr, const std::nothrow_t &e, unsigned long flags)
 Delete operator used to deallocate an array of objects that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, void *placement_ptr)
 Placement new operator. More...
 
static UtilExport void operator delete (void *ptr, void *placement_ptr)
 Placement delete operator. More...
 
static UtilExport voidaligned_malloc (size_t size, size_t alignment)
 Allocates memory on a specified alignment boundary. More...
 
static UtilExport voidaligned_realloc (void *ptr, size_t size, size_t alignment)
 Reallocates memory on a specified alignment boundary. More...
 
static UtilExport void aligned_free (void *ptr)
 Frees a block of memory that was allocated with aligned_malloc/aligned_realloc. More...
 

Member Enumeration Documentation

List of commands that can be passed to Execute()

Enumerator
kCommand_IsToneOpPreview 

Queries whether this is a tone operator preview rendering.

Execute() will return non-zero if it is indeed a preview render. None of the "arg" parameters are used.

142  {
145  kCommand_IsToneOpPreview = 0x4e80014c
146  };
Queries whether this is a tone operator preview rendering.
Definition: RendParams.h:145

Constructor & Destructor Documentation

RendParams ( )
inline

Constructor.

The initialization can be seen in the header file RENDER.H.

187  {
189  isNetRender = FALSE;
190  fieldRender = FALSE;
191  fieldOrder = 0;
192  frameDur = 0;
193  colorCheck = 0;
194  vidCorrectMethod = 0;
195  ntscPAL = 0;
196  superBlack = 0;
197  sbThresh = 0;
198  rendHidden = 0;
199  force2Side = 0;
200  inMtlEdit = 0;
201  mtlEditTile = 0;
202  mtlEditAA = 0;
203  multiThread = 0;
204  useEnvironAlpha = 0;
205  dontAntialiasBG = 0;
206  useDisplacement = 0;
207  useRadiosity = true;
208  computeRadiosity = true;
209  envMap = NULL;
210  atmos = NULL;
211  mpIRenderElementMgr = NULL;
212  effect = NULL;
213  pRadiosity = NULL;
214  pToneOp = NULL;
215  firstFrame = 0;
216  scanBandHeight = 0;
217  extraFlags = 0;
218  width=height = 0;
219  filterBG = 0;
220  simplifyAreaLights = false;
221  }
Atmospheric * atmos
Definition: RendParams.h:172
BOOL superBlack
Definition: RendParams.h:158
float mtlEditTile
Definition: RendParams.h:163
int width
Definition: RendParams.h:179
BOOL filterBG
Definition: RendParams.h:180
#define NULL
Definition: autoptr.h:18
ToneOperator * pToneOp
Definition: RendParams.h:175
bool simplifyAreaLights
Definition: RendParams.h:182
BOOL inMtlEdit
Definition: RendParams.h:162
Texmap * envMap
Definition: RendParams.h:171
BOOL useEnvironAlpha
Definition: RendParams.h:166
int vidCorrectMethod
Definition: RendParams.h:156
BOOL fieldRender
Definition: RendParams.h:151
BOOL mtlEditAA
Definition: RendParams.h:164
RendType rendType
Definition: RendParams.h:148
the entire view
Definition: RendType.h:34
TimeValue frameDur
Definition: RendParams.h:153
ULONG extraFlags
Definition: RendParams.h:178
BOOL dontAntialiasBG
Definition: RendParams.h:167
Effect * effect
Definition: RendParams.h:173
BOOL isNetRender
Definition: RendParams.h:150
int fieldOrder
Definition: RendParams.h:152
BOOL useDisplacement
Definition: RendParams.h:168
bool computeRadiosity
Definition: RendParams.h:170
bool useRadiosity
Definition: RendParams.h:169
TimeValue firstFrame
Definition: RendParams.h:176
int scanBandHeight
Definition: RendParams.h:177
BOOL multiThread
Definition: RendParams.h:165
int ntscPAL
Definition: RendParams.h:157
int sbThresh
Definition: RendParams.h:159
BOOL rendHidden
Definition: RendParams.h:160
BOOL colorCheck
Definition: RendParams.h:155
RadiosityEffect * pRadiosity
Definition: RendParams.h:174
int height
Definition: RendParams.h:179
BOOL force2Side
Definition: RendParams.h:161
virtual ~RendParams ( )
inlinevirtual

Destructor.

224 {}

Member Function Documentation

MAX_DEPRECATED int GetRenderMode ( )
Deprecated:
Removed in Max 2017; this method never worked correctly.
void SetRenderElementMgr ( IRenderElementMgr pIRenderElementMgr)
inline

Sets the render element manager used.

Parameters:
IRenderElementMgr *pIRenderElementMgr

Points to the render element manager to set.
232 { mpIRenderElementMgr = pIRenderElementMgr; }
IRenderElementMgr* GetRenderElementMgr ( ) const
inline

Returns a pointer to the render element manager interface.

237  {
238  return( const_cast<RendParams&>(*this).Execute(RP_ANTIALIAS_OFF) ? NULL : mpIRenderElementMgr);
239  }
#define RP_ANTIALIAS_OFF
An index to an external command.
Definition: RendParams.h:234
#define NULL
Definition: autoptr.h:18
virtual INT_PTR Execute ( int  ,
ULONG_PTR  = 0,
ULONG_PTR  = 0,
ULONG_PTR  = 0 
)
inlinevirtual

This is a general purpose function that allows the API to be extended in the future.

The 3ds Max development team can assign new cmd numbers and continue to add functionality to this class without having to 'break' the API.

Parameters:
int cmd

The index of the command to execute.

ULONG_PTR arg1=0

Optional argument 1. See the documentation where the cmd option is discussed for more details on these parameters.

ULONG_PTR arg2=0

Optional argument 2.

ULONG_PTR arg3=0

Optional argument 3.
Returns
An integer return value. See the documentation where the cmd option is discussed for more details on the meaning of this value.
256 { return 0; }
bool IsToneOperatorPreviewRender ( ) const
inline
262  {
263 
264  // Execute the special command on the render params
265  INT_PTR result = const_cast<RendParams&>(*this).Execute(kCommand_IsToneOpPreview);
266  return (result != 0);
267 }
This class has a set of data members, and these parameters are passed to the renderer when the render...
Definition: RendParams.h:134
virtual INT_PTR Execute(int, ULONG_PTR=0, ULONG_PTR=0, ULONG_PTR=0)
This is a general purpose function that allows the API to be extended in the future.
Definition: RendParams.h:256
Queries whether this is a tone operator preview rendering.
Definition: RendParams.h:145

Member Data Documentation

RendType rendType
BOOL isNetRender
BOOL fieldRender
int fieldOrder
TimeValue frameDur
BOOL colorCheck
int vidCorrectMethod
int ntscPAL
BOOL superBlack
int sbThresh
BOOL rendHidden
BOOL force2Side
BOOL inMtlEdit
float mtlEditTile
BOOL mtlEditAA
BOOL multiThread
BOOL useEnvironAlpha
BOOL dontAntialiasBG
BOOL useDisplacement
bool useRadiosity
bool computeRadiosity
Texmap* envMap
Atmospheric* atmos
Effect* effect
RadiosityEffect* pRadiosity
ToneOperator* pToneOp
TimeValue firstFrame
int scanBandHeight
ULONG extraFlags
int width
int height
BOOL filterBG
BOOL alphaOutOnAdditive
bool simplifyAreaLights