Загрузите текстуру с помощью glTexImage2D в C#C#

Место общения программистов C#
Ответить
Anonymous
 Загрузите текстуру с помощью glTexImage2D в C#

Сообщение Anonymous »

Я пытаюсь понять, как загрузить текстуру из файла на C# с помощью OpenGL (с использованием GLFW). Я перепробовал кучу вещей, но так и не смог этого добиться. В этом состоянии мой код не жалуется на неправильные типы, но все равно завершается с ошибкой

Код: Выделить всё

The program '[2260] Rendering.exe' has exited with code 3221225477 (0xc0000005) 'Access violation'.
Думаю, это потому, что я использую Bitmap.GetHbitmap(), что, вероятно, не то, что ожидает glTexImage2D (хотя он возвращает IntPtr) код>). Я недостаточно знаю об IntPtr и изображениях, чтобы понять, что я делаю неправильно. Я нашел примеры, которые вместо этого используют byte[], но при попытке этого он просто жалуется, что ожидает IntPtr (нет перегрузки glTexImage2D, которая ожидает byte[]). Может быть, кто-нибудь здесь может указать мне правильное направление или подсказать альтернативный способ сделать это (т. е. стоит ли мне вообще использовать растровое изображение)? Я следую инструкциям на сайте Learnopengl.com, чтобы понять, чего они стоят. Вот мой код

Код: Выделить всё

Bitmap bitmap = new Bitmap("../../../images/container.jpg");

var texture = glGenTexture();
glBindTexture(GL_TEXTURE_2D, texture);
// At this point the code dies with the above mentioned error
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, bitmap.Width, bitmap.Height, 0, GL_RGB, GL_UNSIGNED_BYTE, bitmap.GetHbitmap());
Я пробовал следовать этим ответам, но безуспешно:

C# .NET Core ImageConverter

Преобразуйте растровое изображение в массив байтов

glTexImage2D + byte[]

Подробнее здесь: https://stackoverflow.com/questions/789 ... in-c-sharp
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»