В строгом смысле ... вы не можете. Вы можете привязать объект текстуры 0, но это считается допустимым объектом текстуры (хотя и с явно странным поведением). Вы можете использовать не-DSA-функции, чтобы заполнить их данными и использовать (в основном) как обычную текстуру.
Теперь да, большинство современных пользователей OpenGL никогда не используют текстурный объект 0. Они оставляют его в состоянии по умолчанию и рассматривают его связывание как отсутствие текстурного блока. Действительно, передача от 0 до glBindTextureUnit
приводит к тому, что все текстурные цели для этого текстурного блока привязаны к 0 (в то время как использование обычного объекта привязывает только цель этого объекта к этому блоку, оставляя другие цели в пределах блока без изменений).
Все это, позвольте мне дать необычный взгляд на это: вам не нужно отвязывать текстуры из контекста.
Если программа не использует текстурный модуль, то тот факт, что что-то связано с этим модулем, не имеет значения. Привязка текстуры к текстурному блоку не мешает вам использовать другие текстурные блоки; только те, которые использует программа (которые соответствуют правильному типу текстуры), будут иметь значение. А удаление текстур приведет к тому, что они будут автоматически отсоединены от контекста (но только от текущего контекста; если у вас несколько контекстов, они все равно будут там связаны).
Так что это на самом деле не служит цели для развязывания текстуры. Действительно, оно может иметь определенные преимущества.
Если вы случайно используете текстурный блок с привязкой 0 (который концептуально не связан), вы можете получить ошибку OpenGL. Но вы не можете. Если вы этого не сделаете, то вы получите текстуру, которая содержит белые пиксели. Это может или не может быть явно неправильно для вашего кода.
Напротив, если вы случайно используете текстурный модуль, к которому привязаны старые данные, вы либо получите ошибку OpenGL, либо вы определенно получите что-то, что явно неверно.
Так что, если вы оставите текстуру там, вы, скорее всего, увидите проблему, если случайно не связали что-либо.