Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision

Target

Select target project
  • demagogue_frog/veloren
  • pebeto/veloren
  • Bbenton91/veloren
  • haslersn/veloren
  • Drack43/veloren
  • Swedneck/veloren
  • veloren/veloren
  • heyzoos/veloren
  • yashaslokesh/veloren
  • Imbris/veloren
  • kvark/veloren
  • jshipsey/fresh
  • thethirdspartans/veloren
  • BenSandeen/veloren
  • YuriMomo/fresh
  • DrShongos/fresh
  • nesadi/veloren
  • luca_beetz/veloren
  • RustyBamboo/veloren
  • tiagoantao/veloren
  • erocs/veloren
  • koenigsreiter/veloren
  • timokoesters/veloren
  • desttinghim/veloren
  • jreader01/veloren
  • Pfauenauge/veloren
  • robojumper/veloren
  • humb1t/veloren
  • Timchenko/veloren
  • o01eg/veloren
  • sbst_idle/veloren
  • elfangor/veloren
  • xMAC94x/veloren
  • xshadowfax/veloren
  • tupini07/veloren
  • memoryruins/veloren
  • hayaanxuseencabdi/veloren
  • Mujina/veloren
  • marionumber14/veloren
  • Juankz/veloren
  • slyklaw/veloren
  • dispersias/veloren
  • solarliner/veloren
  • tasgon/veloren
  • VercidiumDev/veloren
  • arashout/veloren
  • harrissam95/veloren
  • KasyanDiGris/veloren
  • a1phyr/veloren
  • bare_metal/veloren
  • baBounch/veloren
  • Luraktinus/veloren
  • snuk182/veloren
  • zayngdev/veloren
  • JockeM/veloren
  • tim74/veloren
  • BakedChocobo/veloren
  • andymac-2/veloren
  • Senzaki/veloren
  • Carbonhell/veloren
  • DavidLyhedDanielsson/veloren
  • mam0nten0k/veloren
  • vitamindck/veloren
  • bdloehlein/veloren
  • lawtonfogle/veloren
  • cdellmour/veloren
  • dasreyh/veloren
  • marius851000/veloren
  • pascil/veloren
  • zuwow/veloren
  • alrx.picha1/veloren
  • zazke/veloren
  • lsaa_/veloren
  • dbla8888/veloren
  • itamargafni/veloren
  • Shonik/veloren
  • samuelx082/veloren
  • CinchBlue/veloren
  • D4rk3l/veloren
  • kblobr/veloren
  • Phil_/veloren
  • Pestilence/veloren
  • drunkonhotcocodev/issue_1204_chat_scroll_fix
  • Simon_Schubert/veloren
  • cfrantz1/veloren
  • nicholaiTukanov/veloren
  • stoehraj/veloren
  • Qwertycrackers/veloren
  • humanthrope/veloren
  • patchedsoul/veloren
  • Stupreme/veloren
  • Xardvor/veloren
  • jamescarl96/veloren
  • Menko1437/veloren
  • hyubaffum/veloren
  • PierceLBrooks/veloren
  • mockersf/veloren
  • warspawn/veloren
  • AdminXVII/veloren
  • lintner.ian/veloren
  • Frescote/veloren
  • Nancok/veloren
  • TsinSuwen/veloren
  • edv4rd0/veloren
  • iMarv/veloren
  • tmtvl/veloren
  • aymericdd/veloren
  • Juli199696/veloren
  • dachenba/veloren
  • Nelocage/veloren
  • jackrubino/veloren
  • egorsmkv/veloren
  • DavidMikeSimon/veloren
  • greypilgrim/veloren
  • snowram/veloren
  • Yimi81/veloren
  • nheuillet/veloren
  • cleoa/veloren
  • v1nsai/veloren
  • Plecra/veloren
  • GoodPraxis/veloren
  • DaanG96/veloren
  • ElXreno/veloren
  • colemickens/veloren
  • kurodenjiro/veloren
  • fraunos/veloren
  • cetra3/veloren
  • AlexChadwickP/veloren
  • 2digitman/veloren
  • Pegrin1/veloren
  • appcrashwin7/veloren
  • ludwig-austermann/veloren
  • Nevizonah/veloren
  • nataneb/veloren
  • louis030195/veloren
  • qrazhan/veloren
  • zimnyjakub/veloren
  • sk9/veloren
  • ldemoulins/veloren
  • heqromancer/veloren
  • kevinglasson/veloren
  • xvar/veloren
  • rozgo/veloren
  • AVeryLostNomad/veloren
  • theduke/veloren
  • ben-wallis/veloren
  • awsomearvinder1/veloren
  • liambrownweb/veloren
  • MagicMantis/veloren
  • mattburn96/veloren
  • w3yden/veloren
  • k2d222/veloren
  • alejandrocampoh/veloren
  • BottledByte/veloren
  • RubberMullet/veloren
  • pat.honeycutt1/veloren
  • parabeetle/veloren
  • gSpera/veloren
  • tylerlowrey/veloren
  • spersin00/veloren
  • yenwel1987/veloren
  • Skgland/veloren
  • masal.aliov95/veloren
  • ismail.assaidi/veloren
  • SamuelRousseaux/veloren
  • fosdick/veloren
  • lausek/veloren
  • paezao/veloren
  • raiyansayeed/veloren
  • cuentafalsa2133/veloren
  • L4XLR/veloren
  • Kroetnaton/veloren
  • knkski/veloren
  • guiguan/veloren
  • songzhi/veloren
  • Sinble/veloren
  • termac/veloren
  • Rdbaker/veloren
  • abcde090/veloren
  • jhoot/veloren
  • SpyrosRoum/veloren
  • SeanMcLoughlin/veloren
  • skhorozian201/veloren
  • boughdan/veloren
  • dwwhif/veloren
  • Xinayder/veloren
  • urban48/veloren
  • Doomsdayrs/veloren
  • WillTarte/veloren
  • dktrotti/veloren
  • PotatoPhusion/veloren
  • jasonkclee1/veloren
  • black-silence/veloren
  • erik.traedal/veloren
  • raymondnumbergenerator/veloren
  • Quibble/veloren
  • raunaqjain/veloren
  • mttmartin42/veloren
  • MrTanoshii/veloren
  • dimkk/veloren
  • neumoxx/veloren
  • timsueberkrueb/veloren
  • jtrejosnavarro/veloren
  • martin-t/veloren
  • laundry-96/veloren
  • droogmic/veloren
  • axosoft-dans/veloren
  • CaptnJunks/veloren
  • erizocosmico/veloren
  • pablosoler/veloren
  • aless.barbe/veloren
  • UMR1352/veloren
  • cgonz908/veloren
  • jreimer107/veloren
  • NathanSWard/veloren
  • TianyiShi2001/veloren
  • zarp-dev/veloren
  • K-JBoon/veloren
  • Heng-NUS/veloren
  • botika/veloren
  • cpetig/veloren
  • DJHen2/veloren
  • Adriankhl/veloren
  • tibbon1/veloren
  • entropicdrifter/veloren
  • foxlands.server/veloren
  • boursbenjamin/veloren
  • lizhengdao/veloren
  • mizumako/veloren
  • jacksonlango/veloren
  • kennethpatrickfrancis/veloren
  • Nicknakin/veloren
  • wrightjjw/veloren
  • xinxinxinxinxin/veloren
  • 64epicks/veloren
  • skyace65/veloren
  • JordanXion/veloren
  • nrvrs/veloren
  • VincentFoulon80/veloren
  • nahua/veloren
  • Entropy9s/veloren
  • SWilliamsGames/veloren
  • x0f5c3/veloren
  • ccgauche/veloren
  • AndreiKlim/veloren
  • Frinksy/veloren
  • Litame/veloren
  • ddmng/veloren
  • dzikoysk/veloren
  • VooDooMedic/veloren
  • katharostech/veloren
  • chris.polderman/veloren
  • DatBoiEsteban/veloren
  • Dioptase/veloren
  • AnxiousKoala/veloren
  • nobbele/veloren
  • GuillaumeGomez/veloren
  • thedevrdr/veloren
  • ValorZard/veloren
  • coloursofnoise/veloren
  • induras/veloren
  • terahlunah/veloren
  • casiq/veloren
  • Peachy.cc/veloren
  • pizzaluc/veloren
  • Mehhht/veloren
  • zanchen/veloren
  • Treeco/veloren
  • jpetkau/veloren
  • Lyfflyn/veloren
  • lileeei/veloren
  • tonyvu0605/veloren
  • law4x/veloren
  • whbrown/veloren
  • Ambien/veloren
  • IgorKhramtsov/veloren
  • shimous9/veloren
  • amerine/veloren
  • triptych/veloren
  • edouardpoitras/veloren
  • Trollderim/veloren
  • cvzikl/veloren
  • TheAlepou/veloren
  • aweinstock/veloren
  • Dumbeldor/veloren
  • clangdo/veloren
  • Synis/veloren
  • Moorts/veloren
  • TheEvilSkeleton/veloren
  • Joergenson/veloren
  • Lerg-exe/veloren
  • tamarinvs19/veloren
  • Arreme/veloren
  • tukilo/veloren
  • BryanQuigley/veloren
  • persianknight172/veloren
  • Overblob/veloren
  • littlebigbug/veloren
  • RedlineTriad/veloren
  • jgross_dev/veloren
  • ofofo/veloren
  • AWulkan/veloren
  • g000linux/veloren
  • capnhawkbill/veloren
  • benlal/veloren
  • Garmelon/veloren
  • aljazerzen/veloren
  • typohound/veloren
  • HunterTParks/veloren
  • namespace-Memory/veloren
  • kimamb/veloren
  • karl.l.tye/veloren
  • kwardlaw102/veloren
  • johnson.brice.a/veloren
  • mtsr/veloren
  • supercaligo/veloren
  • fabioschmidt01/veloren
  • 1b15/veloren
  • theCow61/veloren
  • winie/veloren
  • StarostaGit/veloren
  • wczyz/veloren
  • duelsik/veloren
  • gijione/veloren
  • OrangeQuill/veloren
  • davidruizagustin2002/veloren
  • Ceikry/veloren
  • mdx97/veloren
  • polyedre/veloren
  • socherbyc/veloren
  • sebgavmih/veloren
  • saraphiem/veloren
  • DanielBarton446/veloren
  • kinggred/veloren
  • Nicolewk/veloren
  • dungph/veloren
  • holychowders/veloren
  • dmaahs2017/veloren
  • pnivlek/veloren
  • Kemper-/veloren
  • ygor.souza/veloren
  • purple_Pete/veloren
  • Dragyx/veloren
  • felipe.catzinm95/veloren-es-la
  • bronson/veloren
  • Vanusci/veloren
  • Nereuxofficial/veloren
  • cyoun/veloren
  • jsuh3/veloren
  • zkwinkle/veloren-fork
  • oresavna/veloren
  • ilyushka4532/veloren
  • aws107/veloren
  • echozs151/veloren
  • ribeirotomas1904/veloren
  • veloren/dev/veloren
  • Xiaobin0860/veloren
  • Snipey/veloren
  • tygyh/veloren
  • lotusotho/veloren
  • wrygondryn/veloren
  • josmasflores/veloren
  • vikassahu29/veloren
  • Mavpt/veloren
  • potyoma/veloren
  • aeaydin/veloren
  • ccm7676/veloren
  • AndusDEV/veloren
  • TypeTen/veloren
  • backyard_tourist/veloren
  • lipka28/veloren
  • fischerantoine/veloren
  • DrSensor/veloren
  • liimee/veloren
  • kurtinge/veloren
  • jvck10/veloren
  • merryck.wales/veloren
  • johannesalr/veloren
  • ignat6285/veloren
  • thebigG/veloren
  • Veloren_Kisa/veloren
  • cergutiv/veloren
  • matt_tighe/veloren
  • hardikpnsp/veloren
  • BigCubeCat/veloren
  • lack/veloren
  • Diaeresis/veloren
  • Zakru1/veloren
  • zesterer/veloren
  • six519/veloren
  • martinjaehn/veloren
  • mehulagg/veloren
  • Danacus/veloren
  • teenjuna/veloren
  • VJunge/veloren
  • Ted_Hudson/veloren
  • pacmanmati/veloren
  • IdeallyGrey/veloren
  • Kizz122/veloren
  • gcharang/veloren
  • nielsiscool300/veloren
  • Swagazaki/veloren
  • KaliKatz/veloren
  • aprchen/veloren
  • Mixone-FinallyHere/veloren
  • kilpkonn/veloren
  • protheory8/veloren
  • hugojmaia/veloren
  • mjkalasky2/veloren
  • nmsv/veloren
  • veloren_backups/veloren-backup-2021-08-17
  • Imbris/veloren-test-fork
  • samuelkeiffer/veloren
  • KingPEPSALT/veloren
  • augis122/modded-veloren
  • brunocabrita/veloren
  • slashplusplus/veloren
  • ric96/veloren
  • jesenzhang/veloren
  • aflyingpumpkin/veloren
  • kimtinh/veloren
  • UncomfySilence/veloren
  • ludvigHz/veloren
  • iSaluki/veloren
  • pts1667/veloren
  • lan956/veloren
  • antoniomuso/veloren
  • alremahy/veloren
  • phosphorus-moscu/veloren
  • cc-morning/veloren
  • anirudh24seven/veloren
  • phosphorus-moscu/2veloren-2
  • Oolnokk/veloren
  • abraham.inoerawan/veloren
  • Casping90/veloren
  • willwh/veloren
  • J-K-Tech/veloren
  • jon.nettleton/veloren
  • VultraDevs/veloren-loopy
  • RunRobDog/veloren
  • notoriae/veloren
  • fetsorn/veloren
  • 27penningb/veloren
  • Finalverse/finalverse
  • MartinR25/veloren
  • Redo11/veloren
  • expp121/veloren
  • ashdnazg/veloren
  • galaipa/veloren
  • ZgemboUscupalic/veloren
  • dark-eye/veloren
  • ezfe/veloren
  • BKrause_aka_Weltii/veloren
  • zDrag0nG/veloren
  • tonydero/veloren
  • Jupiter256/veloren
  • Olexorus/veloren
  • ryan.ostrager/veloren
  • txopi/veloren
  • kinggredPL/veloren
  • j-mcavoy/veloren
  • coinvariant/veloren
  • m00dy1/world-of-crypto
  • Kaydenn/veloren
  • markobekko/veloren
  • hugopeixoto/veloren
  • Samuellm93/veloren
  • Eurydia/veloren
  • Tazmondo/veloren
  • kretka/veloren
  • Anitme43/veloren
  • qbig/veloren
  • MrEuds/veloren
  • Landemak/veloren
  • joaovti/veloren
  • jcezarms/veloren
  • Makselord/veloren-maksemod
  • Awkor/veloren
  • tovi-cn/veloren
  • edlingao/veloren
  • cloudlmao/veloren
  • mohsmth1/veloren
  • 64kramsystem/veloren-dev
  • meronz/veloren
  • taiyoung.jang/veloren
  • fanix472/veloren
  • coddiw0mple/veloren
  • dmitrykolesnikovich/veloren
  • erodendaniel/veloren
  • sam.rudloff/veloren
  • shenjiangqiu/veloren
  • colla170/veloren
  • PatoHacker/veloren
  • Faithgel/veloren
  • LeoDog896/veloren
  • Welvex/veloren
  • Halosesparta/veloren
  • hjalle2000/veloren-labchads-edition
  • ldm0/veloren
  • Nether190/veloren
  • Moy838840554/veloren
  • Veloren-Master/veloren-master-mode
  • Tradocks/veloren
  • 4ydx/veloren
  • badhat/veloren
  • althierygamer/veloren
  • heyuhm/veloren
  • 154pinkchairs/veloren
  • miraficus/veloren
  • yaltta/veloren
  • w262900/veloren
  • semperdisco/veloren
  • alejandrohernandezcarbonero83/veloren
  • juanopinguino0/veloren
  • meiyo40/veloren
  • GammaJPG/veloren
  • dglsdn68/veloren
  • rm4lv/veloren
  • Koboo/veloren
  • sigmaboyww/veloren
  • bstocker/veloren
  • WhatzGames/veloren
  • andrewmustea/veloren
  • dwasint/veloren-dwasint-fork
  • hellohihehebuwj/veloren
  • yamamushi/veloren
  • Majavar/veloren
  • zerominus/veloren
  • maccam912/veloren
  • rapenne-s/veloren
  • will0w7/veloren
  • s170668/veloren
  • piguycs/veloren
  • JazzGlobal/veloren
  • aidan20101/veloren
  • thenewboy2023rd/veloren
  • thales.link/veloren
  • anup.jadhav/veloren
  • ZiXyos/veloren
  • sankalp9094108/veloren
  • lacapsule9303614/veloren
  • AntoniosBarotsis/veloren
  • Wrathen/veloren
  • barsoosayque/veloren
  • Rostish/veloren
  • apricote/veloren
  • yes132432/veloren
  • Tutorial-senpai/veloren
  • NEbling/veloren
  • namolite/veloren
  • 12foo/veloren
  • sanctorum.thomas/veloren
  • RickyC0626/veloren
  • zveronline/veloren
  • Cup_Of_Java/veloren
  • FostersXX/velorenBver
  • accelbread/veloren
  • mildsmild707/veloren
  • cerane/veloren
  • svetlemodry/veloren
  • telans/veloren
  • jovaun.mcg/veloren-fork
  • dressupgeekout/veloren
  • lordjoaosouza/veloren
  • Hugo-Trentesaux/veloren
  • marcantoineg/veloren
  • luizmugnaini/veloren
  • nssumanskij/veloren
  • lle-bout/veloren
  • gregnazario/veloren
  • Kreneker/veloren
  • NazarBulba/veloren
  • kevinsmia1939/veloren
  • kaubu/veloren
  • igorgcardoso/veloren
  • Musummer/veloren
  • robertxgray/veloren
  • kkpan11/veloren
  • pat36/veloren
  • jbeich/veloren
  • augustine12503/veloren
  • ThatComputerGuy/veloren
  • Fallingstars/veloren
  • Sorann753/veloren
  • denys.seguret/veloren
  • ryotary/veloren
  • Keegan-JW/veloren
  • dsalt/veloren
  • rs-v/veloren
  • davidlee5585349/veloren
  • bakkdoor/veloren
  • testfailed/veloren
  • freyaru11/veloren
  • pekingPow/veloren-mmo-video-game
  • Linorman/veloren
  • gpapad/veloren
  • Furior/veloren
  • rileydy/veloren
  • honestduane/veloren
  • caavere/veloren
  • V0idMatr1x/veloren
  • RustyStriker/veloren
  • GabrielWWU/veloren
  • Luca1905/veloren
  • dazuimao1990/veloren
  • Amitkumar09/veloren
  • Thibagon/veloren
  • asingleleaf/veloren
  • MSGanesh23/veloren
  • Yairm210/veloren
  • hichemfantar/veloren
  • devhomie/veloren
  • skygrango/veloren
  • Estrozix/veloren
  • kivia/veloren
  • gundeep240800/veloren
  • needJobCoder/veloren
  • Chucuoi0209/veloren
  • tomsiouan/veloren
  • jmole/veloren
  • octocamocoder47/veloren
  • salhiahmed534/veloren
  • alerty264/veloren
  • znikzad1365/veloren
  • GeekyGami/veloren
  • hnrq/veloren
  • tony.gunn.31/veloren
  • brxxh/veloren
  • relevant-dev/forks/veloren
  • 0xsjn35/veloren
  • PetaWarden/veloren
  • LuccasRMedeiros/veloren
