Professional Documents
Culture Documents
Real Racing 3 Car Livery Editing PDF
Real Racing 3 Car Livery Editing PDF
BASIC KNOWLEDGE
So you want a distinctive livery that even the RR3 latest customization tool can’t provide. Here’s the how-to of how you can achieve
that.
For I have in my possession three types of device using three types of GPU that run Real Racing 3, so only these there format of RR3
textures are known by me (I don’t have a Tegra device). Each of the GPU uses its own image compression technology and file
container.
After RR3 ver. 1.3.5, the image containers used for RR3 Car Liveries are archieved. So it can’t 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 here’s the renaming scheme:
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.
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. Converting unarchieved livery to editable format.
Open Texture Packer, select Pro Trial if you don’t wish to buy it as per now, select PVR Viewer, and pick the extracted .pvr
from previous step. Choose File, Save As, select .PNG format, and select the output folder. By now we should have an image
file ready for editing.
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 image’s 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).
Open the output folder, copy the published “.PVR” file to the original location in your device, use the renaming scheme as
pointed previously and you’re done, go open the RR3 for testing.
MALI DEVICES
I haven’t found a single documented method of doing texture editing for native Mali device, here’s 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 (it’s 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 don’t 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.
After finish with editing the texture file, flatten the image’s layer (if you use layers) and finally save the image (still in .PNG
format).
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 won’t 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 file’s header to the new one. Here’s how we can do it.
Open both file using Hex Editor tool. Select the new “.dds” file, select the first 148byte of file’s data (block 00-93), and
delete it.
Now select the original “.dds” file and select the first 128byte of file’s data (block 00-7F) and copy it.
“Paste-insert” the data into the new “.dds” file from offset 00000000. Save.
That’s 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 haven’t completely done the research on Adreno texture, It probably near identical the steps on Mali
devices except for different extraction and compressing tools required.
Best Regards,
Kiotu