Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2005.09.18;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.011 c
9-1116619362
brack
2005-05-21 00:02
2005.09.18
Линия в DelphiX


4-1122535985
Shopot
2005-07-28 11:33
2005.09.18
Как дописать данные в конец текстового файла?


9-1116772303
Cerberus
2005-05-22 18:31
2005.09.18
Помогите придумать алгоритм.


5-1099744510
ASH
2004-11-06 15:35
2005.09.18
Наследрвание класса TForm


1-1125298768
Николай1
2005-08-29 10:59
2005.09.18
Передача функции как параметра процедуры





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский