MultitexReducer
-
class MultitexReducer
This object presents an interface for generating new texture images that represent the combined images from one or more individual textures, reproducing certain kinds of multitexture effects without depending on multitexture support in the hardware.
This also flattens out texture matrices and removes extra texture coordinates from the Geoms. It is thus not a complete substitute for true multitexturing, because it does not lend itself well to dynamic animation of the textures once they have been flattened. It is, however, useful for “baking in” a particular multitexture effect.
Inheritance diagram
-
MultitexReducer(void)
-
MultitexReducer(MultitexReducer const&) = default
-
void clear(void)
-
void flatten(GraphicsOutput *window)
-
void scan(PandaNode *node, RenderState const *state, TransformState const *transform)
Starts scanning the hierarchy beginning at the indicated node. Any
GeomNodes
discovered in the hierarchy with multitexture will be added to internal structures in theMultitexReducer
so that a future call toflatten()
will operate on all of these at once.This version of this method does not accumulate state from the parents of the indicated node; thus, only multitexture effects that have been applied at node and below will be considered.
Starts scanning the hierarchy beginning at the indicated node. Any
GeomNodes
discovered in the hierarchy with multitexture will be added to internal structures in theMultitexReducer
so that a future call toflatten()
will operate on all of these at once.The second parameter represents the
NodePath
from which to accumulate the state that is considered for the multitexture. Pass an emptyNodePath
to accumulate all the state from the root of the graph, or you may specify some other node here in order to not consider nodes above that as contributing to the state to be flattened. This is particularly useful if you have some texture stage which is applied globally to a scene (for instance, a caustics effect), which you don’t want to be considered for flattening by theMultitexReducer
.
-
void set_allow_tex_mat(bool allow_tex_mat)
-
void set_target(TextureStage *stage)
-
void set_use_geom(bool use_geom)
-
MultitexReducer(void)