I think that we should be even more generic here than just surface texture,
and apply the usual mechanism you do in rendering: subsuming this as "material" :-)
just some quick thoughts for a downwards-compatible syntax extension:
0 !MATERIAL metal roughness=polished
...(lines of type 1,2,3 go here)
0 !MATERIAL metal roughness=mat
...(lines of type 1,2,3 go here)
0 !MATERIAL abs default
...(lines of type 1,2,3 go here)
0 !MATERIAL abs roughness=0.5
...(lines of type 1,2,3 go here)
0 !MATERIAL glass
0 // the previous line really means glass, not plastic, for example used in light bulbs
...(lines of type 1,2,3 go here)
0 !MATERIAL rubber
...(lines of type 1,2,3 go here)
0 !MATERIAL copper
...(lines of type 1,2,3 go here)
0 !MATERIAL thread
0 // no, not a computer thread. a real, physical thread. some LEGO models use them :-)
...(lines of type 1,2,3 go here)
0 !MATERIAL paper
0 // the previous line could be used for stickers :-))
etc.
please don't take this literally,
I am just posting this here to tickle your imagination ;-)
the !MATERIAL syntax would simply switch to some material mode until a different material instruction is encountered.
and apply the usual mechanism you do in rendering: subsuming this as "material" :-)
just some quick thoughts for a downwards-compatible syntax extension:
0 !MATERIAL metal roughness=polished
...(lines of type 1,2,3 go here)
0 !MATERIAL metal roughness=mat
...(lines of type 1,2,3 go here)
0 !MATERIAL abs default
...(lines of type 1,2,3 go here)
0 !MATERIAL abs roughness=0.5
...(lines of type 1,2,3 go here)
0 !MATERIAL glass
0 // the previous line really means glass, not plastic, for example used in light bulbs
...(lines of type 1,2,3 go here)
0 !MATERIAL rubber
...(lines of type 1,2,3 go here)
0 !MATERIAL copper
...(lines of type 1,2,3 go here)
0 !MATERIAL thread
0 // no, not a computer thread. a real, physical thread. some LEGO models use them :-)
...(lines of type 1,2,3 go here)
0 !MATERIAL paper
0 // the previous line could be used for stickers :-))
etc.
please don't take this literally,
I am just posting this here to tickle your imagination ;-)
the !MATERIAL syntax would simply switch to some material mode until a different material instruction is encountered.