Capitolo 27. Il Sistema di Plugin di Blender

Sommario
Scrivere un Plugin Texture
Specifiche:
Plugin di Texture Generico:
Le nostre Modifiche:
Compilazione:
Scrittura di un Plugin di Sequenza [Sequence Plugin]

di Kent Mein

Questa sezione riporta un approfondito riferimento alla codifica dei plugin di Texture e Sequenze di Blender.

Scrivere un Plugin Texture

A partire da Blender v2.31

In questa Sezione scriveremo un plugin di texture base e quindi percorreremo i passi per usarlo. La base dietro un plugin texture è che si stanno fornendo alcuni input; posizione e valori delle normali così come qualche altra informazione. Viene quindi restituita l'intensità, il colore e/o l'informazione sulla normale a seconda del tipo di plugin texture.

Tutti i file necessari per lo sviluppo dei plugin così come qualche plugin di esempio si possono trovare in blender/plugins. In alternativa si possono prendere un mucchio di plugin da http://www.cs.umn.edu/~mein/blender/plugins

I plugin sono supportati (caricati/chiamati) in Blender usando la famiglia di chiamate dlopen(). Per quelli che non hanno familiarità con il sistema dlopen esso consente ad un programma (Blender) di usare un oggetto compilato come se facesse parte del programma stesso, un po' come le librerie dinamiche eccetto che gli oggetti da caricare vengono determinati in fase di esecuzione.

Il vantaggio di usare il sistema dlopen per i plugin è che consente un accesso molto veloce alle funzioni, e quindi non c'è un sovralavoro nell'interfacciare un plugin, fatto critico quando (come nel caso dei plugin texture) il plugin può essere chiamato diversi milioni di volte in un solo rendering.

Lo svantaggio del sistema è che il codice del plugin funziona proprio come se facesse parte di Blender stesso, se il plugin fallisce, fallisce Blender.

I file include che si trovano nella subdirectory plugin/include/ dell'installazione di Blender documentano le funzionalità di Blender per i plugin. Queste includono le funzioni di libreria Imbuf per il caricamento e la gestione di immagini e buffer di immagini, e funzioni di rumore e turbolenza per la coerenza delle texture.