Editing PVR
Jump to navigation
Jump to search
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
[[Category:Software]]<noinclude>[[Category:Main]]</noinclude> | [[Category:Software]]<noinclude>[[Category:Main]]</noinclude> | ||
<div style="color: #ffffff; background-color: #505652; border: 1px solid #808000; padding: 5px; {{box-shadow|4px|4px|8px|#b0b090}}"> | <div style="color: #ffffff; background-color: #505652; border: 1px solid #808000; padding: 5px; {{box-shadow|4px|4px|8px|#b0b090}}"> | ||
Line 7: | Line 5: | ||
</div> | </div> | ||
PowerVR is a division of Imagination Technologies (formerly VideoLogic) that develops hardware and software for 2D and 3D rendering, and more. | PowerVR is a division of Imagination Technologies (formerly VideoLogic) that develops hardware and software for 2D and 3D rendering, and more. | ||
== Features == | == Features == | ||
*PVRTC supports both opaque (RGB) and translucent (RGBA) textures (unlike other formats such as S3TC that require a dedicated, larger form to support full alpha channels). | *PVRTC supports both opaque (RGB) and translucent (RGBA) textures (unlike other formats such as S3TC that require a dedicated, larger form to support full alpha channels). | ||
Line 17: | Line 12: | ||
== File format == | == File format == | ||
The PVR (.pvr) format (Sony uses a custom header) consists of: | |||
The PVR (.pvr) format ( | |||
=== Header === | === Header === | ||
Line 54: | Line 40: | ||
| 0x14 || 0x04 || 00 00 00 00 || 0 || '''Channel Type:''' | | 0x14 || 0x04 || 00 00 00 00 || 0 || '''Channel Type:''' | ||
|- | |- | ||
| 0x18 || | | 0x18 || 0x08 || 00 01 00 00 || 256 || '''Height:''' | ||
|- | |- | ||
| 0x1C || 0x04 || 00 01 00 00 || 256 || '''Width:''' | | 0x1C || 0x04 || 00 01 00 00 || 256 || '''Width:''' | ||
|- | |- | ||
| 0x20 || 0x04 || 01 00 00 00 || 1 || '''Depth:''' | | 0x20 || 0x04 || 01 00 00 00 || 1 || '''Depth:''' | ||
|- | |- | ||
| 0x24 || 0x04 || 01 00 00 00 || 1 || '''Num. Surfaces:''' | | 0x24 || 0x04 || 01 00 00 00 || 1 || '''Num. Surfaces:''' | ||
|- | |- | ||
| 0x28 || 0x04 || 01 00 00 00 || 1 || '''Num. Faces:''' | | 0x28 || 0x04 || 01 00 00 00 || 1 || '''Num. Faces:''' | ||
|- | |- | ||
| 0x2C | | 0x2C || 0x04 || 00 00 00 00 || 0 || '''Meta Data Size:''' | ||
|- | |- | ||
|} | |} | ||
==== Pixel Format ==== | ==== Pixel Format ==== | ||
<pre> | |||
If the most significant 4 bytes contain a value, the full 8 bytes are used to determine the pixel format. | |||
The least significant 4 bytes contain the channel order, each byte containing a single character, or a null character | |||
if there are fewer than four channels, e.g., {‘r’, ‘g’, ‘b’, ‘a’} or {‘r’, ‘g’, ‘b’, ‘\0’}. | |||
The most significant 4 bytes state the bit rate for each channel in the same order, each byte containing a single 8bit unsigned integer value, | |||
or zero if there are fewer than four channels, e.g., {8, 8, 8, 8} or {5, 6, 5, 0}. | |||
</pre> | |||
<pre> | |||
Where the most significant 4 bytes have been set to ‘0’ and the least significant 4 bytes will contain a 32bit unsigned integer value identifying the pixel format | Where the most significant 4 bytes have been set to ‘0’ and the least significant 4 bytes will contain a 32bit unsigned integer value identifying the pixel format | ||
</pre> | |||
{| class="wikitable" style="text-align: center;" | {| class="wikitable" style="text-align: center;" | ||
Line 200: | Line 187: | ||
==== Channel Type ==== | ==== Channel Type ==== | ||
<pre> | |||
the data type of the colour channels within the texture data. | the data type of the colour channels within the texture data. | ||
</pre> | |||
{| class="wikitable" style="text-align: center;" | {| class="wikitable" style="text-align: center;" | ||
Line 235: | Line 225: | ||
|} | |} | ||
=== Meta Data Format | ==== Meta Data Format ==== | ||
... | |||
=== Texture compression === | |||
=== Texture | |||
*http://web.onetel.net.uk/~simonnihal/assorted3d/fenney03texcomp.pdf PVRTC algorithm: Texture Compression using Low-Frequency Signal Modulation | *http://web.onetel.net.uk/~simonnihal/assorted3d/fenney03texcomp.pdf PVRTC algorithm: Texture Compression using Low-Frequency Signal Modulation | ||
*http://blog.imgtec.com/powervr/understanding-powervr-series5xt-pvrtc-pvrtc2-and-texture-compression-part-6 overview | *http://blog.imgtec.com/powervr/understanding-powervr-series5xt-pvrtc-pvrtc2-and-texture-compression-part-6 overview | ||