Professional Documents
Culture Documents
Image/Texture Compression
PVRTC4
ETC1
ATITC
Image/Texture Container
.PVR
.ETC.DDS
.ATC.DDS
After RR3 ver. 1.3.5, the image containers used for RR3 Car Liveries are archieved. So it cant be directly processed for extracting. We
know it was compressed simply the naming behind those containers. e.g. .PVR.Z, .ETC.DDS.Z, .ATC.DDS.Z.
With different image compression and container used, it can be a headache for some that just want to simply use a ready made
liveries done by others. But the good news is, the textures used on the three devices type are interchangeable. For example, you can
use PVR texture in both Adreno and Mali, Mali texture can be read by Adreno devices, and so on (go experiment yourself). So if you
feel tired of editing your own textures, you can go download those liveries made by others and use it for your own device albeit the
texture type of origin device.
The key to using interchangeable file format is simple, by file renaming.
For example: most of ready made liveries are done in PVR format, I downloaded a livery for BMW Z4 with filename:
2012_audi_r8_lms_ext_audi_sport_black.PVR. So just backup your original file, simply by adding another file extension, for example
.bak, copy the downloaded file to the original livery folder on your device, and rename it. Files located in:
Android
: .depot/vehicles/nameofcar/livery/
iOS
: RealRacing3.app/res/vehicles/nameofcar/livery/
And heres the renaming scheme:
GPU
PowerVR
Original filename
2012_audi_r8_lms_ext_audi_sport_black.ptc.pvr.z
Mali
Adreno
2012_audi_r8_lms_ext_audi_sport_black.etc.dds.z
2012_audi_r8_lms_ext_audi_sport_black.atc.dds.z
And as you can see, RR3 will still read the unarchieved texture despite the difference in filename extension. With other types of
container you can experiment with the re-naming file within the same scheme.
BASIC STEPS OF EDITING TEXTURES FILES
So you decided that you want to make your own livery with your own resource files, heres the steps:
1. Un-Archieve the livery texture.
2. Converting unarchieved livery to editable format.
3. Edit the livery.
4. Convert back to format readable by RR3.
Those are the basic steps required, since the tools used are varied from one GPU to another, the specific steps will be described per
GPU type.
POWERVR DEVICES
Tools required:
QuickBMS, http://aluigi.altervista.org/quickbms.htm
Main tools for un-archieving the texture files.
RR3.bms, script to be used with QuickBMS, this is packed within RR3 tools in:
http://forum.xentax.com/viewtopic.php?f=16&t=10300&sid=21910eb2827dd41618f5c57d1b6d07cd
Texture Packer: http://www.codeandweb.com/texturepacker/download
Tool for converting and repacking the .pvr format
Image editing software, Photoshop, GIMP, or whatever your favorite.
Procedures:
1. Un-Archieve the livery texture.
Copy or pull the livery file(s) to your PC, put it in a distinct location for easy access.
Extract the RR3.bms downloaded from the specified link.
Open QuickBMS, select RR3.bms, select livery file (.pvr.z), select folder for extracting. Do note that you can select multiple
files for processing.
You will have then the livery file in .pvr format.
2.
3.
Edit the texture file as however you like. For easier editing, you can also extract the mask file provided in the parent folder
of the car livery, use this mask for filtering the selection.
After finish with editing the texture file, flatten the images layer (if you use layers), and we need to flip the image vertically.
In Photoshop, choose Image Image Rotation Flip canvas vertical. And finally save the image (still in .PNG format).
4.
Tab Output
o Texture Format, select PVR,
o Check PVR Premultification
o Image Format, select PVRTC4
Tab Geometry
o Max size, select 1024
Tab Layout
o Border Padding, select 0
o Shape Padding, select 0
Image ready to convert, select menu Publish
Fill in the name in .plist format, it will then produce both .plist, dan .PVR files, the .PVR file is what we are going
to use.
Open the output folder, copy the published .PVR file to the original location in your device, use the renaming scheme as
pointed previously and youre done, go open the RR3 for testing.
MALI DEVICES
I havent found a single documented method of doing texture editing for native Mali device, heres all the steps required based on
my research and tinkering.
Tools required:
QuickBMS, http://aluigi.altervista.org/quickbms.htm
Main tools for un-archieving the texture files.
RR3.bms and ddsetc2pkm.bms, script to be used with QuickBMS, this is packed into one archieve RR3 Tools in:
http://forum.xentax.com/viewtopic.php?f=16&t=10300&sid=21910eb2827dd41618f5c57d1b6d07cd
Texture Packer: http://www.codeandweb.com/texturepacker/download
Tool for converting and repacking the .pvr format
PVRTexTool from Imagination, download the PowerVR SDK:
http://www.imgtec.com/powervr/insider/powervr-pvrtextool.asp
Hex File Editor, I recommend using HxD (its free.. :D)
http://mh-nexus.de/en/hxd/
Image editing software, Photoshop, GIMP, or whatever your favorite.
Procedures:
1. Un-Archieve the livery texture.
Copy or pull the livery file(s) to your PC, put it in a distinct location for easy access.
Extract the RR3.bms downloaded from the specified link.
Open QuickBMS, select RR3.bms, select livery file (.etc.dds.z), select folder for extracting. Do note that you can select
multiple files for processing.
You will have then the livery file in .etc.dds format. Note this file location and whatever you do dont overwrite this file,
make backup if necessary as we need this file later on.
Different from step in PowerVR textures, you need to extract this etc.dds file once more to have a readable textures.
Open QuickBMS, select ddsetc2pkm.bms, select the extracted etc.dds file and select the output folder. You will then be
prompted for an action, you can select y for overwrite or a for append (if you are converting multiple files at the same
time). The end result will be a file with .PKM extension. This file can be converted to PNG.
2.
3.
Edit the texture file as however you like. For easier editing, you can also extract the mask file provided in the parent folder
of the car livery, use this mask for filtering the selection.
After finish with editing the texture file, flatten the images layer (if you use layers) and finally save the image (still in .PNG
format).
4.
If the correct setting is applied, the Data Offset size should automatically changed to 128 bytes, which is the correct header
size of .DDS container. Press OK, the original texture will be shown, select from the Surface Browser from the left tab, and
heres the result:
As you can see, we have 11 level of mipmaps. Mipmaps are used for decreasing the texture load on the GPU, for example
when we are viewing the 3D object from far view then the map used should be the less detailed one (small mipmap), and
vice versa.
Now we need to replace each of the mipmap level with the edited image from earlier step. Select each of the mipmap
levels, right click and select load file to surface, select the edited .PNG from previous step. Do this for all the 11 level. If
there is a warning about size miss-match just select ok to resize.
After all the mipmaps been replaced, select from button menu encode the current textures to a new format
Select the following Group/API: OpenGL ES2, ETC1, or OpenGL ES1, ETC1 if your device not supporting it.
Select encode and it will popup a new texture window, select save as, choose .dds format, and save in name other than the
original, for example I choose to name it test.dds.
Ok, so now we have the new texture file, right? No this file wont work with RR3, It took me hours to find out how make
this work, and after comparing the file with the original .DDS, it is very obvious (and simple actually) that the header of
ETC compression is different. So we need to copy the original files header to the new one. Heres how we can do it.
Open both file using Hex Editor tool. Select the new .dds file, select the first 148byte of files data (block 00-93), and
delete it.
Now select the original .dds file and select the first 128byte of files data (block 00-7F) and copy it.
Paste-insert the data into the new .dds file from offset 00000000. Save.
Thats it, the new .dds livery file is ready to be used. Copy it to the original folder on your device, and do the rename as
described earlier. Open RR3 and test it.
ADRENO DEVICES
Sorry, due to my lack of time, I havent completely done the research on Adreno texture, It probably near identical the steps on Mali
devices except for different extraction and compressing tools required.
So be a Racer, and an Artist Happy Racing Guys (and Gals).
Best Regards,
Kiotu