9.6.4  ¿Cómo funcionan los UDO de Moray?

(Respuesta por Johannes Hubert)

Los archivos UDO son Objetos Definidos por el Usuario (User Defined Objects). Un archivo UDO puede contener varios de estos objetos, pero para simplificar esta respuesta supongamos que solo hay un objeto en el UDO.

Realmente siempre tendrás un par de archivos: el UDO y un INI. Deberas crear ambos archivos, bien escribiendolos a mano, o con alguna aplicación que pueda exportar al formato UDO de Moray. No son generados por Moray.

El archivo UDO contiene una descripción de cómo un objeto debería aparecer en Moray. Es esencialmente un paquete de vértices y las líneas que los conectan, que le dice a Moray como renderizar el wireframe del objeto. En Moray se puede escalar, rotar, trasladar y texturizar este "objeto" como lo desee.

Cuando se exporta desde Moray, el segundo archivo, el archivo INC, entra en juego: este contiene la descripción del mismo objeto en el lenguaje script de POV-Ray. Puede contener *todo* lo que entiende POV-Ray. Al lugar en la escena donde usó el UDO, Moray simplemente exporta una declaración de inclusión -include-statement- para este archivo INC, y luego le aplica todas las transformaciones que usted le hizo al objeto.

Un problema que muchos principiantes tienen con UDOs, es el nombre de archivo de este archivo INC:

Digamos que tiene un objeto coche (car-object), definido por un UDO (exportado por ejemplo con sPatch). Usted llama el objeto "car", y cuando lo exporta obtiene el par de archivos "car.udo" y "car.inc". Ahora quiere ver su objeto y para ello crea una escena simple en Moray que llama "car.mdl". De aquí es donde viene el problema: Al exportar, Moray genera un archivo "car.pov" y un archivo "car.inc" (y probablemente algunos otros archivos). Así, el archivo "car.inc" de Moray sobreescribe el "car.inc" que fue exportado con el UDO.

La solución: dé a su UDO un nombre de archivo diferente al del MDL! Por ejemplo: car_udo.udo, car_udo.inc y car.mdl.