[edit: 2020-01-20]In the 10.6 release of VPX some changes were made to the primitive panel which are highlighted below.

-Added support for Object/world space normals bump maps. (This was added for spinning/rotating objects, as it was first addressed on Flupper’s TOTAN with the spinning Lamp toy.

-Added Render backfacing transparent (This is used for specific case transparent prims where there are sections that over lap one another, an example would be a single solid formed plastic ramp that overlaps itself.

The older menu:

Primitive Menu

Some where along VP9 support for 3D objects was added, the supported file format is “.obj”

Primitive is a generic term in VP for a 3D mesh, some times referred to as a ‘prim’ for short.  In most 3D software a ‘primitive’ is in fact a primitive or basic object like a sphere,cube,torus,plane etc.  It would be more accurate to refer to these objects as ‘3D mesh’s’ but primitive has become the accepted general term in the VP community.


[Import Mesh]:  Import 3D mesh obj files.

From top menu of VP, ‘Insert’ menu and insert ‘primitive/object’ Once the primitive/object is imported, it will become selected automatically and open its primitive options menu.  Under ‘Colors & Formatting’ click the “Import Mesh” button.  It will prompt a window asking for an obj file, select desired obj file and import.  3D objects are automatically triangulated upon import however it is recommended that you triangulate the model on export from your 3D software to ensure best results.  From the import dialogue in VP you can also ‘import obj sequence’ to import animated obj sequence which can then be animated via script.

[Export Mesh]:  Export 3D mesh obj files

Export 3D mesh’s from a table for later use.  It is also possible to copy paste Primitive’s from one VP window to another provided they are in the same instance (running one exe).

[Image] Add texture map to 3D mesh

Import and select an image to be used for your 3D mesh/prim.  Note that your model will need to have had UV mapping applied in order for a texture map to work outside of the 3D software.

[Normal Map] Add normal map bump map to 3D mesh.

Low poly geometry (low detail) can be given the illusion of high poly detail through the use normal bump mapping.  Note that in order for the normal map to work in VP, an image map must also be applied.

[edit: 2020-01-20]

‘Tangent’ normal bump maps are the most commonly used normals bump map format.  Tangent maps can be distinguished by their mostly blue coloring where as object/world space normals bump maps have more of a rainbow coloring.  Object/world space maps are typically only used for spinning/rotating objects.

[Material] Add a material to 3D mesh.

All primitives should have an appropriate material applied otherwise they will have a pink hue by default which indicates that a material is still required for that object.  Materials control shine,glossy,(environment) reflection, color and transparency.

[] Visible – Enables primitives visibility

[] Static Rendering – renders the object static making it pre-rendered so that it does not effect performance, as the name implies it must be a static object.

[] Reflection enabled – Enables the primitive to be rendered as a reflection on the play field.

[] Disable lighting – disables the amount of lighting on a primitive so that it is no longer effected by environment lighting. (Range 0.001 – 1.0, 1.0 = fully disabled). [updated 8/4/17]

Depth bias: controls the draw order of overlapping transparent objects.

Editor: 00, .5, 1 controls how much detail is used when drawing the 3D mesh in the editor.

See ‘Material manager’ wiki: https://vpinball.com/wiki/visual-pinball-knowledge-base/material-manager/


Position & Translation

Base position / Size

X,Y,Z, position and size value in puts.   Click and drag object to move or input values.

Rotation and Transposition.

There are differences between the 3 types of rotation, RotXYZ, TransXYZ, and ObjRotXYZ.   These can also be used in conjunction with one another.  The main difference is that one type of rotation is a basic rotation based off the object’s pivot and one is based off world based pivot.  [additional info required]


[]Has Hit event

Hit Threshold <value> – Controls whether the 3D object has a hit event or not, the ‘hit event’ can be used to call up other functions in the script.

[]Overwrite Material Settings – Overwrites the material physics settings, materials can also have physics applied to them.

[] Collidable (switchable in script) – Toggles collision for the primitive

[] Toy (never collidable, much faster) – Used when no collision is required to save on performance.

If not a Toy reduce polygons by (0.1)  – This optimises the poly count of the ‘physics’ version of the 3D mesh [confirmation required]

[] Render backfacing transparent Triangles (slower, but accurate) – This renders the texture on the back face of single sided geometry, useful in specific circumstances but should generally be kept off.


Comments are closed.

  1. 3rdaxis 2 years ago

    lol, Still can’t get this to work.
    I animated an object with 300 frames (301)
    Exported it correctly Teapot_301
    Imported animation sequence (2 frames imported!) is all I can get.
    And this is the script as follows.

    Sub Trigger3_Hit:Playsound “button-click”
    If Light11.State=0 Then
    Teapot_301.PlayAnimEndless 1
    End If
    End Sub
    Teapot does not move at all. If i increase the framerate speed it just disapears?

    Don’t know what else to do?

  2. 3rdaxis 2 years ago

    Do i have to import 300 primitives?!?!

©2020 VPinBall.com

Log in with your credentials


Forgot your details?

Create Account

The Vpinball app