97. CLASE TEXTURE2D (I)
Es esta una clase para manejo de texturas. Se suele usar para crear texturas "al vuelo" (en tiempo de ejecución) o para modificar los assets de texturas existentes.
VARIABLES:
mipmapCount:
var mipmapCount : int
Variable de sólo lectura que indica cuántos niveles de mipmap hay en la textura.
El valor retornado incluye el nivel base también, razón por la cual esta variable siempre vale 1 o más.
El conteo de mipmaps se usa en caso de que utilicemos las funciones GetPixels o SetPixels para obtener o modificar respectibamente los diferentes niveles de mipmal. Por ejemplo, podemos querer cambiar una textura de tal manera que cada nivel de mipmap se tinte de un color diferente, y así en el juego veríamos cuantos niveles de mipmap son en realidad visibles.
textureFormat:
var format : TextureFormat
El formato de los datos de los píxeles en la textura (sólo lectura).
FUNCIONES:
Texture2D:
static function Texture2D (width : int, height : int) : Texture2D
Crea una nueva textura vacía. Esta tendrá un tamaño dado por anchura y altura, con un formato de textura ARGV32 y con mipmaps.
Normalmente querremos poner los colores de la textura después de crearla, usando las funciones SetPixel, SetPixels y Apply.
function Start () {
var nuevaTextura = new Texture2D (128, 128);
renderer.material.mainTexture = nuevaTextura;
}
Este sería el ejemplo básico. Creamos una nueva textura de dimensiones 128 X 128 y se la asignamos como principal textura al gameobject al que le vinculemos el script. En este caso eliminamos MiPrimerScript del gameobject PortaScripts y se lo vinculamos a la Esfera. Observaremos, si la tenemos seleccionada al darle al play, que ésta importa a vuelo la nueva textura, que por defecto es de color negro.
static function Texture2D (width : int, height : int, format : TextureFormat, mipmap : boolean) : Texture2D
Este segundo prototipo se diferencia del primero en que se le pasa a la función como parámetro un determinado formato para la textura y a la vez se indica si se crea con o sin mipmaps.
SetPixel:
function SetPixel (x : int, y : int, color : Color) : void
Función que nos permite indicar el color de los píxeles en las coordenadas que le pasamos. No obstante, para actualizar en realidad el color de dichos píxeles en la tarjeta gráfica del usuario, deberemos acto seguido llamar a la función Apply.
Dado que esta manera de actualizar las texturas consume bastantes recursos, así que sería deseable que cambiáramos tantos píxeles como fuera posible entre cada llamada a la función Apply.
Si tenemos pensado regenerar constantemente texturas en tiempo de ejecución, puede ser más rápido generar un array de colores de píxeles y asignarlos todos a la vez con la función SetPixels.
Esta función, por último, trabaja sólo con los formatos ARGB32, RGB24 y Alpha8. Para el resto de formatos SetPixel es ignorada.
Vamos a verlo con un ejemplo. Previamente sería interesante colocar la cámara en las siguientes coordenadas: position(0,1.5,-6), rotation(10,0,0). Así tendremos una mejor visión de lo que le acontecerá a la esfera en el próximo script. Editamos MiPrimerScript ahora:
function Start () {
var nuevaTextura = new Texture2D(128, 128);
renderer.material.mainTexture = nuevaTextura;
var mitadH : int = nuevaTextura.width/2;
var mitadV : int = nuevaTextura.height/2;
var unColor : Color = Color.green;
for (var x : int = 0; x < mitadH; x++){
for (var y : int = 0; y < mitadV; y++){
nuevaTextura.SetPixel(x, y, unColor);
}
}
nuevaTextura.Apply();
}
Vamos por partes. Creamos primero una nueva textura y se la pasamos al gameobject al que tenemos vinculado el script. Almacenamos acto seguido en sendos integers la mitad de la altura y la anchura de la nueva textura. De esta manera, en un bucle for podemos asignar un determinado color a esa mitad. Recordemos en todo caso dejar la función Apply fuera del bucle, a los efectos de no sobrecargar el pc.
GetPixel:
function GetPixel (x : int, y : int) : Color
Devuelve el color del píxel que se halla en las coordenadas dadas. Si éstas están fuera de los bordes (más grandes de la anchura/altura o más pequeñas que cero) serán fijadas o repetidas en base al wrapmode de la textura
Si quieres leer un bloque amplio de píxeles de una textura, será más rápido usar GetPixels, la cual devuelve un bloque entero de colores de píxeles.
La textura debe tener activa la variable Is Readable en import settings, ya que de lo contrario fallará la función.
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)
ENTRADAS
-
▼
2011
(127)
-
▼
octubre
(121)
- 116. ESTRUCTURA RAYCASTHIT
- 115. ESTRUCTURA RAY
- 114. CLASE RANDOM
- 113. ESTRUCTURA QUATERNION
- 112. CLASE PHYSICS (y II)
- 111. CLASE PHYSICS (I)
- 110. ESTRUCTURA MATHF (y III)
- 109. ESTRUCTURA MATHF (II)
- 108. ESTRUCTURA MATHF (I)
- 107. CLASE LIGHTMAPSETTINGS
- 106. CLASE GIZMOS
- 105. CLASE EVENT (y III)
- 104. CLASE EVENT (II)
- 107. CLASE EVENT (I)
- 106. CLASE DEBUG
- 105. CLASE CONTROLLERCOLLIDERHIT
- 104. CLASE COLLISION
- 103. ESTRUCTURA BOUNDS
- 102. CLASE INPUT (y IV)
- 101. CLASE INPUT (III)
- 100. CLASE INPUT (II)
- 99. CLASE INPUT (I)
- 98. CLASE TEXTURE2D (y II)
- 97. CLASE TEXTURE2D (I)
- 96. CLASE TEXTURE
- 95. CLASE GUILAYOUT (y IV)
- 94. CLASE GUILAYOUT (III)
- 93. CLASE GUILAYOUT (II)
- 92. CLASE GUILAYOUT (I)
- 91. CLASE GUI (y VIII)
- 90. CLASE GUI ( VII)
- 89. CLASE GUI (VI)
- 88. CLASE GUI (V)
- 87. CLASE GUI (IV)
- 86. CLASE GUI (III)
- 85. CLASE GUI ( II)
- 84. CLASE GUI (I)
- 83. CLASE GUITEXTURE
- 82. CLASE GUITEXT (y II)
- 81. CLASE GUITEXT (I)
- 80. CLASE GUIELEMENT
- 79. CLASE COMPONENT
- 78. CLASE PHYSICMATERIAL
- 77. CLASE SHADER
- 76. CLASE GAMEOBJECT (y VI)
- 75. CLASE GAMEOBJECT (V)
- 74. CLASE GAMEOBJECT (IV)
- 73. CLASE GAMEOBJECT (III)
- 72. CLASE GAMEOBJECT (II)
- 71. CLASE GAMEOBJECT (I)
- 70. CLASE MESH (y II)
- 69. CLASE MESH (I)
- 68. CLASE PARTICLEEMITTER (y III)
- 67. CLASE PARTICLEEMITTER (II)
- 66. CLASE PARTICLEEMITTER (I)
- 65. CLASE RENDERTEXTURE (y III)
- 64. CLASE RENDERTEXTURE (II)
- 63. CLASE RENDERTEXTURE (I)
- 62. CLASE CUBEMAP
- 61. CLASE MATERIAL (y III)
- 60. CLASE MATERIAL (II)
- 59. CLASE MATERIAL (I)
- 58. CLASE LIGHT (y III)
- 57. CLASE LIGHT (II)
- 56. CLASE LIGHT (I)
- 55. CLASE CAMERA (VI)
- 54. CLASE CAMERA (V)
- 53. CLASE CAMERA (IV)
- 52. CLASE CAMERA (III)
- 51. CLASE CAMERA (II)
- 50. CLASE CAMERA (I)
- 49. CLASE MONOBEHAVIOUR (y IX)
- 48. CLASE MONOBEHAVIOUR (VIII)
- 47. CLASE MONOBEHAVIOUR (VII)
- 46. CLASE MONOBEHAVIOUR (VI)
- 45. CLASE MONOBEHAVIOUR (V)
- 44. CLASE MONOBEHAVIOUR (IV)
- 43. CLASE MONOBEHAVIOUR (III)
- 42. CLASE MONOBEHAVIOUR (II)
- 41. CLASE MONOBEHAVIOUR (I)
- 40. CLASE BEHAVIOUR
- 39. CLASE CHARACTERJOINT
- 38. CLASE SPRINGJOINT
- 37. CLASE HINGEJOINT (y II)
- 36. CLASE HINGEJOINT (I)
- 35. CLASE JOINT (y II)
- 34. CLASE JOINT (I)
- 33. CLASE MESHFILTER
- 32. CLASE RENDERER (y II)
- 31. CLASE RENDERER (I)
- 30. CLASE CHARACTERCONTROLLER (y III)
- 29. CLASE CHARACTERCONTROLLER (II)
- 28. CLASE CHARACTERCONTROLLER (I)
- 27. CLASE MESHCOLLIDER
- 26. CLASE COLLIDER (II)
- 25. CLASE COLLIDER (I)
- 24. CLASE RIGIDBODY (y VIII)
- 23. CLASE RIGIDBODY (VII)
- 22. CLASE RIGIDBODY (VI)
- 21. CLASE RIGIDBODY (V)
-
▼
octubre
(121)