The X3D Profile (not just WebSG) supports now explicit GLSL shaders utilizing the X3D Shaders component. The example uses multiple textures (diffuse, normal and env) and generic VertexAttribute containers to feed the render backend.
Support for the X3D Shaders component allows mixing shader-based materials with declarative mesh content.