ИГРАТЬ

Включение cel-shading в пользовательской локации

В 2021 году в War Thunder проводилось первоапрельское событие под названием «Чудесные виражи», главной особенностью которого были не только фурри-пилоты, но и мультяшная графика, или, как её по-научному называют, cel-shading. После завершения события весь контент, включая самолёты и локацию, были безвозвратно вырезаны из клиента игры. Но сам эффект всё ещё можно включить.

Архивное фото пользователя @NorthyPark

По классике, сразу ограничения:

  • Никакого мультиплеера.
  • За графику отвечает не файл миссии, а файл локации, поэтому работать эффект будет только на пользовательских локациях.
  • Шейдер работает некорректно для всех юнитов, кроме авиации и вертолётов.

Чтобы включить шейдер, нужно открыть файл пользовательской локации, например location_sample.blk, и добавить к нему следующий блок:

shader_vars{
  //water_wind 4 0.4 0.4
  max_river_width:r=1500
  ocean_density:r=0.4
  river_density:r=1
  toonshading:b = yes    /* Конкретно вот эту строчку. */
}

Опционально также можно заменить пресет погодных эффектов на кастомный:

weatherPreset:t = "gameData/environments/weather_preset_toon_stylization.blk"

И заменить скайбокс по умолчанию на скайбокс с ивента:

weatherTypes:t = "gameData/environments/weather_types_air_islands.blk"
enableApex:b = yes
mandatoryLandquality:i = 1 
z_far:r = 80000
customLevelMap:t="levels\empty_location_map.jpg"

geo{
  latitude:r=48
  longitude:r=44
  year:i=2019
  month:i=6
  day:i=15
}



mapCoord0:p2 = -20000, -20000 // m
mapCoord1:p2 = 20000, 20000   // m
minAreaSize:p2 = 90000, 90000         // m

aiMapCoord0:p2 = -20000, -20000 // m
aiMapCoord1:p2 = 20000, 20000   // m

numBorderCellsXPos:i = 0
numBorderCellsXNeg:i = 0
numBorderCellsZPos:i = 0
numBorderCellsZNeg:i = 0

mirrorShrinkXPos:r = 0
mirrorShrinkXNeg:r = 0
mirrorShrinkZPos:r = 0
mirrorShrinkZNeg:r = 0

water_level:r=0
levelMapAltOffset:r = 0
vsmAngleThreshold:r = 50//angle, after which vsm disabled. 5degrees - diable evening+, 9degrees - disable morning+, 40 - day+

gridSteps:p2 = 2048, 2048

weatherPreset:t = "gameData/environments/weather_preset_toon_stylization.blk"
weatherTypes:t = "gameData/environments/weather_types_air_islands.blk"

lastclip_horizon:b = yes
earth {
  earthWorldEnabled:b = yes
  earthWorldMin:p2 = -98304, -32768
  earthWorldMax:p2 = 32752, 98304
}

micro_details{
  micro_detail:t=microdetail_stone_a_tex_n*
  micro_detail:t=microdetail_scan_gravel_a_tex_n*
  micro_detail:t=microdetail_sand_a_tex_n*
  micro_detail:t=microdetail_soil_a_tex_n*
  micro_detail:t=microdetail_generic_granules_a_tex_n*
  micro_detail:t=microdetail_grass_a_tex_n*
  micro_detail:t=microdetail_forest_floor_a_tex_n*
  micro_detail:t=microdetail_fabric_a_tex_n
  micro_detail:t=microdetail_wood_b_tex_n
  micro_detail:t=microdetail_metal_a_tex_n*
  micro_detail:t=microdetail_snow_a_tex_n
  micro_detail:t=microdetail_generic_granules_a_tex_n
  land_micro_details_uv_scale:r=0.73
}

shader_vars{
  //water_wind 4 0.4 0.4
  max_river_width:r=1500
  ocean_density:r=0.4
  river_density:r=1
  toonshading:b = yes
}

