I downloaded a gun asset from sketch fab and having a hard time getting it to look the same / good in godot. Here is an image of the asset https://sketchfab.com/3d-models/hk-mp5-9bdb2934a94b45ed92c6307883c546b7:

Once importing and adding all the PBR textures, it looks like this in the editor:

Looks pretty bad, but had to turn lossless mode on the normal map to prevent bad artifacting. Also, for some reason the black parts look green in godot? Also the plastic just looks weird and nothing like how it looks in Sketchfab or blender

This is how it looks in game:

The metal looks grey and dull, not shiny, reflective and black. I played around with all the metallic, specular and roughness settings and it all turned out pretty much the same.

Does anyone have tips on how to make this look good? I've tried various settings on world environments as well and post processing but still can't get it to look anything other than dull metal when not starting directly at the direction of light.

    jrlowe24 so first off, this is PBR, you are not supposed to "play around" with the settings.

    second, the sketch fab has a model inspector where it shows you more options, and you can toggle to see the different textures and effects applied.

    by default it has post-processing applied. this depends on two things: the environment and the effects.
    for the environment, you NEED a skybox, the default environment sky is going to look dull.
    so go to ambientCG or Polyhaven and download a HDR sky (it's CC0). with godot it's enough with an .hdr, a .exr has more quality but doesn't work well due to formats and it's heavier.
    alternatively, if you are in an interior level, you also need a VoxelGI or baked lighting, or reflection probes everywhere. alternatively you have FDHGI or whatever is called, which a pseudo-pathtracing, but it's very heavy, it's better for exteriors.
    alternatively, or on top of this, you have to enable SSR, SSAO and maybe SSIL.
    SSR gives you screen space reflections, it's good for self reflections and puddles of water.
    SSAO gives you cavity shadows, you can see it in sketchfab. it is very lightweight for modern computers since it's been around since skyrim.
    SSIL can be added on top of other post-processes/GI and it adds lighting by pathtracing a reflection. don't worry, it's very lightweight.

    you also want to change the color to either linear or ACES. ACES is heavier but gives better results, but unreal and unity use linear by default.
    you need one of these for PBR, PBR will look bad with anything else.

    then set up your material.
    it is recommended to get or create an ARM texture (ambient occlusion, roughness, metallic): the red channel has an ambient texture (which I guess did not come with this model, but your could bake one in blender), the green channel is for the roughness texture, and the blue channel is for the metalness texture.
    then create an ORM material and assign your ARM.
    this model also comes with a specular map, for this you have to take your material with all things assigned, convert to shader, add a uniform for a specular texture, and then in fragment, connect it to the SPECULAR.
    having a SPECULAR is not very PBR though, I don't know if it will work.

    DON'T mess with the textures import settings.
    your model textures should ALL be set to VRAM compressed. in order to fix the artifacts you have to enable high quality in the same import tab.

      Jesusemora How do I get a skybox to line up with my directional light? I downloaded one and it makes the lighting in my scene look very weird. Also, I turned on SSR, SSAO, SSIL and the model still looks the same.

      For the PBR textures, is it required that I create an ARM texture instead of using separate textures and select the right color channel?

        jrlowe24 How do I get a skybox to line up with my directional light?

        you rotate the skybox in environment until it roughly lines up with the sun. there is a rotation in the sky resource.

        jrlowe24 I downloaded one and it makes the lighting in my scene look very weird.

        it's probably very bright since it's HDR. you can tweak the exposure in tonemap, or you can adjust brightness/constrast/saturation in adjustments. you also have options in glow which lets you set bloom and comes enabled by default. I usually disable it.

        you also need some form of GI to add shadows to the scene. by default ambient light is set to sky contribution 1.0, which brightens the shadows. in a scene at morning or with clouds, this adds secondary lighting and removes the shadows, but for noon and evening you want to reduce this or set it to 0.
        if you have a form of GI in the scene you can set it to 0 and let the GI calculate the ambient light. I had some trouble adding more than 2 voxelGIs, but might be my gpu. static GI is a good option if you can bake it. if your PC is not very powerful, a combination of reflection probes and SSR+SSAO tends to be enough.

        jrlowe24 Also, I turned on SSR, SSAO, SSIL and the model still looks the same.

        these tend to be very subtle because they are very modern versions. older SSAO was faster but used spheres, while the modern version takes ambient light and normals into account. it could be that it doesn't look the same because of this.

        jrlowe24 For the PBR textures, is it required that I create an ARM texture instead of using separate textures and select the right color channel?

        ARMs have better performance than individual textures, so if you have at least 2 of the 3 channels it is a good idea to do it.
        but it's not necessary, you can use a standard material instead and it will have the same results.

          Jesusemora Thanks for the info. I think I discovered the issue accidentally here with a new model that highlights the issue more.

          With all of my weapon models, I convert the material to a shader material so that I can set a custom FOV, making the weapon FOV static while the game camera FOV can change. This has been working, however, it seems like the shader material is working differently, but ONLY in-game.

          Here is an example:
          This is what my material looks like in the editor after I convert to shader material. Looks the exact same as it does when it's a standard material.

          This is how it looks in-game:

          As you can see, the metalness and reflections are completely gone, it almost seems like the roughness map is not working at runtime.

          Now you may ask, am I sure it's not something with how my environment is set up? I added the exact same model into my map using the standard material and not a shader. This is how it looks:

          So I have narrowed this down to this problem. When I use a standard material, it looks fine in both the editor and the game. When I convert that to a shader (keeping all the settings the same), it looks fine in editor but wrong in game.

          Is this a bug?

          I think I figured out the issue. The converting to shader material is sort of broken, it sets the metallic channel to all zeros. If I change one them to "1", then it fixes the issue

            jrlowe24 honestly I can't tell the difference.

            jrlowe24 The converting to shader material is sort of broken, it sets the metallic channel to all zeros. If I change one them to "1", then it fixes the issue

            I can't tell without seeing the shader. Also I usually delete most of the generated shader and write it again, there are many things that are not done well, but it's expected.
            you can always just use a visual shader, I haven't used it ever but I know of people who have and it might be better for those without programming skills.