58. CLASE LIGHT (y III)










range:

var range : float


El diámetro del rango o haz de luz, en luces de tipo spot y point.


spotAngle:

var spotAngle : float


En ángulo en grados de las luces de tipo spotlight. Usado originalmente en luces de tipo spot, altera el tamaño del foco de la galleta de luz en luces de tipo direccional. No tiene efectos para luces de tipo point.


cookie:

var cookie : Texture


Variable de tipo textura que establece la textura de la galleta proyectada por la luz.


flare:

var flare : Flare


Selecciona un halo para la luz. Este ha de ser previamente asignado en el inspector.


renderMode:

var renderMode : LightRenderMode


Establece cómo renderizar la luz, de entre las siguientes opciones que la enumeración LightRenderMode permite:

Auto: Elige el modo de renderizado automáticamente.
ForcePixel: Fuerza a la luz a ser una luz de píxeles.
ForceVertex: Fuerza a la luz a ser una luz de vértices.


cullingMask:

var cullingMask : int


Es usado para separar luces de la escena de manera selectiva. Si el layerMask del gameobject y el cullingMask de la luz son cero, entonces el objeto no será iluminado con esta luz.

POSTED BY UnityScripts
POSTED IN
DISCUSSION 0 Comments

57. CLASE LIGHT (II)










color:

Var color : Color


El color de la luz. Para modificar la intensidad de la luz podemos cambiar el color de la luz. Por ejemplo, una luz de color negro es lo mismo que no tener ninguna luz.


intensity:

var intensity : float


La intensidad de la luz es multiplicada con el color de la luz. El valor puede estar entre 0 y 8. Esto nos permite crear luces muy brillantes.

Realicemos un pequeño ejemplo. Previamente eliminamos el script vinculado a PortaScripts y volvemos a habilitar (si lo habíamos desmarcado) el checkbox de nuestra luz principal.

Doble click en MiPrimer Scipt. Tecleamos:


function Update(){

var opaco : float = 0.0;
var brillante : float = 8.0;

light.color = Color.green;
light.intensity = Random.Range(opaco, brillante);
}


Guardamos y vinculamos el script a nuestra Luz. Al darle al play deberíamos asistir a una escena iluminada por una parpadeante luz de neón. Meramente lo que hemos hecho es utilizar una función de la clase Random (de próximo estudio)de nombre Range, que genera un número aleatorio entre un máximo y un mínimo. Dado que la intensidad de la luz va de 0 a 8, le damos ese amplio margen de actuación a Random.Range para que cada frame varíe la intensidad de la luz de manera aleatoria entre 0 y 8. Ello, unido al color verde típicamente apocalíptico, nos da este bonito efecto.


shadows:

var shadows : LightShadows


Indica cómo proyecta sombras la luz. Esta variable es de tipo LightShadows, que es una enumeración que permite los siguientes valores:

None: No proyecta sombras (por defecto)
Hard: Proyecta sombras duras (sin filtro de sombras)
Soft: Proyecta sombras suaves (con filtro)

Pongamos un ejemplo. Doble click sobre MiPrimerScript. Tecleamos:


function Start(){
light.color = Color.yellow;
light.intensity = 3.0;
light.shadows = LightShadows.Hard;
}


Observemos las sombras, y comprenderemos por qué se les denomina como duras:


Y si usamos el valor LightShadows.Soft:



shadowStrenght:

var shadowStrength : float


Establece/indica la fuerza de las sombras.


shadowBias:

var shadowBias : float

Vendría a ser la perpendicular de la sombra respecto del objeto que la emite.


shadowSoftness:

var shadowSoftness : float


Suavidad de las sombras de las luces direccionales.


shadowSoftnessFade:

var shadowSoftnessFade : float


Velocidad de fadeout de las sombras de las luces direccionales.

POSTED BY UnityScripts
POSTED IN
DISCUSSION 0 Comments

56. CLASE LIGHT (I)




Esta clase se usa para controlar todos los aspectos de las luces en Unity. Las propiedades que aquí veremos son exactamente las mismas que los valores que podemos encontrarnos en el inspector.

Normalmente las luces son creadas en el editor, pero a veces puede ser que queramos crear o manipular una luz desde un script.

Podemos, para tener una primera idea de lo que podemos hacer con esta clase, aplicar el ejemplo que nos viene en el manual de referencia. Antes de nada, modifiquemos el escenario para los ejemplos que vendrán:

1.- Eliminamos en Jerarquía Camara 2.
2.- Eliminamos el script vinculado a PortaScripts.

Doble click en MiPrimerScript. Tecleamos:


function Start () {

var unaNuevaLuz : GameObject = new GameObject("La luz");
unaNuevaLuz.AddComponent(Light);
unaNuevaLuz.light.color = Color.blue;
unaNuevaLuz.transform.position = Vector3(0, 5, 0);
}


Salvamos y arrastramos el script a PortaScripts. Pulsamos play. Debería aparecer una nueva luz en la escena, tal que así:



La dinámica del script es sencilla: Creamos primero un gameobject (que sería el equivalente a crear en el menú de la interface de Unity un gameobject vacío. A dicho gameobject vacío (que damos en llamar "la luz")le añadimos un componente de tipo luz (por defecto se crea una luz de tipo Point). Le damos por último a esa luz recién creada un color y una ubicación en la escena.


VARIABLES:

type:

var type : LightType


El tipo de luz. Puede ser

LightType.Spot: Consiste en una luz tipo tipo foco.
LightType.Directional: Una luz direccional, parecida a la del sol.
LightType.Point: Un punto de luz.

Para mostrar la diferencia entre las tres, he apagado la luz principal de la escena deshabilitando su checkbox, y he rediseñado el script anterior, y a su vez he hecho las pertinentes probaturas con los tres tipos de luz.


function Start () {

var unaNuevaLuz : GameObject = new GameObject("La luz");
unaNuevaLuz.AddComponent(Light);
unaNuevaLuz.transform.position = Vector3(0, 3, 0);
unaNuevaLuz.light.type = LightType.Spot;
}


Aquí os dejo las capturas de pantalla de este script con los tres tipos de luz. Primero con luz tipo Spot:


Luz directional:


Y luz tipo point:

POSTED BY UnityScripts
POSTED IN
DISCUSSION 0 Comments
Con la tecnología de Blogger.