Модераторы: Rickert
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Битмэп из текстуры, Как получить? 
:(
    Опции темы
EgoBrain
Дата 2.3.2009, 03:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 23.3.2008
Где: Комната

Репутация: 1
Всего: 2



Собственно и вопрос в названии темы: как из объекта Texture получить Bitmap или Image. Если вопрос не ясен, то конкретно задача - получить изображение из текстуры объекта и присвоить его контролу (свойство BackgroundImage или Image).
PM MAIL ICQ Skype   Вверх
Rickert
Дата 2.3.2009, 05:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: 6
Всего: 52



Текстура находится в видео памяти только, или в оперативной тоже есть?


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
EgoBrain
Дата 2.3.2009, 07:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 23.3.2008
Где: Комната

Репутация: 1
Всего: 2



Цитата(Rickert @ 2.3.2009,  05:55)
Текстура находится в видео памяти только, или в оперативной тоже есть?

Если честно не знаю. MeshFlags.Manged стоит, вроде же этот флаг за память отвечает? А к чему вопрос, можно только из оперативной вытащить? Вообще если это слишком затратно то я другой способ буду использовать.

Добавлено через 5 минут и 26 секунд
Ааа, что-то я маху дал smile Ну у меня массив типа текстура создается и там они все хранятся (загружаются)
Код

Texture[] meshTextures;

, значит получается в оперативной, или я не правильно понимаю. Объясните. Имхо оператор new создает массив в ОП.

Это сообщение отредактировал(а) EgoBrain - 2.3.2009, 07:06
PM MAIL ICQ Skype   Вверх
Rickert
Дата 2.3.2009, 09:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: 6
Всего: 52



О чём говорим? OpenGL/ DirectX?


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
arilou
Дата 2.3.2009, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 6
Всего: 61



EgoBrain, а что тебе мешает загрузить System.Drawing.Bitmap руками по имени файла текстуры?

твоя проблема в том, что текстура может быть такого формата, который не поддерживается bitmap'ом, и тебе придется ее конвертировать вручную или при помощи сторонней библиотеки.

Добавлено через 17 секунд
Rickert, Managed DirectX


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
EgoBrain
Дата 3.3.2009, 02:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 23.3.2008
Где: Комната

Репутация: 1
Всего: 2



Цитата(arilou @ 2.3.2009,  15:28)
EgoBrain, а что тебе мешает загрузить System.Drawing.Bitmap руками по имени файла текстуры?

твоя проблема в том, что текстура может быть такого формата, который не поддерживается bitmap'ом, и тебе придется ее конвертировать вручную или при помощи сторонней библиотеки.

Добавлено @ 15:29
Rickert, Managed DirectX

Так вот мне и пришлось создавать еще отдельный стринговский массив для хранения имен файлов текстур, пока что так решил. Просто думал, что можно имея текстуру получить легко битмэп, ковырял методы - ничего подобного нет... Вообще логично же такую возможность предположить (если текстура допустимого формата)?
З.Ы. arilou, так как насчет дополнительного вопроса про память, как у вас там в XNA определяется где хранится текстура (RAM/VRAM)? smile

Это сообщение отредактировал(а) EgoBrain - 3.3.2009, 02:54
PM MAIL ICQ Skype   Вверх
Rickert
Дата 3.3.2009, 04:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: 6
Всего: 52



EgoBrain, "а вот и недостатки dx перед ogl?" smile 


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
galileopro
  Дата 5.7.2009, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 7.6.2009
Где: Харьков

Репутация: нет
Всего: нет



Вот так:
Код
private void Coord(int number, double x, double y, double z)
        {
            string File;
            int size=16;
            File = "Texture"+number.ToString()+".bmp";
            byte[, ,] Bits = new byte[size, size, 3];
            Gl.glEnable(Gl.GL_TEXTURE_2D);
            Bitmap bitmap = new Bitmap(File);
            for (int i = 0; i <= size-1; i++)
                for (int j = 0; j <= size-1; j++)
                {
                    Bits[i, j, 0] = bitmap.GetPixel(i, j).R;
                    Bits[i, j, 1] = bitmap.GetPixel(i, j).G;
                    Bits[i, j, 2] = bitmap.GetPixel(i, j).B;
                }

            Gl.glTexImage2D(Gl.GL_TEXTURE_2D, 0,
                            Gl.GL_RGB, size, size, 0,
                            Gl.GL_RGB, Gl.GL_UNSIGNED_BYTE, @Bits);
            Gl.glTexParameteri(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_MIN_FILTER, Gl.GL_LINEAR);
            Gl.glTexParameteri(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_MAG_FILTER, Gl.GL_LINEAR);

            Gl.glPushMatrix();
            Gl.glRotated(-90, 0, 0, 1);
            Gl.glTranslated(-1.0+y/450, -1.0+x/450, z/450);
            Gl.glScaled(0.04, 0.04, 0.04);
            Gl.glBegin(Gl.GL_QUADS);

            Gl.glTexCoord2d(0.0, 1.0);
            Gl.glVertex2d(0, 1);

            Gl.glTexCoord2d(0.0f, 0.0f);
            Gl.glVertex2d(0, 0);

            Gl.glTexCoord2d(1.0, 0.0f);
            Gl.glVertex2d(1, 0);

            Gl.glTexCoord2d(1.0f, 1.0f);
            Gl.glVertex2d(1, 1);
            Gl.glEnd();
            Gl.glPopMatrix();
            Gl.glFlush();
        }


PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование игр, графики и искуственного интеллекта"
Rickert

НА ЗЛОБУ ДНЯ: Дорогие посетители, прошу обратить внимание что новые темы касающиеся новых вопросов создаются кнопкой "Новая тема" а не "Ответить"! Любые оффтопиковые вопросы, заданные в текущих тематических темах будут удалены а их авторы, при рецедиве, забанены.

  • Литературу, связанную с программированием графики, обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы связанные с программированием графики и мультимедии на языках С++ и Delphi
  • Вопросы по реализации алгоритмов рассматриваются здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование игр, графики и искусственного интеллекта | Следующая тема »


 




[ Время генерации скрипта: 0.0566 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.