TUTORIAL Creating a vao patch

Discussion in 'Tracks' started by Gunnar333, Dec 29, 2019.

  1. Gunnar333

    Gunnar333 Well-Known Member

    Aug 5, 2017
    Likes Received:
    I hope this post will help to create a vao patch for your track. I am sure there are other ways to do this but this is how I managed to do vaos for my tracks. Please feel free to add and correct content to it.

    What is a vao-patch
    If you are using the Custom Shader Patch with AC you are able to apply another texture layer with prebaked shadows on your track objects. Called: Vertex AO

    Here is what I found out about creating a vao patch:
    For building the .vao-patch file you need the following tool, which runs in your command line:
    v1.0.0.712 can be found here:
    or optiXBakery (an alternative bakery, WIP/DEV, only works on Nvidia GPUs)
    can be found here:

    optiXBakery is much faster but I get better results with CustomTrackBakery. So I use this.

    You have to copy the .exe and .dll files to your track folder where your kn5 files or your models.ini file are located.
    open a command window and run CustomTracksBakery.exe. You will get a small help how to use it and a list of usable arguments.
    CustomTracksBakery <model.kn5/model.ini>
    If you have more than one kn5 file for your track which contains objects you like to bake you can point to your models.ini file which already points to your kn5 files.

    In the same folder you can create a file called: Arguments.txt. Here you can put all your arguments you want to use in your bakery process. Here is what I used for Norisring:

    --skip=AC*, pstand*, trib*
    --sync-normals=shader:ksTree, shader:ksGrass
    How to build your vao
    After all this explanation here is a short example how I baked the vao for Norisring:

    copy/create these files to "content\tracks\norisring":
    CustomTracksBakery.exe, SlimDX.dll, Arguments.txt

    open command promt or PowerShell or similar and go to content\tracks\norisring and run:
    CustomTracksBakery.exe models.ini

    the bakery will do its job for one or two minutes and creates a file called: models.vao-patch

    rename it to norisring.vao-patch and leave it in your track folder for testing.
    launch your track in AC et voilĂ !​

    You can enable/disable vao with the BLM Lights app. If the vao switch is greyed out your patch is not loaded correctly.
    I do think there's another method to enable/disable the vao patch (with SOL or one of the CSP Apps) but I don't remember now. :(

    If you want to do a vao patch for a track that's not your creation join the AC Custom Shaders channel on discord:
    Here you will find a lot of vao patches posted.

    All vao-patches wich can be loaded/updated via content manager are located here:
    To use them: go to settings -> Custom Shader Patch -> TRACKS VAO -> three points icon on the top right -> Install.
    Or go to the GitHubPage:
    All the available vaos can be downloaded here manually.
    If you want to upload your own patch here you need a GitHub account and ask for access.

    Where to put your vao-files:
    You can put your vao in your track folder, but I only recommend this for tweaking and testing your file.
    When you are happy with the result, move it to: assettocorsa\extension\vao-patches
    Here you will find all vaos downloaded by Content Manager.
    There is also a folder called:
    but I cannot say for sure what is the need of it.

    If you have released your track already, and nobody had done a vao yet, post your vao in the discord channel or ask for access to upload it to GitHub.

    if you want to release a your track with your vao included: just include it to your track release but be aware of many user requests of how to handle this file, where to put it, what to do with it, etc...

    further vao-patch naming rules (copied from discord):

    when creating a .vao-patch file of a multi-layout track, use the formula:
    • track-folder-name__layout-ini-name.vao-patch
    with DOUBLE underscore inbetween, and WITHOUT "models" name part of the .ini.
    • ks_vallelunga__extended_circuit.vao-patch
    • ks_drag__drag400.vao-patch
    • lakelouise_208__west_rev.vao-patch
    Otherwise, if track only have 1 layout, just name it:
    • track-folder-name.vao-patch
  2. Prototype

    Prototype Well-Known Member

    Dec 24, 2018
    Likes Received:
    JHB / SF
  3. Leonardo Ratafia

    Leonardo Ratafia Member

    Aug 31, 2015
    Likes Received:
  4. AlleyViper

    AlleyViper New Member

    Aug 3, 2019
    Likes Received:
    Just a small something to add,

    The original debug app were you can check VAO at work, is AccExtHelper that you can find here along with the other apps that aren't included in the CSP package anymore. It's another useful tool to compare results for both creating methods, so you can have VAO-only grays on screen.

    Because this VAO stuff was probably meant to be used equally on older stuff without proper baking on textures, the end result might look a bit too dark here and there on tracks were baking is already present. To deal with that, you can both further reduce opacity (Gunnar's example above already has a reduction from default), and add more stuff to --skip. In there you can both set object names and materials (with material:matname) for exclusion.

    The resulting files with .vao-patch extension are zip files. So after creating them, you can still open them with your favorite compression program and re-adjust opacity (and brightness multiplier) under Config.ini, then pack them back (in the same zip format, but keeping .vao-patch extension naming) without the need of starting from scratch. On many of these existing vao patch files, you can also check "Baked Shadows Params.txt" inside to see what arguments the author has used.

    Inside a track config, you can also force opacity and brightness multiplier values with:
    OPACITY = 0.6 ; override opacity of VAO patch if set
    MULTIPLIER = 1.0 ; override brightness multiplier of VAO patch if set
    I've seen this present on some github configs, but I guess it's better to keep it under the Config.ini inside the final .vao-patch file (even if it can be handy for testing).
    Last edited: Dec 31, 2019
    luchian, Prototype and Gunnar333 like this.
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice