Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.09.18;
Скачать: CL | DM;

Вниз

OpenGL   Найти похожие ветки 

 
yurique   (2005-05-22 19:33) [0]

Привет!

У меня возникла следующая проблемка (а времени разобраться по-хорошему нету :( ).. Так вот: мне в опенГЛ нужно нарисовать трехмерный график функции от двух переменных. С этим проблем нет, рисую.. вот только график получается "полупрозрачным" с одной стороны, и нормальным с другой - от этого нужно избавиться. Рисую четырехугольниками, вот один из них:

     z := self.z[xi, yi];
     Vertex(x, y, z);
     z := self.z[xi+1, yi];
     Vertex(x1, y, z);
     z := self.z[xi+1, yi+1];
     Vertex(x1, y1, z);
     z := self.z[xi, yi+1];
     Vertex(x, y1, z);


Используется один источник освещения. Материал "графика":

 a[0] := 0.2; a[1] := 0.8; a[2] := 0.8; a[3] := 1;
 glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, @a);


Подскажите плз, кто знает...

ЗЫ: можно ли как-нить нарисовать сетку при включенном освещении? (после включения оного, линии перестали быть видными.. )


 
VitGun ©   (2005-05-22 19:46) [1]

ИМХО. Нормали строй....


 
Кефир87   (2005-05-22 20:54) [2]


> нарисовать сетку при включенном освещении?

glDisable(GL_LIGHTINING);
narisovat_setka();
glEnable(GL_LIGHTINING);


 
yurique   (2005-05-22 22:43) [3]

2 Кефир87:
спасибо :)
я вообще решил отказаться от освещенности - график чётче видно.. но тем не менее "глюк" остаётся - с одной стороны график выглядит нормально, с противоположной - как бы просвечивается, вообще мне трудно понять что "происходит" - но картинка получается противная.. может тут что-то связано с буфером глубины..

2 VitGun:
что ты имеешь в виду? я с 3д не особо знаком.. это вообще первое что, пишу в 3д..

зы: может я не правильно использую

glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);

и нужно ли это вообще испольщовать?


 
VitGun ©   (2005-05-22 23:04) [4]

Вопрос назрел: "А зачем ты используешь источник света?" Коли ты сторишь всего лишь график.


 
yurique   (2005-05-22 23:12) [5]

2 VitGun:
я писал ;) :
>я вообще решил отказаться от освещенности...

вот вроде подобрался к сути проблемы: я не включал glEnable(GL_DEPTH_TEST).. теперь включил, теперь почти всё почти работает :)


 
П7   (2005-05-22 23:12) [6]

Собственно про нормали тебе расскажет твой друг РАМБЛЕР! (:


 
yurique   (2005-05-22 23:20) [7]

2 П7:
будь у меня время, я бы разобрался.. и по рамблеру полазил бы.. и по гуглю :) .. а так горит.. к тому же, я имел в виду с какой стороны тут нормали прикрутить - т.е. зачем?

впрочем, вопрос исчерпался.. всё работает: не хватало действительно

glEnable(GL_DEPTH_TEST);

и

glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);


 
yurique   (2005-05-22 23:36) [8]

ps: а освещение использовать хотел, чтоб график можно было рассмотреть :) - иначе просто контур.. но вместо света, я использовал цвет.. изменяя его в заыисимости от высоты например...


 
П7   (2005-05-23 01:28) [9]

Нормали, это такие хреньки, вектора, которые определяют, как бы это, угол отражения падающего на вершину цвета. Или там полигон...

Т.е. когда ты треугольник рисуешь, то предварительно впихиваешь нормаль. И тогда свет нормально освещает поверхность.

В общем, это единичный вектор - перпендикулярный плоскости полигона.


 
AlterEgo of WondeRu ©   (2005-05-23 10:47) [10]

yurique   (22.05.05 23:20) [7]
будь у меня время, я бы разобрался.. и по рамблеру полазил бы.. и по гуглю :) .. а так горит..


мдя... уважение так и прёт!



Страницы: 1 вся ветка

Текущий архив: 2005.09.18;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.024 c
4-1122445245
MegaVolt
2005-07-27 10:20
2005.09.18
Как отловить двойной клик на заголовке ListView возле разделителя


6-1117186897
Ильичев С.А.
2005-05-27 13:41
2005.09.18
Status Bar Internet Explorer


2-1123743998
kyn66
2005-08-11 11:06
2005.09.18
Как найти .... незнаю как назвать.


3-1123103366
Silver...
2005-08-04 01:09
2005.09.18
ADODataSet.Filter --- и поле типа Boolean


14-1124875254
Kot Andrei
2005-08-24 13:20
2005.09.18
На Ты