Any updates will be uploaded whenever I go back on working on this. There are many issues and fixing them requires help from others as I am clueless on how to properly optimize stuff. I still have some unfinished past stuff to go around so whenever I finish that i'll start by canyons and drift track.
Hi everyone, either I searched poorly, or there's no .blend format for the Carbon map (in zip files). I'd be happy if you could help me import the map into Blender!
Please tell me someone is working on this map. My favourite racing game of all time, I would love to keep driving up and down all over Palmont.
Hello i was on discord and I drafted a reply to this thread; Hi i have some questions today after a long break So i'll copy my draft i was going to post to my thread as i think i might be able to get more help here Hello. I'm (partially) back at working on this. I'm starting (again) by San Juan, as a test to see how objects can be properly instanced to the game. I always used to just throw a mesh for one object type (I have described object types in this thread before). But I remember, after reading on how object instancing and batching drawcalls work in this game, it's better to create sort of an "asset library" for props, buildings and such. That makes the workflow more intensive as these are all instanced many times around the map, and transforms have to be "imported" from data coming from the map export on Blender. But i'm sure there is a way to import them or just have blender spit them out in a way? Match a string and then spit out the coordinates and rotation? I don't know yet if that is possible. I'll set an example. This light block object is instanced 5 times in this small section in San Juan. This makes it so if I convert this to PBR and add emissive maps, lets say it does 3 drawcalls for diffuse, roughness and emission. I have now 15 drawcalls just for these as the game does not batch their drawcalls as they're named differently (unless that has changed in the last updates, I don't know), and multiplying this by however many instances of this happening all around Palmont just makes it worse for performance and resource usage (My potato computer crashes quite a lot when reviewing these things lol). Matching the string "XOu_LightBlocker_1b_00" with a script that let's say instances these following the appropriate syntax in some json file for the map so the game just uses 3 drawcalls for said object. It should make performance better and allow for polishing up the map's look. Edit: It is then recommended to use the optimized objects for far away objects (in nfs case it's Panoramas) This is for canyons and city lookouts and stuff. Not having panoramas makes world dull and quite honestly, flat and lifeless And have them trigger using the Exporting DAE objects guide, with the appropiate distance Or using a Zone Trigger in World Editor I was looking into said techniques using zones As NFS uses its own world streaming, it's based on both player and camera position But it would not be worth the hassle I appreciate all help on optimization. I can't post something that hugely unfinished and untested as the full map and call it a day
Well here's an update Roads are now instanced. Further improvements can be made with joining objects in chunks by how environment artists originally made the road section before the streaming file people chop the map up to allow for the original game's streaming system. This uses up more drawcalls compared to one big mesh, but improves performance drastically compared to one huge complex mesh. This uses nulldetail and an appropriate beamng file export to achieve a feel of "streaming" the roads in. The whole map's roads are in; no need to make them in "batches" now, as they are their little meshes each.
Today more progress was made XBu objects or well buildings were added. Blender scripts let me add them very quickly but materials aren't added automatically so it's quite the pain However, the scripts allow for easy import of the rest of object categories (hopefully), but nulldetail distances have to be adjusted. Current issues are the excessive amounts of Terrain meshes that make booting the map a tedious task (5mins i think) and that is without 16k meshes missing that are from canyons. So those might have to be instanced as one big mesh and relegated to be visible only when inside the vicinity of the canyon I attached pictures of today.
i like the progress cant wait to use the new optimized version cause the current version is just not playable on my pc 20 fps mybe less
Lights were exported from stream file data thanks to assetdumper and imported to the map. Radius for various lights have to be adjusted to maybe 10 units more and some light intensities have to be clipped as they are excessive. But keeps my sanity from placing over 8000 lights as were exported from blender. A map reimport was required to blender so it is quite the shame i had to reimport the map as that was around 10 hours my pc left unusable but eh worth it You can see lights with too much intensity even after dividing power by 10000 Drawcalls are also very increased but it's to be expected. (Rendering way longer distances than designed and also lights. Zeit's graphics mod is recommended if pictures are to be taken as it expands detailadjust values which controls viewable distances) Midrange pcs should be able to run the map with lights comfortably. further adjustments can be made to both shadowquality from the lightsources (resolution) or remove shadows intensity keeping just road lights and remove environments lights with a toggable missiongroup but that would be too much work. Don't expect that lol Just as a reminder this is being run on an igpu so performance may vary on higher end systems. San Juan Drift track Silverton That is all for today
Today over 40k trees were added. XTu objects are complete. treecards allow for hiding objects like buildings when they're not rendered. Materials are still not fully set up But scenes are shaping up nicely at normal gameplay conditions; around 4000 drawcalls is okay for what i'm going for That is all for today
Some performance testing This is being ran in an igpu ryzen5 5600g 16gb shared ram; ssd will probably publish a test version once ll objects are in