Here is a possible approach using MaterialShading
new in version 12.3.
It is easier to get nice results on curved surfaces like a sphere without too much input. To get a flat surface to give the results you want may require you to play with the material shade and parameters.
We will modify the example from the documentation to give an interesting result by modifying the "SurfaceNormals"
and "MetallicCoefficient"
to give a textured surface with variable reflection properties.
Surface normals
Metallic coefficient
We need to work in 3D for the lighting to work so your disk becomes a cylinder.
sn = Import["https://i.sstatic.net/Bfcrl.png"];
mc = Import["https://i.sstatic.net/DF9Fs.png"];
Graphics3D[{MaterialShading[<|"BaseColor" -> {Hue[0.125, 1, 1], 1},
"SurfaceNormals" -> Texture[sn],
"RoughnessCoefficient" -> 0.65,
"MetallicCoefficient" -> Texture[mc] |>], Cylinder[]},
Lighting -> "ThreePoint", Boxed -> False, ViewPoint -> Top]
Something fancier
I found this tutorial and how to create a surface normal map for a coin.
Surface normals for a coin
We can use the same technique from above to create a gold and silver coin.
sn = Import["https://i.sstatic.net/DhDI7.png"];
mc = Import["https://i.sstatic.net/DF9Fs.png"];
Graphics3D[{MaterialShading[<|"BaseColor" -> {Hue[0.125, 1, 1], 1},
"SurfaceNormals" -> Texture[sn],
"RoughnessCoefficient" -> 0.65,
"MetallicCoefficient" -> Texture[mc] ,
"SpecularAnisotropyCoefficient" -> {0.3, 0}|>], Cylinder[]},
Lighting -> "ThreePoint", Boxed -> False, ViewPoint -> Top]
Graphics3D[{MaterialShading[<|"BaseColor" -> {GrayLevel[1], 1},
"SurfaceNormals" -> Texture[sn],
"RoughnessCoefficient" -> 0.65,
"MetallicCoefficient" -> Texture[mc] ,
"SpecularAnisotropyCoefficient" -> {0.3, 0}|>], Cylinder[]},
Lighting -> "ThreePoint", Boxed -> False, ViewPoint -> Top]