TUTORIAL on shrinking GTA DFF's file-sizes and optimizing their polycounts (better for slower PC's, low poly = less FPS lag and GPU load). I noticed there aint much good guides like that out here, while people are asking how to but only get generic answers like, ''Reduce poly count'', well here is a complete step-by-step.
Note: in this whole tutorial I use vehicle atomics (like ''chassis'') to explain, but you can also use the main de-polycounter method for any kind of .dff like skin, gun, map part mods. Just likewise, start with the atomic (material in list to left) that has the greatest amount of polycount (vertexes) and work down to atomics with less poly, to see the big size effect quicker.
1) use 3DS Max
2) import the DFF with 3DS gta plugin (like Kams GTA scripts)
3) from the atomic list, start first selecting the chassis (named similarly) as that usually covers most of the model polygons, then unfold it so the dummy of chassis reveals its components, make sure then to select the real chassis (on the view in right tab it will no longer indicate its a dummy if you do it right) and click in 3DS the square-window icon and find the toolset you wanna use to reduce the poly
4) From the last step I advise you use ''MultiRes'' (other stuff that I don't prefer much you can use is like ''ProOptimizer 3DS tool)
5) so now you got the Chassis atomic selected after importing that DFF and you selected through dummys to actual chassis (in this case, the 3DS viewport will show a major part of the model ''lines'' light up and select, as I said chassis covers a big part of whole model, obviously)
6) Start reducing polys. In the opened MultiRes tool, first click ''generate'' and choose a percentage to keep from the original vertexes/polys, like you can reduce it to for example 70%, you must hit Enter after customizing this value, then after hitting Enter you click ''generate''. You will see the model image (3DS viewport) change as the polycount is being reduced.
Now you gotta CTRL + A or Select All atomics from the list on the left, then use the 3DS Max GTA DFF exporter of your choice (like also Kams Scripts.. or another) to export the new DFF with your updated polycount/vertexes.
The tricky part: how far you can go with reducing polys depends on the model itself, with some mods it can easily break the looks and bring down a HQ car to low quality SD. You will need to repeat this process many times (export DFF and test in GTA or MTA after changing the value of % vertexes reduce in MultiRes) until you find the perfect polys count to bring it down with.
I personally use MTA:SA with a bind on test server '' /bind 1 restart carmod '' to restart and reload the car without closing SA, so I can update the polys, > export new DFF (into carmod resource folder in MTA server location) and test new value if it looks differently, in less than 20 seconds. If you have to use GTA SA you need to restart GTA each time to load the new .dff mod into GTA3.IMG which takes much more time up in testing the new looks. The 3DS viewport image does NOT accurately represent the new quality, you really gotta look at the new DFF file in GTA/MTA itself. You also cannot create a 3DS render for GTA DFF's preview.
Even more so, with certain models you will find graphical glitches when you really go too far (eventually with any model) which means there'll be gaps in your car/vehicle mod. A short term fix for this is not only ''generating'' in MultiRes with a reduced % or vertex count, but ALSO selecting ''VERTEX MERGING'' checkbox underneath it, before hitting Enter + Generate and exporting.
Vertex merging tries to cover up for these gaps by connecting 2 mesh parts that otherwise would leave an big open gap because they were shrinked. This will however have a downside too, do it too intensively and your mod textures will become blocky (like say bye to smooth corners and sleek, awesome looking surfaces) and after all if you rely too much on it, a point will come vertex merging cannot even handle it anymore (that gaps and holes in the model will anyhow appear - like say ur trying to convert a 60,000 poly car into a 2000 poly car - common sense tells this simply will not work and the possibilites arent infinite - there WILL be a breaking point.) however this breaking point can be further pushed away by ALSO enabling ''vertex merging - > Within mesh and Keep boundaries. But as before, even after enabling this, the whole Vertex merging ability plus these 2 other settings will have a breaking point so dude I wish you luck converting a 12 MB vehicle mod to your desired ''300kb'', that aint gonna cut the possibilities. You will end up with a cheesecake model despite the improvements such as Vertex merge.
NOTE: I only covered about the ''chassis'' atomic, but just as its a major model component - you can recude polys of any non-dummy material (atomic) which most likely will be stuff such as seats, interior, wheels (if custom and not SA wheels), bonnets, trunks, custom tuning parts integrated to model, ETCETERA..
You can also choose to cut less of the chassis if you can already get a fair enough size reduction you're lookin' for, by only shrinking polys of the other parts and atomics that are NOT the chassis itself. However note that if this reduces size fairly, the chassis can still make up the bigger part where DFF size comes from, and not optimizing the chassis can after all let the mod lag/load the PC you run the game on, the same as original mod, eventho size was reduced.
Have any questions ask me!
UPDATE: LOWER POLY EVEN MORE BESIDES USING ABOVE TUTO FOR 3DS ONLY; AND IMPROVE OUTCOME!
Also for more advancedness, you can even shrink polys down to 30% of best reachable result in 3DS Max by a not so easy repetetive process after the final dff you get from 3DS, to do this you need 'RWConv'
!! NOTE! Once you get this tool it includes Z2G dff fixer inside the download zip, also standarise runnin each .dff file through it (drag and drop into dir /Z2G > z2g_dffconverter) to pre-optimize it and make any ''Locked'' model in 3DS
also compatible to importing. It also improves prognosis for the following guide to squeeze max poly out with THIS;
To proceed through this advanced path, you will need to read README.txt included with that download of RWconv/dffconv.
Anyways ill paste it here too, as you may want a foretaste to know how exactly that is gonna work and how relatively easy this next step besides 3DS will be: (altho its an advanced way to 'fool' Renderware into regenerating
already optimized/downsized polys in a better standard, even feasible to repeat 3DS process all over again to squeeze out the MAX..
Well here is that README.txt content:
dffconv.exe -c -m -v GTASA -d input.dff output.dff (to be ran on files included in the download provided earlier of RWconv/dffconv
This is README to use combined with 3DS Max to further shrink Polycount of models to the max.
Note this is only RWCONV version usable to perform this job, newer versions by The_GTA wont intepret and re-build the poly.
1) take End result of 3DS Max best reducepoly dff; run commandline above on it; its dffconv.exe -c -m -v GTASA -d input.dff output.dff
(make sure you copy a cmd.exe to the folder u extract this RWConv files into and run it like that)
Then u will see output fuzz in cmd, and end with an output DFF which can be about same as input straight from 3DS max, or a lower size.
HOWEVER here comes the trick, all polys are restored to 'optimal' count as RWconv intepreted Renderware data, so it may be like one atomic/part is back to 2000 poly
while you put it down to 400 in 3DS Max! These polys are Re-built in such a good quality by RWconv, (regenerated..) that you can bring it down again, most feasably to a portion of old 3ds max
count before regeneration (like, 400 out of 3DS, rwconv made it 2000, you now edit again in 3DS Max, to say, 700.. check quality result immediately tho, strenght of newly constructed polys can vary). until they bend
and create gaps..)
Well, do that to all polys that clearly received a boost in count while retaining quality or even better as you closed 3DS Max on it, you will end up maybe with dff 40% lower than original last (best reachable by 3DS Max) output.
Now the MASTER TRICK; repeat this process as many times possible, until the model really starts to break down. Most times you can repeat process 3,4,5 times depending on complexity.
I mean like, take out of 3DS, put in RWconv, re-downsize newly gen'd polys in 3DS again, PUT IT AGAIN THROUGH RWconv with above dffconv command line (same). And again to 3DS Max, poly down the newly gen'd count etc etc
In this way for example often u get best end result out of 3DS that is like 800kb, down to 300kb without quality loss.
Also the newly constructed polys by DFFconv/RWconv are of high quality, the lower size can be explained by this, and even if their count is lower it will always be easier on your PC and GPU too, its not 'fat' polys
(also mystic reason/explanation why many mods with about same poly can differ in size and PC performance impact)..
Final words: It may all seem hard but exercise and pull off all of it, especially the 3DS parts of the guide that explains how you gotta continously test the outcome, maybe even on EACH change you make to even a single atomic/list part,
like use MTA to quickly load mods into local test server and see outcome, because 3DS Max cannot render GTA mods for you in its software. It's a very precise work of how far you can go, and if you wanna go further you may need to list it
and desired polycount outcome, to later achieve that using RWconv/dffconv as intermediate tool to improve that polys structure/quality by regeneration so it can actually withstand your desired lower % without making gaps.
Aka you gotta constantly, yeah, test out and possibly revert or finetweak % of poly reducement. As i learned i started working efficient, added 'Multires' polyreduce 3DS tool to shortcut menu,
i could make one change to a atomic part list (like under 'chassis') and load the mod to test into my local MTA server, within 10 seconds, and make the next change and already test/see the result 20 sec later to find the ultimate balance.
also if workin with MTA to test renders, bind like /bind 5 restart carmod-test (reload new mod file) is useful, while exporting the .dff with hotkey in 3DS straight into ur MTA server Resources > 'carmod-test' directory
for speedy loading in seconds after commiting change in 3DS max to polycount!
A good efficiency process to master, especially knowing how weak the balance between good poly reducement and creating chassis/mod surface gaps in it or making it look ugly with just few steps more lowering.