A method of processing graphics depicting one or more objects as mapped to a screen area , the screen area including a plurality of zones (Z1, Z2,... ,Z9), each said zone having a different set of rendering parameters, the method being performed by a processor and being characterised by : setting up a rendering parameter context for each said zone in memory , wherein there are more than two zones, wherein each zone corresponds to a different viewport, wherein each said different set of rendering parameters includes a different view direction, such that each said zone has a different view direction defined by a different homogenous coordinate space, wherein a collection of all viewports for all zones is chosen to approximate transforming objects within a scene to a non-planar observed screen space, wherein each zone has a solid angle per pixel of the screen area and the collection of all viewports for all zones is chosen to collectively minimize the variance between the solid angle per pixel of the zones and minimize an overlap between the zones; assigning each said zone a zone index; setting up an object in the memory, wherein the object covers at least two of the zones of the screen area, wherein the at least two zones are assigned to at least two of the zone indices, respectively, and wherein said setting up the first object includes setting up the at least two zone indices for the object; issuing a draw call for the object; and performing, , with a vertex shader, vertex shading operations for the vertices of the object for each said zone that the object covers using the zone indices for each said zone that the objects covers in response to the draw call, wherein the zone indices are used to determine the rendering parameters for each said zone that the object covers. setting up a rendering parameter context for each said zone in memory , wherein there are more than two zones, wherein each zone corresponds to a different viewport, wherein each said different set of rendering parameters includes a different view direction, such that each said zone has a different view direction defined by a different homogenous coordinate space, wherein a collection of all viewports for all zones is chosen to approximate transforming objects within a scene to a non-planar observed screen space, wherein each zone has a solid angle per pixel of the screen area and the collection of all viewports for all zones is chosen to collectively minimize the variance between the solid angle per pixel of the zones and minimize an overlap between the zones; assigning each said zone a zone index; setting up an object in the memory, wherein the object covers at least two of the zones of the screen area, wherein the at least two zones are assigned to at least two of the zone indices, respectively, and wherein said setting up the first object includes setting up the at least two zone indices for the object; issuing a draw call for the object; and performing, , with a vertex shader, vertex shading operations for the vertices of the object for each said zone that the object covers using the zone indices for each said zone that the objects covers in response to the draw call, wherein the zone indices are used to determine the rendering parameters for each said zone that the object covers. <EOS>