Jump to content
The Dark Mod Forums

stgatilov

Active Developer
  • Posts

    6769
  • Joined

  • Last visited

  • Days Won

    232

Posts posted by stgatilov

  1. 30 minutes ago, datiswous said:

    If you have a campaign, you might want to have different maps loaded depending what you do in the mission. Currently there's one specific order, but it would be cool if another map could be loaded. So you could get different debriefings, but also different followup missions based on that.

    Are you going to build two separate missions knowing that player will only see one of them?
    I think this is "cool in theory", but in reality using such a feature requires tremendous amount of work from mapper, so nobody will use it.

  2. 7 hours ago, datiswous said:

    Is it already possible to pass information from the briefing to the mission? I don't think I ever saw this implemented apart from the starter-location selection.

    That is interesting question.
    I think no?

    In principle, I guess I can cover it as well.
    If I want to expose persistent info from mission as gui vars, I can as well copy some gui vars into persistent info before mission.

    • Like 1
  3. The new behavior is available in the latest dev17026-10712.
    If you set cvar s_overrideParmsMode to 1, then you get the new behavior.
    The old behavior is under value 0, which is default yet.

    Also there is "debug mode" if you set value to 2.
    In this case the new behavior is used, but console warnings are posted when a sound being started shows difference in behavior (i.e. the engine computes both behaviors and complains if they are different).
    Right now you'll see regular warnings about various AI sounds: they have wrong effective volume in TDM 2.12 and before due to this issue.

    As for modifying the missions, I think the main blocker is the new DarkRadiant behavior.
    @greebo @OrbWeaver, could you please comment why DR automatically sets s_minDistance and s_maxDistance spawnargs since recently?

  4. In the latest dev17026-10712, GUI debriefing is supported.
    It works exactly the same way as GUI briefing.

    It would be great if someone tries it 😉

    For the nearest future, I'd like to support passing information from game script to GUI debriefing.
    So that you could show different things in debriefing depending on what player did in the mission.

    • Thanks 3
  5. I tried the script on the core assets, and find an interesting case called

    • textures/darkmod/metal/flat/tiling_1d/gen_smooth_gold01

    This material has time-dependent envmap color:

        {
            blend add
            maskalpha
            cubeMap      env/gen1
                red      sintable[time*0.1]
                green    sintable[time*0.1]
                blue     sintable[time*0.1]
            texgen      reflect
        }

    I wonder whether it was intentional or not.
    Here is how it looks:

    gen_smooth_gold01.gif.e0986815f5bb7f4735f9361e55b52c65.gif

    I suppose it would be worthwhile to manually review the modified materials, because in some cases the color adjustment was actually meaningful...

     

    • Like 1
  6. 9 hours ago, jan_cho said:

    @stgatilov where would I find the file for the first attempt? Now that I've gone through the installation with a separate link, would the .log file get overridden with new installation info or would you still be able to use it?

    If you did not delete the contents of the directory where you installed TDM with tdm_installer, all the log files should be there. Their filenames are suffixed with data&time, so they can only be removed manually.

    If you find them, you can just share all of them, I'll find the error in the logs.

  7. 38 minutes ago, Frost_Salamander said:

    I forgot to say which speaker in the desk, but it's in the one for the clock ('ernst_clock_ticking2')

    I mentioned the speaker for the printing press, it's called speaker_machine_stop (or speaker_machine_stop2)

    Just open up DR, add those prefabs, click the speaker entities and look at the spawargs, they should be as I describe.

    I imported them into DR, still don't see any s_xxxDistance spawnargs there:

    Spoiler

    Desk3_ernstClock.png.0c6610892cf88f4b3773c1e59c3017f4.png       press_machineStop2.png.63f63b6753d0eb311b4aa489fde23336.png

     

  8. So the sound has full volume on distances up to minDistance, and no volume at distances above maxDistance.
    I have not found any special meaning for maxDistance = 0 in the code, so I assume such a sound will never be heard due to zero volume.

    Also, there are some default values littered around the code.
    Most importantly, sound shader gets minDistance = 1 and maxDistance = 10 by default.
    Also I think I have seen min=0, max = 10 somewhere in the code.

     

    12 hours ago, Frost_Salamander said:

    s_mindistance = 0 is set on some speakers used for weather sounds (e.g. wind), probably because it didn't make sense for that sound to fade.  But I think setting both s_mindistance and s_maxdistance to the same value and also setting s_omni to '1' would probably have been a better way to do it.

    There is little difference between minDistance = 1 and minDistance = 0.
    Mostly the difference is that fading does not happen within 1 meter of the sound source.

    Supposedly, setting minDistance = maxDistance = 0 will cause sound to be completely muted.

    If you want a sound to always have full volume, I think you should set e.g. minDistance = maxDistance = 1000.
    Of perhaps set "global" flag instead, which disables distance computation completely. Although this probably has different effect (like maybe global sound passes through walls too).

    Or if you want it to be sharply disabled at 10 meters, then set minDistance = maxDistance = 10... but I see no point in sounds that can be disabled based on distance without any fade.

    Finally, as I have described at the very beginning of the post, "minDistance" "0" as spawnarg has no effect on current TDM versions.

     

    Quote
    • The prefab furniture/tables/desk3.pfbx (and desk3_old) has both s_mindistance and s_maxdistance set to 0 by default. I guess it is meant to be tweaked by the mapper and I didn't notice it.
    • the prefab mechanical/machines/printing_press.pfb has a speaker called 'speaker_machine_stop' and both s_mindistance and s_maxdistance are set to 0 by default.  Looks like I missed that one too.

    I don't see mindistance/maxdistance settings in these two prefabs in SVN.
    Maybe this were the issues that someone fixed recently.

    Or... could it be that you confuse spawnargs with sound shader settings?
    Actually, I don't see the distance settings on sound shaders either.

  9. As far as I see in the code, minDistance/maxDistance specify the range in meters where volume falloff happens.

    Let's introduce F(d) as piecewise linear function.
    Then:

    • F(0) = F(minDistance) = 1
    • F(maxDistance) = F(+infinity) = 0
    • F(d) changes linearly from minDistance to maxDistance

    The sound gain is multiplied by F(d)^2 (i.e. falloff is turned quadratic).

    image.png.83d7606a66b957b0275c614fff49897c.png

    If we talk about real physics, the falloff from point sound should linear without any caps.
    The gain should be multiplied by (1 / d).

    However, real sound sources are never perfectly concentrated at a point.
    If a sound source has size S, then the volume at distances up to O(S) will look like constant.
    I suppose default minDistance is nonzero to replicate this effect.

    The existence of maxDistance is harder to justify physically.
    Perhaps it is here for optimization reasons (don't process sounds farther than this).

    As for quadratic falloff instead of linear, I think the simply wanted the sound to fade away to zero smoothly.

  10. I implemented a tool to replace spawnarg automatically.

    Here is the list of missions using the paradigm of settings zero sound spawnargs:

    Spoiler
    ahouseoflockedsecrets\ahouseoflockedsecrets.pk4_dir\maps\manor.map: replaced s_volume 14 times
    ahouseoflockedsecrets\ahouseoflockedsecrets.pk4_dir\maps\monastery.map: replaced s_shakes 1 times
    alberic3\alberic3.pk4_dir\maps\alberic.map: replaced s_mindistance 8 times
    alberic3\alberic3.pk4_dir\maps\alberic.map: replaced s_volume 3 times
    alchemist\alchemist.pk4_dir\maps\alchemist.map: replaced s_volume 5 times
    altham\altham.pk4_dir\maps\altham.map: replaced s_mindistance 106 times
    altham\altham.pk4_dir\maps\altham.map: replaced s_maxdistance 6 times
    antr\antr.pk4_dir\maps\antr.map: replaced s_mindistance 3 times
    at1_lucy\at1_lucy.pk4_dir\maps\lucy.map: replaced s_volume 21 times
    away0\away0.pk4_dir\maps\away0.map: replaced s_volume 1 times
    bcd\bcd.pk4_dir\maps\bcd.map: replaced s_mindistance 62 times
    bcd\bcd.pk4_dir\maps\bcd.map: replaced s_volume 46 times
    black_mage\black_mage.pk4_dir\maps\tbm.map: replaced s_volume 1 times
    briarwood\briarwood.pk4_dir\maps\briarwoodcathedral.map: replaced s_volume 2 times
    briarwood_manor\briarwood_manor.pk4_dir\maps\briarwood.map: replaced s_volume 16 times
    briarwood_manor\briarwood_manor.pk4_dir\maps\briarwood_autosave.map: replaced s_volume 16 times
    bridge2far\bridge2far.pk4_dir\maps\bridge.map: replaced s_volume 3 times
    bridge2far\bridge2far.pk4_dir\maps\bridge_autosave.map: replaced s_volume 3 times
    broads\broads.pk4_dir\maps\builderroads.map: replaced s_mindistance 1 times
    builders_influence\builders_influence.pk4_dir\maps\builders_influence.map: replaced s_volume 1 times
    business3\business3.pk4_dir\maps\business.map: replaced s_volume 3 times
    caduceus\caduceus.pk4_dir\maps\caduceus.map: replaced s_volume 13 times
    cathedral\cathedral.pk4_dir\maps\cathedral.map: replaced s_volume 7 times
    cauldron_v2_2\cauldron_v2_2.pk4_dir\maps\cauldron_v2.map: replaced s_volume 3 times
    chalice1_1\chalice1_1.pk4_dir\maps\chalice.map: replaced s_volume 1 times
    cleanneighbourhood\cleanneighbourhood.pk4_dir\maps\CleaningUp.map: replaced s_mindistance 3 times
    cleanneighbourhood\cleanneighbourhood.pk4_dir\maps\CleaningUp.map: replaced s_volume 2 times
    closemouthed_shadows\closemouthed_shadows.pk4_dir\maps\closemouthed_shadows.map: replaced s_volume 1 times
    cos2_precpos\cos2_precpos.pk4_dir\maps\precpos2.map: replaced s_volume 2 times
    cos3_sacricide\cos3_sacricide.pk4_dir\maps\cos3.map: replaced s_volume 2 times
    cos3_sacricide\cos3_sacricide.pk4_dir\maps\cos3_autosave.map: replaced s_volume 2 times
    crystalgrave2_1\crystalgrave2_1.pk4_dir\maps\krysztalowygrob1.map: replaced s_volume 69 times
    delisle\delisle.pk4_dir\maps\delisle.map: replaced s_mindistance 8 times
    delisle\delisle.pk4_dir\maps\delisle.map: replaced s_maxdistance 1 times
    delisle\delisle.pk4_dir\maps\delisle.map: replaced s_volume 1 times
    delivery\delivery.pk4_dir\maps\delivery.map: replaced s_volume 1 times
    delivery\delivery_l10n.pk4_dir\maps\delivery.map: replaced s_volume 1 times
    elixir\elixir.pk4_dir\maps\elixir.map: replaced s_mindistance 7 times
    elixir\elixir.pk4_dir\maps\elixir.map: replaced s_volume 1 times
    good\good.pk4_dir\maps\good.map: replaced s_mindistance 1 times
    good\good.pk4_dir\maps\good.map: replaced s_volume 1 times
    hazard\hazard.pk4_dir\maps\hazard_night.map: replaced s_volume 13 times
    heartstmattis\heartstmattis.pk4_dir\maps\heartstmattis.map: replaced s_volume 2 times
    heartv2\heartv2.pk4_dir\maps\heart.map: replaced s_volume 1 times
    hhta\hhta.pk4_dir\maps\hhta.map: replaced s_mindistance 1 times
    hhta\hhta.pk4_dir\maps\hhta.map: replaced s_volume 7 times
    hhtlc\hhtlc.pk4_dir\maps\hhtlc.map: replaced s_volume 2 times
    highex\highex.pk4_dir\maps\fsx.map: replaced s_mindistance 7 times
    highex\highex.pk4_dir\maps\fsx.map: replaced s_maxdistance 3 times
    inplainsight\inplainsight.pk4_dir\maps\dmx.map: replaced s_mindistance 6 times
    inplainsight\inplainsight.pk4_dir\maps\dmx.map: replaced s_maxdistance 2 times
    iris\iris.pk4_dir\maps\iris.map: replaced s_mindistance 95 times
    iris\iris.pk4_dir\maps\iris.map: replaced s_maxdistance 5 times
    kingofdiamonds\kingofdiamonds.pk4_dir\maps\kod.map: replaced s_mindistance 1 times
    kingofdiamonds\kingofdiamonds.pk4_dir\maps\kod.map: replaced s_volume 1 times
    knighton_manor\knighton_manor.pk4_dir\maps\knightons_manor.map: replaced s_mindistance 1 times
    knighton_manor\knighton_manor.pk4_dir\maps\knightons_manor.map: replaced s_volume 3 times
    living_expenses\living_expenses.pk4_dir\maps\living_expenses.map: replaced s_volume 2 times
    lockdown1_2_1\lockdown1_2_1.pk4_dir\maps\lockdown.map: replaced s_volume 38 times
    lordsnlegacy\lordsnlegacy.pk4_dir\maps\lordsnlegacy.map: replaced s_volume 1 times
    matterofhours\matterofhours.pk4_dir\maps\speedbuild7.map: replaced s_mindistance 4 times
    nhat3\nhat3.pk4_dir\maps\anoott.map: replaced s_mindistance 39 times
    nhat3\nhat3.pk4_dir\maps\anoott.map: replaced s_maxdistance 11 times
    nhat3\nhat3.pk4_dir\maps\anoott.map: replaced s_volume 15 times
    nhat3\nhat3.pk4_dir\maps\forest.map: replaced s_mindistance 12 times
    nhat3\nhat3.pk4_dir\maps\forest.map: replaced s_maxdistance 7 times
    nhat3\nhat3.pk4_dir\maps\forest.map: replaced s_volume 3 times
    nhat3\nhat3.pk4_dir\maps\politics.map: replaced s_mindistance 11 times
    nhat3\nhat3.pk4_dir\maps\politics.map: replaced s_maxdistance 2 times
    nhat3\nhat3.pk4_dir\maps\politics.map: replaced s_volume 7 times
    northdale1\northdale1.pk4_dir\maps\m1.map: replaced s_mindistance 3 times
    northdale1\northdale1.pk4_dir\maps\m1.map: replaced s_volume 1 times
    northdale2\northdale2.pk4_dir\maps\m2.map: replaced s_mindistance 1 times
    nowandthen\nowandthen.pk4_dir\maps\nowandthen.map: replaced s_volume 1 times
    oldhabits2\oldhabits2.pk4_dir\maps\oldhabits.map: replaced s_volume 5 times
    oldman\oldman.pk4_dir\maps\hpl31.map: replaced s_mindistance 4 times
    oldman\oldman.pk4_dir\maps\hpl31.map: replaced s_maxdistance 1 times
    onesteptoofar\onesteptoofar.pk4_dir\maps\onesteptoofar.map: replaced s_mindistance 6 times
    onesteptoofar\onesteptoofar.pk4_dir\maps\onesteptoofar.map: replaced s_maxdistance 4 times
    onesteptoofar\onesteptoofar.pk4_dir\maps\onesteptoofar.map: replaced s_volume 10 times
    painterswife\painterswife.pk4_dir\maps\city.map: replaced s_mindistance 76 times
    painterswife\painterswife.pk4_dir\maps\city.map: replaced s_volume 15 times
    pandoras_box\pandoras_box.pk4_dir\maps\airship.map: replaced s_volume 2 times
    pearlsnswine\pearlsnswine.pk4_dir\maps\pearls8.map: replaced s_mindistance 3 times
    pearlsnswine\pearlsnswine.pk4_dir\maps\pearls8.map: replaced s_volume 1 times
    penny2_1\penny2_1.pk4_dir\maps\allthewayup.map: replaced s_mindistance 3 times
    penny2_1\penny2_1.pk4_dir\maps\allthewayup.map: replaced s_volume 3 times
    penny3\penny3.pk4_dir\maps\erasing.map: replaced s_mindistance 4 times
    penny3\penny3.pk4_dir\maps\erasing.map: replaced s_volume 1 times
    peril\peril.pk4_dir\maps\peril.map: replaced s_volume 11 times
    poets\poets.pk4_dir\maps\poets.map: replaced s_volume 1 times
    ptb0\ptb0.pk4_dir\maps\movingday187.map: replaced s_volume 3 times
    ptb0\ptb0.pk4_dir\maps\movingday187_autosave.map: replaced s_volume 3 times
    quinn\quinn.pk4_dir\maps\chase.map: replaced s_volume 3 times
    requiem\requiem.pk4_dir\maps\requiem.map: replaced s_shakes 1 times
    returntothecity\returntothecity.pk4_dir\maps\rttc.map: replaced s_mindistance 1 times
    returntothecity\returntothecity.pk4_dir\maps\rttc.map: replaced s_volume 23 times
    rift\rift.pk4_dir\maps\rift.map: replaced s_volume 3 times
    rightful\rightful.pk4_dir\maps\rightful.map: replaced s_volume 1 times
    river\river.pk4_dir\maps\invernesse.map: replaced s_mindistance 1 times
    river\river.pk4_dir\maps\invernesse.map: replaced s_volume 5 times
    river\river.pk4_dir\maps\river.map: replaced s_volume 23 times
    samhain\samhain.pk4_dir\maps\samhain.map: replaced s_volume 1 times
    score_to_settle\score_to_settle.pk4_dir\maps\spring13.map: replaced s_mindistance 1 times
    score_to_settle\score_to_settle.pk4_dir\maps\spring13.map: replaced s_volume 2 times
    scroll\scroll.pk4_dir\maps\scroll.map: replaced s_mindistance 16 times
    scroll\scroll.pk4_dir\maps\scroll.map: replaced s_volume 1 times
    seeking\seeking.pk4_dir\maps\seeking.map: replaced s_mindistance 179 times
    seeking\seeking.pk4_dir\maps\seeking.map: replaced s_maxdistance 5 times
    seeking\seeking.pk4_dir\maps\seeking.map: replaced s_volume 13 times
    sk_cooks\sk_cooks.pk4_dir\maps\cookbook.map: replaced s_mindistance 2 times
    sk_cooks\sk_cooks.pk4_dir\maps\cookbook.map: replaced s_volume 2 times
    sneak_destroy\sneak_destroy.pk4_dir\maps\sneak.map: replaced s_mindistance 2 times
    sneak_destroy\sneak_destroy.pk4_dir\maps\sneak.map: replaced s_maxdistance 2 times
    snowed_inn\snowed_inn.pk4_dir\maps\snowed_inn.map: replaced s_mindistance 2 times
    solarescape1\solarescape1.pk4_dir\maps\solarescape1.map: replaced s_volume 2 times
    sons_of_baltona_1\sons_of_baltona_1.pk4_dir\maps\sons_of_baltona_1_beta.map: replaced s_volume 2 times
    spiderfinch\spiderfinch.pk4_dir\maps\g1.map: replaced s_volume 1 times
    springcleaning\springcleaning.pk4_dir\maps\sc.map: replaced s_volume 1 times
    storm\storm.pk4_dir\maps\storm.map: replaced s_volume 1 times
    sw1_ebound\sw1_ebound.pk4_dir\maps\sw1_ebound.map: replaced s_shakes 25 times
    talbot\talbot.pk4_dir\maps\kiss.map: replaced s_mindistance 24 times
    talbot\talbot.pk4_dir\maps\kiss.map: replaced s_maxdistance 1 times
    talbot\talbot.pk4_dir\maps\kiss.map: replaced s_volume 2 times
    thecreeps\thecreeps.pk4_dir\maps\003.map: replaced s_volume 12 times
    thecreeps\thecreeps.pk4_dir\maps\003.map: replaced s_shakes 3 times
    thiefsden\thiefsden.pk4_dir\maps\thiefs_den.map: replaced s_volume 1 times
    threepenny\threepenny.pk4_dir\maps\threepenny.map: replaced s_mindistance 1 times
    transaction\transaction.pk4_dir\maps\transaction.map: replaced s_volume 1 times
    ulysses_genesis\ulysses_genesis.pk4_dir\maps\ulysses_genesis.map: replaced s_mindistance 6 times
    volta1_3\volta1_3.pk4_dir\maps\volta_v1.map: replaced s_mindistance 3 times
    volta1_3\volta1_3.pk4_dir\maps\volta_v1.map: replaced s_volume 4 times
    volta1_3\volta1_3.pk4_dir\maps\snapshots\volta_v1.map.0.map: replaced s_mindistance 3 times
    volta1_3\volta1_3.pk4_dir\maps\snapshots\volta_v1.map.0.map: replaced s_volume 4 times
    written\written.pk4_dir\maps\written.map: replaced s_mindistance 144 times
    written\written.pk4_dir\maps\written.map: replaced s_maxdistance 19 times
    written\written.pk4_dir\maps\written.map: replaced s_volume 3 times
    written\written.pk4_dir\maps\written.map: replaced s_shakes 1 times
    ws1_north\ws1_north.pk4_dir\maps\ws1_north.map: replaced s_volume 1 times
    ws2_homeagain\ws2_homeagain.pk4_dir\maps\ws2_homeagain.map: replaced s_volume 1 times
    ws4_warrens\ws4_warrens.pk4_dir\maps\ws4_warrens.map: replaced s_volume 1 times
    ws5_commerce\ws5_commerce.pk4_dir\maps\ws5_commerce.map: replaced s_volume 3 times
    altham\altham.pk4_dir\def\custom.def: replaced s_volume 1 times
    iris\iris.pk4_dir\def\welli_mementos.def: replaced s_volume 2 times

    I wonder: does it happen automatically in DarkRadiant somehow?
    Or everyone explicitly specify zero?
    And if you intentionally specify zero, what do you want to achieve this it?

  11. Yet another breaking change, I'm afraid: 6346

    Sounds have a bunch of parameters:

    • minDistance
    • maxDistance
    • volume
    • shakes
    • soundClass

    The base value for each parameter is set in sound shader.
    However, it can be overridden with a different value in spawnargs (e.g. "s_volume" "-10") or in C++ engine code with SetSoundVolume (used extensively for footsteps).

    Unfortunately, Doom 3 engine has a special case: setting some parameter to zero means it will not override the base value.
    So there is no way to override sound volume with 0, because setting zero would mean "use value from sound shader", while setting 0.1 or -0.1 would mean "use volume = 0.1 or -0.1".

    This behavior causes confusion.
    It is especially bad when volume is set programmatically, because e.g. volume of player footsteps is computed as a sum of many modifiers (run, crouch, creep, in water, etc.) and it is hard to be sure you don't get zero sum in the end.

    The idea is to fix this mess and add a "don't override" special value in the system.
    Speaking of spawnargs, it would work like this:

    • "s_volume" "13.4" = override with value 13.4
    • "s_volume" "0" or "s_volume" "0.0" = override with zero
    • "s_volume" "" (empty string) = don't override

    Right now there are tons of zero values set in these spawnargs. It is not clear where the author intended to override with zero, and where he wanted to drop inherited override and use base value.

    I guess for compatibility reasons I'll have to replace spawnargs "s_volume" "0" with "s_volume" "" in all missions.

    • Like 2
  12. 19 hours ago, Amadeus said:

    This kind of mechanic would break a ton of existing FMs. Some (I dare say even most) mappers often choose electric lamps so that they can't be extinguished or turned off

    And making it possible for the new electric lights to be broken adds a psychological problem: how will players know that they are breakable if in 99% missions they are not?

    Recall lootable paintings and frob-extinguishable unmoveable candles.

    • Like 2
  13. A visually breaking change is planned for 2.13 (6354).

    Environment mapping is used when material contains a stage like this:

    {
        blend add
        cubeMap env/gen3
        texgen  reflect
    }

    Historically, there are two separate shaders for this case: one if the material has bumpmapping, and one if it does not.
    Note that if the material has diffuse or specular stage, then bumpmap is added implicitly.
     

    The shader with bumpmap was apparently "tweaked" by someone in TDM and got several major differences:

    1. it has fresnel term
    2. output color is tonemapped to [0..1] range using X / (1 + X)
    3. the color multiplier is hardcoded to (0.4, 0.4, 0.4)

    I'd like to delete all of these differences and restore the same behavior as in non-bumpmapped case.
    It is also the same behavior which is used in both cases in Doom 3 BFG (and supposedly in Doom 3 too).

    Speaking of points 1 and 2, nobody will notice the difference except in rare corner cases.
    The point 3 however is serious.
    It is also the main reason behind the change.
    Right now nobody can tweak the intensity of environment mapping: if you try to set red/green/blue/rgb, these settings are simply ignored.


    Now the problem is that the intensity of most environment mapping materials will change.

    In core files I see text like this (stainglass_saint_01) :

    	{
    		blend add
    		maskalpha
    		cubeMap env/gen3
    		// tone down the reflection a bit      //I see no evidence that these values do anything
    		red     Parm0 * 0.2
    		green   Parm1 * 0.2
    		blue    Parm2 * 0.2
    		texgen  reflect
    	}

    Since the default parameter was 0.4, after the change this material will get 2x less intensity.

    The situation is even worse if rgb multiplier is not specified, since then it will change from 0.4 to 1.0, i.e. envmapping will become 2.5 times brighter.


    I can probably collect the list of all materials using environment mapping, but I'm not sure I'll be able to check them all one by one.
    Perhaps I can delete existing rgb settings, blindly set "rgb 0.4" and hope for the best.

    • Like 1
  14. It would be great if you attach all the tdm_installer_NNNNNNNNNN.log files, maybe I'll see something interesting there.

    You can try to enable "Advanced Settings \ No multipart byteranges", maybe something in your networks breaks them.

    But yes, getting the full download is the easier solution if you don't intend to switch between various versions.

    • Like 1
  15. 2 hours ago, Amadeus said:

    So, I just retextured the caulk brushes to shadowcaulk and this seems to be working fine. Suitable fix???

    I think yes.

    The root of the issue is always an opaque wall (in terms of areas/visportals) which does not cast shadows (in terms of lighting). Shadowcaulk is both opaque and casts shadows, so there is no contradiction.

  16. 8 hours ago, HMart said:

    Btw just curious but what's the reason, for the cpu core data to not be printed at the top? Next to the cpu name and features like AVX and SSE stuff.

    Right now core count is printed by job system, and features are printed by SIMD processing system.
    From the implementation point, vectorization and multithreading are orthogonal...

    • Like 1
  17. dev17008-10685 is available.

    Speaking of the new parallelization, it would be great to check that the new version does not get slower than the older ones 🤔
    The only different there is number of threads used in jobs system. Previously it was always 2 threads, now it is (NumberOfPhysicalCores - 1). However, detection of physical cores number might be buggy --- the numbers are reported near the beginning of game console.

    • Like 1
×
×
  • Create New...