DxDrawPrimitive3D

From Multi Theft Auto: Wiki
Revision as of 13:34, 27 May 2024 by FileEX (talk | contribs)
Jump to navigation Jump to search

This function draws a 3D primitive in the 3D world - rendered for one frame. This should be used in conjunction with onClientRender in order to display continuously.


This page describes the current implementation. For older versions check legacy version



Syntax

bool dxDrawPrimitive3D ( string primitiveType, string stage, table vertex1, table vertex2, table vertex3 [, table vertex4, ...] )
A four vertex primitive example using "trianglefan"

Required Arguments

  • primitiveType: The type of primitive to be drawn. This could be:
   "pointlist"
   "linelist"
   "linestrip"
   "trianglefan"
   "trianglelist"
   "trianglestrip"
  • stage: A string representing a stage at which the actual drawcall should happen:
    • prefx - Primitives are rendered before the color correction. This stage makes primitives look natural to SA but colors could be distorted.
    • postfx - Primitives are rendered after the color correction. This stage conveys a color from the function to a screen without distortions.
    • postgui - Primitives are rendered after GUI. The primitive should be drawn on top of or behind any ingame GUI (rendered by CEGUI).
  • vertex1: A table with the coordinates of the vertex plus its color.
  • vertex2: A table with the coordinates of the vertex plus its color.
  • vertex3: A table with the coordinates of the vertex plus its color.

The vertex should be passed like this:

{x, y, z, color}

Optional Arguments

NOTE: When using optional arguments, you might need to supply all arguments before the one you wish to use. For more information on optional arguments, see optional arguments.

  • vertexN: A table with the coordinates of the vertex plus its color. You can add as much as you want.

Returns

Returns a true if the operation was successful, false otherwise.

Example

This is a small example of creating 3D Primitive object with 4 vertex that will spawn on 'The Well Stacked Pizza Co.' in Idlewood.

local primitive = {
    {2087.8, -1804.2, 13.5, tocolor(255, 0, 0)}, 
    {2087.7, -1810.5, 13.5, tocolor(0, 255, 0)}, 
    {2092.7, -1813.6, 17.7, tocolor(0, 0, 255)},
    {2097.5, -1806.8, 16, tocolor(255, 255, 255)}
}

function draw()
    dxDrawPrimitive3D("trianglefan", false, unpack(primitive))
end
addEventHandler("onClientRender", root, draw)

Requirements

This template will be deleted.

See Also