   Are Textures and Materials the same thing?
  Are they one in the same?  This might be more of a Maya term than OpenGL but I sort of remember OpenGL having some kind of Material property.   
  Someone correct me if I'm wrong, but:Textures are a type of material, but materials are not a type of texture.   ;  Textures would be part of a material, which would also define things such as surface colour, specular details, shineness and other such attributes.   ;  Material can also be  multiple textures blended in a certain fashion,  texture+bumpmap,  texture+normalmap,  etc...Think of it as a surface with artist-operations on it.   ;  The concept of a material can move past a graphical representation too, so you can add friction details, and various other physical parameters.   ;  Further to what phantom and superdeveloper said, I think a material should (in my opinion) be a collection of states that are set for one draw call. This might include a) surface color, shininess, specular, emissive propertyb) light settings (position, color)c) shader program / register combiner program, etcd) texture target + texture object bound for each texture unitThere might be other things (which I haven't encountered yet [smile]) also.   ;Quote:Original post by deavikFurther to what phantom and superdeveloper said, I think a material should (in my opinion) be a collection of states that are set for one draw call.Absolutely. I'm in the process of rewriting my material system so it is like this. This makes it easier as before I had a bunch of classes that inherited from an abstract Material class, and while it works for a few things, as you want to add more and more materials, it gets much too complex for my liking.This way, although each object will have the exact same object for the material, the states set inside will be different and you can have a single "setMaterial" function call, or something of the sort, just before rendering.It has made my material system easier in the design sense.   ;  Also a material has physical properties that are instrinsic to the particular material.  In a physical context, a material is defined by all of those properties that determine how and where light reflects/refracts/scatters when it strikes that surface.In that sense, a texture is classically used to represent a rough approximation of the "diffuse" color of a material... that is, the total amount of light leaving a surface at each fragment. Other textures can be used, as noted above, to provide information to shaders for the purposes of bumpmapping or other techniques that convey abnormal distribution of reflected light.In total, the textures and other material information define a bidirectional reflection distribution function (BRDF) which tells us how much light is reflected in a particular direction per amount of light entering from some other particular direction--likewise, there are BSDF for scattering.  When you get right down to it, that is (for computer graphics purposes) what defines a material.  In the 3D APIs, we use rough BRDF approximations for lambertian surfaces--phong lighting for example--and multiple textures and shaders when we want more specificity.   