|
2 / 2 / 0
Регистрация: 04.11.2020
Сообщений: 220
|
||||||||||||||||||||||||||
Не компилируется шейдерная программа. Ошибка: error C5145: must write to gl_Position22.05.2021, 19:59. Показов 6006. Ответов 26
Написал класс шейдера по урокам на хабре. При компиляции шейдерной программы происходит ошибка
Shader.cpp
0
|
||||||||||||||||||||||||||
| 22.05.2021, 19:59 | |
|
Ответы с готовыми решениями:
26
Ошибка при добавлении в файл. Ошибка 101: Ошибка записи на диск (Error 101: Disk write error). Upload и Write to file failed. Ошибка: ADODB.Stream error '800a0bbc' Write to file failed. |
|
6353 / 3524 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
|||||||||||||||
| 24.05.2021, 23:44 | |||||||||||||||
Для атрибута с индексом 0 (первый параметр, (location = 0) в программе) брать данные из буфера, который сейчас привязан к GL_ARRAY_BUFFER, начиная со смещения 0 байт (6 параметр), интерпретировать байты как float (3 параметр) в количестве 3 штук (второй параметр), без нормализации (4 параметр, тебе не нужна, т.к. это для целочисленных данных в буфере). Смещение между атрибутом каждой вершины в байтах указывается 5 параметром, в твоём случае атрибуты последовательны, т.е. можно указать 0, но вообще 3 * sizeof(float) или sizeof(Vector3<float>)) Массив текстурных координат нужно тоже загружать в буфер, а иначе откуда их возьмет шейдер. Можешь загрузить всё в один буфер(вычисляешь необходимый размер буфера, записываешь сначала позиции, потом со смещения, равному размеру загруженных позицйй (в байтах, его же укажешь 6 параметром при спецификации атрибута uv) дописываешь текстурные координаты. Ну или объедини все атрибуты в структуру вершины, только про смещения не забывай. ![]()
1
|
|||||||||||||||
|
2 / 2 / 0
Регистрация: 04.11.2020
Сообщений: 220
|
||||
| 25.05.2021, 00:00 [ТС] | ||||
|
Пока без подсказки. Еще немного попробовал осмыслить связь glVertexAttribPointer с вершинным шейдером и до меня наконец дошло: glVertexAttribPointer нужно вызывать несколько раз для каждого layout (location = ...) в шейдере
Первый аргумент - индекс для layout (location ) в шейдере Второй аргумент - количество переменных для layout Третий и четвёртый - надо уточнить Пятый - общий размер в байтах каждой повторяющейся ячейки. Шестой - шаг с которым их нужно читать Добавлено через 1 минуту Добавлено через 2 минуты Бесконечно благодарен за объяснения
0
|
||||
|
6353 / 3524 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
||||||||||||||||||||||
| 25.05.2021, 00:44 | ||||||||||||||||||||||
|
У тебя там еще с вершинами косяки. И матрицы проекции нет. Короче, для сравнения, вот такие исправления(если сам не справишься): Кликните здесь для просмотра всего текста
0
|
||||||||||||||||||||||
|
2 / 2 / 0
Регистрация: 04.11.2020
Сообщений: 220
|
|||||||||||||||||
| 25.05.2021, 00:47 [ТС] | |||||||||||||||||
|
Я вроде понял что как работает, сделал, чтобы нормально читались вершины, прямоугольник стал как в уроках, но по-прежнему просто коричневый. Наверное, ошибка маленькая и глупая, но тем не менее уже 30 минут я её найти не могу.
Вот так у меня сейчас всё это реализовано: Mesh.cpp
0
|
|||||||||||||||||
|
2 / 2 / 0
Регистрация: 04.11.2020
Сообщений: 220
|
|
| 25.05.2021, 01:20 [ТС] | |
|
Переделал ещё раз, уже с вашим кодом. Результат тот же, прямоугольник есть, отображается как надо, но текстура накладывается неправильно, полигон просто коричневый. В силу своей криворукости, я мог переписать два раза неправильно
0
|
|
|
6353 / 3524 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
||
| 25.05.2021, 01:33 | ||
|
И ещё, зачем закомментировал установку параметров текстуры?
1
|
||
|
2 / 2 / 0
Регистрация: 04.11.2020
Сообщений: 220
|
|
| 25.05.2021, 01:38 [ТС] | |
|
Странно, в CLion у меня написан нужный шейдер, а если этот же файл открыть из блокнота, шейдер там старый, несмотря на то, что я всё сохранял. Ну в общем не важно, отредактировал шейдер через блокнот и текстура появилась.
Огромное спасибо!
0
|
|
| 25.05.2021, 01:38 | |
|
Ошибка "Build error: Multiple tools write to the same file."
Ошибка после установки Ubuntu 16.04 LTS error:attempt to read or write outside of disk 'hd0' Не компилируется программа, в чем ошибка? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео:
https:/ / vkvideo. ru/ video-240781534_456239017
YouTube:
eY5-5PyI9NM
Текстовая версия
|
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать
Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
|
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|