So I've played this game for about 3 Hours now and I must say everything about this game is seriously awesome, it's my ideal game for sure. However the one thing i'm not impressed on is the optimization. I have a 4K Monitor and I don't expect to run games at 4k, only some will. I can normally play 99.9% of games on 2k resolution apart from BeamNG. This includes games such as BF4, Dying Light, Advanced Warfare so all the next gen games and many more. I can even run Battlefield hardline on 2k resolution with maxed out settings at around 80 FPS however on BeamNG i struggle to get 30 FPS and can't really get past 45 FPS on GridMap. Here's also the funny thing, I've tried setting 2k resolution ,but with absolutely the lowest other settings, and weirdly enough my frames change by about 5 and yet again 30-35 FPS. I've tried going down to 1920x1080 (which looks dreadful on my 4K monitor) and i've turned the graphics up to near full and the framerate varies a lot, sometimes 45FPS sometimes 60FPS. I've tried messing around with the settings ,but it doesn't appear to be helping. I'm super confused because as of right now I'm having a difficult time playing BeamNG Is there something i'm missing out on ? Like a specific setting? I believe my CPU is overclocked to 4.2GHz also. System Specs: [TABLE="class: section, width: 643"] [TR] [TD="class: primary-title, align: right"]Processor[/TD] [TD="class: value"]Intel(R) Core(TM) i5-3570K CPU @ 3.40GHz[/TD] [/TR] [/TABLE] [TABLE="class: section, width: 643"] [TR] [TD="class: primary-title, align: right"]Video Card[/TD] [TD="class: value"]NVIDIA GeForce GTX 980[/TD] [/TR] [/TABLE] [TABLE="class: section, width: 643"] [TR] [TD="class: primary-title, align: right"]Memory[/TD] [TD="class: value"]8.1 GB[/TD] [/TR] [/TABLE] [TABLE="class: section, width: 643"] [TR] [TD="class: primary-title, align: right"]Operating System[/TD] [TD="class: value"]Microsoft Windows 7 Home Premium Edition Service Pack 1 (build 7601), 64-bit[/TD] [/TR] [/TABLE] Thanks in advance,
Main problem is vegetation and LOD. LOD is currently calculated on resolution. So if you have lower resolution, Lower Detail models start to appear nearer, and using higher resolution will make them appear at a more distance. Basically BeamNG performance scales up bad with resolution. That's already known and is being looked after.
I'm really hoping that's the case because it's really odd. I'm on the level port and I've parked just outside the pitstop. I look one way and i get a stable 60FPS, it doesn't change at all. When i look the other direction however it drops straight down to 30 FPS. Thanks for the fast reply
I have specs worse than yours and I can pull 50-60 FPS on default maps and my map, with settings set almost like yours I have a few things to tell you; 1. Turn off Vsync. You may not be able to handle it, and it doesn't really change much on screen. 2. Turn off the following PostFX systems; *a. Light Rays *b. DOF Next, try the following screen resolution; 1336x768(the resolution of my monitor.) Turn off A.A(Anti Aliasing,) as for this will eat your framerate. On those specs I can certainly tell you what settings you can max out safely; Mesh Quality-High Texture Quality-High Lighting Quality-High Shader Quality-High If you still have instabilities, Then slowly start lowering your settings. I know on my end I managed a pretty stable FPS by disabling the fps limiter and enabling Vsync.
Thank you for you suggestions. However I refuse to go lower than 1920 x 1080 resolution, it looks dreadful on my monitor even at 1920 x 1080, i can't imagine what It would look like. It would probably run without any issues ,but like modern games id like to have a mix of performance and graphical quickly as a pose to one or the other. I really thing this urgently needs to be worked on - - - Updated - - - Just to add to my problems, BeamNG seems to always be crashing after about 10 minutes of gameplay. Normally it's after i've spawned in a vehicle. I hate to say it at the moment ,but for me this game is practically unplayable.
Are you playing full screen? As far as looks if you have it windowed it will look a whole lot better in 1080 then on full screen. As far is performance I don't really know the impact that provides. I play on a 1680x1050 monitor and play the game at 1440x900, and everything looks pixel sharp but I am using it windowed. I also prefer it as it is easier to keep the game running and do other things like downloading mods and mov the game between monitors (I have 3). Hmm...in looking my video card is worse then yours and I get pretty good FPS at maxed settings (I might be down a tad or even off on A.A.) though I again do play at 1440x900.
As Nadeox said, Level of Detail mesh placement is calculated based on how many pixels an object takes up on screen. The theory being you'll never see object popin/switching if an object takes up a predefined amount of pixels before switching to the low-detail variant. A sound theory, but at high resolutions it falls apart with only the furthest objects switching to low detail. This can be subverted by lowering the Model Detail setting, which effects when LoD meshes are swapped in except for its lowest setting, which provides a global quality lowering. For 4k, I'd recommend trying to use Mesh Quality at Low. It shouldn't impact visuals hardly at all while dramatically reducing the number of polygons to be drawn. I play at 1440p with the first build in my signature with Low mesh detail, Normal lighting, 2x AA and everything else maxxed at 40-60 FPS. The biggest FPS sucker is (or used to be) ambient occlusion. If you can do for a shadow downgrade, this might be one to look at.
I have a 980 and I can run 60 FPS on most maps @ 1440p. On maps like GridMap I can run @ 4k (EDIT: at 60FPS). Here is my settings: PostFX Code: $PostFXManager::Settings::ColorCorrectionRamp = "scripts/postfx/color_ramp_default.png"; $PostFXManager::Settings::DOF::BlurCurveFar = "10.7477"; $PostFXManager::Settings::DOF::BlurCurveNear = "29.3023"; $PostFXManager::Settings::DOF::BlurMax = "0.158879"; $PostFXManager::Settings::DOF::BlurMin = "0.38785"; $PostFXManager::Settings::DOF::EnableAutoFocus = "0"; $PostFXManager::Settings::DOF::EnableDOF = ""; $PostFXManager::Settings::DOF::FocusRangeMax = "74.7756"; $PostFXManager::Settings::DOF::FocusRangeMin = "191.597"; $PostFXManager::Settings::EnableDOF = "1"; $PostFXManager::Settings::EnabledSSAO = "1"; $PostFXManager::Settings::EnableHDR = "1"; $PostFXManager::Settings::EnableLightRays = "0"; $PostFXManager::Settings::EnablePostFX = "1"; $PostFXManager::Settings::HDR::adaptRate = "2"; $PostFXManager::Settings::HDR::blueShiftColor = "0.988235 0.988235 0.992157 1"; $PostFXManager::Settings::HDR::brightPassThreshold = "0"; $PostFXManager::Settings::HDR::enableBloom = "1"; $PostFXManager::Settings::HDR::enableBlueShift = "0"; $PostFXManager::Settings::HDR::enableToneMapping = "0.316327"; $PostFXManager::Settings::HDR::gaussMean = "0"; $PostFXManager::Settings::HDR::gaussMultiplier = "0.0793651"; $PostFXManager::Settings::HDR::gaussStdDev = "0.0476191"; $PostFXManager::Settings::HDR::keyValue = "0.408163"; $PostFXManager::Settings::HDR::minLuminace = "0"; $PostFXManager::Settings::HDR::whiteCutoff = "1"; $PostFXManager::Settings::LightRays::brightScalar = "0.75"; $PostFXManager::Settings::SSAO::blurDepthTol = "0.3"; $PostFXManager::Settings::SSAO::blurNormalTol = "0"; $PostFXManager::Settings::SSAO::lDepthMax = "5"; $PostFXManager::Settings::SSAO::lDepthMin = "0.165877"; $PostFXManager::Settings::SSAO::lDepthPow = "0.2"; $PostFXManager::Settings::SSAO::lNormalPow = "2"; $PostFXManager::Settings::SSAO::lNormalTol = "2"; $PostFXManager::Settings::SSAO::lRadius = "0.782834"; $PostFXManager::Settings::SSAO::lStrength = "0.473934"; $PostFXManager::Settings::SSAO::overallStrength = "19.6517"; $PostFXManager::Settings::SSAO::quality = "0"; $PostFXManager::Settings::SSAO::sDepthMax = "50"; $PostFXManager::Settings::SSAO::sDepthMin = "0.402844"; $PostFXManager::Settings::SSAO::sDepthPow = "1"; $PostFXManager::Settings::SSAO::sNormalPow = "2"; $PostFXManager::Settings::SSAO::sNormalTol = "2"; $PostFXManager::Settings::SSAO::sRadius = "0.0957678"; $PostFXManager::Settings::SSAO::sStrength = "0.56872"; Settings Code: $pref::Camera::distanceScale = "1"; $pref::ChatHudLength = 1; $pref::decalMgr::enabled = "1"; $pref::DecalRoad::defaultDistanceFade = "300 50"; $pref::Decals::enabled = "1"; $pref::Decals::lifeTimeScale = "1"; $pref::Directories::Terrain = "levels/"; $pref::enableBadWordFilter = "1"; $pref::enablePostEffects = "1"; $pref::GroundCover::densityScale = "1"; $pref::hasClientTicked = "0"; $pref::hasServerTicked = "0"; $pref::HudMessageLogSize = 40; $pref::imposter::canShadow = "1"; $pref::Input::KeyboardEnabled = 1; $pref::Input::KeyboardTurnSpeed = 0.1; $pref::Input::LinkMouseSensitivity = 1; $pref::Input::MouseEnabled = 1; $pref::lightManager = "Advanced Lighting"; $pref::Master0 = ""; $Pref::MaterialSelector::CurrentFilter = ""; $Pref::MaterialSelector::CurrentStaticFilter = "MaterialFilterAllArray"; $Pref::MaterialSelector::ThumbnailCountIndex = 5; $pref::Net::LagThreshold = "400"; $pref::Net::PacketRateToClient = "10"; $pref::Net::PacketRateToServer = "32"; $pref::Net::PacketSize = "200"; $pref::Net::Port = 28000; $pref::Physics::threadCount = "2"; $pref::PhysicsDebris::lifetimeScale = "1"; $pref::Player::defaultFov = 65; $pref::Player::Name = "Visitor"; $pref::Player::zoomSpeed = 0; $pref::PostEffect::PreferedHDRFormat = "GFXFormatR8G8B8A8"; $pref::ProjectedShadow::fadeEndPixelSize = "35"; $pref::ProjectedShadow::fadeStartPixelSize = "200"; $pref::PSSM::detailAdjustScale = "0.85"; $pref::PSSM::smallestVisiblePixelSize = "25"; $pref::Reflect::frameLimitMS = "0"; $pref::Reflect::refractTexScale = "1"; $Pref::Server::AdminPassword = ""; $Pref::Server::BanTime = 1800; $Pref::Server::ConnectionError = "You do not have the correct version of the FPS starter kit or the related art needed to play on this server, please contact the server operator for more information."; $Pref::Server::FloodProtectionEnabled = 1; $Pref::Server::Info = "This is a Torque 3D server."; $Pref::Server::KickBanTime = 300; $Pref::Server::MaxChatLen = 120; $Pref::Server::MaxPlayers = 64; $Pref::Server::Name = "Torque 3D Server"; $Pref::Server::Password = ""; $Pref::Server::Port = 28000; $Pref::Server::RegionMask = 2; $Pref::Server::TimeLimit = 20; $pref::SFX::autoDetect = 0; $pref::SFX::bitrate = 32; $pref::SFX::channelVolume1 = 1; $pref::SFX::channelVolume2 = 1; $pref::SFX::channelVolume3 = 1; $pref::SFX::channelVolume4 = 1; $pref::SFX::channelVolume5 = 1; $pref::SFX::channelVolume6 = 1; $pref::SFX::channelVolume7 = 1; $pref::SFX::channelVolume8 = 1; $pref::SFX::device = "Speakers (Realtek High Definition Audio)"; $pref::SFX::FMOD::disableSoftware = "0"; $pref::SFX::FMOD::DSoundHRTF = "full"; $pref::SFX::FMOD::enableProfile = "0"; $pref::SFX::FMOD::pluginPath = ""; $pref::SFX::FMOD::useSoftwareHRTF = "1"; $pref::SFX::frequency = 44100; $pref::SFX::masterVolume = "0.663866"; $pref::SFX::maxSoftwareBuffers = 16; $pref::SFX::provider = "DirectSound"; $pref::SFX::useHardware = "0"; $pref::Shadows::disable = "0"; $pref::shadows::filterMode = "SoftShadowHighQuality"; $pref::Shadows::textureScalar = "2"; $pref::Terrain::detailScale = "1"; $pref::Terrain::lodScale = "1"; $Pref::TerrainEditor::LastPath = "C:/Users/maxkarlmiller/Documents/BeamNG.drive/mods/levels/zlake/art/terrain"; $pref::TS::detailAdjust = "1"; $pref::TS::maxInstancingVerts = "200"; $pref::TS::skipLoadDLs = "0"; $pref::TS::skipRenderDLs = "0"; $pref::TS::smallestVisiblePixelSize = "-1"; $pref::TSShapeConstructor::CapsuleShapePath = "core/art/shapes/unit_capsule.dts"; $pref::TSShapeConstructor::CubeShapePath = "core/art/shapes/unit_cube.dts"; $pref::TSShapeConstructor::SphereShapePath = "core/art/shapes/unit_sphere.dts"; $pref::Video::autoDetect = 0; $pref::Video::borderless = "0"; $pref::Video::canvasSize = "2560 1440"; $pref::Video::defaultAnisotropy = "16"; $pref::Video::defaultFenceCount = 0; $pref::Video::disableCubemapping = 0; $pref::Video::disableHardwareAA = 1; $pref::Video::disableNormalMapping = "0"; $pref::Video::disableParallaxMapping = "0"; $pref::Video::disablePixSpecular = "0"; $pref::Video::disableVerticalSync = "0"; $pref::Video::displayDevice = "D3D9"; $pref::Video::displayOutputDevice = "\\\\.\\DISPLAY1"; $pref::Video::forcedPixVersion = "-1"; $pref::Video::Gamma = "1"; $pref::Video::missingTexturePath = "core/art/missingTexture"; $pref::Video::mode = "2560 1440 true 32 60 0"; $Pref::Video::ProfilePath = "core/profile"; $pref::Video::screenShotFormat = "PNG"; $pref::Video::screenShotSession = 0; $pref::Video::textureReductionLevel = "0"; $pref::Video::unavailableTexturePath = "core/art/unavailable"; $pref::Video::warningTexturePath = "core/art/warnmat"; $pref::Water::disableTrueReflections = "0"; $pref::windEffectRadius = "25"; $pref::WorldEditor::cameraFOV = "75"; $Pref::WorldEditor::FileSpec = "Torque Mission Files (*.mis)|*.mis|All Files (*.*)|*.*|"; $Pref::WorldEditor::LastPath = "C:/Program Files (x86)/Steam/steamapps/common/BeamNG.drive"; $pref::WorldEditor::visibleDistanceScale = "1";
I really think that your GPU isn't the issue, Check your CPU temps while running Beam and report back
I totally agree that this game needs optimization, but I don't think the main problem is with graphics. For instance, I can drive the covet around Hirochi racetrack at 50+fps all the time, even while running at 5760x1080. But if I change to a car that has more N/B my framerate drops. Using the sunburst, I often drop to 25 fps when going at speed, while the T-series is unplayable; I get 19 fps just sitting around on grid map. I used to have a 660, and upgraded to my 970 in hopes of getting better fps, but I saw little to no improvement. Now I'm thinking of overhauling my system and getting an i7 instead of my 8320 I have now in hopes of boosting my physics performance, and hence my fps. Long story short, game performs well graphically, but has a terribly performing physics core.
No, it's the inverse. Remember the physics is being calculated at 2000 steps per second, with around 300 nodes per vehicle and over 500 beams being in costant relationship (thing that is even more insane, because each force that is applied to a nodes have a reaction on all the beams connected to it, which affects all the nodes being attached to those beams, and so on. That's mindblowing.. "Normal" games just uses 60-100 steps per second for their physics, and still being just Rigid Body Physics (Means there is limited relationship between things) with at best 20 datapoints being simulated. Even in Blender (Bullet Physics), setting a simulation at 2000 steps per second means hours of simulation baking. So achieving that in realtime is a quite impressive proof of the engine capabilities. On the other side, people get low performance on more complex vehicles because vehicles are being simulated per thread (1 Vehicle per Thread). Once splitting one vehicle simulation on all the CPU cores will be possible (It's quite complex tho, so IF it ever happens), great things can happen. The main problem is the Graphical Engine. T3D is a good starting point, especially for what it offers as a free engine. But most of the codes it's based on are ancient ones. For example his SSAO is based of some really old documentation, and it's pretty heavy on the GPU, while more recent SSAO you can find on nowadays games barely takes more than 5FPS on a decent GPU. Luckily, T3D is also pretty versatile, and improving/optimizing stuff is very doable (see the Dynamic Reflection being a newly added feature for example, and there is much more).
I just noticed something... Everyone asking for optimization owns an AMD CPU They suck with beamNG. For now Intel is the only CPU brand capable of running BeamNG Take it from me I own one of them, and it sucks. Although it can pull like 50-60 FPS on maps like small island, Industrial, And E.C.U.S.A, along with a modified moonhawk. Still, AMD is cheap but you know what cheap'ing' does...
If i take the postfx system off and lighting to lowest, i can run it with a stable 60fps on gridmap with the 6 wheeled big rig in UHD. The physx is really impressive, and the only way i see to improve performance on that is to simulate it on the gpu instead of the cpu but the devs have already talked about that. The graphics are an other talk, on every map (gridmap and gridmap pure is an exception) i get terrible framerates, and that's with 2 GTX 970 in SLI (i know why its not perfect so no need to tell me ), But i look forward to see it fixed. CPU i7 5930K OC 4.6Ghz GFX GTX 970
The game doesn't use physx. It uses its own physics engine. Physx is nvidias proprietary engine. I think from the GPU side physics reference, you are thinking of cuda (which physx supports) and opencl (which beamng may eventually support)
Thats complete bull, I can easilly run the game at 40-50fps stable on ECA and Dry Rock Island (GPU limited also.) The only thing its not capable of running at a constant 30+fps is the t-series and I imagine with a decent water cooler and an overclock that is possible also.
Yeah i know that. i wrote physx instead of physics because i have alot of problems with physx in borderlands 2 and Pre sequel so have have searched alot about physx so i just didn't think. sorry - - - Updated - - - Okay, i'll try that when i get home. thanks