Blitz3D+ Command Reference

PaintMesh mesh,brush

Parameters

mesh - mesh handle
brush - brush handle

Description

Paints every surface of a mesh with a brush.

The brush's properties - colour, alpha, shininess, texture, blend and FX flags - are written onto each of the mesh's surfaces, instantly changing its appearance. Define the brush once and you can restyle mesh after mesh with a single call instead of a pile of EntityColor and EntityTexture lines.

PaintMesh is the middle member of a family of three scopes: PaintSurface paints one surface, PaintMesh paints all of a mesh's surfaces, and PaintEntity paints at the entity level. Use PaintSurface when different sections of the mesh should look different.

Painting copies the brush's current properties - changing the brush afterwards does not update meshes already painted with it. Repaint if you want the new look.

See also: PaintEntity, PaintSurface, CreateBrush, LoadBrush.

Example

; PaintMesh Example
; -----------------

; A brush bundles material properties: colour, texture, shininess...
; PaintMesh applies a brush to EVERY surface of a mesh.
; (PaintSurface paints just one surface; PaintEntity is the
; entity-level version that works on any entity.)

Graphics3D 640,480
SetBuffer BackBuffer()

camera=CreateCamera()
PositionEntity camera,0,1,-4

light=CreateLight()
RotateEntity light,30,40,0

crate=CreateCube()

; Three different brushes to paint with
blue_brush=CreateBrush()
BrushColor blue_brush,60,120,255
BrushShininess blue_brush,1

logo_brush=CreateBrush()
BrushTexture logo_brush,LoadTexture("media/b3dlogo.jpg")

moss_brush=CreateBrush()
BrushTexture moss_brush,LoadTexture("media/MossyGround.BMP")
BrushColor moss_brush,180,255,180

; Start with the blue brush - the documented command
PaintMesh crate,blue_brush
brush_name$="1: shiny blue"

While Not KeyDown(1)

    ; 1/2/3 repaint every surface of the mesh with a new brush
    If KeyHit(2) Then PaintMesh crate,blue_brush : brush_name="1: shiny blue"
    If KeyHit(3) Then PaintMesh crate,logo_brush : brush_name="2: logo texture"
    If KeyHit(4) Then PaintMesh crate,moss_brush : brush_name="3: tinted moss"

    TurnEntity crate,0,1,0

    ; Arrow keys move the camera
    If KeyDown(200) Then MoveEntity camera,0,0,0.1
    If KeyDown(208) Then MoveEntity camera,0,0,-0.1
    If KeyDown(203) Then TurnEntity camera,0,1,0
    If KeyDown(205) Then TurnEntity camera,0,-1,0

    RenderWorld

    Text 0,0,"1 / 2 / 3 : paint with a different brush   Arrow keys: move camera   Esc: exit"
    Text 0,20,"PaintMesh crate with brush "+brush_name

    Flip

Wend

End

Index