OBJECTS CONCEPT
The main thing to remember about the objects editing is that objects can’t be built from scratch but they must be re-shaped using existing structures already available 
in the edited track or in other Gp3 tracks. This means that objects can be exported from a track to another. Every object structure is unique inside the track, so in 
example, if we need to insert 5 advert panels with 5 different adverts, we must import 5 times the same structure and assign each one the needed texture. A technical 
matter to consider in the object editing is that not a part of the object can be erased, so if an object has exceeding vertexes and faces than we need, we cannot 
eliminate them but we can only hide them, assigning to the exceeding vertex coordinates in a way to make them disappear behind other vertexes or faces. 
And finally a more practical matter to remember is that cars can’t collide with objects, as they don’t have a physical entity inside the game, but cars simply will go 
through when trying to hit them.


CHOOSING BASE OBJECTS
To save time, simplify our work and operate in a clean way while adding a new object, the first parameter we must consider is the geometry of the object. In few words, 
we should choose an object that is the more possible similar to the one we need to create. In example if we need to place a panel, we better choose an object that already 
represents a panel with 2 faces and 4 vertexes, while if we need to place a simple skyscraper, the best choise is any object representing a cube as we need only 6 faces. 
In this way, having already the correct (or closer) number of faces we don’t need to hide many exceeding faces saving resources as the unused geometry will be still
counted by the game.



Even though we found an object with a good geometry, it’s not sure that we can use it for our specific purpose, nor that the result will be the desired one. Indeed, the 
second parameter to care about is the texture mapping. Every object has inside some additional values which represent the size of the texture and then, the chance to repeat 
it more times horizontally or vertically. If we already know that we need a single mapping, we can ignore this parameter otherwise it can be very important. As an example, 
if we are going to create a building, which is made by several floors, we’d need an object that allows to repeat vertically the same texture all the times we want like in 
the picture below:




OBJECTS IDENTITY
Every object is identified by two entities: a physical entity called ‘internal object’, which represents the 3D shape with dimensions, textures, etc… and a spatial entity 
called ‘object definition’ which contains the coordinates of that object when placed along the track.
The internal object definition is the physical shape of the object and it contains all the info about the object geometry and mapping, like 3D coordinates, vertex, texture 
mapping etc… All these internal objects are listed in the track tree under the icon representing a transparent cylinder like in the picture below:



The object definition (or object offset)is an internal object to be placed into the track. it needs to be identified by an object definition. Every internal object can have 
then all the object definitions we want. It is identified by a number that increases automatically by 16. This number is automatically assigned by the editor choosing the 
first unassigned one. Every object definition assigns to the internal object a position in the space along the track and some properties for the viewing. In example if we 
want to place 2 of the same stands but with two different distances from the track borders we need to create two different object definitions of the same internal object 
and in each one we must define the 2 different distances. All the object definitions are listed in the track tree under the icon representing a yellow cylinder like below:



In Gp3 there are 2 kind of objects: the 3D objects and the non-3D objects.
3D objects are the Internal Objects said above, meaning those objects provided by XYZ coordinates. The non-3D objects are simply textures floating in the air that can’t 
be modeled with spatial coordinates, like trees, marshals, etc… but that act in a way to illude us they are ‘real’ in their complexity. A tree in example would be very 
hard to be modeled but Gp3 allows to place a single texture of a tree that will rotate with our visual angle givin us the illusion that turning around the tree there is 
still a dimension.
 
Objects editing is composed of 3 parts: 
- importing objects which consists in moving from a track to another the objects
- shaping objects, which consists in editing and changing the shape of the object or its mapped textures
- placing objects, which consists in placing physically an object along the track

IMPORTING OBJECTS
To insert a new object in our track, in example a bridge seen on another track or a base object to manipulate later, we need to export it to a file from the source track 
and then to import that file in our track. First of all we need to open the .dat file of the source track and look for the wanted object in the track sector 
(or in the track tree) containing it. 
In this example we want to import in our track a bridge seen at Imola. Opened Imola and clicking on the track sectors containing it, we discovered that our bridge is 
located in the sector t116:



What we highlighted is the object definition that allows the bridge to stay in that position. By double clicking on it then, a dialog box will appear and we’ll be informed 
that our bridge is located at the internal object 23:



So we need to look for it in the list of internal objects down in the track tree opening the highlighted sub-tree:

 