randomGrass{

  guadalcanal_detailed_colormap:t = "guadalcanal_detailed_colormap_scatter_mask"

  layer{
    maskChannel:p4 = 1, 1, 1, 0
    res:t ="grass_fill_a"
    density:r = 4
    horScale:r = 1.2                      
    horMinScale:r = 0.5
    verScale:r = 1.2
    verMinScale:r = 0.5
    windMul:r = 0.05

    include ":/levels/grass_colors/_grass_color_fill_a.blk"
    include ":/levels/grass_colors/_grass_color_lightness_warm.blk"
  }

  layer{
    maskChannel:p4 = 1, 0, 0, 0
    res:t ="grass_reed_a"
    density:r = 0.5
    horScale:r = 1.2                      
    horMinScale:r = 0.9
    verScale:r = 1.2
    verMinScale:r = 0.9
    windMul:r = 0.05
    radiusMul:r = 0.5

  include ":/levels/grass_colors/_grass_color_reed_a.blk"
  include ":/levels/grass_colors/_grass_color_lightness_warm.blk"
  }

  layer{
    maskChannel:p4 = 0, 1, 0, 0
    res:t ="grass_daisies_a"
    density:r = 1
    horScale:r = 1.2                      
    horMinScale:r = 0.9
    verScale:r = 1.2
    verMinScale:r = 0.9
    windMul:r = 0.05
    radiusMul:r = 0.4

    include ":/levels/grass_colors/_grass_color_daisies_a.blk"
    include ":/levels/grass_colors/_grass_color_lightness_warm.blk"
  }

  layer{
    maskChannel:p4 = 0, 0, 1, 0
    res:t ="grass_heather_a"
    density:r = 2
    horScale:r = 1.2                      
    horMinScale:r = 0.5
    verScale:r = 1.2
    verMinScale:r = 0.5
    windMul:r = 0.05
    radiusMul:r = 0.4

    include ":/levels/grass_colors/_grass_color_heather_a.blk"
    include ":/levels/grass_colors/_grass_color_lightness_warm.blk"
  }

  layer{
    maskChannel:p4 = 0, 1, 0, 0
    res:t ="grass_tulip_a"
    density:r = 4
    horScale:r = 1.2                      
    horMinScale:r = 0.5
    verScale:r = 1.2
    verMinScale:r = 0.5
    windMul:r = 0.05
    radiusMul:r = 0.4

    include ":/levels/grass_colors/_grass_color_tulip_a.blk"
    include ":/levels/grass_colors/_grass_color_lightness_warm.blk"
  }

  layer{
    maskChannel:p4 = 1, 1, 1, 0
    res:t ="grass_sedge_a"
    density:r = 7 
    horScale:r = 1.2                      
    horMinScale:r = 0.9
    verScale:r = 1
    verMinScale:r = 0.5
    windMul:r = 0.05
    radiusMul:r = 0.6

    include ":/levels/grass_colors/_grass_color_simple_a.blk"
    include ":/levels/grass_colors/_grass_color_lightness_warm.blk"
  }

  layer{
    maskChannel:p4 = 1, 1, 0, 0
    res:t ="grass_simple_a"
    density:r = 3 
    horScale:r = 1.2                      
    horMinScale:r = 0.9
    verScale:r = 1
    verMinScale:r = 0.5
    windMul:r = 0.05
    radiusMul:r = 0.7

    include ":/levels/grass_colors/_grass_color_simple_a.blk"
    include ":/levels/grass_colors/_grass_color_lightness_warm.blk"
  }
}
technicsSkins{
  groundSkin:t = "jungle"
  groundSkin:t = "default"
}

Я лично, считаю что истребители смотрелись очень неплохо с таким шейдингом. Надеюсь у вас получится найти этому применение.

Комментарии
Комментариев пока нет
Напишите первый!
Лента рекомендаций
Сейчас нам нечего вам порекомендовать :(
Перейти на главную
Вы досмотрели до конца