Я пытаюсь настроить отображение теней в OpenGL, используя кубические карты, чтобы я мог создавать тени для точечных источников света.
Следующие бросает GL_INVALID_ENUM
на меня:
for (uint32_t i = 0; i < 6; i++)
GLCALL(glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, GL_DEPTH_COMPONENT32, windowWidth, windowHeight, 0, GL_DEPTH_COMPONENT32, GL_FLOAT, 0));
Согласно документам, это, вероятно, из-за этого:
GL_INVALID_ENUM is generated if target is one of the six cube map 2D image targets and the width and height parameters are not equal.
И я получаю, если ширина / высота разные, они на самом деле не куб, но когда у меня разрешение экрана, например, 1920×1080 или любое другое разрешение, это проблема.
Возможно, хотя я и неправильно понял, что следует указывать при вызове функции — разве это не ширина / высота окна? Какие параметры должны быть?
Возможно, хотя я и неправильно понял, что следует указывать при вызове функции — разве это не ширина / высота окна?
Как в мире вы думаете, что разрешение окна влияет на размеры текстуры, мне не понятно. Обычно карты рендеринга теней отображаются с помощью объекта кадрового буфера, поэтому размеры окна не имеют значения.
Какие параметры должны быть?
Для карты куба: Длина ребра текстуры карты куба.
Других решений пока нет …