65. CLASE RENDERTEXTURE (y III)










DiscardContents:

function DiscardContents () : void


Descarta el contenido de la render texture.


SetGlobalShaderProperty:

function SetGlobalShaderProperty (propertyName : String) : void


Asigna esta render texture como la propiedad shader global llamada en el parámetro propertyName.


VARIABLES DE CLASE:

active:

static var active : RenderTexture


Se refiere a la render texture activa. Todos los renderings van dentro de la rendertexture activa. Si esta es null todo se renderiza en la ventana principal. Cuando una RenderTexture se convierte en activa su contexto de hardware de renderizado es automáticamente creado si no se había creado ya.


FUNCIONES DE CLASE:

GetTemporary:

static function GetTemporary (width : int, height : int, depthBuffer : int = 0, format : RenderTextureFormat = RenderTextureFormat.Default) : RenderTexture


Asigna una render texture temporal.

Esta función es optimizada para cuando necesitas una RenderTexture rápida para hacer algunos cálculos temporales. Libérala usando ReleaseTemporary tan pronto hayas hecho el trabajo, así podrás reusarla otra vez en una nueva llamada si la necesitas.


ReleaseTemporary:

static function ReleaseTemporary (temp : RenderTexture) : void


Libera una textura temporal asignada con GetTemporary.

POSTED BY UnityScripts
DISCUSSION 7 Comments

64. CLASE RENDERTEXTURE (II)










depth:

var depth : int


La precisión en bits de la profundidad del búfer de la render texture (son soportados los valores 0, 16 y 24)


format:

var format : RenderTextureFormat

El formato de la render texture. RenderTextureFormat es una enumeración que permite estos valores:

RenderTextureFormat es una enum con estos valores:


ARGB32: Formato de color de la render texture, 8 bits por canal.
Depth: Un formato de profundidad de la render texture.
ARGBHalf: Formato de color de la render texture, 16 bit en punto flotante por
canal.
RGB565: Formato de color de la render texture.
ARGB4444: Formato de color de la render textura, 4 bit por canal.
ARGB1555: Formato de color de la render texture, 1 bit para el canal Alpha, 5
bits para los canales del rojo, verde y azul.
Default: Formato de color por defecto de la render texture, dependiendo del
formato de bufer por frame y la plataforma.



useMipMap:

var useMipMap : boolean


Por defecto, las render textures no tienen mipmaps. Si establecemos esta variable en true, se generarán niveles de mipmap asociados.

Este flag puede ser usado sólo en render textures que sean potencias de dos.


var isCubemap : boolean

var isCubemap : boolean

Si está habilitada, esta render texture será usada como Cubemap.


FUNCIONES:

RenderTextures:

static function RenderTexture (width : int, height : int, depth : int, format : RenderTextureFormat) : RenderTexture


Crea un nuevo objeto RenderTexture, que es creado con anchura y altura, con un buffer de profundidad y en un determinado formato. Sería lo mismo que hicimos en el ejemplo de la lección anterior, pero a través de un script.

Cuando invocamos a través del constructor un nuevo objeto RenderTexture no estamos todavía creándolo en realidad . El RenderTexture será creado o bien la primera vez que se usa o bien llamando de manera expresa a la función Create. Así que después de construir la render texture, dado que aún no ha tomado forma la representación final de la misma, es posible establecer variables adicionales, como format, isCubemap y similares.

static function RenderTexture (width : int, height : int, depth : int) : RenderTexture

Este segundo prototipo del constructor es idéntico al anterior, salvo que no se establece de manera expresa el formato de la rendertexture. La render texture es colocada para estar en color format por defecto.


Create:

function Create () : boolean


Tal como acabamos de indicar, es esta función la que crea en realidad la RenderTexture.


Release:

function Release () : void


Esta función libera los recursos de hardware usados por la render texture. La texture en sí no es destruida, y será automáticamente creada otra vez cuando se use.


IsCreated:

function IsCreated () : boolean


Indica si la render texture se ha creado realmente o no.

POSTED BY UnityScripts
DISCUSSION 0 Comments

63. CLASE RENDERTEXTURE (I)




Al igual que Cubemap, la clase RenderTexture hereda directamente de Material. Hemos de advertir antes que nada que esta clase sólo está disponible para Unity Pro, así que quien no tenga o confíe en tener la versión de pago de Unity puede saltarse tranquilamente estas lecciones.

Render textures son texturas que pueden ser renderizadas. Pueden ser usadas para implementar imágenes basadas en efectos de renderizado, sombras dinámicas, proyectores, reflexiones o cámaras de vigilancia.

Como es posible que -como a mí en su momento- esa definición no nos diga nada, vamos a acercarnos por la vía de los hechos a las rendertextures. Hemos de seguir los siguientes pasos:

1.- Eliminamos el script vinculado a la esfera.
2.- Al cubo, en scale, le damos los siguientes valores: 5,5,0.1, y en position: -2,2,0.
3.- En el menú, nos vamos a Assets=>Create=>Render Texture.
4.- Asimismo en el menú, le damos a Gameobject=>Create other=>camera.
5.- A esta nueva cámara le quitamos el componente Audio Listener, para que no nos dé problemas de duplicidad.
6.- Con camera seleccionada, en el inspector veremos una variable denominada Target Texture. Arrastramos hasta ahí la renderTexture creada antes y que está en Proyecto.
7.- Establecemos las siguientes coordenadas para camera: Position, 2,1,0, Rotation 90,0,0. (nos aseguramos de que la esfera esté en 2,0,0.). Deberíamos estar viendo en la vista previa de la nueva cámara la esfera muy de cerca.
8.-Arrastramos la Render Texture de Proyecto al cubo.
9.- Pulsamos play.

Deberías estar viendo algo como esto:


Por lo tanto, observamos que render textures es un tipo especial de textura que se crea y actualiza en tiempo de ejecución, y que convierte en textura el fruto del renderizado de una cámara. Para ello observamos que necesitamos crear (en la interfaz o a través de un script) una nueva render textura y asignarla a una cámara para que la renderice. Acto seguido creamos o designamos una superficie que reciba esa textura así creada.

Decimos que se crea y actualiza en tiempo de ejecución. Para demostrar tal aseveración, vamos a crear un pequeño script. Doble click en MiPrimerScript:


var miTextura : Texture;

function Update() {
renderer.material.mainTexture = miTextura;
transform.Rotate(0,20,0);
}


Si todavía tenemos en Proyecto la textura que nos descargamos hace un par de lecciones, la arrastramos a miTextura. Si no, hacemos lo propio con cualquier textura no uniforme (para que se note el efecto de la rotación de la esfera) que tengamos a mano. Le damos al play.

Pensemos en las enormes posibilidades que nos abre esta clase, que nos permite convertir en textura o plasmar sobre cualquier superficie algo que está siendo grabado en ese momento en otro lugar (esto nos sirve tanto para implementar el contenido de una cámara de seguridad como para elaborar todo tipo de espejos o superficies reflectantes.)

VARIABLES:

width:

var width : int


La anchura de la textura renderizada en píxeles. A diferencia de Texture.width, esta variable no es de sólo lectura, y permite establecer un valor para cambiar la anchura.


height:

var height : int


La altura de la textura renderizada en píxeles. Le es de aplicación lo dicho para width.

POSTED BY UnityScripts
DISCUSSION 1 Comment
Con la tecnología de Blogger.