A method, comprising: receiving, at a server, a search query, wherein the search query comprises a request for information about an object; determining a 3D model for the object based on the search query, wherein the 3D model comprises three-dimensional shape information about the object; determining, after the 3D model for the object has been determined, based on a plurality of stored images of the object, at least one applicable light field and at least one applicable viewing perspective, wherein in each of the stored images of the object, the object is lit by at least one respective light field and is imaged from a respective viewing perspective, wherein the plurality of stored images of the object are a variety of photographs or video frames of the object, wherein the at least one applicable light field is determined so as to substantially match lighting conditions of at least one of the stored images of the object, wherein the at least one applicable viewing perspective is determined so as to substantially match at least one viewing perspective of at least one of the stored images of the object; selecting, based on the applicable light field, at least one candidate shader from a set of shaders, each shader comprising rendering means for a 3D model; rendering a candidate image based on the 3D model and the at least one candidate shader; comparing, in a candidate image comparison, the candidate image to a reference image, wherein the reference image comprises at least one of the stored images of the object; and determining, for each respective candidate shader, a visual improvement metric based on the candidate image comparison; determining at least one candidate shader based on the determined visual improvement metrics; and transmitting, from the server, a search query result, wherein the search query result comprises the 3D model, the at least one applicable light field, the at least one applicable viewing perspective, and the determined at least one candidate shader. receiving, at a server, a search query, wherein the search query comprises a request for information about an object; determining a 3D model for the object based on the search query, wherein the 3D model comprises three-dimensional shape information about the object; determining, after the 3D model for the object has been determined, based on a plurality of stored images of the object, at least one applicable light field and at least one applicable viewing perspective, wherein in each of the stored images of the object, the object is lit by at least one respective light field and is imaged from a respective viewing perspective, wherein the plurality of stored images of the object are a variety of photographs or video frames of the object, wherein the at least one applicable light field is determined so as to substantially match lighting conditions of at least one of the stored images of the object, wherein the at least one applicable viewing perspective is determined so as to substantially match at least one viewing perspective of at least one of the stored images of the object; selecting, based on the applicable light field, at least one candidate shader from a set of shaders, each shader comprising rendering means for a 3D model; rendering a candidate image based on the 3D model and the at least one candidate shader; comparing, in a candidate image comparison, the candidate image to a reference image, wherein the reference image comprises at least one of the stored images of the object; and determining, for each respective candidate shader, a visual improvement metric based on the candidate image comparison; determining at least one candidate shader based on the determined visual improvement metrics; and transmitting, from the server, a search query result, wherein the search query result comprises the 3D model, the at least one applicable light field, the at least one applicable viewing perspective, and the determined at least one candidate shader.