Texture pixels: Difference between revisions
(Created page with "__NOTOC__====Pixels==== ----------------- '''*''' MTA refers to the raw information that a texture contains as 'pixels'. '''*''' Pixels can be retrieved from any texture...") |
No edit summary |
||
Line 12: | Line 12: | ||
*'''dimensions''' (width and height) which is retrieved by using the function [[dxGetPixelsSize]] | *'''dimensions''' (width and height) which is retrieved by using the function [[dxGetPixelsSize]] | ||
*'''format''' (plain,jpeg,png) which is retrieved by using the function [[dxGetPixelsFormat]] | *'''format''' (plain,jpeg,png) which is retrieved by using the function [[dxGetPixelsFormat]] | ||
**''plain'' - Fastest and simplest - It's the format of the pixels returned by [[dxGetTexturePixels]] and the only one that can be used with [[dxSetTexturePixels]], [[dxGetPixelColor]] and [[dxSetPixelColor]]. But it also uses a lot of bytes, so internet transfers will be longer. | **''plain'' - Fastest and simplest - It's the format of the pixels returned by [[dxGetTexturePixels]] and the only one that can be used with [[dxSetTexturePixels]], [[dxGetPixelColor]] and [[dxSetPixelColor]]. But it also uses a lot of bytes, so internet transfers will be longer. Also can't be read by Photoshop or browsers etc. | ||
**''png'' - A few less bytes, still quite big for net transfers. Can be saved to a file and read by Photoshop and browsers etc. | **''png'' - A few less bytes, still quite big for net transfers. Can be saved to a file and read by Photoshop and browsers etc. | ||
**''jpeg'' - A lot less bytes, so best for net transfers. Can be saved to a file and read by Photoshop and browsers etc. | **''jpeg'' - A lot less bytes, so best for net transfers. Can be saved to a file and read by Photoshop and browsers etc. |
Revision as of 22:41, 24 January 2012
Pixels
* MTA refers to the raw information that a texture contains as 'pixels'.
* Pixels can be retrieved from any texture type including render targets and screen sources by using the function dxGetTexturePixels.
* Pixels are just a string to Lua, so they can be saved to a file or even sent over the 'internet'.
Pixels properties
Pixels have two properties:
- dimensions (width and height) which is retrieved by using the function dxGetPixelsSize
- format (plain,jpeg,png) which is retrieved by using the function dxGetPixelsFormat
- plain - Fastest and simplest - It's the format of the pixels returned by dxGetTexturePixels and the only one that can be used with dxSetTexturePixels, dxGetPixelColor and dxSetPixelColor. But it also uses a lot of bytes, so internet transfers will be longer. Also can't be read by Photoshop or browsers etc.
- png - A few less bytes, still quite big for net transfers. Can be saved to a file and read by Photoshop and browsers etc.
- jpeg - A lot less bytes, so best for net transfers. Can be saved to a file and read by Photoshop and browsers etc.
To convert between the 3 different formats, use the function dxConvertPixels
Pixels more
Pixels can also be loaded from any png/jpeg file just like this:
fh = fileOpen( "hello.jpg" ) pixels = fileRead(fh,fileGetSize ( fh )) fileClose(fh)
Pixels can be used to create textures just like this:
myNewTexture = dxCreateTexture(pixels)
Pixels performance
Getting/setting pixels from textures is not quick and not something you want to be doing every frame (in onClientRender for example). Setting pixels to a render target is especially slow. Pixels are ideal however for transferring composite images built on a render target into a normal texture for later use. For example, making a custom radar map.