I sent you a PM. If you need further verification, copy paste the code in Gemini and it will explain in English what the code does, just ask, what does this code do. Personally I think dos games ran better but that was a long time ago. I remember when games started to be made for windows. But at least with windows there was not more memory management you had to fool with like dos. Edit autoexec Batch, and Config.sys. Remember first pc I ever owned I deleted those files trying to clear up more room.. :/ luckily a friend knew how to fix it. 486-33 16 megs of ram, before 3d cards hit the market. I remember 1fps on Flight Sim on the C=64 too. People then just accepted it. We all knew it sucked then though. We didn't care much, still played it.,
It’s a reflection Actually the lack of one because that Barstow does not have dynamic reflections enabled
Dont blame me lol.. I am the middle man. Just the one who delivered the bad news. Not many people play in the world editor as much as me, I likely have more time in there than anyone. I put about 60 hours a week into it. And love it. Been at it like that for 4 years. When it farts, I smell it.
Thanks for that PM, thought it might be something else haha. In any case, please interpret these kind of things with a grain, or better, a mountain of salt. Many experiments and proofs of concept never translate into actual features (more often than people imagine). There's frequently a bunch of non-obvious but very difficult obstacles to overcome with many of our experiments and research, even if things might appear quite reachable to an untrained eye. Specially if said eye is not too used or familiar with the constraints, scrutiny, reach and expectations of official features. Only mentioning this to avoid people unreasonably self-hyping themselves, about things that we never promised or announced officially, and then inevitably getting disappointed, sad or frustrated when those imaginary goals aren't met. I know this is the update speculation thread, so I don't want to rain on anyone's parade, but I also don't want the community to hurt themselves like I've seen in the past, it's better to keep expectations in a healthy reasonable level. So anyway, may the speculation continue, and as usual thanks all for the support! <3
I get that thanks. I have been bad to tease mods that start to look great, or maps, then later run into issues beyond my know how to fix. Then have to say sorry, that is shelved until great understanding can be reached or a solution presents itself through other ways. Its never my intention to let people down. So yeah thanks, I completely understand. You all are doing great work, nobody else has ever come close to what you all have here!
The new texture streaming sucks. It happens WAY too close to where you are and makes low-FOV images godawful. I do hope there is adjustment for this in the future because it's awful.
Average 9 yr-old forum user: The new update is taking way too long to release, devs plez relez 0.38 now!!!!!!!!!!!!!
If they really are mad over something not releasing, they should just calm down or quit BeamNG entirely. People should have patience and not scream and bash the devs for just something that’s taking a while to release.
You can try to add this see if it makes a difference in the shader for the streaming.. Back up the original. In the screenshot you see where it is located. Replace Replace the code in that one with this one... // Texture streaming with reservoir sampling // This header provides reservoir sampling functionality for texture streaming // to reduce memory bandwidth by only writing 1 texture per pixel // --- add: tiny, optional bias to stream farther (lower mip index => sharper) --- #ifndef STREAM_LOD_BIAS // Gentle start: 0.5–1.0 is usually plenty. Set to 0.0 to disable. #define STREAM_LOD_BIAS 0.75 #endif // ------------------------------------------------------------------------------- Texture2D getMaterialTex(uint index); uint getTextureMipCount(uint texIdx); // Reservoir sampling variables for texture streaming static uint reservoirTextureIdxWave = 0; static uint reservoirCountWave = 0; static uint reservoirMipCountWave = 0; static uint rngStateWave = 0; static float reservoirMipLodLane = 0; // Function to set pixel context for reservoir sampling void textureStreamingInit(uint2 screenPos, uint frameSeed) { // Initialize RNG state for this pixel rngStateWave = (screenPos.y << 16) | screenPos.x; rngStateWave = rngStateWave * 1664525u + frameSeed; rngStateWave = rngStateWave * 1664525u + 1013904223u; } // Pixel-specific RNG for reservoir sampling uint reservoirRng() { // Linear congruential generator - advance state and return new value rngStateWave = rngStateWave * 1664525u + 1013904223u; return rngStateWave; } #if defined(BNG_TEXTURE_STREAMING_ACTIVE) && defined(MFT_OutputFinalColor) bool writeTextureStreamedMipLod(uint texIdx) { // Proper reservoir sampling with pixel-specific RNG reservoirCountWave = WaveReadLaneFirst(reservoirCountWave) + 1; // Generate pixel-specific random number [0, 1) const float randomValue = (reservoirCountWave == 1) ? 0.0 : float(reservoirRng()) / 4294967296.0; // Reservoir sampling: replace with probability 1/count if (randomValue < (1.0 / float(reservoirCountWave))) { reservoirTextureIdxWave = WaveReadLaneFirst(texIdx); return true; } return false; } void writeTextureStreamedMipLod(uint texIdx, SamplerState samplerState, float2 uv) { texIdx = WaveReadLaneFirst(texIdx); const bool added = WaveReadLaneFirst(writeTextureStreamedMipLod(texIdx)); if(added) { reservoirMipCountWave = getTextureMipCount(texIdx); // --- original LOD calculation --- float lod = getMaterialTex(texIdx).CalculateLevelOfDetailUnclamped(samplerState, uv); // --- add: small downward bias so higher-res mips are requested earlier --- // Negative bias pushes streaming farther; clamp at -3 like the packer expects later. lod -= STREAM_LOD_BIAS; reservoirMipLodLane = lod; } } RWStructuredBuffer<uint> getMipLodReadbackBuffer(); void flushReservoirTexture() { // Perform InterlockedMin at the end of pixel shader, only on first lane if (reservoirCountWave > 0) { uint outMinLod = 0; const uint mipCount = reservoirMipCountWave; // Keep existing safety range; the write clamps to >= 0 anyway. const float lodMinLane = clamp(reservoirMipLodLane, -3, 15); const uint mipOutLane = lodMinLane + (15 - mipCount); // Consolidate across the wave const float minPacked = WaveActiveMin(mipOutLane); if(WaveIsFirstLane()) { // Final safety: don’t ask for negative mips InterlockedMin(getMipLodReadbackBuffer()[reservoirTextureIdxWave], asuint(max(0, lodMinLane)), outMinLod); } } } #endif Personally I can not tell a difference, I must not be sensitive to the changes enough to notice but maybe that can help. It adjusts it out farther but be warned, it can loose some performance. Likely a reason they have it drawing in so soon. In there are notes on what you can tweak and resave, good luck! --- Post updated --- They are in the works, from dev. But this is very promising until then! --- Post updated --- Well that feller would have really been upset if he was here when one update was delayed and merged with the next one after that one
At least the fire system is good. Not many people notice this but if your car catches fire in a crash, the fire will spread through the vehicle. Pretty sure it wont between vehicles sadly. I hope they add a burnt out texture to the car when its been on fire long enough, and using a noise map slowly spread through the vehicle.