Once we find it, doing a right click on it, we’ll open the menu of the internal object, where we have to choose “export 3d object”:



It will ask to save it as a .gpo file, giving it a name and choosing where to save it. No matter about the destination, Just remember where we place it.
Now we need to insert this file in our destination, so let’s go back to our track. Here we need to click in the toolbar, the option Object/Jams and then “insert new 
internal object”:
 


Browsing to find the previously saved .gpo file we need just to add it. Now we need to refresh the screen pressing the function key F5. In this way we’ll be able to see 
the new object in the list of all internal objects of our track, down in the last position. Now it’s time to edit it and see what can remain and what needs to be changed.


SHAPING OBJECTS
Once choosen the object to use or just imported a new one from another track, we may need to optimize the shape of the object and for sure the textures mapped on it should 
be fixed because may not reflect anymore our purpose, or passing from a track to another they may change. Of course the new textures we want to use must be already imported 
as always with the related option and be present in the jam tree ready for the use. 
It’s time to edit some coordinates. In this example we’ll try to edit an advert panel to give it a different shape and assign different textures. 
First of all let’s have a look at the object to see how it currently looks like. Let’s find our internal object in the list and choose ‘View 3D object’ from the menu 
like shown below:



Here is the object how it appears now. These are three ways to show the object and these modes can be selected from the object menu in the toolbar using the first two 
buttons on the left:



The first view is the basic one that we’ll use for the editing where we can clearly see the XYZ axis and the number of vertex. The second is with coloured faces and the 
third is the mapped one with the assigned texture. Below each visual there is the status of the buttons of the toolbar to switch to obtain the related view:

 
 
 

To refresh the screen when editing the object, F5 should work, otherwise if the change won’t apply we need to close and open again the 3D view. 
In the case of the mapped texture we may need directly to close the track and re-open it again, for this reason, frequent saves are suggested. Using customized texture 
they may not appear here as we need the software version created in the Gp3jams folder too.
Our goal is now to transform this advert panel in something different, in example a road panel with a ONE WAY signal.
The first thing we need to care about to start are the dimensions. To be realistic we know that a road signal is usually ‘tall’ aprox. 2 meters and wide around 1 meter. 
But as the dimensions here are expressed in units, we can convert aproximatively 1 meters in 1000 units.
 
Now let’s place the object in front of us in the screen:



This shape is short and lange, while we need a tiny and tall one. So we need to change the shape. Let’s open the object tree and locate the Point data:



In this case the informations about our object are easy to read: we have a panel with 4 vertexes and each vertex has a 3D position in the space, meaning a value for each 
axis X, Y and Z. Every axis has of course a direction. In TE these are the directions indicated like this:



As we said we need a tiny object so, in our object it’s obvious that we need to reduce in all the vertex the value on the Z axis:



One by one let’s open all the vertex. We’ll start with the vertex identified with 0 (zero):



As we can see it goes in the negative side of the Z axis and has as well a negative value. As our road panel can’t be wider than 1 meter our point should cover half the 
size so somewhere close to an half meter, so we will put ‘-1000’ in the Z slot and confirm with OK. Clicking now the screen we’ll se the new dimension being applied for 
the vertex 0:



Let’s do the same with the vertex 2. And the same with the vertex 1 and 3 where the values will be positive so we’ll have to put 1000. 
Here is what we’ll obtain:



Now it’s the turn of the height of our road panel. The vertex involved are of course 2 and 3 which run along the Y axis, and as we said, they can be set at 4000 in the Y slot. 
So, here is our road panel:



Now it’s time to choose which textures to map on it. As our object has only two face we need only two texture for it: the front and the back of the road side. 
Let’s open then the Texture tree:



As we can see there are 2 texture entries as two are the faces of the object. Let’s open the first entry identified by t(0) that we’ll take as front of our panel:



Here we can apply the texture to the face and decide it’s repetitions. The first entry (Texture) is dedicated to the jam id of the specific texture. This jam id 
can be checked with any jam editor. The front of our panel has id=90 so we can edit it by double clicking on the row:



Now we have to correct the repetitions. In the base object we saw 2 ‘Magneti Marelli’ logos close each other, indeed the horizontal repetition here is 512, which means 
repeating the same texture 2 times. We need our panel repeated 1 time only so we have to change this value from 512 to 256:



