Я работаю с образцом Rendering Plugin для Unity.Возможно изменение имени текстуры OpenGL?
Unity вызывает плагин и передает ему указатель текстуры, который является именем текстуры OpenGL (функция SetTextureFromUnity для справки). У меня есть другая текстура, которую я создаю и управляю в своем плагине. Я хотел бы как-то получить ссылку на тексту Unity, чтобы использовать мою текстуру вместо той, которая мне на руку.
Возможно ли, чтобы текстура Unity просто указывала на мою текстуру? Я очень груб с низким уровнем OpenGL.
Альтернативно: возможно ли создать Texture2D из текстуры openGL, которая уже существует? Тогда я мог бы просто создать свою собственную текстуру и вернуть ее к единству, чтобы обернуть Texture2D.
Я знаю, что могу копировать данные из моей текстуры в текстуру Unity, но это невероятно медленно и неэффективно, когда данные для обоих уже находятся на графическом процессоре. Я ищу в FBO копии, но все это кажется излишним, когда я просто хочу указатель А указывает на то же самое, что указатель B наведен на (в теории никак) ...
Я смотрю в нечто подобное, то, что я в настоящее время пытаюсь это: Использование Юнити 'Texture2D.GetNativeTexturePtr()', чтобы передать указатель на текстуру в плагине во время одного из методов отображения ('OnPreRender () 'и такие). Затем плагин принимает этот указатель и использует 'GLES20.glBindTexture (GLES20.GL_TEXTURE_2D, <указатель текстуры>)' и 'GLUtils.texImage2D (GLES20.GL_TEXTURE_2D, 0, bitmap, 0);' для загрузки «bitmap» в текстуры. Однако он не работает в настоящее время. – sh3rifme
Вы когда-нибудь находили какой-либо рабочий подход? Попытка реализовать подобную вещь. –