BVE Italia fans homepage BVE Italian addons
Alfred Barten's BVE WORKS
              Traduzione in italiano a cura di Luigi Cartello


  BVE^ Developer Guide - Indagini
Indice             Contenuto:   Base per test | Binario | Scenari | Route | Train        
COSTRUIRE ELEMENTI DEL PAESAGGIO

        Nozioni di base sugli Oggetti
        Oggetti predefiniti (prossimamente)
        Nuovo formato (prossimamente)
NOZIONI DI BASE SUGLI OGGETTI

Questa sezione riguarda il formato originale degli oggetti di BVE: quello B3D. Le procedure alla file di questa sezione presuppongono che abbiate preparato una base per test, TestBase.RW (o come avete scelto di chiamarla), come descritto nella procedura Base per test.

RIFERIMENTI.

  1. Files di istruzione di Mackoy: http://mackoy.cool.ne.jp/make/index.html
  2. Traduttore Alta Vista: http://world.altavista.com/tr
  3. Post sul forum BVE di Ernie Alston's: http://www.crotrainz.com/cgi-bin/forum/board.pl?az=show_thread&om=23&forum=DCForumID4&archive=yes
  4. Making BVE Routes sulle pagine web di Robert Marrero (*.b3d file)http://rmmarrero.topcities.com/bve/make/b3d.html
  5. Tabella dei colori RGB: http://www.hypersolutions.org/pages/rgbdec.html

Il riferimento #1 è in giapponese. Usate il traduttore Alta Vista (riferimento #2) per vederlo in inglese. Se andate prima alla home page di Mackoy's, cliccate sull'icona della chiave inglese per accedere ai files di istruzioni. Ce ne sono abbastanza, e tutti con nomi appropriati. Se avete difficoltà a stampare un frame, selezionatene il contenuto e fate un copia/incolla in un documento Word. Poi stampatelo da Word.

Il riferimento #3 può richiedere una sottoscrizione. Andate avanti e fatela. Questo è un luogo eccellente per lo scambio di informazioni su BVE e su altri simulatori di treno.

SOMMARIO. Gli oggetti B3D sono files di testo creati con Notepad o WordPad e salvati normalmente con l'estensione B3D. BVE modella gli oggetti in 3D applicando colore o texture ad un piano o a piani definiti da punti nello spazio. I punti sono indicati dalle tradizionali coordinate sugli assi di x, y e z. Zero è per tutti gli assi il punto d'incrocio degli assi stessi. I valori positivi sono verso destra (x), in su (y) e in avanti (z); i valori negativi sono all'opposto. Le misure lineari sono in metri.

Nel disporre un oggetto su un itinerario, dovete definire le distanze dell'oggetto a destra o a sinistra, in alto o in basso, e indietro o avanti rispetto al binario specificato. Potete anche regolare l'angolo con cui l'oggetto è disposto rispetto a quel binario. Queste indicazioni individuano il punto zero e l'orientamento delle coordinate proprie dell'oggetto.

Un oggetto libero è disposto in un itinerario usando l'istruzione @FreeObject (Indice, Tipo, X, Y, RotY), dove:

  • Indice = -1 per il suolo o 0-7 per indicare il binario
  • Tipo = il numero di tipo che assegnate all'oggetto nella sezione Object del route file
  • X = la distanza in metri a destra dell'asse del binario (numberi negativi indicano a sinistra)
  • Y = l'altezza in metri dal livello del binario (numeri negativi definiscono verso il basso)
  • RotY = l'angolo in gradi rispetto all'asse y del binario di cui l' oggetto è ruotato (positivo per il senso orario e negativo per quello antiorario)

Struttura. Ciascun file oggetto B3D ha la seguente struttura di base:

[MESHBUILDER]
Istruzione Vertex
Istruzione(i) Face
Instruzione(i) Color ; da usare in alternativa alla sezione [TEXTURE]
 
[TEXTURE] ; da usare in alternativa all'istruzione Color
Istruzione Load
Istruzione Coordinates
Istruzione Transparent

Dettagli. Le seguenti descrizioni aggiungono dettagli alla struttura di base dei files oggetto B3D:

Istruzione [MESHBUILDER]. Questa istruzione precede quelle seguenti. Non ci devono essere spazi o righe vuote fra questa istruzione e quelle successive.

