![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Динамическое освещение в ОпенГЛ [Delphi, Windows]
Хранитель_7К © (2003-01-15 17:13:00)Хотелось бы услышать мнение знатоков OpenGL по теме реализация динамического освещения поверхности покрытой тесктурой.
Возможно ли это как то иначе чем через блендинг текстуры с цветом грани под ней.
Это единственный способ который я знаю, он предполагает также дублирование выводв объекта в кадре, один раз без текстуры но с освещением и свойсвами материала, а другой раз с текстурой.
BANick (2003-02-02 20:57:00) [1]А тогда вот еще такой вопрос, ПОЧЕМУ при замене glTexImage2D на gluBuild2DMimMaps в процедуре инициализации текстуры мои честно заработанные 94 fps падают до каких то жалких 16-12.
Я тоже сталкивался с этой проблемой. я ее решил так заменил все glcalllist на glbindtexture
MRB_SPB (2003-01-24 11:31:00) [2]Уточни размер текстуры, уровень mitmapinga и видеокарточку
Хранитель_7К (2003-01-24 09:19:00) [3]А тогда вот еще такой вопрос, ПОЧЕМУ при замене glTexImage2D на gluBuild2DMimMaps в процедуре инициализации текстуры мои честно заработанные 94 fps падают до каких то жалких 16-12.
Понимаю что вопрос не совсем в тему топика, но все же.
Baradoo2 (2003-01-20 13:27:00) [4]>однако rotate и компания может воздействовать на любую активную матрицу
Здесь я с тобой полностью согласен! Эти команды перемножают матрицу поворота или переноса на данную матрицу (моделирования, проекции или текстуры)!! Точно также может и воздействовать команда GLULookat (вот обломчик)!!! Вообще GluLookat немногим отличается от GLUPerspective и GLFrustrum. Эти все команды воздействуют на матрицу, которая включена в данный момент!!
(точнее сказать, они воздействуют только на матрицу проекций, но они не пашут, когда включена матрица моделирования или текстуры :))). Вообщем можно вообще ими не пользоваться!
glMULTMatrix тоже прокатит!
Ketmar (2003-01-20 12:21:00) [5]>MRB_SPB © (20.01.03 11:58)
будете громко смеяться, но исходники GLUT есть в сети. это раз.
может быть, gluLookAt и работает только с матрицей просмотра (что мне сейчас лень проверять, но помнится, что вовсе и не так дело обстоит. впрочем - не помню. пусть я тут облажался), однако rotate и компания может воздействовать на любую активную матрицу. хоть просмотра, хоть модели, хоть проекции, хоть текстуры.
Satanas Nobiscum! 20-Jan-XXXVIII A.S.
MRB_SPB (2003-01-20 11:58:00) [6]Кetmar>
glMatrixMode мне говорит о многом :)) видимо вы сами писали библиотеку GLUT или имеете её исходнички в затаённых уголках своего винчестера т.к. у вас на мой взгляд не мение эксклюзивная по этому вопросу информация. Повторюсь что расмотренная выше команда не производит трансформаций над матрицами обьектов а влияет только на просмотровую матрицу. За совет спасибо только что обарачивался на 180 к книжной полке чтоб это уточнить.
Ketmar (2003-01-20 11:22:00) [7]>MRB_SPB © (20.01.03 10:30)
как интересно, однако. и откуда столь эксклюзивная информация? разворот на 180 градусов и вперед читать книжки и статьи.
для хинта: слово glMatrixMode вам ни о чем не говорит?
Satanas Nobiscum! 20-Jan-XXXVIII A.S.
MRB_SPB (2003-01-20 10:30:00) [8]LookAt воздействует на матрицу проекций а ротаты и транслейты воздействуют на матрицу моделей
Ketmar (2003-01-18 15:43:00) [9]>Denton © (18.01.03 15:23)
лично я хочу сказать только то, что gluLookAt - оберточка для стандартных матричных операций. не более.
Satanas Nobiscum! 18-Jan-XXXVIII A.S.
Denton (2003-01-18 15:23:00) [10]>[Baradoo]&Ketmar
Вы хотите сказать что rotate, translate, lookat действуют на всю сцену, но не действуют на координаты источника света?
Ketmar (2003-01-18 14:55:00) [11]>[Baradoo] (18.01.03 10:02)
плохо быть неученым. объясни-ка мне, что делает GLULookAt, и чем оно кардинально отличается от ручных rotate и translate?
Satanas Nobiscum! 18-Jan-XXXVIII A.S.
[Baradoo] (2003-01-18 10:02:00) [12]Denton, это ты типа так вектор нормали рассчитал (хоть что такое вектор нормали ты должен знать)! Может быть и другой прогон, это если ты передвигаешься по своей зоне с помощью glrotate и gltranslate! При таком прогоне поворачивается не точка зрения, а
весь объект! Поэтому используй GLULookat!
Denton (2003-01-17 21:35:00) [13]Извените за ламский вопрос, только начал OpenGL юзать.При включеном освещении если камеру направить перпендикулярно к прскости, то все ОК, но если паралельно - она затеняется,
как ето устранить?
[Baradoo] (2003-01-17 20:24:00) [14]не слуши откликов!
[Baradoo] (2003-01-15 20:17:00) [15]Нет ты не прав! можно и правда и спользовать GL_Modulate.
В самом начале, когда устанавливаешь влияние текушего цвета на образ текстуры (gltexenv) в качестве последнего аргумента используешь не gl_decal и не gl_blend, а gl_modulate. При установлении этого режима текстуру будут влиять данные свойства материала и освещение (то что тебе и нужно). Существует большое кол-во разных вариаций команды gltexenvi, но я задаю так:
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_modulate);
ps
Я встретился с такой же проблемой, когда начал изучать ОпенГЛ. Странно, что в книге М. Краснова про это ничего не указано!
MRB_SPB (2003-01-15 17:38:00) [16]А текстура созданая с опцией GL_Modulate не прокатит
Ketmar (2003-01-15 17:30:00) [17]через динамические лайтмапы. почти то же самое, правда, но не юзается освещение OpenGL.
Satanas Nobiscum! 15-Jan-XXXVIII A.S.