Quale approccio per la codifica di un "atlante di texture"?

2

Per un progetto di gioco, ho un paio di trame provenienti da più fonti e ho bisogno di comprimere tutto questo in un unico atlante texture .

Esempio di un circuito di gioco di corse, ci sono trame per:

  • il cielo
  • la traccia
  • i vari oggetti nell'ambiente

Ciascun elemento sopra menzionato è un catalogo contenente molte trame.

Il mio problema è il seguente:

Come dovrei progettare i dettagli di questo oggetto, sapendo che devo essere in grado di aggiungere trame ad esso, quindi recuperare la regione in cui è stata inserita?

L'idea mi è venuta inizialmente usando un semplice string , ma non mi piaceva quell'approccio per quanto riguarda l'utilizzo di esso in un codice base.

Questo è un caso di over-engineering da parte mia o sarebbe sufficiente un string sufficiente per tale lavoro?

    
posta Aybe 07.05.2015 - 01:53
fonte

1 risposta

1

Vorrei innanzitutto iniziare dall'interfaccia. Penso che una buona interfaccia per il tuo atlante delle texture sia qualcosa del tipo:

class TextureAtlas
{
    public Texture Sky { get; }
    public Texture Track { get; }
    public Texture SomeObjectInEnvironment { get; }
}

Dato che probabilmente userai qualche strumento per generare l'atlante delle texture e quello strumento ti fornirà le informazioni sulla posizione di ogni texture nell'atlante, potresti usarlo per generare il codice di TextureAtlas scrivi (e per farlo, potresti usare T4).

Il codice generato potrebbe essere simile a:

class TextureAtlas
{
    private Texture m_atlas;

    public Texture Sky { get { return m_atlas.Subtexture(1000, 0, 256, 512); } }
    …
}
    
risposta data 07.05.2015 - 02:56
fonte

Leggi altre domande sui tag