The vertical repetition is already 256, so we won’t touch it.
These two parameters work with exact sizes. In details, an entire repetition is defined by 256 so 512, 768, 1024 equal to a repetition repectively  x2, x3, x4.
Of course all the values can be entered but with uncommon results and it’s up to us play with this for our usage when needed. In example 128 equals to an half repetition, 
so we’d seen our panel in this way:
 


At the same way a repetition of 384 (256+128) gives 1 full texture and an half, like this:



With the front face we are done, now let’s open the texture t(1) and let’s do the same for the back of our road panel. Indeed here too we’ll put our jam id for the 
second texture and we’ll set again the repetitions both horizontal and vertical to 256. At this point we finished to edit our object. 
It’s also important to know that choosing a texture for a better view it should have a custom size: 256x256, 128x128, 64x64, 128x64, 256x64, 256x128… 
This because the game consider a complete texture with these values and shorter sizes will be filled with a black colour. So it’s good to have in hands a jam editor too.
As the object was still never edited (it means as it came with the original Gp3 track) it was shown with its name. As we just edited it, now a custom ‘unknown’ name will be 
assigned to this object. The same happens with the icon representing the object type that will change into a yellow cylinder with a question mark as shown below:

Before the editing:

After the Editing:


Let’s save the track and let’s place it somewhere to see the resulting effect ingame.


PLACING OBJECTS
This is the procedure to place along the track an object. At first instance, a fast way to place a new object is to choose a free object definition (the one without 
the + sign on the left) from the list of the object definitions in the track tree (if none is free we can create a free one). We created a road panel and we want to 
place it twice in our track. One in the left side and one in the right side. For the first one we can choose the free object definitions and adjust it to our object. 
At first instance, the object definitions shown below are usually placed at the start of the sub-tree. They are reasonably the same amount in every track and are used 
to set the position of the distance panels (100,200,300), the pitcrews into the pitlane and the distance of the marshals from the boarders, so it’s better to don’t 
touch them so far.



When an object definition has been placed on the track by the related 0x80 command, on the left of it in the track tree will appear a + to indicate in which track sectors 
this object can be found. We have found a free object definition, as this stand is not placed on the track. We can open its dialog box by double clicking on it:



This is the dialog box that will appear. Here we can set all the necessary info to correctly locate our object in the track.
Anyway, this object definition will simply set the coordinates and the specification of the object but it will not place it in the track. To place physically the object we 
must place in the sector a track command 0x80 (anchor object) and there we need to locate this object definition (464).



These are the main parameters to fill to find a position to our object. Once we have set all these parameters we obtain that at the object definition 464 we have the 
coordinates of our object ready to be placed in the track.
 
1 current object definition number
2 internal object assigned to this object definition (in our case our road panel had an internal object id1=19, so let’s scroll for it)
3 distance from the centre of the track: negative values will move the object to the left, positive values will move the object to the right
4 height from the tarmac level (as our panel is planted in the ground, so it should be 0)
5 rotation on the vertical axis: ±32727 = ±180°, ±16384 = ±90° (let’s set 0. if the face of the panel it’s not frontal to us, let’s set ±16384 and so on)
6 rotation on the horizontal axis (it should be 0 as our object is vertical. Setting it to any value will incline the object)
7 level of detail. ‘Show before fence’ is used to show an object inside the track or run-off area. Let’s set 0 as our panel goes out of the fences)
 
Now we need to place it phisically in the track. First of all, select the track tool in the toolbar. 



Now select a sector where to put it and right click to make the menu appear and from there choose ‘insert track object’ like shown below.



 It will open the object position dialog box. This procedure equals to placing an 0x80 command in the track sectors tree:



The first number (Distance from the start of sector) is the offset into the sector, the second (Object description offset) is the object definition that we have created 
before and we need to locate it here, while the grayed parameter (Object desc) is the internal object related to that object definition automatically shown, in this case 
our panel. Pressing  EDIT DESC… it will open again the dialog box of the object definition to eventually change the values we have previously edited.
Once confirmed the insertion, here is how our panel will appear on the screen. The green dot in the picture below means that the object is on the right side of the track, 
while a red dot would mean that it is on the left side. Working on the buttons shown on below we’ll have different marks to locate our object. The yellow cylinder makes 
appear/disappear the green/red dot, the white cylinder makes appear/disappear the 3D structure (the blue line). 

  

The button in the middle of them makes appear/disappear the identification symbol of the objects:

 

 The button representing a tree makes appear/disappear the non-3D objects whick are always indicated by a red segments:

 

