Обновлено:
umanga, сначала я думал, что освещение не будет работать, потому что освещение основано на векторах нормалей к поверхности, а у вас нет поверхностей. Однако @roe указал, что векторы нормалей на самом деле относятся к каждой вершине в OpenGL, и поэтому любая POLYLINE может иметь нормали. Так что это будет вариант.
Как сказал @Julien, не совсем ясно, какой должна быть нормаль для 3D-линии. Вопрос в том, как определить нормали для контурных линий, чтобы результирующее освещение имело визуальный смысл и помогало уточнить глубину?
Если все вершины в каждом контуре компланарны (например, в плоскости XY), вы можете установить 3D-нормаль как 2D-нормаль с 0 в качестве координаты Z. Результирующее освещение даст визуальное ощущение формы, хотя, возможно, и не глубины.
Если вы знаете наклон поверхности (при условии, что поверхность есть) в каждой точке вдоль линии, вы можете использовать нормаль поверхности и лучше отображать глубину; по сути, это похоже на затенение холмов, применяемое только к контурным линиям. Тогда возникает вопрос, почему бы не отобразить всю поверхность?
Конец обновления
+1 к предложению Бена установить цвета линий в зависимости от высоты (это топографические контуры?) или в зависимости от расстояния до зрителя. Вы также можете заполнить многоугольник, окруженный каждым контуром, похожим цветом, как в http://en.wikipedia.org/wiki/File:IsraelCVFRtopography.jpg
Еще один способ сделать линии более четкими — сделать их меньше... можете ли вы отрегулировать плотность контуров? Например. одна контурная линия на 5 футов перепада высот вместо 1 фута или любых других единиц измерения. В зависимости от того, что вы рисуете контуры.
Другие методы определения глубины включают стереоскопию и вращение изображения в 3D во время просмотра зрителем.
person
LarsH
schedule
02.11.2010