#dev_rc_branch

1 messages ยท Page 24 of 1

full sonnet
#

If someone sees this code I'll be sent to hell notlikemeow But it works blobcloseenjoy

full sonnet
#

nearestTerrainObjects with multithreading is 2x as fast if most objects are filtered out, but about 3x slower if trying to return all objects :harold:
Best solution would be if caller could say if he wants multithreading or not, he will know if he expects lots of results or only a few.
But I'm too lazy to do that

#

omg I just dared to look at "nearestObject" implementation and just now realized how bad it is meowfacepalm

You provide a center pos. The command internally has a hardcoded range of 50m around that center that it searches in.
It goes through ALL grids in the radius, and if it finds one it just adjusts the radius, so all objects that are further than the found one are ignored. And then it continues iterating through all other grids.

What it COULD have done instead.
Start with the grid that pos is in, if none found, try the grids around it, if none found the grids around them, ...

So on stratis it iterates through all objects in 36 grid tiles around center pos, even if the object is just 1cm away from the center pos you defined

harsh orbit
#

can't an object be in multiple tiles? after all objects have bounds thonk
they're not just points

full sonnet
#

no it doesn't do that, a position of an object is a point.

halcyon moth
#

Oh yeah, I ran into this. nearestObject is far slower than nearestObjects for a lot of cases where you'd naturally use nearestObject.

full sonnet
#

yeah like if player shot a projectile and you wanted to find it (like some do in Fired EH), using nearestObjects with like 5 meter range is much more efficient than using nearestObject

halcyon moth
#

While we're at it, I could really do with some sort of nearestPosition and nearestMarker functions :P

full sonnet
#

"nearestPosition" ?

halcyon moth
#

Given a bunch of 2d or 3d positions, find the nearest one to a point/object/whatever.

#

Hopefully replicating the behaviour of inAreaArray where you can put any number you like in the third element and use it as an index :P

#

(hence needs 2d mode but preserving the third coord)

harsh orbit
#

here's an example of what I mean:
obj1 is only 1 grid away from the pos (blue), but it's not closer than obj2 which is 2 grids away

full sonnet
#

You're not understanding what I mean

harsh orbit
#

well I haven't seen the source code ๐Ÿ˜…

#

and I have no idea how the engine works meowsweats

full sonnet
#

You have a 9 by 9 grid.
You are in the center, you want to find the object thats closest to you

Game starts at 0,0 then 0,1 then 0,2.. 0,8 then 1,0 then 1,1 ... then 8,8

But you're looking for the nearest, if it is close to you, its in 4,4 the same grid you are in.
engine is scanning 81 grids, even though the nearest object is right in the center and it could just check one

harsh orbit
#

oh I see what you mean now meowsweats

full sonnet
#

The engine tries to find the nearest object, but it starts by scanning the furthest away grid cell

harsh orbit
#

yeah that's bad notlikemeow

#

btw I had a question

#

what is the maximum number of objects the game can have?

#

is it uint32? or 64? meowsweats

full sonnet
#

terrain objectid is int, signed, 32

harsh orbit
#

what about others?

#

I was wondering what the maximum getObjectID can be

full sonnet
#

you can assume same, most numbers in game are just int

full sonnet
harsh orbit
#

