Directory[]

SetDirectory["Desktop"]

redish = Import["redish.png"];

?redish

Show[redish];

greenish = Import["greenish.png"];

Show[GraphicsArray[{redish, greenish}], 
        ImageSize -> {64, 32}];

Show[GraphicsArray[{{redish}, {greenish}}], 
        ImageSize -> {32, 64}];

Dimensions[redish]

redish[[1]] // Short

redish[[2]]

redish[[3]]

redish[[4]]

redish[[1, 1]] // Short

redish[[1, 2]]

redOffset = redish;

redOffset[[1, 2]] = {{32, 32}, {64, 64}};

Show[redish, redOffset, PlotRange -> {{0, 64}, {0, 64}}, 
        ImageSize -> {64, 64}];

Show[
redish, 
redOffset, 
Graphics[{RGBColor[0, 1, 0], 
            Circle[{32, 32}, 10]}], 
PlotRange -> {{0, 
              64}, {0, 64}}, 
ImageSize -> {64, 
            64}
];

Dimensions[redish[[1, 1, 1, 1]]]

(* 
      can we extract our one pixel and change it ? *)

(* 
      can we blur the image by averaging over several pixels ??  *)

Mathematica also has 3D graphical objects, including lighting.

See <<Graphics`Shapes`, LightSources, ViewPoint, and so on.

The trick is in getting the lists of the polygons in the first place - 
but see Blender and other surface rendering tools.  
It's perfectly possible to create shape files from other files, and then input and manipulate 'em - as text or otherwise

?Graphics3D

Do[
Show[
        Graphics3D[{
Polygon[{{0, 0, 0}, {0, 1, 0}, {0, 0, 
                  1}, {1, 0, 
                  0}}], 
Cuboid[{ .7,  .7,  .7}, { .8,  .8,  .8}]
}, 
Shading -> True,  
          Boxed -> True, 
Lighting -> False,  
          ViewPoint -> {Cos[2 n] + n, Sin[2  n], 
              n}
]], 
{n, 1, 
        5,  .1}]

Options[Graphics3D]