Istruzione Vertex. Queste istruzioni identificano i punti che definiscono il piano (vertici) con le loro coordinate x, y e z. I vertici presuppongono un numero identificativo nell'ordine con cui sono dichiarati. Zero è il primo, 1 il secondo, e così via. Nel seguente esempio, un quadrato dei 5 x 5 metri è posizionato a 2 metri in orizzontale e 3 metri in verticale dallo zero.
Formato:
Vertex Vx, Vy, Vz ; Vertex 0
Vertex Vx, Vy, Vz ; Vertex 1
Vertex Vx, Vy, Vz ; Vertex 2
Vertex Vx, Vy, Vz ; Vertex n

Example:
Vertex 2, 3, 0 ; Vertex 0-basso a sin
Vertex 2, 8, 0 ; Vertex 1-alto a sin
Vertex 7, 8, 0 ; Vertex 2-alto a des
Vertex 7, 3, 0 ; Vertex 3-basso a des
Axes

Istruzione(i) Face. Questa istruzione combina le istruzioni Vertex in modo da determinare l'ordine con cui i vertici sono disegnati e così il lato a cui il colore o la texture deve essere applicato. Istruzioni Face multiple permettono di applicare colori/texture ad entrambi i lati di un piano o a diversi piani separati definiti dalla configurazione dei vertici. Per esempio, potreste definire tutti e 8 i vertici d'un cubo. Ogni faccia a cui desiderate applicare un colore/texture avrebbe un'unica istruzione Face.

Formato:
Face Vn, Vn, Vn, Vn ; n = numero di Vertex

Exampio:
Face 0, 1, 2, 3 ; disegna i vertici della figura di esempio in senso orario partendo dal più basso di sinistra

Il rapporto vertex/face regola la fase di applicazione sulla superficie del colore o della texture, che a loro volta rendono il piano visibile. La correlazione completa è una cosa ingannevole da capire. Ernie Alston fornisce una buona spiegazione al riferimento #3. Ho in progetto di coprire estesamente ciò nella parte Indagini di questa sezione. Per il momento, si può dire che negli esempi dati finora il piano che è disegnato con un'istruzione Face che comincia con un vertice a sinistra varà in fronte a voi e quindi visibile. I piano che è disegnato con un'istruzione Face che comincia con un vertice a destra sarà dalla parte opposta a voi e quindi sarà invisibile. Considerate che una volta che cominciate a ruotare il piano con l'istruzione @FreeObject nel route file, potete ruotare il piano stesso in modo che il relativo lato invisibile diventi visibile e viceversa.

Un punto di interesse: nei nostri esempi creiamo un piano di forma rettangolare e pensiamo ad esso come ad una superficie. Ciò non è abbastanza esatto. Un piano è definito da tre punti. BVE vi lascia definire i vertici d'un rettangolo, per esempio, in cui uno o più vertici siano fuori-dal-piano rispetto agli altri. La faccia allora segue una distorsione, rompendosi in due o più piani con incrementi invisibili e linee appropriate dove le superfici planari si uniscono. Ho fatto questo con un semplice rettangolo nel piano x-y ed uno o due angoli opposto dati all'infuori-del-piano con valori alla coordinata z. Una texture applicata contenente righe di testo ha confermato visivamente le distorsioni come planari.

Istruzione(i) Color. Questa istruzione applica il colore e l'opacità ad una faccia. L'istruzione non è usata quando si applica una texture. Il colore è definito in 256 incrementi per ciascun componente video rosso, verde e blu. I colori sono definiti da valori compresi tra 0 a 255. Impostando tutti e tre i colori a 0 si produce il nero; regolando tutti i colori a 255 si produce il bianco.

Potete trovare una buona tabella dei colori al riferimento #5 che vi permeterà di selezionare un colore specifico senza dover fare molti tentativi.

L'istruzione Color contiene anche un quarto parametro, alpha, che è facoltativo. Alpha definisce l'opacità della superficie da 0 (trasparente) a 255 (opaco). L'omissione del parametro alpha è equivalente ad alpha=255.

Formato:
Color nR, nG, nB, nA ; R=rosso; G=verde; B=blu; A=opacità; n=(0-255)

