engine.visualizer Functions
Controls visualizer-related settings. The visualizer is used to render mesh wireframe, object bounding boxes, and all sorts of visual helpers (such as physical collision shapes, joints, etc.).
- 3D visualizer (engine.visualizer.render*3D()) is rendered based on scene depth.
- 2D visualizer (engine.visualizer.render*2D()) is rendered atop of everything else.
To render 3D objects atop of the scene, you can transform 3D space coordinates into screen space and render lines and triangles using 2D visualizer functions.
Usage Example
To render a vector, do the following:
// my_world.usc
Player player; // In-game camera.
int init() {
player = new PlayerSpectator(); // Create a new player
engine.game.setPlayer(player); // used in the game.
...
return 1;
}
int update() {
// The player position is updated
...
// Call a rendering function
engine.visualizer.renderVector(vec3_zero, vec3(1.0f,0.0f,0.0f), vec4_one, 0.25f, 0);
return 1;
}
Visualizer Class
Members
void engine.visualizer.setEnabled(int enabled)
Enables or disables visualization of helper objects like handlers and bound boxes.Arguments
- int enabled - 1 to enable the visualizer, 0 to disable it.
int engine.visualizer.isEnabled()
Returns a value indicating if visualization of helper objects like handlers and bound boxes is enabled.Return value
1 if the visualizer is enabled; otherwise, 0.void engine.visualizer.setSize(int size)
Updates the current handler size.Arguments
- int size - New handler size in pixels.
int engine.visualizer.getSize()
Returns the handler size. All handlers have the same size.Return value
Size of a handler in pixels.void engine.visualizer.setTextureName(string name)
Updates the current name of the texture.Arguments
- string name - New name of the texture.
string engine.visualizer.getTextureName()
Returns the string with the name of the texture.Return value
Name of the texture.void engine.visualizer.clear()
Clears all internal primitives created by calls to renderSmth functions. These primitives are accumulated in the internal buffer and then rendered together.This method can be used to render several viewports with visualizer.
void engine.visualizer.renderPoint2D(vec3 v, float size, vec4 color)
Renders a 2D point of a given size and color. 2D points are rendered in the screen plane; coordinates of the upper left corner are (0; 0), of the lower right corner—(1; 1).Arguments
- vec3 v - Point coordinates.
- float size - Point size.
- vec4 color - Color, in which the point will be rendered.
void engine.visualizer.renderPoint3D(Vec3 v, float size, vec4 color, int screen_space = 0)
Renders a 3D point of a given size and color. 3D points are rendered in the world space.Arguments
- Vec3 v - Point coordinates.
- float size - Point size in range [0;1]. The point size is set in proportion to the screen resolution.
- vec4 color - Point color.
- int screen_space - A flag indicating the type of dimensions to be used:
- 0 - use the world space dimensions
- 1 - use the screen space dimensions
void engine.visualizer.renderLine2D(vec3 v0, vec3 v1, vec4 color)
Renders a 2D line of a given color. 2D lines are rendered in the screen plane; coordinates of the upper left corner are (0; 0), of the lower right corner — (1; 1).Arguments
- vec3 v0 - Starting point of the line.
- vec3 v1 - First intermediate point of the line.
- vec4 color - Second intermediate point of the line.
void engine.visualizer.renderLine3D(Vec3 v0, Vec3 v1, vec4 color)
Renders a 3D line in a given color. 3D lines are rendered in the world space.Arguments
- Vec3 v0 - Starting point of the line.
- Vec3 v1 - First intermediate point of the line.
- vec4 color - Second intermediate point of the line.
void engine.visualizer.renderLine2D(vec3 v0, vec3 v1, vec3 v2, vec4 color)
Renders a 2D line of a given color. 2D lines are rendered in the screen plane; coordinates of the upper left corner are (0; 0), of the lower right corner — (1; 1).Arguments
- vec3 v0 - Starting point of the line.
- vec3 v1 - First intermediate point of the line.
- vec3 v2 - Second intermediate point of the line.
- vec4 color - Ending point of the line.
void engine.visualizer.renderLine3D(Vec3 v0, Vec3 v1, Vec3 v2, vec4 color)
Renders a 3D line in a given color. 3D lines are rendered in the world space.Arguments
- Vec3 v0 - Starting point of the line.
- Vec3 v1 - First intermediate point of the line.
- Vec3 v2 - Second intermediate point of the line.
- vec4 color - Ending point of the line.
void engine.visualizer.renderLine2D(vec3 v0, vec3 v1, vec3 v2, vec3 v3, vec4 color)
Renders a 2D line of a given color. 2D lines are rendered in the screen plane; coordinates of the upper left corner are (0; 0), of the lower right corner — (1; 1).Arguments
- vec3 v0 - Starting point of the line.
- vec3 v1 - First intermediate point of the line.
- vec3 v2 - Second intermediate point of the line.
- vec3 v3 - Ending point of the line.
- vec4 color - Color, in which the line will be rendered.
void engine.visualizer.renderLine3D(Vec3 v0, Vec3 v1, Vec3 v2, Vec3 v3, vec4 color)
Renders a 3D line in a given color. 3D lines are rendered in the world space.Arguments
- Vec3 v0 - Starting point of the line.
- Vec3 v1 - First intermediate point of the line.
- Vec3 v2 - Second intermediate point of the line.
- Vec3 v3 - Ending point of the line.
- vec4 color - Color, in which the line will be rendered.
void engine.visualizer.renderTriangle2D(vec3 v0, vec3 v1, vec3 v2, vec4 color)
Renders a 2D triangle in a given color. 2D triangles are rendered in the screen plane; coordinates of the upper left corner are (0; 0), of the lower right corner—(1; 1).Arguments
- vec3 v0 - Coordinates of the first vertex.
- vec3 v1 - Coordinates of the second vertex.
- vec3 v2 - Coordinates of the third vertex.
- vec4 color - Color, in which the triangle will be rendered.
void engine.visualizer.renderTriangle3D(Vec3 v0, Vec3 v1, Vec3 v2, vec4 color)
Renders a 3D triangle of a given color. 3D triangles are rendered in the world space.Arguments
- Vec3 v0 - Coordinates of the first vertex.
- Vec3 v1 - Coordinates of the second vertex.
- Vec3 v2 - Coordinates of the third vertex.
- vec4 color - Color, in which the triangle will be rendered.
void engine.visualizer.renderQuad2D(vec3 v0, vec3 v1, vec3 v2, vec3 v3, vec4 color)
Renders a 2D quad in a given color. 2D quads are rendered in the screen plane; coordinates of the upper left corner are (0; 0), of the lower right corner—(1; 1).Arguments
- vec3 v0 - Coordinates of the first vertex.
- vec3 v1 - Coordinates of the second vertex.
- vec3 v2 - Coordinates of the third vertex.
- vec3 v3 - Coordinates of the fourth vertex.
- vec4 color - Color, in which the quad will be rendered.
void engine.visualizer.renderQuad3D(Vec3 v0, Vec3 v1, Vec3 v2, Vec3 v3, vec4 color)
Renders a 3D quad in a given color. 3D quads are rendered in the world space.Arguments
- Vec3 v0 - Coordinates of the first vertex.
- Vec3 v1 - Coordinates of the second vertex.
- Vec3 v2 - Coordinates of the third vertex.
- Vec3 v3 - Coordinates of the fourth vertex.
- vec4 color - Color, in which the quad will be rendered.
void engine.visualizer.renderBillboard3D(Vec3 v, float size, vec4 texcoord, int screen_space = 0)
Renders a 3D billboard of the specified size.Arguments
- Vec3 v - Coordinates of the billboard.
- float size - The billboard size.
- vec4 texcoord - The billboard texture coordinates.
- int screen_space - A flag indicating the type of dimensions to be used:
- 0 - use the world space dimensions
- 1 - use the screen space dimensions
engine.visualizer.renderVector(Vec3 position_start, Vec3 position_end, vec4 color, float arrow_size = 0.25f, int screen_space = 0)
Renders a vector of a given color.Arguments
- Vec3 position_start - Coordinates of the vector origin.
- Vec3 position_end - Coordinates of the vector target.
- vec4 color - Vector color.
- float arrow_size - Arrow size.
- int screen_space - A flag indicating the type of dimensions to be used:
- 0 - use the world space dimensions
- 1 - use the screen space dimensions
void engine.visualizer.renderDirection(Vec3 position, vec3 direction, vec4 color, float arrow_size = 0.25f, int screen_space = 1)
Renders a direction vector of a given color.Arguments
- Vec3 position - Coordinates of the vector origin.
- vec3 direction - Target vector direction.
- vec4 color - Vector color.
- float arrow_size - Arrow size.
- int screen_space - A flag indicating the type of dimensions to be used:
- 0 - use the world space dimensions
- 1 - use the screen space dimensions
void engine.visualizer.renderBox(vec3 size, Mat4 transform, vec4 color)
Renders a box in a given color.Arguments
- vec3 size - Dimensions of the box.
- Mat4 transform - Transformation matrix used to position the box.
- vec4 color - Color, in which the box will be rendered.
void engine.visualizer.renderFrustum(mat4 projection, Mat4 transform, vec4 color)
Renders a frustum in a given color.Arguments
- mat4 projection - Projection matrix used to transform the coordinates.
- Mat4 transform - Transformation matrix used to position the frustum.
- vec4 color - Color, in which the frustum will be rendered.
void engine.visualizer.renderCircle(float radius, Mat4 transform, vec4 color)
Renders a circle in a given color.Arguments
- float radius - Radius of the circle.
- Mat4 transform - Transformation matrix used to position the circle.
- vec4 color - Color, in which the circle will be rendered.
void engine.visualizer.renderSector(float radius, float angle, Mat4 transform, vec4 color)
Renders a sector of the circle in a given color.Arguments
- float radius - Radius of the circle from which a sector will be cut.
- float angle - Angle of the sector.
- Mat4 transform - Transformation matrix used to position the sector.
- vec4 color - Color, in which the sector will be rendered.
void engine.visualizer.renderCone(float radius, float angle, Mat4 transform, vec4 color)
Renders a cone in a given color.Arguments
- float radius - Radius of the cone.
- float angle - Angle of the cone.
- Mat4 transform - Transformation matrix used to position the cone.
- vec4 color - Color, in which the cone will be rendered.
void engine.visualizer.renderSphere(float radius, Mat4 transform, vec4 color)
Renders a sphere in a given color.Arguments
- float radius - Radius of the sphere.
- Mat4 transform - Transformation matrix used to position the sphere.
- vec4 color - Color, in which the sphere will be rendered.
void engine.visualizer.renderCapsule(float radius, float height, Mat4 transform, vec4 color)
Renders a capsule (capped cylinder) in a given color.Arguments
- float radius - Radius of the capsule.
- float height - Height of the capsule.
- Mat4 transform - Transformation matrix used to position the capsule.
- vec4 color - Color, in which the capsule will be rendered.
void engine.visualizer.renderCylinder(float radius, float height, Mat4 transform, vec4 color)
Renders a cylinder in a given color.Arguments
- float radius - Radius of the cylinder.
- float height - Height of the cylinder.
- Mat4 transform - Transformation matrix used to position the cylinder.
- vec4 color - Color, in which the cylinder will be rendered.
void engine.visualizer.renderEllipse(vec3 radius, Mat4 transform, vec4 color)
Renders an ellipse in a given color.Arguments
- vec3 radius - Ellipse radius values along three axes.
- Mat4 transform - Transformation matrix for the ellipse.
- vec4 color - Color, in which the box will be rendered.
void engine.visualizer.renderSolidBox(vec3 size, Mat4 transform, vec4 color)
Renders a solid-colored box.Arguments
- vec3 size - Size of the solid box.
- Mat4 transform - Transformation matrix used to position the solid box.
- vec4 color - Color, in which the solid box will be rendered.
void engine.visualizer.renderSolidSphere(float radius, Mat4 transform, vec4 color)
Renders a solid sphere in a given color.Arguments
- float radius - Radius of the solid sphere.
- Mat4 transform - Transformation matrix used to position the solid sphere.
- vec4 color - Sphere color.
void engine.visualizer.renderSolidCapsule(float radius, float height, Mat4 transform, vec4 color)
Renders a solid-colored capsule.Arguments
- float radius - Radius of the capsule.
- float height - Height of the capsule.
- Mat4 transform - Transformation matrix used to position the capsule.
- vec4 color - Color, in which the capsule will be rendered.
void engine.visualizer.renderSolidCylinder(float radius, float height, Mat4 transform, vec4 color)
Renders a solid-colored cylinder.Arguments
- float radius - Radius of the cylinder.
- float height - Height of the cylinder.
- Mat4 transform - Transformation matrix used to position the cylinder.
- vec4 color - Color, in which the cylinder will be rendered.
void engine.visualizer.renderSolidEllipse(vec3 radius, Mat4 transform, vec4 color)
Renders a solid-colored ellipse.Arguments
- vec3 radius - Ellipse radius values along three axes.
- Mat4 transform - Transformation matrix used to position the ellipse.
- vec4 color - Color, in which the ellipse will be rendered.
void engine.visualizer.renderBoundBox(BoundBox bb, Mat4 transform, vec4 color)
Renders the bounding box in a given color.Arguments
- BoundBox bb - The bounding box.
- Mat4 transform - Transformation matrix for the bounding box.
- vec4 color - Color, in which the box will be rendered.
void engine.visualizer.renderBoundSphere(BoundSphere bs, Mat4 transform, vec4 color)
Renders the bounding sphere in a given color.Arguments
- BoundSphere bs - The bounding sphere.
- Mat4 transform - Transformation matrix for the bounding sphere.
- vec4 color - Color, in which the sphere will be rendered.
void engine.visualizer.renderNodeBoundBox(Node node, vec4 color)
Renders an axis-aligned bound box of a given node.Arguments
- Node node - Node, for which the bound box is rendered.
- vec4 color - Color, in which the box will be rendered.
void engine.visualizer.renderNodeBoundSphere(Node node, vec4 color)
Renders a bound sphere of a given node.Arguments
- Node node - Node, for which the bound sphere is rendered.
- vec4 color - Color, in which the sphere will be rendered.
void engine.visualizer.renderObjectSurfaceBoundBox(Object object, int surface, vec4 color)
Renders a bound box of a given object surface.Arguments
- Object object - Object, which contains the target surface.
- int surface - The number of the target surface in the object.
- vec4 color - Color, in which the box will be rendered.
void engine.visualizer.renderObjectSurfaceBoundSphere(Object object, int surface, vec4 color)
Renders a bound sphere of a given object surface.Arguments
- Object object - Object, which contains the target surface.
- int surface - The number of the target surface in the object.
- vec4 color - Color, in which the sphere will be rendered.
void engine.visualizer.renderBoxHandler(Node node, vec3 size, vec4 color)
Renders a handler in a form of a box.Arguments
- Node node - Node, for which the handler is rendered.
- vec3 size - Dimensions of the box.
- vec4 color - Color, in which the box will be rendered.
void engine.visualizer.renderSphereHandler(Node node, float radius, vec4 color)
Renders a node handler in a form of a sphere.Arguments
- Node node - Node, for which the handler is rendered.
- float radius - Radius of the sphere.
- vec4 color - Sphere color.
void engine.visualizer.renderTextureHandler(Node node, float size, int screen_space = 1)
Renders a texture handler of the specified size.Arguments
- Node node - Pointer to the node, for which the handler is rendered.
- float size - Texture size (length of one side of the texture).
- int screen_space - A flag indicating the type of dimensions to be used:
- 0 - use the world space dimensions
- 1 - use the screen space dimensions
void engine.visualizer.renderObject(Object object, vec4 color)
Renders an object wireframe.Arguments
- Object object - Object, which wireframe will be rendered.
- vec4 color - Color, in which the wireframe will be rendered.
void engine.visualizer.renderObjectSurface(Object object, int surface, vec4 color)
Renders borders of a given object surface.Arguments
- Object object - Object, which contains the target surface.
- int surface - The number of the target surface in the object.
- vec4 color - Color, in which the borders will be rendered.
void engine.visualizer.renderSolidObject(Object object, vec4 color)
Renders a solid-colored object.Arguments
- Object object - Object that will be rendered.
- vec4 color - Color in which the object will be rendered.
void engine.visualizer.renderSolidObjectSurface(Object object, int surface, vec4 color)
Renders a solid-colored surface of a given object.Arguments
- Object object - Object that will be rendered.
- int surface - The number of the object's surface.
- vec4 color - Color, in which the object's surface will be rendered.
void engine.visualizer.renderWorldSectorObjectSurfaces(WorldSector sector, vec4 color)
Renders objects wireframes inside a given sector.Arguments
- WorldSector sector - Sector, in which the object wireframes will be rendered.
- vec4 color - Color, in which the wireframes will be rendered.
void engine.visualizer.renderMessage2D(vec3 position, vec3 center, string str, vec4 color, int outline)
Renders a message in a given color. Message position is specified in screen coordinates.Arguments
- vec3 position - Coordinates of the anchor point of the message, each in [0;1] range.
- vec3 center - Message alignment. The first two values in the vector set the offset, the third one is ignored. For example, vec3(-1,-1,0) sets the offset of the center of the message to its upper left edge. vec3(1,1,0) - to the lower right corner.
- string str - Message text to display.
- vec4 color - Color, in which the message will be rendered.
- int outline - 1 to use font outlining, 0 not to use.
void engine.visualizer.renderMessage2D(vec3 position, vec3 center, string str, vec4 color, int outline, int font_size)
Renders a message in a given color with the specified font size. Message position is specified in screen coordinates.Arguments
- vec3 position - Coordinates of the anchor point of the message, each in [0;1] range.
- vec3 center - Message alignment. The first two values in the vector set the offset, the third one is ignored. For example, vec3(-1,-1,0) sets the offset of the center of the message to its upper left edge. vec3(1,1,0) - to the lower right corner.
- string str - Message text to display.
- vec4 color - Color, in which the message will be rendered.
- int outline - 1 to use font outlining, 0 not to use.
- int font_size - Font size.
void engine.visualizer.renderMessage3D(Vec3 position, vec3 center, string str, vec4 color, int outline)
Renders a message in a given color. Message position is specified in world coordinates.Arguments
- Vec3 position - Coordinates of the anchor point of the message (in world coordinates).
- vec3 center - Message alignment. The first two values in the vector set the offset, the third one is ignored. For example, vec3(-1,-1,0) sets the offset of the center of the message to its upper left edge. vec3(1,1,0) - to the lower right corner.
- string str - Message text to display.
- vec4 color - Color, in which the message will be rendered.
- int outline - 1 to use font outlining, 0 not to use.
void engine.visualizer.renderMessage3D(Vec3 position, vec3 center, string str, vec4 color, int outline, int font_size)
Renders a message in a given color with the specified font size. Message position is specified in world coordinates.Arguments
- Vec3 position - Coordinates of the anchor point of the message (in world coordinates).
- vec3 center - Message alignment. The first two values in the vector set the offset, the third one is ignored. For example, vec3(-1,-1,0) sets the offset of the center of the message to its upper left edge. vec3(1,1,0) - to the lower right corner.
- string str - Message text to display.
- vec4 color - Color, in which the message will be rendered.
- int outline - 1 to use font outlining, 0 not to use.
- int font_size - Font size.
Last update: 2018-08-10
Help improve this article
Was this article helpful?
(or select a word/phrase and press Ctrl+Enter)