yeah I guess int32 makes sense ๐Ÿ˜…
even if a terrain has 10M objects (which I haven't found one yet), and if you create 1000 objects per second, you must run the game for ~25 days before you run out of IDs meowsweats

full sonnet
#

Found another dozen or so places in code where engine tries to find "nearest" object and they all do the same, build grid in radius (not even a circle, just a rect) and then start iterating from the furthest away top left corner and go through all tiles notlikemeow
But now we can iterate in spirals going outwards :3

limpid mountain
harsh orbit
#

It does

spark smelt
#

so how do BI hire their programmers? meowhuh

harsh orbit
ivory ridge
ivory ridge
tepid dock
#

Solving of a problem
There's also "can we claim it's by design?"

full sonnet
#

count ([worldSize/2,worldSize/2] nearSupplies 10000);

Before: 49 ms
After: 26.52ms
๐Ÿ“ˆ

unreal arrow
#

sorcery

spark smelt
full sonnet
#

That code was probably so shit because it was fast and easy to write. "Get it done in a acceptable state" instead of "do it as good as possible"

#

Sometimes it works.
Sometimes it causes a 30 second game freeze cough zeus cough
But out of the hundreds of times such code gets written, only a few dozen even become noticable

teal snow
#

New dev update for thermals has them looking spot on in all conditions, and the fog seems to curtail the thermals at about the same range you stop seeing stuff in normal vision
overcast bringing the thermal difference closer but not completely identical also looks really good

harsh orbit
#

@unreal arrow about the new syntax for resize:
In the ticket I asked for the arrays/hashmaps to be shallow copies

#

but they're deep copies right now. can it be changed to shallow copies?

teal snow
#

also has not being able to see through glass always been a thing on thermals?

#

or is it just more noticable now that we can see the enviroment

halcyon moth
#

The latter I think.

#

well, both :P

harsh orbit
#

at first thermals looked ok. but then during gameplay... meowsweats

#

the way the tree colors change is so weird...

full sonnet
full sonnet
full sonnet
harsh orbit
#

how about a bool at the end then:

_arr resize [count, fill, useDeepCopy]
harsh orbit
#

I guess thonk

teal snow
#

i have seen that but unless fog has low decay you dont notice it as much, and when you can see it, it dosent look to bad, i dont see how you would fade that to look better

harsh orbit
teal snow
#

heat blur from the leftover gas?

full sonnet
harsh orbit
#

btw I still get crashes in thermals notlikemeowcry

full sonnet
full sonnet
harsh orbit
#

yeah

#

it looks like driver crash

#

but not sure why thonk

#

and this time I noticed that indeed it froze for ~3 seconds

full sonnet
#

Only idea I have would be if the computer shader doesn't produce results and freezes. But that code doesn't have any loops that could and none else had it so far

harsh orbit
#

ok I noticed something weird

#

I got two crashes

#

and both crashes are ~64 seconds after this message:

Ragdoll - loading of ragdoll source "Soldier" started.
Ragdoll - loading of ragdoll source "Soldier" finished successfully.

64 seconds later:
DX11 error : Device removed:  : DXGI_ERROR_DEVICE_REMOVED
#

I doubt I managed to play both scenarios exactly the same ๐Ÿ˜…

#

or maybe I did. let me try one more time ๐Ÿ˜…

full sonnet
#

I don't remember ever seeing a loading of ragdoll source message ๐Ÿ˜„

#

But ragdoll animations shouldn't be related to graphics notlikemeow

#

I don't know how one troubleshoots graphics device disconnects because of timeout

#

But you can up your... Eh.. ADR? No.. some 3 letter thing.. substance.. TDR! Probably. From the 3 seconds to a higher value, but that will still let your freeze ish i assume if it's really a freeze causing it

harsh orbit
#

there's also this in the rpt:
Fresnel k must be >0, given n=1.4,k=0

#

k was 0

#

but that's for lighting right?

harsh orbit
#

yeah it just froze for 10 seconds ๐Ÿ˜…

full sonnet
#

Can you try... make it freeze for longer, and trigger a memory dump in task manager?

#

that might tell me what it was doing during the freeze

harsh orbit
#

I think I found which object is causing the crash

#

let me try on another terrain to make sure

#

yep I got the SOB ๐Ÿ˜›

#

it's the burning barrel

#

MetalBarrel_burning_F

#

I just spawned it in VR, played the mission and turned on my thermals while looking at the object - instant crash meowsweats (time of day doesn't matter)

#

the crash might not be specific to that object but it definitely always happened when I looked at that one

harsh orbit
#

yeah pretty sure it'll happen with that too

#

yeah ๐Ÿ˜…

ivory ridge
#

and car explosions/fire

harsh orbit
#

let's just say it's the fire effect ๐Ÿ˜…

#

not in the mood to test anymore

unreal arrow
full sonnet
#

but if its reproducible I should be able to get that

harsh orbit
harsh orbit
#

but the z could change

#

so I wanted to just do _oneInstance set [2, _newZ]

#

and it would update in all arrays

#

but as Dedmen said some people might prefer the deep copies

harsh orbit
#

is that possible?

unreal arrow
#

it is not that people might prefer, not making copies makes all new elements behave the same, which is quite confusing and tbh you can always use set if you want linked references

#

which command makes shallow copy?

harsh orbit
#

+

#

array + []

unreal arrow
#

no it makes deep copy

harsh orbit
unreal arrow
#

+array

harsh orbit
#

yeah that one is deep

#

and for hashmaps merge makes shallow copies

_emptyMap = createHashmap;
_emptyMap merge _mapYouWantToCopy
unreal arrow
#

add usable example onto that ticket which makes sense, I want to play with it before considering

harsh orbit
#

the second example I posted already demonstrates shallow copies (it's not exactly useful tho)

#

would you like a new one?

unreal arrow
#

which rev you have

harsh orbit
#

today's update

unreal arrow
#

second example is exactly how it outputs now

#

i tested your code in ticket and got identical output

harsh orbit
#

because I tested and it didn't

#

what I got was [ [[1,2],4], [[1,2,3]] ]

#

in the ticket it's [ [[1,2,3],4], [[1,2,3]] ]

unreal arrow
#

really? i must have missed that

#

i will check tomo

harsh orbit
#

thanks! ๐Ÿ‘

teal snow
harsh orbit
teal snow
#

3070 ti

harsh orbit
#

could be a driver issue then

teal snow
harsh orbit
#

760m

#

425.31

#

but anyway, the important thing is that it didn't use to crash before the update

unreal arrow
#

@harsh orbit After careful consideration, fill element stays deep copy. 1. It is simple and least confusing. 2. If you need some reference magic with simultaneous value tracking you can add it just as easy

_arr = []; 
_element = [[1,2]]; 
_position = [0,0,0];
_arr resize [2, _element]; 
_arr#0 pushBack 4; 
systemchat str _arr;
_arr#0#0 pushback _position;
_arr#1#0 pushback _position; 
_position set [2, 10];
systemchat str _arr;
full sonnet
unreal arrow
#

Manga mode

ivory ridge
#

Still life "Blazing gray"

full sonnet
#

Yeah only thing I can imagine still is the histogram compute shader, thats the main "new" thing.
But it also has to be some GPU driver issue.
HDAO is also running compute shaders, and they are obviously not freezing you, and in general thermal also works fine.

No idea what could be special for fire except it hitting maximum temperature, I cannot find anything in code that might go wrong there, except one place where I already added safety checks for that, and even that wouldn't just freeze the gpu

#

okey I found something wrong with fires.
For one they are a bit too cold. They are only about like 30ยฐC.. ish... But also their temperature encoding is broke. A value that should be 0-1 is 5.719 notlikemeow

full sonnet
#

Uff fire uses the wrong rendering shader. It renders normal sprites, not "extremely firey hot sprite" type thats used for burning smoke :/

#

Looks a bit better when the flames are actually 60ยฐC instead of around 30

full sonnet
#

@harsh orbit can you replace your dta/bin.pbo the shader file inside it with this one
I don't have dev branch bin.pbo on hand otherwise I'd send full pbo :sad:
That makes fires hot and fixes the incorrectly encoded temperature, just in case its really this thats causing it (shouldn't be but I don't have better ideas)

#

shouldn't be but

Aaaaaaactually.
The way temperatures are decoded, this would result in a temperature of 2.3 (in a 0-1 range)
which would cause a out of bounds memory access in the histogram calculation, BUT thats the thing I said I added a check for..
But wouldn't be the first time the optimizer removes a important check..

#

FRICK I'm stoop

#

This is my safety check
clamp(bin, 0, HISTOGRAM_NUM_BUCKETS - 1);
.....
DUH
bin = clamp(bin, 0, HISTOGRAM_NUM_BUCKETS - 1); !! ๐Ÿคฆโ€โ™‚๏ธ
So yes, with fires it definitely causes a out-of-bounds memory write in the compute shader, thats probably crashing your GPU ๐Ÿคฃ

#

But nice thing, if I keep this bug inside the sprite shader and just clamp the decoded temperature that will clamp the bad fire shader to always be 60ยฐC without actually having to switch fire over to the proper shader ๐Ÿคฃ
#Fixed

near hedge
ivory falcon
#

It would be nice if IR strobes would be visible past 5 minutes or so

near hedge
#

Yes, especially if you attach it to a backpack or vehicle with ACE3.

#

There are mods that add extra strobes with longer lifetime and that are visible in TI. But it shouldn't hurt to have that in vanilla

full sonnet
#

maybe

full sonnet
#

Thats uncomfortable

#

Well you can try both

harsh orbit
full sonnet
#

Unexpected notlikemeow

#

I thought the bug was in CS, so that alone should've fixed it meowsweats

#

There may also be out of bounds read in PP, forgot if I checked that. But i didn't send you a new PP

harsh orbit
#

what is CS anyway? PS is pixel shader right?

viscid onyx
#

compute shader probably

harsh orbit
#

poor viper guy thinks he's hidden yet he sticks out like a sore thumb ๐Ÿ˜… (in a good way tho! I played the scenario again and it was a lot more fun like this)

#

btw I'm still not sure if the lasers should be visible in thermals

harsh orbit
#

btw have you changed something else Ded? the game feels super smooth (solid 60 FPS) for me since this update

full sonnet
#

besides that couple script commands multithreaded no

near hedge
#

Accidentally multithreaded the entire game meowsweats

harsh orbit
#

btw I had another question.
is it not possible to extend the temperature of terrain edges to infinity so that it doesn't become like this?
the temperature difference between the terrain and off-map area are clearly visible meowsweats

full sonnet
#

huh... eh.
Temperature should only depend on surface material, so if the material stays the same the temp should stay the same.
I think thats just minor

harsh orbit
#

looks like it only happens in VR. nvm meowsweats
(including the broken skybox bug)

#

I wish the game didn't have so many broken materials notlikemeowcry
like the transmission lines

#

also some objects appear fine at long distances but become pitch black when you're close (and vice versa)

full sonnet
#

especially buildings

#

because lower lods switch shader from Multi to Super

steep gust
harsh orbit
true peak
harsh orbit
#

I don't use ambient occlusion at all

#

other roads work fine tho. I tried all other vanilla terrains think_turtle

harsh orbit
#

I managed to get another device removed freeze meowsweats

#

steps to repro:

  1. spawn the chinese VTOL (any terrain besides VR)
  2. switch to targeting camera
  3. freeze (seems to happen when over water?) meowsweats
#

it doesn't seem to be related to the thermals this time

#

also it only happens when I switch to the targeting camera. when I played normally there was no crash

#

seems like an invalid texture. let me validate game data

harsh orbit
#

nope it still happens meowsweats

teal snow
harsh orbit
#

try Tanoa

#

the VTOL showcase mission is the one that I got the crash on first

teal snow
#

let me try the showcase

harsh orbit
#

make sure you actually play it a bit (move towards the first task)

#

it was ok for me initially, but crashed when I was over water and on my way to the other island (or peninsula or whatever) where the task is

teal snow
#

still nope

harsh orbit
#

might be data or driver issue then thonk

full sonnet
#

diag_setTerrainHeight wiki has a example for flattening terrain.
That is being spawned, which is actually pretty bad. setting height clears clutter (grass) cache, with spawn it does one point per frame, and at end of frame when it tries to render, it regenerates clutter cache.
So you regenerate clutter cache for every point thats processed.

If doing it in unscheduled, it will re-clear the cache but after the first one it will already be empty. And quickly chew through all changes, and then regenerate cache once.

harsh orbit
full sonnet
#

Did it always do this?

harsh orbit
#

Did you change it?

full sonnet
#

Well I changed some things not sure if that would do that

harsh orbit
#

I don't remember it getting like that

#

But I didn't mess with it much

#

If you didn't change it in the current dev branch I can test it again

carmine juniper
#

As far as I tried it does such a lot. But I don't remember why/when it happens, perhaps you can ask @candid dew who's making a terrain deformation Mod rn

harsh orbit
#

Wasn't that for reforger? thonk

carmine juniper
#

No, it shows Livonia

full sonnet
candid dew
#

Out of the loop - what am I looking at here?

full sonnet
#

But its ultra slow because it updates too many objects in too large radius for every point instead of just once for the whole thing

#

Automatic object height adjustment when heightmap changes

#

what you did basically

candid dew
#

oh cool. Got it sorted with traditional scripting already but this might be better

full sonnet
#

But it makes setting a point quite expensive, and when you set many it goes oof slow pretty quick

#

your script is probably much faster ๐Ÿ˜„

#

We'll need bulk change probably. Will just make the command take array of changes instead of single position

candid dew
#

maybe. But mine's a bit inaccurate. Couldn't figure out how to find the exact original height after the terrain changed. So I just take an average of the three corners of the grid.

full sonnet
#

I iterate through all objects, collect their ATL height, change terrain height, and move them up so that ATL height is back to what it was before

#

but this is kinda really bad, did you get such stuff too @candid dew ?

harsh orbit
#

Why does it only happen on 1 side tho? thonk

#

Is your camera pointing to SW rn?

full sonnet
#

northeast.
So the south and east edge are buggy ๐Ÿค”
I don't really want to try fixing this :sad:

#

Ah well whatever, I'll leave it to the user to keep in mind and fix ๐Ÿ˜„

harsh orbit
#

OMG I just noticed I asked for the getTerrainInfo command exactly 2 years ago oldman
Jun 16 2020 meowsweats

candid dew
full sonnet
#

That sounds like I can leave it broken, nice! ๐Ÿ˜„

candid dew
full sonnet
#

Ah I'm just moving the terrain objects

candid dew
#

wait, they don't react to setposes naturally do they?

full sonnet
#

Don't know ๐Ÿค”

harsh orbit
#

Terrain objs can't be moved with setPosXXX

#

They only move when destroyed

#

e.g. a destroyed building sinks into the ground

#

and destroyed trees/walls change their vector dir/up

candid dew
#

Ded, regarding the breaking terrain seams: this is from a year ago, seem the happen a lot randomly.

full sonnet
#

Mh it seems like its just skipping some grid points

#

like there is a extremely tiny point at low height, and very close to left and right are the next points that are at high height
but that shouldn't happen the heightmap should be same resolution everywhere ๐Ÿค”

harsh orbit
#

Sounds like a rounding problem thonk

candid dew
#

running the same exact code again fixed the holes though

full sonnet
#

Yes.. this is what happened when I set it up, and then set it back down again

#

the outer edge moved after I set it back down notlikemeow

harsh orbit
#

Are you sure it's not just a visual glitch?

#

E.g. do bullets collide with that raised edge?

ivory ridge
#

The terrain is tiled in chunks as if i know. In dedmens video he did take the exact middle of the terrain and 50x50m. In Greenfists video the glitch is a straight line in two times. Maybe this phenomenon is linked to the tiled terrain.

harsh orbit
#

ofc it is tiled

full sonnet
harsh orbit
#

It's a texture

ivory ridge
#

Other idea: if every time the two sides are missing, maybe the engine or the script/function "flips" the some kind of faces (?normals? like on importing 3d models:
#enfusion_model message
).
But different results on different runs. thonk

ivory ridge
candid dew
#

๐Ÿค” good question. That script looped through horizontal x coords first, and then y-wise. that gap looks like one full x loop was broken. Running exactly the same thing again fixed it.

ivory ridge
#

The second last gap is not fully broken or i am wrong?
It looks like it ends near the circle (see 0:11)
@candid dew

candid dew
#

you're right! Also all the gaps seems to be equally far apart...

#

I'm starting to suspect my scripting... Those scripts are probably long gone now, can't go back and check

ivory ridge
candid dew
#

yeah, I may have passing some very faulty value to the setterrainheight command there.
But I'm pretty sure I've seen this happen on my 'terrain deformer' mod, and there any consecutive command has repaired it. If the previous height would be something crazy, the second one should only make it worse I think, because it would take the faulty height as a base for changes.

full sonnet
candid dew
#

Stop ripping holes in the space-time armaverse!

ivory ridge
full sonnet
#

You don't get the point ๐Ÿ‘€

ivory ridge
#

It is faster?

full sonnet
#

Well that too

#

Interesting. I stopped recording and tabbed out.
A minute later I looked back and saw this
It somehow magically fixed itself? :u

Executing twice doesn't fix it.. what is going on here notlikemeow

ivory ridge
#

Is tapping out or the time the important thing? I guess it is tapping out.

full sonnet
#

huh when shadows are updated, it fixes itself. Good to know ๐Ÿ˜„

#

No its not

#

yeah as soon as the terrain shadows update themselves, it gets fixed. Probalby need to clear some cache. Shouldn't be too hard to find

ivory ridge
#

So many posibilities

candid dew
#

couldn't reproduce that anymore. Despite my best efforts to break it ๐Ÿ˜„

full sonnet
#

I got it fixed now, it takes a second or two after change to update, but should be fine

#

Also with extreme changes, shadows are bugged.
#WontFix

candid dew
#

Time should heal those

ivory ridge
#

What are smallest length between two points that can be changed? The grid size?

carmine juniper
#

Yes

full sonnet
ivory ridge
#

Is it possible to create a 3D Object dynamically by the engine to cover the "stamped hole" seamlessly by fitting the surrounding cell grid points?

full sonnet
#

In engine yes in script no

hot wave
#

Will diag_setTerrainHeight ever come over to the main branch?

full sonnet
harsh orbit
harsh orbit
ocean tundra
#

when opening the load/save mission dialog in 3den, all the folder trees are open by default, is it possible to add option to disable this in the future?

#

i have many subfolders in my missions directory

full sonnet
#

Hah 5 seconds later the driver gets out of the quad, teleports to the surface and continues walking ๐Ÿ˜„

full sonnet
harsh orbit
#

nah. ditch it
the only reason anyone might ever want to use it is better performance ๐Ÿ˜…

#

also a question about diag_setTerrainHeight. which corner does it move?

#

wouldn't it better if it took heightmap position instead of world position?

full sonnet
#

in diag floor(x) so southwest of provided position
In retail round(x), so nearest of provided position

full sonnet
#

setTerrainHeight [[adjust objects, option2, ...], [X, Y, newHeight], ...]
I would like to pass options like this. But its kinda terrible.
Just trying not to have it be a binary command ๐Ÿ˜„

harsh orbit
full sonnet
#

but its many positions

harsh orbit
#

what I wrote is also many positions thonk

#

[pos1, pos2, etc.]

full sonnet
#

setTerrainHeight [[pos, ...], option1, option2, etc.] that you mean

harsh orbit
#

yeah

full sonnet
#

yeah that makes more sense ๐Ÿ‘

tepid dock
#

Do I sense another It's impossible to add this at this stage of development added? ๐Ÿ˜„

full sonnet
unreal arrow
#

[pos,โ€ฆ.] set terrain height [options] @full sonnet

harsh orbit
harsh orbit
#

@unreal arrow I have a request regarding the allObjects command.
when you get all cloudlets, 63 allObjects 3, you get several thousands of them. a single smoke grenade generates 1000+ cloudlets meowsweats

does the engine happen to "group" cloudlets? e.g. having one smoke particle object, is it possible to get the other particles originating from the same source?
if so, it would be more practical to only return one instance of the cloudlet, and let the user "extract" the rest using a command. e.g. getCloudletGroup _oneParticle or something, which returns an array of all particles belonging to the same source

that way the allObjects array would be so much smaller and easier to process

harsh orbit
#

any updates today (or this week)? meowsweats

full sonnet
#

QA is still testing

misty aspen
candid dew
#

adjustObjects option in setTerrainHeight not working...?
For example
setTerrainHeight [[[5775,10192,14.95]],false]
still moves objects, right?

full sonnet
#

uh notlikemeow

#

Is supposed to be working :harold:

harsh orbit
#

found a bug

#

apparently setAccTime is not bounded anymore

#

I just did setAccTime 1000 and it works meowsweats

#

another bug: getTerrainInfo has wrong command info ๐Ÿ˜›

#

it says it returns scalar. it returns array

harsh orbit
#

you can even do setAccTime -1 notlikemeow

#

the game completely breaks ๐Ÿคฃ

#

I recommend that you set the bounds to [0, 16]

#

wiki says Value is clamped to 1/128 - 4 but I'm pretty sure 0 was possible (to pause the game) ๐Ÿค”

#

4 for upper bound is too low. at least allow up to 8

full sonnet
#

The code for it wasn't touched since jan 2021 when I added that eventhandler for it

harsh orbit
#

really? it was always broken?! meowsweats

full sonnet
#

seems so

harsh orbit
#

well anyway as long as you clamp the value to [0, ) it should be fine meowsweats

#

only negative values break the game

#

too large values seem to cause performance issues thonk

#

even 1000 seems ok

#

well as long as time multiplier is 1 meowsweats

#

if you do e.g. setTimeMultiplier 10 the performance becomes terrible again (too fast time change)

candid dew
#

๐Ÿ˜„ Was just about to say the same:

misty aspen
#

Yeah it definetly looks fancy sippy

full sonnet
#

๐Ÿค”

harsh orbit
#

what?

#

testText?

steel rune
#

nice ๐Ÿ™‚

candid dew
#

So I take it that you didn't play East Wind? One of the most unforgettable missions was the assault in the notorious tรฉstText Valley.

full sonnet
#

Girna be gone

misty aspen
teal snow
#

any idea when the Ti update will push? i am assuming a couple months

viscid onyx
#

The ETA for 2.10 (which contains the TI improvements) was last reported as "late summer", so it could really be anywhere between now and the end of September.

lapis prawn
#

Good thing we can setAccTime 1000 now to skip the wait

full canyon
winter crescent
full sonnet
#

Some more feedback on thermals now?
I know that trees should be toned down a bit. But besides that anything real bad?

harsh orbit
#

the sudden LOD changes can't be fixed right?

#

the Super/Multi shader thingy

full sonnet
#

no

harsh orbit
#

what about IR lasers being visible?

full sonnet
#

Ah, yes thanks

harsh orbit
#

should they?

full sonnet
#

Well.. I think for gameplay its probably nice for aircraft operators to see them ๐Ÿค”

harsh orbit
#

another thing that would be nice to have is visible power lines

#

for heli pilots

harsh orbit
full sonnet
#

glitchy roads are won't fix

#

Mh powerlines should be warmer yeah ๐Ÿค”
That might be too hard

teal snow
harsh orbit
#

well they should be much much dimmer tho

teal snow
harsh orbit
#

I'm still against the idea of making thermals too powerful

teal snow
#

i still dont think this is making thermals powerfull, what its doing is making it easier to see the enviroment which in turn also help break up the figure of players blending them into the enviroment more, it also makes it easier to navigate

harsh orbit
#

fair enough. but lasers being visible just makes no sense

#

it's not like they heat up the air a few degrees (which is what it looks like now)

teal snow
#

thats a fair point, cant really argue that other than it would look good,
that being said for ir stuff, would still love to see the strobe lights in thermals and for them to last longer

misty aspen
#

I'm personally on the side making normal laser beams not visible in thermals, or at least dimmed a lot, since it'd imo make them too powerful as has been mentioned

harsh orbit
#

@full sonnet if I send you a script regarding setTerrainHeight, will you plz test it? I think I found a bug

full sonnet
#

ju

#

perfect timing, be quik

harsh orbit
#

DM?

#

or here?

full sonnet
#

whatever you prefer

misty aspen
#

post here so I can yoink

harsh orbit
#
craterSize = 10;
craterDepth = 10;
fnc_addCrater = {
    params ["_pos"];

    _normal = surfaceNormal _pos;
    
    _vy = vectorNormalized( _normal vectorCrossProduct [1,0,0]);
    _vx = vectorNormalized( _vy vectorCrossProduct _normal);
    
    _rotT = [_vx, _vy, _normal];
    _rot = matrixTranspose _rotT;
    _posT = flatten (_rotT matrixMultiply (_pos apply {[-_x]}));
    _matT = [_rotT#0 + [_posT#0], _rotT#1 + [_posT#1], _rotT#2 + [_posT#2]] + [[0,0,0,1]];
    _mat = [_rot#0 + [_pos#0], _rot#1 + [_pos#1], _rot#2 + [_pos#2]] + [[0,0,0,1]];
    
    _cellsize = getTerrainInfo#2;
    
    _area = [_pos, craterSize, abs(_normal#2) * craterSize, _normal#1 atan2 _normal#0, false];
    
    _newHeights = [];
    _pos apply {floor (_x / _cellsize)} params ["_x0", "_y0"];
    for "_x" from (_x0 - craterSize) to (_x0 + craterSize) do {
        for "_y" from (_y0 - craterSize) to (_y0 + craterSize) do {
            private _p1 = AGLToASL ([_x, _y] vectorMultiply _cellsize);
            if (_p1 inArea _area) then {
                _diff = flatten (_matT matrixMultiply ((_p1 + [1]) apply {[_x]}));
                _depth = craterDepth/craterSize * vectorMagnitude(_diff select [0,2]) - craterDepth;
                if (_diff#2 > _depth) then {
                
                    _diff set [2, _depth];
                    
                    _newPos = flatten(_mat matrixMultiply (_diff apply {[_x]})) select [0,3];
                    _newHeights pushBack _newPos;
                };
            };
        };
    
    };
    if (count _newHeights > 0) then {setTerrainHeight [_newHeights, false]; pp1 = _newHeights};
};

_p1 = AGLToASL positionCameraToWorld [0,0,0];
_p2 = AGLToASL positionCameraToWorld [0,0,100];

_inters = lineIntersectsSurfaces [_p1, _p2, objNull, objNull, true, 1, "GEOM", "NONE"];
if (count _inters > 0 && {isNull (_inters#0#3)}) then {
    [_inters#0#0] call fnc_addCrater
};
#

it creates a crater where you're looking

#

the problem is some grid pixels don't seem to move thonk

#

I'll send a video

#

the green icons is what I'm passing to setTerrainHeight

#

yet some pixels are not where I tell them to be think_turtle

full sonnet
#

can you show screenshot from above with the icons?

harsh orbit
#

sure

#

oh wait nvm I saw what was going on meowsweats

full sonnet
#

great

#

๐Ÿฆ†

harsh orbit
#

it was getting rounded to other pixels meowfacepalm

full sonnet
#

Maybe I should make it filter out duplicates, then you can just splatter the area with way too many points to make sure all get hit

harsh orbit
#

it's ok I'll fix it meowsweats

full sonnet
#

After noon/overcastnight livonia
and before (last two images)

After noon 30% overcast
After night full overcast

Before noon 30% overcast
Before night full overcast

Yes before and after images are swapped deal with it ๐Ÿ˜ 

#

Good? Seems better to me to make trees less extreme

harsh orbit
#

better but some trees are black

full sonnet
#

Thats a leftover bug that I don't want to talk about :harold:
For some reason some foliage objects just don't render at all. What you see is the hole in the world that lets you see through to the universe background radiation

analog fractal
#

Arma lets you see the fabric of reality, neat.

candid dew
#

Any signs of a fix for adjustObjects in setTerrainHeight?

full sonnet
#

No, I forgot. I set a reminder for tomorrow ๐Ÿ˜„

candid dew
#

Much thanks praise_the_sun

full sonnet
#

Always the stupid stuff

candid dew
#

Have you entertained any thoughts of adding some kind of filtering into adjustObjs? allObjects-like thing? Is map object or not?

full sonnet
#

no

candid dew
#

ok, good to know ๐Ÿ‘

gentle python
full sonnet
#

Apply what? get a performance improvement? run profiling branch exe

wispy mortar
#

nearSupplies: Is this function used a lot?

steel rune
#

according to GitHub search it's used in two functions for ACE, zero scripts in CBA

ace_csw_fnc_ai_reload
ace_csw_fnc_reload_getReloadableMagazines

full sonnet
harsh orbit
#

I wasn't sure where to ask this so I'll just put it here:
is it possible to add more categories to workshop items?

#

it would be nice if we had more categories to narrow the search further

pallid cliff
#

So people can apply even more categories to mods?

harsh orbit
#

So people can apply correct categories to mods

pallid cliff
#

Who does that anyway.

#

99% of mods just select all categories

harsh orbit
#

I do ๐Ÿ˜›

winter crescent
#

I think only we can add them. Perhaps propose a list via FT and we'll see if it makes sense or would clutter things too much ๐Ÿ™‚

gray cradle
#

Terrain shaping? I am hyped. Even better if it would apply in real time during game [ artillery shells, tank shells, digging trenches]. So much potential.
Hope it would be released when ready to normal branch ๐Ÿ™‚

harsh orbit
full sonnet
#

Just... please don't break the game with it weheartdedmenwob

harsh orbit
#

I'll try but I won't promise anything ๐Ÿ˜›

misty aspen
wispy mortar
winter crescent
#

Hiya Dev-Branch users, it's likely the next 2 weeks will not see updates. After that, we'll be back ... most probably with the 2.10 RC-Branch salute

wispy mortar
harsh orbit
#

is that a white hole? thonk

wispy mortar
#

May be, lol. A bug on the original game.

ocean sail
viscid onyx
#

Just an interesting thing I came across on this subject from a former Abrams crewperson:

I haven't used any of the current thermals, but the thermals on the M1 and M1A1 were awesome (I assume modern thermals are even better). We could read the letters on a sign and sometimes the letters on a name tag, because the dark letters were warmer than the lighter background.
So it turns out there's no need to worry about readable signs being unrealistic :P

full sonnet
#

Its actually been there and in profiling for a couple months.
just the UI was missing ๐Ÿ˜„

steep gust
#

Any possibility of seeing script-changeable selection textures for vests and other gear? Currently only uniforms and backpacks are supported for infantry units. A number of bi requests have been active for this for years. Not sure if it's something that'd be challenging to add at this point, but it would be great for various modding endeavours

full sonnet
#

unlikely