reducing skin sizes in mods for better use in vr

hi chaps and ladies is there a way to reduce the skin size of mods for vr use ,i notice with mods i have a drop of something like 40 fps which makes it look like crap,most of the official content is ok ,so is there same way to edit some files in the skins ,cheers
 

Jempy

Premium
1,987
622
Belgium near Spa
If the main body skin is a 4096*4096 size, just open it in Photoshop or Gimp, resize it to 2048*2048 and export with mipmaps ... that shall do the trick. ( DXT5 with alpha and mipmaps )
That should already make a big difference. ;)

Not sure there's another way to do it .... should Content Manager have a kind of feature to do it an easier way ? ...I don't know.
 
If the main body skin is a 4096*4096 size, just open it in Photoshop or Gimp, resize it to 2048*2048 and export with mipmaps ... that shall do the trick. ( DXT5 with alpha and mipmaps )
That should already make a big difference. ;)

Not sure there's another way to do it .... should Content Manager have a kind of feature to do it an easier way ? ...I don't know.
thanks jempy ,i downloaded gimp just got to learn how to use it ,i also have content manager but i do not see anything in there to reduce skin sizes , but maybe there is because i am a noob at this stuff:thumbsdown:
 
1,260
2,207
Paris
Installing the gimp for that use is a bit like getting a hammer to squash a fly ;) There is probably a utility that can batch resize dds files. Perhaps XnConvert or Flexxi.
 

dud

924
208
I use a commandline program called GMIC, or G'MIC. You can then script the process to treat large numbers of skins all at the same time, moving away the original textures for later.

https://gmic.eu

If there is actual interest I can post script fragments as examples. I used this extensively for automatically generated car colors.
 
I use a commandline program called GMIC, or G'MIC. You can then script the process to treat large numbers of skins all at the same time, moving away the original textures for later.

https://gmic.eu

If there is actual interest I can post script fragments as examples. I used this extensively for automatically generated car colors.
sorry for the late reply.that does look interesting ,it took me hours to do all the skins
 

dud

924
208
Here is a script that does it for me on a quick test. It looks at all *.dds files and those that are 4096 in any dimension gets reduced to 1/4th in all directions.

This needs GMIC 2.x. It is a bourne or bash script. You can execute it in Win10's Ubuntu thing, or do as I do, which is SMB export the filesystem your game is on for a network mount on a Unix-ish computer (including Macs).

You probably want to save it from the attachment, not copy and paste out of the post text.

Code:
set -e
set -u

# helper functions first, start reading this
# script from the bottom.

# this is a seperate function mainly for flow
# control.  "continue" bails out of texture,
# "return" bails out of a skin.
do_skin ()
{
   local skin="$1" ; shift || return 1

   local texture
   local newname
   local savename # where to leave a copy of the original

   for texture in $skin/*.dds ; do
       #echo ${PWD%%cars/} $texture
       [ -f "$texture" ] || continue
       # see if there is any 4k texture
       identify "$texture" | grep -i 4096 || continue
       #ls -l "$texture"
       du "$texture" || continue
       newname="${texture%.*}"_smaller
       gmic "$texture" -resize2dx '25%' -o "$newname"_tmp.dds || return 1
       mv "$newname"_tmp.dds "$newname".dds || return 1
       savename="${texture%.*}"_big
       if [ -f "$savename".dds ] ; then
           # already saved to true name
           rm "$texture" || return 1
       else
           mv "${texture}" "$savename".dds || return 1
       fi
       cp -ifp "$newname".dds "$texture" || return 1
       #gmic "$texture" 2>&1 # | egrep -i size || true
   done
}

doit ()
{
   local car="$1" ; shift || return 1
   local skin
   if ! [ -d $car/skins ] ; then
       echo $car is maybe not in a car directory 1>&2
       return 1
   fi
   for skin in $car/skins/*/. ; do
       do_skin "$skin" || true
   done
   #gmic
}

for car in "$@" ; do
   doit "$car"
done
 

Attachments

  • reduce-skin-sizes_sh.txt
    1.5 KB · Views: 54
Top