For a fast location of the object definition placed we can activate the text button which will show near the object its object definition:

 

If we want to adjust the position of the object we can act directly on the object or use the related 0x80 command in the track sector. To move directly the object, 
we need to activate the object tool and click on the object to select it and move up/down the arrow keys to aproach/move away from the borders the object and right/left to 
increase/decrease the offset into the sector. By double clicking on the object or in the related 0x80 command we’ll open again the previous little object position dialog box 
where to set the offset and so on… It is strongly suggested to use mainly the selection from the track tree because by clicking directly on the object can cause unwanted 
shifting effects of the object offset.
To duplicate an object having the same object definition just select it on the track tree and  make a CTRL+C (or CTRL+X to cut) , then make a CTRL+V on the sector where 
to put it.



If two or more objects are at the same offset, running the Sanity Check, it will inform us with the Performing OvelLap Test. One of them must be moved or it will not 
appear into the game. The same happens if the offset of an object placed on the last sectors falls over the S/F line.
To add non-3D objects like trees, marshals, or similar, the procedure is quite the same. The only difference is that opening the dialog box of an object definition, 
the id1 to select about the internal object is fixed and is ‘5-gp2 defined object’ like shown below with (*). It is the same for every non-eD objects because it is 
used exactly to indicates the non-3d objects:

Now the Id2 become active because it needs to choose the texture to map as object, typing a number in the field 1. In the ‘preview’ window a texture should appear 
and in the jam id x its own id value (use a jam editor to see it). If the id2 doesn’t match any texture, in the ‘preview’ window will appear the writing “NO JAM FOUND!”
Scroll the Id2 until the wanted jam is found. Of course in the x field will be located only textures imported into the track in the part of the track tree related to 
jams. As usual, adjust the position and orientation and click OK to confirm. To place the object on the track the procedure is the same as before, inserting a new 
object in the track sector locating the new object definition. As seen before, this time every non-3d object will be shown as a red segment.



To create a new free object definition, first of all activate the object tool in the toolbar, then make a right click on the track sector where to place the new object. 
It will open again this dialog box:



Select an offset but this time, select ‘New Desc…’. Again it will open the big dialog box for the object definition but this time in the field 1 there will be a new offset 
which is automatically set increasing by 16 the highest one already existing, so there is no need to touch it:



Now the only thing to do is to repeat the previous procedure, choosing the id1 (or the couple id1/id2) and setting the position. 
The new object definition will always appear at the last position in the track tree section related to them.
To remove an object definition right click on it in the track tree and select ‘remove track command’. Be careful and save the track before this operation, as a bug seems to 
close the editor in some removal conditions. This operation will remove the object definition and as consequence all its objects placed on the track.



To remove an internal object, right click on it and select  REMOVE à REMOVE INTERNAL OBJECT. Removing an internal object, also all the object definitions related to it will 
be removed too. Again, it’s better to save the project before to use this option.



An important thing to remember is that the object definitions are always sequential. This means that when we remove an object definition which is not the highest one, 
all the other object definition following the removed one will shift down their value to occupy the missing one. 
In example having these objects definitions: 
1472 – 1488 – 1504 – 1520 – 1536 – 1552
Removing the object definition 1520 the sequence will become
1472 – 1488 – 1504 – 1536 – 1552
Where the old 1536 will take the place of the removed 1520 and the old 1552 will take the place of the 1536. Of course nothing will change to our objects that will not 
suffer any problem. This is useful to remember when we’ll be in an advanced status of editing with many objects placed in the track.

With Id1 the object definition indicates the 3d objects and with Id2 it indicaes the non-3D objects:
- the object id1/id2. The object id1 is a number which allows to locate an internal 3D object. The object id2 is a number that allows to locate a texture to apply to 
a non-3D object. Mostly used to place trees and marshals. These will be shown in the next chapter.
- the non-3D objects. The non-3D object is not a solid figure composed of vertices and faces but it’s simply the representation of the texture applied on it by the id2. 
The difference between the two kind of objects is that while a 3D object is a static structure and we’ll see it from different angles while moving on our car, the 
non-3D object will rotate around its centre in order to show us exactly its front. The main examples of non-3D objects are the trees and other stuff like marshals or 
pins placed along the track. Of course, being the tree a ‘not regular’ shape, it’s obvious the benefit of the usage of a non-3D object to have a realistic effect from 
every kind of camera.