I commented out some of the options, because they made it difficult for me to see what was exactly happening. [*Edit*: Change the texture pattern to a variable, to clarify how to modify it. A line pattern given at end.]

```
stripePattern =
Graphics[{Red, Rectangle[{0, 0}, {1, 1/2}], Blue,
Rectangle[{0, 1/2}, {1, 1}]}, PlotRangePadding -> 0];
Graphics3D[{Texture[stripePattern],
Polygon[{{0, 0, 0}, {0, 2, 0}, {1, 2, 0}, {1, 0, 0}},
VertexTextureCoordinates -> {{0, 0}, {1, 0}, {1, 4}, {0, 4}}]},
Boxed -> False
(*,Lighting->{{"Ambient",LightBlue}},ViewPoint->{0.2,0,0.2},RotationAction->"Clip"*)
]
```

If you have arbitrary polygons, then I don't know how to make the computation of `VertexTextureCoordinates`

*easily* automatic. (One could compute a projection rather automatically I suppose.) @Mr.Wizard's answer might be easiest in that case.

```
Graphics3D[{Texture[stripePattern],
Polygon[{{0, 0, 0}, {0, 0, 2}, {0, 2, 2}, {0, 3, 1}, {0, 2, 0}},
VertexTextureCoordinates -> {{0, 0}, {1, 0}, {1, 4}, {1/2, 6}, {0, 4}}]},
Boxed -> False
]
```

**Addendum - Edited**

Here's a projection function that projects the polygon onto the texture coordinate system. (Please excuse not putting in full error checking.)

I have edited the code to replace the pattern by lines instead of stripes, per the OP's query.

```
project[polygonVertices_, stripeDirection_, nStripeMultiplier_] :=
Module[{normal, e1, e2},
normal =
Normalize@
Catch[(If[Chop[#] != {0, 0, 0}, Throw[#]] &@(Cross @@ Differences[#])) & /@
Partition[polygonVertices, 3, 1, 1];];
e2 = normal\[Cross]Normalize[stripeDirection];
e1 = e2\[Cross]normal;
polygonVertices.Transpose[{e1, nStripeMultiplier e2}]
] /; Length[polygonVertices] >= 3;
linePattern =
Graphics[{Thickness[0.15], Red, Line[{{0, 1/2}, {1, 1/2}}]},
PlotRangePadding -> 0, PlotRange -> {{0, 1}, {0, 1}}];
With[{poly =
Table[RandomReal[{1, 2}] {Cos[t], Sin[t],
Cos[t] - 2 Sin[t]}, {t, π/6, 2 π, π/6}]},
Graphics3D[{Texture[linePattern],
Polygon[poly,
VertexTextureCoordinates -> project[poly, {-2, -2, 2}, 4]]},
Lighting -> {{"Ambient", White}}]
]
```

Also related: (6741)

– Mr.Wizard – 2019-01-12T07:35:05.2736

Have a look at Texture. This might be what you need.

– cormullion – 2013-01-17T12:51:32.5574

related: http://mathematica.stackexchange.com/q/3723/5

– rm -rf – 2013-01-17T13:54:40.887