632 results
Select Git revision
Show changes
Commits on Source (36)
Showing
with 383 additions and 51 deletions
......@@ -65,6 +65,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Removed
- Medium and large potions from all loot tables
- LoD pop-in effect
- Removed Dullahans from halloween event
### Fixed
- Fixed wild roaming cyclop loot table to not drop the quarry key
......
#![enable(implicit_some)]
(
name: Name("Dullahan"),
body: RandomWith("dullahan"),
alignment: Alignment(Enemy),
loot: LootTable("common.loot_tables.calendar.halloween.halloween_dullahan"),
inventory: (
loadout: FromBody,
),
meta: [],
)
\ No newline at end of file
[
(1.0, Item("common.items.food.pumpkin_spice_brew")),
(5.0, Item("common.items.food.honeycorn")),
]
\ No newline at end of file
......@@ -233,4 +233,40 @@
19: Air(Lantern, 4),
},
),
Cart: (
bone0: (
offset: (-3.5, -3.5, 0.5),
central: ("cart.structure"),
),
bone1: (
offset: (-1.0, -2.5, -1.0),
central: ("cart.axle"),
),
bone2: (
offset: (-1.0, -2.5, -1.0),
central: ("cart.axle"),
),
bone3: (
offset: (0.0, 0.0, 0.0),
central: ("empty"),
),
custom_indices: {
1: Air(ChairSingle, 4),
2: Air(Helm, 0),
3: Air(ChairSingle, 2),
4: Air(ChairSingle, 6),
9: Air(CraftingBench, 0),
10: Air(Window1, 0),
11: Air(RepairBench, 0),
12: Air(DismantlingBench, 4),
13: Air(Window1, 2),
14: Air(Crate, 0),
15: Air(Cauldron, 2),
16: Air(ChairSingle, 0),
17: Air(CookingPot, 0),
18: Air(WallLampSmall, 4),
19: Air(Lantern, 4),
},
),
})
File added
File added
......@@ -129,6 +129,18 @@
threshold: 5.0,
subtitle: "subtitle-running_water",
),
Lavapool: (
files: [
"voxygen.audio.sfx.ambient.river_sounds.running_water-003",
"voxygen.audio.sfx.ambient.river_sounds.running_water-004",
"voxygen.audio.sfx.ambient.river_sounds.running_water-005",
"voxygen.audio.sfx.ambient.river_sounds.running_water-006",
"voxygen.audio.sfx.ambient.river_sounds.running_water-012",
"voxygen.audio.sfx.ambient.river_sounds.running_water-013",
],
threshold: 7.0,
subtitle: "subtitle-lavapool",
),
//
// Character States
//
......
......@@ -804,4 +804,17 @@ vec3 simple_lighting(vec3 pos, vec3 col, float shade) {
return col * clamp(2.5 / dot(d, d), shade * (get_sun_brightness() + 0.01), 1);
}
float wind_wave(float off, float scaling, float speed, float strength) {
float aspeed = abs(speed);
// TODO: Right now, the wind model is pretty simplistic. This means that there is frequently no wind at all, which
// looks bad. For now, we add a lower bound on the wind speed to keep things looking nice.
strength = max(strength, 6.0);
aspeed = max(aspeed, 5.0);
return (sin(tick_loop(2.0 * PI, 0.35 * scaling * floor(aspeed), off)) * (1.0 - fract(aspeed))
+ sin(tick_loop(2.0 * PI, 0.35 * scaling * ceil(aspeed), off)) * fract(aspeed)) * abs(strength) * 0.25;
//return sin(tick.x * 1.5 * scaling + off) + sin(tick.x * 0.35 * scaling + off);
}
#endif
......@@ -360,7 +360,10 @@ void main() {
vec3 surf_color;
float surf_alpha = 1.0;
uint mat;
if (dot(pow(f_col_raw - vec3(0.02, 0.06, 0.22), uvec3(2)), vec3(1)) < 0.01 && dot(vec3(0, 0, 1), f_norm) > 0.9) {
// NOTE: On nvidea vulkan drivers a `pow` with negative base results in NaN even if the
// exponent is an integer.
vec3 water_col_diff = f_col_raw - vec3(0.02, 0.06, 0.22);
if (dot(water_col_diff * water_col_diff, vec3(1)) < 0.01 && dot(vec3(0, 0, 1), f_norm) > 0.9) {
mat = MAT_FLUID;
vec3 reflect_ray = cam_to_frag * vec3(1, 1, -1);
#if (FLUID_MODE >= FLUID_MODE_MEDIUM)
......
#version 420 core
#define FIGURE_SHADER
#include <constants.glsl>
#define LIGHTING_TYPE LIGHTING_TYPE_REFLECTION
#define LIGHTING_REFLECTION_KIND LIGHTING_REFLECTION_KIND_GLOSSY
#if (FLUID_MODE == FLUID_MODE_LOW)
#define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_IMPORTANCE
#elif (FLUID_MODE >= FLUID_MODE_MEDIUM)
#define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_RADIANCE
#endif
#define LIGHTING_DISTRIBUTION_SCHEME LIGHTING_DISTRIBUTION_SCHEME_MICROFACET
#define LIGHTING_DISTRIBUTION LIGHTING_DISTRIBUTION_BECKMANN
#define HAS_SHADOW_MAPS
#include <globals.glsl>
#include <light.glsl>
#include <cloud.glsl>
#include <lod.glsl>
layout(location = 0) in vec3 f_pos;
// in float dummy;
// in vec3 f_col;
// in float f_ao;
// flat in uint f_pos_norm;
layout(location = 1) in vec3 f_norm;
layout(location = 2) in vec3 m_pos;
// in float f_alt;
// in vec4 f_shadow;
// in vec3 light_pos[2];
// #if (SHADOW_MODE == SHADOW_MODE_MAP)
// in vec4 sun_pos;
// #elif (SHADOW_MODE == SHADOW_MODE_CHEAP || SHADOW_MODE == SHADOW_MODE_NONE)
// const vec4 sun_pos = vec4(0.0);
// #endif
//struct ShadowLocals {
// mat4 shadowMatrices;
// mat4 texture_mat;
//};
//
//layout (std140)
//uniform u_light_shadows {
// ShadowLocals shadowMats[/*MAX_LAYER_FACES*/192];
//};
layout (std140, set = 2, binding = 0)
uniform u_locals {
vec4 pos_a;
vec4 pos_b;
};
layout(location = 0) out vec4 tgt_color;
layout(location = 1) out uvec4 tgt_mat;
void main() {
// vec2 texSize = textureSize(t_col_light, 0);
// vec4 col_light = texture(t_col_light, (f_uv_pos + 0.5) / texSize);
// vec3 f_col = col_light.rgb;
// float f_ao = col_light.a;
// vec4 f_col_light = texture(t_col_light, (f_uv_pos + 0.5) / textureSize(t_col_light, 0));
// vec3 f_col = f_col_light.rgb;
// float f_ao = f_col_light.a;
float f_ao = 1.0;
vec3 f_col = mix(
vec3(0.05, 0.03, 0.01),
vec3(0.1, 0.07, 0.05),
floor(abs(fract(m_pos.z * 10.0 + atan(m_pos.x, m_pos.y) * 0.159) - 0.5) * 6.0) / 3.0
);
#ifdef EXPERIMENTAL_BAREMINIMUM
tgt_color = vec4(simple_lighting(f_pos.xyz, f_col, f_ao), 1);
return;
#endif
// float /*f_light*/f_ao = textureProj(t_col_light, vec3(f_uv_pos, texSize)).a;//1.0;//f_col_light.a * 4.0;// f_light = float(v_col_light & 0x3Fu) / 64.0;
// vec3 my_chunk_pos = (vec3((uvec3(f_pos_norm) >> uvec3(0, 9, 18)) & uvec3(0x1FFu)) - 256.0) / 2.0;
// tgt_color = vec4(hash(floor(vec4(my_chunk_pos.x, 0, 0, 0))), hash(floor(vec4(0, my_chunk_pos.y, 0, 1))), hash(floor(vec4(0, 0, my_chunk_pos.z, 2))), 1.0);
// float f_ao = 0;
// tgt_color = vec4(vec3(f_ao), 1.0);
// tgt_color = vec4(f_col, 1.0);
// return;
// vec3 du = dFdx(f_pos);
// vec3 dv = dFdy(f_pos);
// vec3 f_norm = normalize(cross(du, dv));
// vec4 light_pos[2];
//#if (SHADOW_MODE == SHADOW_MODE_MAP)
// // for (uint i = 0u; i < light_shadow_count.z; ++i) {
// // light_pos[i] = /*vec3(*/shadowMats[i].texture_mat * vec4(f_pos, 1.0)/*)*/;
// // }
// vec4 sun_pos = /*vec3(*/shadowMats[0].texture_mat * vec4(f_pos, 1.0)/*)*/;
//#elif (SHADOW_MODE == SHADOW_MODE_CHEAP || SHADOW_MODE == SHADOW_MODE_NONE)
// vec4 sun_pos = vec4(0.0);
//#endif
vec3 cam_to_frag = normalize(f_pos - cam_pos.xyz);
// vec4 vert_pos4 = view_mat * vec4(f_pos, 1.0);
// vec3 view_dir = normalize(-vec3(vert_pos4)/* / vert_pos4.w*/);
vec3 view_dir = -cam_to_frag;
/* vec3 sun_dir = get_sun_dir(time_of_day.x);
vec3 moon_dir = get_moon_dir(time_of_day.x); */
// float sun_light = get_sun_brightness(sun_dir);
// float moon_light = get_moon_brightness(moon_dir);
/* float sun_shade_frac = horizon_at(f_pos, sun_dir);
float moon_shade_frac = horizon_at(f_pos, moon_dir); */
#if (SHADOW_MODE == SHADOW_MODE_CHEAP || SHADOW_MODE == SHADOW_MODE_MAP || FLUID_MODE >= FLUID_MODE_MEDIUM)
float f_alt = alt_at(f_pos.xy);
#elif (SHADOW_MODE == SHADOW_MODE_NONE || FLUID_MODE == FLUID_MODE_LOW)
float f_alt = f_pos.z;
#endif
#if (SHADOW_MODE == SHADOW_MODE_CHEAP || SHADOW_MODE == SHADOW_MODE_MAP)
vec4 f_shadow = textureBicubic(t_horizon, s_horizon, pos_to_tex(f_pos.xy));
float sun_shade_frac = horizon_at2(f_shadow, f_alt, f_pos, sun_dir);
#elif (SHADOW_MODE == SHADOW_MODE_NONE)
float sun_shade_frac = 1.0;//horizon_at2(f_shadow, f_alt, f_pos, sun_dir);
#endif
float moon_shade_frac = 1.0;// horizon_at2(f_shadow, f_alt, f_pos, moon_dir);
// Globbal illumination "estimate" used to light the faces of voxels which are parallel to the sun or moon (which is a very common occurrence).
// Will be attenuated by k_d, which is assumed to carry any additional ambient occlusion information (e.g. about shadowing).
// float ambient_sides = clamp(mix(0.5, 0.0, abs(dot(-f_norm, sun_dir)) * 10000.0), 0.0, 0.5);
// NOTE: current assumption is that moon and sun shouldn't be out at the sae time.
// This assumption is (or can at least easily be) wrong, but if we pretend it's true we avoids having to explicitly pass in a separate shadow
// for the sun and moon (since they have different brightnesses / colors so the shadows shouldn't attenuate equally).
// float shade_frac = /*1.0;*/sun_shade_frac + moon_shade_frac;
// DirectionalLight sun_info = get_sun_info(sun_dir, sun_shade_frac, light_pos);
DirectionalLight sun_info = get_sun_info(sun_dir, sun_shade_frac, /*sun_pos*/f_pos);
DirectionalLight moon_info = get_moon_info(moon_dir, moon_shade_frac/*, light_pos*/);
vec3 surf_color = f_col;
float alpha = 1.0;
const float n2 = 1.5;
const float R_s2s0 = pow((1.0 - n2) / (1.0 + n2), 2);
const float R_s1s0 = pow((1.3325 - n2) / (1.3325 + n2), 2);
const float R_s2s1 = pow((1.0 - 1.3325) / (1.0 + 1.3325), 2);
const float R_s1s2 = pow((1.3325 - 1.0) / (1.3325 + 1.0), 2);
float R_s = (f_pos.z < f_alt) ? mix(R_s2s1 * R_s1s0, R_s1s0, medium.x) : mix(R_s2s0, R_s1s2 * R_s2s0, medium.x);
vec3 k_a = vec3(1.0);
vec3 k_d = vec3(1.0);
vec3 k_s = vec3(R_s);
vec3 emitted_light, reflected_light;
// vec3 light_frac = /*vec3(1.0);*//*vec3(max(dot(f_norm, -sun_dir) * 0.5 + 0.5, 0.0));*/light_reflection_factor(f_norm, view_dir, vec3(0, 0, -1.0), vec3(1.0), vec3(R_s), alpha);
// vec3 point_light = light_at(f_pos, f_norm);
// vec3 light, diffuse_light, ambient_light;
//get_sun_diffuse(f_norm, time_of_day.x, view_dir, k_a * point_shadow * (shade_frac * 0.5 + light_frac * 0.5), k_d * point_shadow * shade_frac, k_s * point_shadow * shade_frac, alpha, emitted_light, reflected_light);
float max_light = 0.0;
// reflected_light *= point_shadow * shade_frac;
// emitted_light *= point_shadow * max(shade_frac, MIN_SHADOW);
// max_light *= point_shadow * shade_frac;
// reflected_light *= point_shadow;
// emitted_light *= point_shadow;
// max_light *= point_shadow;
vec3 cam_attenuation = vec3(1);
float fluid_alt = max(f_pos.z + 1, floor(f_alt + 1));
vec3 mu = medium.x == MEDIUM_WATER ? MU_WATER : vec3(0.0);
#if (FLUID_MODE >= FLUID_MODE_MEDIUM)
cam_attenuation =
medium.x == MEDIUM_WATER ? compute_attenuation_point(cam_pos.xyz, view_dir, mu, fluid_alt, /*cam_pos.z <= fluid_alt ? cam_pos.xyz : f_pos*/f_pos)
: compute_attenuation_point(f_pos, -view_dir, mu, fluid_alt, /*cam_pos.z <= fluid_alt ? cam_pos.xyz : f_pos*/cam_pos.xyz);
#endif
// Prevent the sky affecting light when underground
float not_underground = clamp((f_pos.z - f_alt) / 128.0 + 1.0, 0.0, 1.0);
max_light += get_sun_diffuse2(sun_info, moon_info, f_norm, view_dir, f_pos, mu, cam_attenuation, fluid_alt, k_a, k_d, k_s, alpha, f_norm, 1.0, emitted_light, reflected_light);
max_light += lights_at(f_pos, f_norm, view_dir, mu, cam_attenuation, fluid_alt, k_a, k_d, k_s, alpha, f_norm, 1.0, emitted_light, reflected_light);
// TODO: Hack to add a small amount of underground ambient light to the scene
reflected_light += vec3(0.01, 0.02, 0.03) * (1.0 - not_underground);
// Apply baked AO
float ao = f_ao * sqrt(f_ao);//0.25 + f_ao * 0.75; ///*pow(f_ao, 0.5)*/f_ao * 0.85 + 0.15;
reflected_light *= ao;
emitted_light *= ao;
// Apply point light AO
float point_shadow = shadow_at(f_pos, f_norm);
reflected_light *= point_shadow;
emitted_light *= point_shadow;
/* reflected_light *= cloud_shadow(f_pos); */
/* vec3 point_light = light_at(f_pos, f_norm);
emitted_light += point_light;
reflected_light += point_light; */
// get_sun_diffuse(f_norm, time_of_day.x, cam_to_frag, surf_color * f_light * point_shadow, 0.5 * surf_color * f_light * point_shadow, 0.5 * surf_color * f_light * point_shadow, 2.0, emitted_light, reflected_light);
// get_sun_diffuse(f_norm, time_of_day.x, light, diffuse_light, ambient_light, 1.0);
// diffuse_light *= point_shadow;
// ambient_light *= point_shadow;
// vec3 point_light = light_at(f_pos, f_norm);
// light += point_light;
// diffuse_light += point_light;
// reflected_light += point_light;
// vec3 surf_color = illuminate(srgb_to_linear(highlight_col.rgb * f_col), light, diffuse_light, ambient_light);
float reflectance = 0.0;
// TODO: Do reflectance properly like this later
vec3 reflect_color = vec3(0);
surf_color = illuminate(max_light, view_dir, mix(surf_color * emitted_light, reflect_color, reflectance), mix(surf_color * reflected_light, reflect_color, reflectance));
// if ((flags & 1) == 1 && int(cam_mode) == 1) {
// float distance = distance(vec3(cam_pos), focus_pos.xyz) - 2;
// float opacity = clamp(distance / distance_divider, 0, 1);
// // if(threshold_matrix[int(gl_FragCoord.x) % 4][int(gl_FragCoord.y) % 4] > opacity) {
// // discard;
// // return;
// // }
// }
tgt_color = vec4(surf_color, 1.0);
tgt_mat = uvec4(uvec3((f_norm + 1.0) * 127.0), MAT_FIGURE);
}
#version 420 core
#include <constants.glsl>
#define FIGURE_SHADER
#define LIGHTING_TYPE LIGHTING_TYPE_REFLECTION
#define LIGHTING_REFLECTION_KIND LIGHTING_REFLECTION_KIND_GLOSSY
#define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_IMPORTANCE
#define LIGHTING_DISTRIBUTION_SCHEME LIGHTING_DISTRIBUTION_SCHEME_MICROFACET
#define LIGHTING_DISTRIBUTION LIGHTING_DISTRIBUTION_BECKMANN
#include <globals.glsl>
#include <sky.glsl>
layout(location = 0) in vec3 v_pos;
layout(location = 1) in vec3 v_norm;
layout (std140, set = 2, binding = 0)
uniform u_locals {
vec4 pos_a;
vec4 pos_b;
float rope_length;
};
layout(location = 0) out vec3 f_pos;
layout(location = 1) out vec3 f_norm;
layout(location = 2) out vec3 m_pos;
void main() {
m_pos = v_pos;
vec3 rz = normalize(pos_b.xyz - pos_a.xyz);
vec3 rx = normalize(cross(vec3(0, 0, 1), rz));
vec3 ry = normalize(cross(rz, rx));
float dist = distance(pos_a.xyz, pos_b.xyz);
vec3 pos = pos_a.xyz + (rx * v_pos.x + ry * v_pos.y) * 0.1 + rz * v_pos.z * dist;
vec2 ideal_wind_sway = wind_vel * vec2(
wind_wave(pos.y * 1.5, 1.9, wind_vel.x, wind_vel.y),
wind_wave(pos.x * 1.5, 2.1, wind_vel.y, wind_vel.x)
);
float dip = (1 - pow(abs(v_pos.z - 0.5) * 2.0, 2)) * max(rope_length - dist, 0.0);
pos += vec3(ideal_wind_sway * min(pow(dip, 2), 0.005), -0.5 * dip);
f_pos = pos + focus_pos.xyz;
#ifdef EXPERIMENTAL_CURVEDWORLD
f_pos.z -= pow(distance(f_pos.xy + focus_off.xy, focus_pos.xy + focus_off.xy) * 0.05, 2);
#endif
f_norm = rx * v_norm.x + ry * v_norm.y + rz * v_norm.z;
gl_Position = all_mat * vec4(f_pos, 1);
}
......@@ -76,19 +76,6 @@ vec4 nearest_entity(in vec3 sprite_pos, const float entity_radius_factor) {
return closest;
}
float wind_wave(float off, float scaling, float speed, float strength) {
float aspeed = abs(speed);
// TODO: Right now, the wind model is pretty simplistic. This means that there is frequently no wind at all, which
// looks bad. For now, we add a lower bound on the wind speed to keep things looking nice.
strength = max(strength, 6.0);
aspeed = max(aspeed, 5.0);
return (sin(tick_loop(2.0 * PI, 0.35 * scaling * floor(aspeed), off)) * (1.0 - fract(aspeed))
+ sin(tick_loop(2.0 * PI, 0.35 * scaling * ceil(aspeed), off)) * fract(aspeed)) * abs(strength) * 0.25;
//return sin(tick.x * 1.5 * scaling + off) + sin(tick.x * 0.35 * scaling + off);
}
void main() {
// Matrix to transform this sprite instance from model space to chunk space
mat4 inst_mat;
......
......@@ -5,9 +5,8 @@ SpawnEntry (
Pack(
groups: [
(1, (1, 1, "common.entity.calendar.halloween.aggressive.halloween_harvester")),
(2, (1, 1, "common.entity.calendar.halloween.aggressive.halloween_dullahan")),
(3, (4, 8, "common.entity.wild.aggressive.bat")),
(3, (3, 6, "common.entity.calendar.halloween.aggressive.trickster")),
(4, (4, 8, "common.entity.wild.aggressive.bat")),
(4, (3, 6, "common.entity.calendar.halloween.aggressive.trickster")),
],
spawn_mode: Land,
calendar_events: Some([Halloween]),
......
......@@ -5,9 +5,8 @@ SpawnEntry (
Pack(
groups: [
(1, (1, 1, "common.entity.calendar.halloween.aggressive.halloween_harvester")),
(2, (1, 1, "common.entity.calendar.halloween.aggressive.halloween_dullahan")),
(3, (4, 8, "common.entity.wild.aggressive.bat")),
(3, (3, 6, "common.entity.calendar.halloween.aggressive.trickster")),
(4, (4, 8, "common.entity.wild.aggressive.bat")),
(4, (3, 6, "common.entity.calendar.halloween.aggressive.trickster")),
],
spawn_mode: Land,
calendar_events: Some([Halloween]),
......
......@@ -5,9 +5,8 @@ SpawnEntry (
Pack(
groups: [
(1, (1, 1, "common.entity.calendar.halloween.aggressive.halloween_harvester")),
(2, (1, 1, "common.entity.calendar.halloween.aggressive.halloween_dullahan")),
(3, (4, 8, "common.entity.wild.aggressive.bat")),
(3, (3, 6, "common.entity.calendar.halloween.aggressive.trickster")),
(4, (4, 8, "common.entity.wild.aggressive.bat")),
(4, (3, 6, "common.entity.calendar.halloween.aggressive.trickster")),
],
spawn_mode: Land,
calendar_events: Some([Halloween]),
......
......@@ -5,9 +5,8 @@ SpawnEntry (
Pack(
groups: [
(1, (1, 1, "common.entity.calendar.halloween.aggressive.halloween_harvester")),
(2, (1, 1, "common.entity.calendar.halloween.aggressive.halloween_dullahan")),
(3, (4, 8, "common.entity.wild.aggressive.bat")),
(3, (3, 6, "common.entity.calendar.halloween.aggressive.trickster")),
(4, (4, 8, "common.entity.wild.aggressive.bat")),
(4, (3, 6, "common.entity.calendar.halloween.aggressive.trickster")),
],
spawn_mode: Land,
calendar_events: Some([Halloween]),
......
......@@ -5,9 +5,8 @@ SpawnEntry (
Pack(
groups: [
(1, (1, 1, "common.entity.calendar.halloween.aggressive.halloween_harvester")),
(2, (1, 1, "common.entity.calendar.halloween.aggressive.halloween_dullahan")),
(3, (4, 8, "common.entity.wild.aggressive.bat")),
(3, (3, 6, "common.entity.calendar.halloween.aggressive.trickster")),
(4, (4, 8, "common.entity.wild.aggressive.bat")),
(4, (3, 6, "common.entity.calendar.halloween.aggressive.trickster")),
],
spawn_mode: Land,
calendar_events: Some([Halloween]),
......
......@@ -5,9 +5,8 @@ SpawnEntry (
Pack(
groups: [
(1, (1, 1, "common.entity.calendar.halloween.aggressive.halloween_harvester")),
(2, (1, 1, "common.entity.calendar.halloween.aggressive.halloween_dullahan")),
(3, (4, 8, "common.entity.wild.aggressive.bat")),
(3, (3, 6, "common.entity.calendar.halloween.aggressive.trickster")),
(4, (4, 8, "common.entity.wild.aggressive.bat")),
(4, (3, 6, "common.entity.calendar.halloween.aggressive.trickster")),
],
spawn_mode: Land,
calendar_events: Some([Halloween]),
......
......@@ -5,9 +5,8 @@ SpawnEntry (
Pack(
groups: [
(1, (1, 1, "common.entity.calendar.halloween.aggressive.halloween_harvester")),
(2, (1, 1, "common.entity.calendar.halloween.aggressive.halloween_dullahan")),
(3, (4, 8, "common.entity.wild.aggressive.bat")),
(3, (3, 6, "common.entity.calendar.halloween.aggressive.trickster")),
(4, (4, 8, "common.entity.wild.aggressive.bat")),
(4, (3, 6, "common.entity.calendar.halloween.aggressive.trickster")),
],
spawn_mode: Land,
calendar_events: Some([Halloween]),
......
......@@ -34,7 +34,8 @@ SpawnEntry (
(5, (1, 3, "common.entity.wild.peaceful.squirrel")),
(5, (1, 1, "common.entity.wild.peaceful.forest_fox")),
(5, (1, 3, "common.entity.wild.peaceful.raccoon")),
(2, (1, 1, "common.entity.wild.aggressive.dullahan")),
// TODO: Maybe reenable once the dullahan design is more carefully considered, or move it elsewhere (i.e: such as a haunted/ruins site)
//(2, (1, 1, "common.entity.wild.aggressive.dullahan")),
],
spawn_mode: Land,
day_period: [Night],
......