dxDrawMaterialLine3D | Multi Theft Auto: Wiki Skip to content

dxDrawMaterialLine3D

Client-side
Server-side
Shared

This function draws a textured 3D line between two points in the 3D world - rendered for one frame. This should be used in conjunction with onClientRender/onClientPreRender in order to display continuously.

Tip
  • The 3D line with a large width value effectively becomes a rectangle, so it it possible to construct basic shapes such as boxes with several large width lines and the appropriate values for faceToward.
  • 3D lines are drawn at a particular place in the game processing order, so use onClientPreRender for drawing if you are attaching them to world elements.

Syntax

bool dxDrawMaterialLine3D ( ​float startX, ​float startY, ​float startZ, ​float endX, ​float endY, ​float endZ, [ ​bool flipUV = false ], ​texture material, ​float width, [ ​int color = tocolor(255,255,255,255), ​string stage = "postfx", ​float faceTowardX = nil, ​float faceTowardY = nil, ​float faceTowardZ = nil ] )
Required Arguments
  • startX: The start X position of the 3D line, representing a coordinate in the GTA world.
  • startY: The start Y position of the 3D line, representing a coordinate in the GTA world.
  • startZ: The start Z position of the 3D line, representing a coordinate in the GTA world.
  • endX: The end X position of the 3D line, representing a coordinate in the GTA world.
  • endY: The end Y position of the 3D line, representing a coordinate in the GTA world.
  • endZ: The end Z position of the 3D line, representing a coordinate in the GTA world.
  • material: A texture to draw the line with.
  • width: The width/thickness of the line in GTA world units. (This is 1/75th of the width used in dxDrawLine3D).
Optional Arguments

NOTE: When using optional arguments, you might need to supply all arguments before the one you wish to use.

  • flipUV (default: false): A bool representing whether a UV orientation should be flipped.
  • color (default: tocolor(255,255,255,255)): An integer of the hex color, produced using tocolor or 0xAARRGGBB.
  • stage (default: "postfx"): A string representing a stage at which the actual drawcall should happen.
    • prefx: Lines are rendered before the color correction. This stage makes lines look natural to SA but colors could be distorted.
    • postfx: Lines are rendered after the color correction. This stage conveys a color from the function to a screen without distortions.
    • postgui: Lines are rendered after GUI. The line should be drawn on top of or behind any ingame GUI (rendered by CEGUI).
  • faceTowardX (default: nil): The X position the front of the line should face towards. If this is not set, the camera position is used, so the front of the line faces toward the camera.
  • faceTowardY (default: nil): The Y position the front of the line should face towards. If this is not set, the camera position is used, so the front of the line faces toward the camera.
  • faceTowardZ (default: nil): The Z position the front of the line should face towards. If this is not set, the camera position is used, so the front of the line faces toward the camera.

Returns

  • bool: result

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

Code Examples

client

Draws an image in coordiantes -2422.68555, -608.78986, 132.56250.

local redcircle = dxCreateTexture("red.png")
local x,y,z = -2422.68555, -608.78986, 132.56250
local size = 1
addEventHandler("onClientRender", root, function()
dxDrawMaterialLine3D(x+size, y+size, z-0.95, x-size, y-size, z-0.95, redcircle, size*2,tocolor(255, 255, 255, 255), 'postfx', x, y, z)
end)

Changelog

  • 1.5.5-9.11998

    Added postGUI argument.

  • 1.5.8-9.20862

    Added flipUV argument.

  • 1.5.9 r22465

    The postGUI argument has been removed and replaced with a stage argument.