I use paint.net and try to use bakes whenever possible(Blender likes to crash when baking at my pc). I also use textures from cadhatch.com and paint a lot with brushes and noise in paint.net. You can get decent results with it if you have enough time for trial and error Then, I do my Ubernoob trick, run a texture to a normal map generator(most of the time an edited bake) and then use the PNG and convert it to DDS when it's done. Not the best workflow but it kinda works with stuff.
It has effect on small objects in a way too as islands add drawcalls, so reducing CPU usage one needs to have least amount of islands possible. Then there is GPU polycount too, but I have found out that it is not a huge thing, most GPUs today can do at least 6 million, so what vehicles add is not so huge, of course 10 vehicles is 10 times so one needs to set some target based on how many vehicles he wants to run. It is kinda interesting that UV map can multiply polycount if done with tiny islands, but even worse is drawcall hit (that does cause lag easiest because CPUs are relatively weak compared to GPUs and thanks to DX11 limitations), but that is more issue with maps, still when learning making textures for cars these are good things to know.
I've been trying to add some basic materials to the car. At one point I was able to get reflections working. After I added more materials though, I'm suddenly getting no reflections in any of the materials even though dynamicCubemap is set to true. I've tried clearing the cache and couldn't find any materials.cs files in the /vehicles folder in my documents, so I have no idea what's preventing it. Here's the materials.cs file if anyone wants to have a look (all maps point to a collection of blank .dds files): Code: singleton Material(P205_CarPaint) { mapTo = "P205_CarPaint"; diffuseMap[2] = "vehicles/peugeot/P205_c.dds"; specularMap[2] = "vehicles/peugeot/P205_s.dds"; diffuseMap[1] = "vehicles/peugeot/P205_d.dds"; specularMap[1] = "vehicles/peugeot/P205_s.dds"; diffuseMap[0] = "vehicles/common/null.dds"; specularMap[0] = "vehicles/common/null.dds"; specularPower[0] = "128"; pixelSpecular[0] = "1"; specularPower[1] = "32"; pixelSpecular[1] = "1"; specularPower[2] = "128"; pixelSpecular[2] = "1"; diffuseColor[0] = "1 0 0 1"; diffuseColor[1] = "1 0 0 1"; diffuseColor[2] = "1 0 0 1"; useAnisotropic[0] = "1"; useAnisotropic[1] = "1"; useAnisotropic[2] = "1"; castShadows = "1"; translucent = "0"; translucentBlendOp = "None"; alphaTest = "0"; alphaRef = "0"; dynamicCubemap = true; instanceDiffuse[2] = true; materialTag0 = "beamng"; materialTag1 = "vehicle"; }; singleton Material(P205_MatteBlack) { mapTo = "P205_MatteBlack"; diffuseMap[2] = "vehicles/peugeot/P205_c.dds"; specularMap[2] = "vehicles/peugeot/P205_s.dds"; diffuseMap[1] = "vehicles/peugeot/P205_d.dds"; specularMap[1] = "vehicles/peugeot/P205_s.dds"; diffuseMap[0] = "vehicles/common/null.dds"; specularMap[0] = "vehicles/common/null.dds"; diffuseColor[0] = "0.1 0.1 0.1 1"; diffuseColor[1] = "0.1 0.1 0.1 1"; diffuseColor[2] = "0.1 0.1 0.1 1"; specularPower[0] = "128"; pixelSpecular[0] = "1"; specularPower[1] = "32"; pixelSpecular[1] = "1"; specularPower[2] = "128"; pixelSpecular[2] = "1"; useAnisotropic[0] = "1"; useAnisotropic[1] = "1"; useAnisotropic[2] = "1"; castShadows = "1"; translucent = "1"; translucentBlendOp = "None"; alphaTest = "0"; alphaRef = "0"; dynamicCubemap = false; instanceDiffuse[2] = true; materialTag0 = "beamng"; materialTag1 = "vehicle"; }; singleton Material(P205_InteriorGrey) { mapTo = "P205_InteriorGrey"; diffuseMap[2] = "vehicles/peugeot/P205_c.dds"; specularMap[2] = "vehicles/peugeot/P205_s.dds"; diffuseMap[1] = "vehicles/peugeot/P205_d.dds"; specularMap[1] = "vehicles/peugeot/P205_s.dds"; diffuseMap[0] = "vehicles/common/null.dds"; specularMap[0] = "vehicles/common/null.dds"; diffuseColor[0] = "0.4 0.4 0.4 1"; diffuseColor[1] = "0.4 0.4 0.4 1"; diffuseColor[2] = "0.4 0.4 0.4 1"; specularPower[0] = "128"; pixelSpecular[0] = "1"; specularPower[1] = "32"; pixelSpecular[1] = "1"; specularPower[2] = "128"; pixelSpecular[2] = "1"; useAnisotropic[0] = "1"; useAnisotropic[1] = "1"; useAnisotropic[2] = "1"; castShadows = "1"; translucent = "1"; translucentBlendOp = "None"; alphaTest = "0"; alphaRef = "0"; dynamicCubemap = false; instanceDiffuse[2] = true; materialTag0 = "beamng"; materialTag1 = "vehicle"; }; singleton Material(P205_Chrome) { mapTo = "P205_Chrome"; diffuseMap[2] = "vehicles/peugeot/P205_c.dds"; specularMap[2] = "vehicles/peugeot/P205_s.dds"; diffuseMap[1] = "vehicles/peugeot/P205_d.dds"; specularMap[1] = "vehicles/peugeot/P205_s.dds"; diffuseMap[0] = "vehicles/common/null.dds"; specularMap[0] = "vehicles/common/null.dds"; diffuseColor[0] = "0.9 0.9 0.9 1"; diffuseColor[1] = "0.9 0.9 0.9 1"; diffuseColor[2] = "0.9 0.9 0.9 1"; specularPower[0] = "128"; pixelSpecular[0] = "1"; specularPower[1] = "32"; pixelSpecular[1] = "1"; specularPower[2] = "128"; pixelSpecular[2] = "1"; useAnisotropic[0] = "1"; useAnisotropic[1] = "1"; useAnisotropic[2] = "1"; castShadows = "1"; translucent = "1"; translucentBlendOp = "None"; alphaTest = "0"; alphaRef = "0"; dynamicCubemap = true; instanceDiffuse[2] = true; materialTag0 = "beamng"; materialTag1 = "vehicle"; }; singleton Material(P205_BrakePads) { mapTo = "P205_BrakePads"; diffuseMap[2] = "vehicles/peugeot/P205_c.dds"; specularMap[2] = "vehicles/peugeot/P205_s.dds"; diffuseMap[1] = "vehicles/peugeot/P205_d.dds"; specularMap[1] = "vehicles/peugeot/P205_s.dds"; diffuseMap[0] = "vehicles/common/null.dds"; specularMap[0] = "vehicles/common/null.dds"; diffuseColor[0] = "0.1 0.1 0.1 1"; diffuseColor[1] = "0.1 0.1 0.1 1"; diffuseColor[2] = "0.1 0.1 0.1 1"; specularPower[0] = "128"; pixelSpecular[0] = "1"; specularPower[1] = "32"; pixelSpecular[1] = "1"; specularPower[2] = "128"; pixelSpecular[2] = "1"; useAnisotropic[0] = "1"; useAnisotropic[1] = "1"; useAnisotropic[2] = "1"; castShadows = "1"; translucent = "0"; translucentBlendOp = "None"; alphaTest = "0"; alphaRef = "0"; dynamicCubemap = false; instanceDiffuse[2] = true; materialTag0 = "beamng"; materialTag1 = "vehicle"; }; singleton Material(P205_EngineDark) { mapTo = "P205_EngineDark"; diffuseMap[2] = "vehicles/peugeot/P205_c.dds"; specularMap[2] = "vehicles/peugeot/P205_s.dds"; diffuseMap[1] = "vehicles/peugeot/P205_d.dds"; specularMap[1] = "vehicles/peugeot/P205_s.dds"; diffuseMap[0] = "vehicles/common/null.dds"; specularMap[0] = "vehicles/common/null.dds"; diffuseColor[0] = "0.1 0.1 0.1 1"; diffuseColor[1] = "0.1 0.1 0.1 1"; diffuseColor[2] = "0.1 0.1 0.1 1"; specularPower[0] = "128"; pixelSpecular[0] = "1"; specularPower[1] = "32"; pixelSpecular[1] = "1"; specularPower[2] = "128"; pixelSpecular[2] = "1"; useAnisotropic[0] = "1"; useAnisotropic[1] = "1"; useAnisotropic[2] = "1"; castShadows = "1"; translucent = "0"; translucentBlendOp = "None"; alphaTest = "0"; alphaRef = "0"; dynamicCubemap = false; instanceDiffuse[2] = true; materialTag0 = "beamng"; materialTag1 = "vehicle"; }; singleton Material(P205_GearStick) { mapTo = "P205_GearStick"; diffuseMap[2] = "vehicles/peugeot/P205_c.dds"; specularMap[2] = "vehicles/peugeot/P205_s.dds"; diffuseMap[1] = "vehicles/peugeot/P205_d.dds"; specularMap[1] = "vehicles/peugeot/P205_s.dds"; diffuseMap[0] = "vehicles/common/null.dds"; specularMap[0] = "vehicles/common/null.dds"; diffuseColor[0] = "0.1 0.1 0.1 1"; diffuseColor[1] = "0.1 0.1 0.1 1"; diffuseColor[2] = "0.1 0.1 0.1 1"; specularPower[0] = "128"; pixelSpecular[0] = "1"; specularPower[1] = "32"; pixelSpecular[1] = "1"; specularPower[2] = "128"; pixelSpecular[2] = "1"; useAnisotropic[0] = "1"; useAnisotropic[1] = "1"; useAnisotropic[2] = "1"; castShadows = "1"; translucent = "0"; translucentBlendOp = "None"; alphaTest = "0"; alphaRef = "0"; dynamicCubemap = false; instanceDiffuse[2] = true; materialTag0 = "beamng"; materialTag1 = "vehicle"; }; singleton Material(P205_Lights) { mapTo = "P205_Lights"; diffuseMap[2] = "vehicles/peugeot/P205_c.dds"; specularMap[2] = "vehicles/peugeot/P205_s.dds"; diffuseMap[1] = "vehicles/peugeot/P205_d.dds"; specularMap[1] = "vehicles/peugeot/P205_s.dds"; diffuseMap[0] = "vehicles/common/null.dds"; specularMap[0] = "vehicles/common/null.dds"; diffuseColor[0] = "0.9 0.9 0.9 1"; diffuseColor[1] = "0.9 0.9 0.9 1"; diffuseColor[2] = "0.9 0.9 0.9 1"; specularPower[0] = "128"; pixelSpecular[0] = "1"; specularPower[1] = "32"; pixelSpecular[1] = "1"; specularPower[2] = "128"; pixelSpecular[2] = "1"; useAnisotropic[0] = "1"; useAnisotropic[1] = "1"; useAnisotropic[2] = "1"; castShadows = "1"; translucent = "0"; translucentBlendOp = "None"; alphaTest = "0"; alphaRef = "0"; dynamicCubemap = true; instanceDiffuse[2] = true; materialTag0 = "beamng"; materialTag1 = "vehicle"; }; singleton Material(P205_Pedals) { mapTo = "P205_Pedals"; diffuseMap[2] = "vehicles/peugeot/P205_c.dds"; specularMap[2] = "vehicles/peugeot/P205_s.dds"; diffuseMap[1] = "vehicles/peugeot/P205_d.dds"; specularMap[1] = "vehicles/peugeot/P205_s.dds"; diffuseMap[0] = "vehicles/common/null.dds"; specularMap[0] = "vehicles/common/null.dds"; diffuseColor[0] = "0.1 0.1 0.1 1"; diffuseColor[1] = "0.1 0.1 0.1 1"; diffuseColor[2] = "0.1 0.1 0.1 1"; specularPower[0] = "128"; pixelSpecular[0] = "1"; specularPower[1] = "32"; pixelSpecular[1] = "1"; specularPower[2] = "128"; pixelSpecular[2] = "1"; useAnisotropic[0] = "1"; useAnisotropic[1] = "1"; useAnisotropic[2] = "1"; castShadows = "1"; translucent = "0"; translucentBlendOp = "None"; alphaTest = "0"; alphaRef = "0"; dynamicCubemap = false; instanceDiffuse[2] = true; materialTag0 = "beamng"; materialTag1 = "vehicle"; }; singleton Material(P205_Radiator) { mapTo = "P205_Radiator"; diffuseMap[2] = "vehicles/peugeot/P205_c.dds"; specularMap[2] = "vehicles/peugeot/P205_s.dds"; diffuseMap[1] = "vehicles/peugeot/P205_d.dds"; specularMap[1] = "vehicles/peugeot/P205_s.dds"; diffuseMap[0] = "vehicles/common/null.dds"; specularMap[0] = "vehicles/common/null.dds"; diffuseColor[0] = "0.9 0.9 0.9 1"; diffuseColor[1] = "0.9 0.9 0.9 1"; diffuseColor[2] = "0.9 0.9 0.9 1"; specularPower[0] = "128"; pixelSpecular[0] = "1"; specularPower[1] = "32"; pixelSpecular[1] = "1"; specularPower[2] = "128"; pixelSpecular[2] = "1"; useAnisotropic[0] = "1"; useAnisotropic[1] = "1"; useAnisotropic[2] = "1"; castShadows = "1"; translucent = "0"; translucentBlendOp = "None"; alphaTest = "0"; alphaRef = "0"; dynamicCubemap = true; instanceDiffuse[2] = true; materialTag0 = "beamng"; materialTag1 = "vehicle"; }; singleton Material(P205_RearLights) { mapTo = "P205_RearLights"; diffuseMap[2] = "vehicles/peugeot/P205_c.dds"; specularMap[2] = "vehicles/peugeot/P205_s.dds"; diffuseMap[1] = "vehicles/peugeot/P205_d.dds"; specularMap[1] = "vehicles/peugeot/P205_s.dds"; diffuseMap[0] = "vehicles/common/null.dds"; specularMap[0] = "vehicles/common/null.dds"; diffuseColor[0] = "0.8 0.5 0.5 1"; diffuseColor[1] = "0.8 0.5 0.5 1"; diffuseColor[2] = "0.8 0.5 0.5 1"; specularPower[0] = "128"; pixelSpecular[0] = "1"; specularPower[1] = "32"; pixelSpecular[1] = "1"; specularPower[2] = "128"; pixelSpecular[2] = "1"; useAnisotropic[0] = "1"; useAnisotropic[1] = "1"; useAnisotropic[2] = "1"; castShadows = "1"; translucent = "0"; translucentBlendOp = "None"; alphaTest = "0"; alphaRef = "0"; dynamicCubemap = true; instanceDiffuse[2] = true; materialTag0 = "beamng"; materialTag1 = "vehicle"; }; singleton Material(P205_Seats) { mapTo = "P205_Seats"; diffuseMap[2] = "vehicles/peugeot/P205_c.dds"; specularMap[2] = "vehicles/peugeot/P205_s.dds"; diffuseMap[1] = "vehicles/peugeot/P205_d.dds"; specularMap[1] = "vehicles/peugeot/P205_s.dds"; diffuseMap[0] = "vehicles/common/null.dds"; specularMap[0] = "vehicles/common/null.dds"; diffuseColor[0] = "0.1 0.1 0.1 1"; diffuseColor[1] = "0.1 0.1 0.1 1"; diffuseColor[2] = "0.1 0.1 0.1 1"; specularPower[0] = "128"; pixelSpecular[0] = "1"; specularPower[1] = "32"; pixelSpecular[1] = "1"; specularPower[2] = "128"; pixelSpecular[2] = "1"; useAnisotropic[0] = "1"; useAnisotropic[1] = "1"; useAnisotropic[2] = "1"; castShadows = "1"; translucent = "0"; translucentBlendOp = "None"; alphaTest = "0"; alphaRef = "0"; dynamicCubemap = false; instanceDiffuse[2] = true; materialTag0 = "beamng"; materialTag1 = "vehicle"; }; singleton Material(P205_Suspension) { mapTo = "P205_Suspension"; diffuseMap[2] = "vehicles/peugeot/P205_c.dds"; specularMap[2] = "vehicles/peugeot/P205_s.dds"; diffuseMap[1] = "vehicles/peugeot/P205_d.dds"; specularMap[1] = "vehicles/peugeot/P205_s.dds"; diffuseMap[0] = "vehicles/common/null.dds"; specularMap[0] = "vehicles/common/null.dds"; diffuseColor[0] = "0.1 0.1 0.1 1"; diffuseColor[1] = "0.1 0.1 0.1 1"; diffuseColor[2] = "0.1 0.1 0.1 1"; specularPower[0] = "128"; pixelSpecular[0] = "1"; specularPower[1] = "32"; pixelSpecular[1] = "1"; specularPower[2] = "128"; pixelSpecular[2] = "1"; useAnisotropic[0] = "1"; useAnisotropic[1] = "1"; useAnisotropic[2] = "1"; castShadows = "1"; translucent = "0"; translucentBlendOp = "None"; alphaTest = "0"; alphaRef = "0"; dynamicCubemap = false; instanceDiffuse[2] = true; materialTag0 = "beamng"; materialTag1 = "vehicle"; }; singleton Material(P205_TorsionBar) { mapTo = "P205_TorsionBar"; diffuseMap[2] = "vehicles/peugeot/P205_c.dds"; specularMap[2] = "vehicles/peugeot/P205_s.dds"; diffuseMap[1] = "vehicles/peugeot/P205_d.dds"; specularMap[1] = "vehicles/peugeot/P205_s.dds"; diffuseMap[0] = "vehicles/common/null.dds"; specularMap[0] = "vehicles/common/null.dds"; diffuseColor[0] = "0.6 0.5 0.1 1"; diffuseColor[1] = "0.6 0.5 0.1 1"; diffuseColor[2] = "0.6 0.5 0.1 1"; specularPower[0] = "128"; pixelSpecular[0] = "1"; specularPower[1] = "32"; pixelSpecular[1] = "1"; specularPower[2] = "128"; pixelSpecular[2] = "1"; useAnisotropic[0] = "1"; useAnisotropic[1] = "1"; useAnisotropic[2] = "1"; castShadows = "1"; translucent = "0"; translucentBlendOp = "None"; alphaTest = "0"; alphaRef = "0"; dynamicCubemap = false; instanceDiffuse[2] = true; materialTag0 = "beamng"; materialTag1 = "vehicle"; }; singleton Material(P205_Material) { mapTo = "P205_Material"; diffuseMap[2] = "vehicles/peugeot/P205_c.dds"; specularMap[2] = "vehicles/peugeot/P205_s.dds"; diffuseMap[1] = "vehicles/peugeot/P205_d.dds"; specularMap[1] = "vehicles/peugeot/P205_s.dds"; diffuseMap[0] = "vehicles/common/null.dds"; specularMap[0] = "vehicles/common/null.dds"; diffuseColor[0] = "0.6 0.5 0.1 1"; diffuseColor[1] = "0.6 0.5 0.1 1"; diffuseColor[2] = "0.6 0.5 0.1 1"; specularPower[0] = "128"; pixelSpecular[0] = "1"; specularPower[1] = "32"; pixelSpecular[1] = "1"; specularPower[2] = "128"; pixelSpecular[2] = "1"; useAnisotropic[0] = "1"; useAnisotropic[1] = "1"; useAnisotropic[2] = "1"; castShadows = "1"; translucent = "0"; translucentBlendOp = "None"; alphaTest = "0"; alphaRef = "0"; dynamicCubemap = false; instanceDiffuse[2] = true; materialTag0 = "beamng"; materialTag1 = "vehicle"; };
It was, but the problem was that I set the alpha values of the diffuse colours to 1. Setting them to a lower number fixed the issue.
It's not dead. I've been taking a break from it to focus on other projects for the time being. I did finish UV unwrapping the car a few weeks back but still need to pack the maps together and create the materials. I also need to sort out the terrible suspension as it's still too flimsy for my liking.
[QUOTE = "Teh Daemon, post: 996759, member: 5737"] Ce n'est pas mort. J'ai pris une pause pour me concentrer sur d'autres projets pour le moment. J'ai fini de déballer la voiture par UV il y a quelques semaines, mais je dois quand même rassembler les cartes et créer le matériel. Je dois aussi régler la terrible suspension car elle reste trop fragile à mon goût. [/ QUOTE] Ok thanks you good break and good continuation
Hi everyone, I'm back with an update and some progress. I recently finished 99% of the UV mapping (just need to make a few small fixes and repack some things). I thought I'd have a go at painting some of the model in substance painter just to find out how to get it all working. here's some pics of what I have so far. I haven't attempted normal mapping yet so I'm still yet to add detail to things like the chassis. also, if anyone here has experience exporting from substance painter to beamng, I could do with some tips on what export settings would work best. Thanks in advance!