Esempio:
Color 255, 0, 0, 255; rosso puro a opacità standard

Istruzione [TEXTURE]. Questa istruzione precede le istruzioni seguenti. Non ci devono essere spazi o righe vuote fra l'istruzione [TEXTURE] quelle seguenti. Questa istruzione e quelle successive non sono usate quando è applicato un colore alla faccia.

Dovete avere un'istruzione [TEXTURE] e quelle successive per ciascuna istruzione Face senza una corrispondente istruzione Color.

Istruzione Load. Questa istruzione carica un file bitmap per applicarne la struttuta ad una faccia.

Formato:
Load filename.bmp

Esempio:
Load building1.bmp ; carica il file building1.bmp

Istruzioni Coordinates. Queste istruzioni determinano la disposizione d'una texture di superficie. Prendono i parametri V, W, H; dove la V = vertice, W = numero di volte in cui l'immagine è applicata orizzontalmente e H = il numero di volte in cui l'immagine è applicata verticalmente.

Due spigoli della faccia devono essere definiti per applicare la texture. Per un piano rettangolare in fronte alla carrozza, i vertici superiore destro e inferiore destro (come disegnati dall'istruzione Face) definiscono il bordo da cui applicare la larghezza del bitmap. I vertici in basso a destra e in basso a sinistra (come disegnati dall' istruzione Face) definiscono il bordo da cui applicare l'altezza della biltmap. Se è specificata una singola applicazione per un data direzione (larghezza o altezza), la bitmap si allunga o si contrae come occorre per coprire la faccia. Se sono specificate applicazioni multiple, la bitmap si contrae (se necessario) e si ripete nella direzione specificata tante volte come indicato. Non dovete usare numeri interi. Potete non desiderarlo mai, ma potete applicare una bitmap mezza volta o 2 volte e mezza o quasiasi altro valore possibile in formato decimale.

Una parola di attenzione circa le bitmaps: BVE richiede che le dimensioni esterne delle bitmap (lunghezza e larghezza) siano in pontenza di 2. Cioè 2 al quadrato, 2 al cubo, ecc..., o 2, 4, 8, 16, 32, 64, 128, 256, ecc. Inoltre i files bitmap devono essere creati con una profondità di almeno 256 colori. Ciò è fatto normalmente quando salvate la bitmap selezionando 256 colori (o di più).

Indicando altri bordi della bitmap margini come destro e inferiore, potete ruotare e/o invertire l'immagine mentre viene applicata. Ciò sarà dimostrato alla nausea nelle Indagini.
Formato:
Coordinates 0, nW, nH
Coordinates 1, nW, nH
Coordinates 2, nW, nH
Coordinates N, nW, nH

Esempio:
Coordinates 0, 0, 1 ; contribuisce a H
Coordinates 1, 0, 0 ; non contribuisce
Coordinates 2, 1, 0 ; contribuisce a W
Coordinates 3, 1, 1 ; contrib. a H e W
Axes

Istruzione Transparent. Questa istruzione definisce un colore di sfondo nella bitmap che BVE tratterà come trasparente. Questa caratteristica permette a figure irregolari, come gli alberi, gli arbusti e strutture complesse aperte, quali le recinzioni ed i semafori, di essere visualizzate senza complicati files oggetto.

Una nota d'attenzione quando create immagini trasparenti: alcune schede grafiche che non sono abbastanza potenti da visualizzare correttamente gli itinerari quando la vostra risoluzione è regolata a 24 bit di colore o più alta, necessitano risoluzioni di 16 bit. Se i vostri bitmap sono salvati con colori a 24 bit, la definizione di trasparenza non sarà riconosciuta dai video regolati a 16 bit. Il metodo più sicuro, specialmente usando l'istruzione Transparent, è quello di salvare le immagini bitmap a 16 bit.

Formato:
Transparent nR, nG, nB ; 0-255 per rosso verde e blu

Esempio:
Transparent 0, 0, 0 ; seleziona in nero come colore trasparente

INDAGINI. Prossimamente. Questa parte ci sarà tra non molto.

Top        

Indice             Contenuto:   Base per test | Binario | Scenari | Route | Train        

©2001 Alfred Barten. All rights reserved.
First posted 26 August 2001. Last updated 26 August 2001