382 / 181 / 47
Регистрация: 11.07.2013
Сообщений: 984
|
||||||
1 | ||||||
Почему при наложении текстуры изменяется цвет фигур без текстуры27.11.2019, 11:29. Показов 3094. Ответов 12
Метки нет Все метки)
(
Исходный вид, когда текстура не накладывалась (рис-1).
После наложения текстуры на одну из фигур изменился цвет второй фигуры (рис-2). Причём, если текстура содержит больше красного, зелёного и т.п., то цвет нетекстурированной фигуры приобретает этот оттенок (красный, зелёный и т.п.)
0
|
|
27.11.2019, 11:29 | |
Ответы с готовыми решениями:
12
Затемнение при наложении текстуры (glaux) Почему измененяется цвет текстуры? Ошибка при наложении текстуры в OGL Как побитово скопировать с текстуры на текстуры разных форматов, не прибегая к обращениям в CPU? |
с++
1282 / 523 / 225
Регистрация: 15.07.2015
Сообщений: 2,562
|
||||||
27.11.2019, 12:55 | 2 | |||||
а если после цыкла
0
|
382 / 181 / 47
Регистрация: 11.07.2013
Сообщений: 984
|
|
27.11.2019, 13:15 [ТС] | 3 |
Проверил. Цвет не текстурированной фигуры не стал нормальным, а текстурированная фигура вообще пропала.
0
|
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
27.11.2019, 20:49 | 4 |
Может сфера не из треугольников.
glDrawArrays(GL_QUAD_STRIP, D, CountM1); glDrawArrays(GL_TRIANGLES, D, CountM2);
0
|
с++
1282 / 523 / 225
Регистрация: 15.07.2015
Сообщений: 2,562
|
|
27.11.2019, 20:59 | 5 |
а если убрать 2-ю фигуру с текстурами и всем оставить только первую или вторую фигуру с текстурой, конечно предварительно сохранить старый код, а glColor3f нельзя использовать?
0
|
382 / 181 / 47
Регистрация: 11.07.2013
Сообщений: 984
|
||||||
27.11.2019, 21:39 [ТС] | 6 | |||||
Сфера не из треугольников:
0
|
382 / 181 / 47
Регистрация: 11.07.2013
Сообщений: 984
|
||||||
27.11.2019, 21:40 [ТС] | 7 | |||||
Может что-т при загрузки текстуры у меня не правильно:
0
|
647 / 229 / 45
Регистрация: 24.01.2013
Сообщений: 694
|
|
27.11.2019, 22:32 | 8 |
Это же безшейдерный рендер?
Надеюсь вы вызываете glDisable(GL_TEXTURE_2D) перед отрисовкой сферы? Покажите код рисования кадра.
0
|
382 / 181 / 47
Регистрация: 11.07.2013
Сообщений: 984
|
|
27.11.2019, 22:41 [ТС] | 9 |
0
|
647 / 229 / 45
Регистрация: 24.01.2013
Сообщений: 694
|
|
27.11.2019, 22:48 | 10 |
0
|
382 / 181 / 47
Регистрация: 11.07.2013
Сообщений: 984
|
||||||
27.11.2019, 23:52 [ТС] | 11 | |||||
0
|
647 / 229 / 45
Регистрация: 24.01.2013
Сообщений: 694
|
|
28.11.2019, 02:13 | 12 |
![]() Решение
Вот этой строкой вы не "подключаете текстуру", а всего лишь задаете текстурные координаты в вершинах модели.
Для подключения/отключения режима текстурирования есть функции - glEnable(GL_TEXTURE_2D) и glDisable(GL_TEXTURE_2D) (есть еще glBindTexture() для переключения между текстурами). У вас сейчас оба объекта рисуются с текстурой, но так как для сферы ТК не заданы, то они берутся для всех вершин одни и теже значения заданные по дефолту (какие именно, можно глянуть в доках, но это не важно). Поэтому сфера меняет цвет (ТК попадают в коричневый тексель текстуры). Не по теме: Вообще глядя на ваш код, слов нет кроме - "El sueño de la razón produce monstruos" (с)
1
|
382 / 181 / 47
Регистрация: 11.07.2013
Сообщений: 984
|
|
28.11.2019, 11:29 [ТС] | 13 |
Да, моя ошибка была в том, что glEnable(GL_TEXTURE_2D) я включал при инициализации OpenGL, а не на время отрисовки.
1
|
28.11.2019, 11:29 | |
Помогаю со студенческими работами здесь
13
Поворот Текстуры (не вращая полигон текстуры)
Посчитать средний цвет текстуры и вернуть некоторую переменную из шейдера Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |