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.
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.
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.
Con la tecnología de Blogger.
BUSCADOR
PÁSATE POR EL FORO
API DE UNITY
TEMAS
- 00_INTRODUCCION (3)
- 01_CLASE OBJECT (3)
- 02_ESTRUCTURA VECTOR3 (4)
- 03_CLASE TRANSFORM (7)
- 04_CLASE RIGIDBODY (8)
- 05_CLASE COLLIDER (2)
- 06_CLASE MESHCOLLIDER (1)
- 07_CLASE CHARACTERCONTROLLER (3)
- 08_CLASE RENDERER (2)
- 09_CLASE MESHFILTER (1)
- 10_CLASE JOINT (2)
- 11_CLASE HINGEJOINT (2)
- 12_CLASE SPRINGJOINT (1)
- 13_CLASE CHARACTERJOINT (1)
- 14_CLASE BEHAVIOUR (1)
- 15_CLASE MONOBEHAVIOUR (9)
- 16_CLASE CAMERA (6)
- 17_CLASE LIGHT (3)
- 18_CLASE MATERIAL (3)
- 19_CLASE CUBEMAP (1)
- 20_CLASE RENDERTEXTURE (3)
- 21_CLASE PARTICLEEMITTER (3)
- 22_CLASE MESH (2)
- 23_CLASE GAMEOBJECT (6)
- 24_CLASE SHADER (1)
- 25_CLASE PHYSICMATERIAL (1)
- 26_CLASE COMPONENT (1)
- 27_CLASE GUIELEMENT (1)
- 28_CLASE GUITEXT (2)
- 29_CLASE GUITEXTURE (1)
- 30_CLASE GUI (8)
- 31_CLASE GUILAYOUT (4)
- 32_CLASE TEXTURE (1)
- 33_CLASE TEXTURE2D (2)
- 34_CLASE INPUT (4)
- 35_ESTRUCTURA BOUNDS (1)
- 36_CLASE COLLISION (1)
- 37_CLASE CONTROLLERCOLLIDERHIT (1)
- 38_CLASE DEBUG (1)
- 39_CLASE EVENT (3)
- 40_CLASE GIZMOS (1)
- 41_CLASE LIGHTMAPSETTINGS (1)
- 42_ESTRUCTURA MATHF (3)
- 43_CLASE PHYSICS (2)
- 44_ESTRUCTURA QUATERNION (1)
- 45_CLASE RANDOM (1)
- 46_ESTRUCTURA RAY (1)
- 47_ESTRUCTURA RAYCASTHIT (1)
- 48_ESTRUCTURA RECT (1)
- 49_CLASE RENDERSETTINGS (1)
- 50_CLASE SCREEN (1)
- 51_CLASE TIME (1)
- 52. CLASE YIELDINSTRUCTION (1)
- MONOGRAFICOS (2)
