Понедельник, 11 Ноября 2024, 03:34

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Результаты поиска
s3dworldДата: Пятница, 22 Января 2010, 12:09 | Сообщение # 1 | Тема: Помогите с вершинами и текстурами
был не раз
Сейчас нет на сайте
Доброго всем дня!

Интересует несколько вопросов, причём реализации и для OpenGL и для Direct3D:

1. Как мне использовать несколько буферов?

В Direct3D, при заполнении структуры PRESENT_PARAMETERS, есть такая переменная BackBufferCount (не обращайте внимание если с ошибками, я по памяти пишу), где можно указать количество дополнительных (задних буферов). Так же стоит автоматическое переключение страниц (не помню этот флаг).

В том же OpenGL я нашёл какие-то передний буфер, задний, левый, правый, дополнительные и так далее...

Я вот хочу чтобы я сам создал сколько мне нужно буферов (2, 3, 4, 5, ...) и сам выбирал в какой осуществлять вывод и потом какой из буферов копировать в передний (выводить рисунок на экран).

Как мне это реализовать и в OpenGL и в Direct3D?

2. Как мне в памяти видеокарты оставлять вершины, чтобы они там хранились столько, сколько я захочу?

Тут с Direct3D проще. Я могу на создавать этих D3D9VertexBuffer'ов столько, сколько захочу, и потом уже из нужного мне рисовать.

А вот как быть с OpenGL? Он работает со списками, но список только один действительный. А я хочу чтобы у меня все модели были загружены в память видеокарты и потом которая потребуется, её и выводил.

Как это реализовать и на OpenGL и на Direct3D?

3. Как мне загрузить в память видеокарты рисунок, чтобы потом его использовать как текстуру?

Дело в том, что я хочу использовать свои рисунки, которые я буду считывать с файла (свой формат) или создавать программным путём. Скажем у меня есть красный квадрат 4x4:

Code

unsigned int picture1[]={
     0xFF0000,0xFF0000,0xFF0000,
     0xFF0000,0xFF0000,0xFF0000,
     0xFF0000,0xFF0000,0xFF0000,
     0xFF0000,0xFF0000,0xFF0000};

Как мне его загрузить в видеопамять и с помощью OpenGL, и с помощью Direct3D, чтобы потом использовать как текстуру?

s3dworldДата: Четверг, 21 Января 2010, 11:16 | Сообщение # 2 | Тема: Загрузка изображений в память видеокарты
был не раз
Сейчас нет на сайте
Всем доброго утра!

Сам Direct3D понимает формат изображений ".dds", вроде бы ещё ".bmp". ".dds" является его родным форматом. Так вот, а я хочу рисовать текстуру (картинку) прямо в памяти. Предположим я создам массив:

Code

int myPicture[4]={
     0xFFFFFF,0xFFFFFF,0xFFFFFF,0xFFFFFF
     0xFFFFFF,0xFFFFFF,0xFFFFFF,0xFFFFFF
     0xFFFFFF,0xFFFFFF,0xFFFFFF,0xFFFFFF
     0xFFFFFF,0xFFFFFF,0xFFFFFF,0xFFFFFF};

Это будет рисунок размером 4x4 (белый квадрат). И каким образом мне это превратить действительно в рисунок (текстуру), которая будет загружена в память видеокарты? Помогите. Вроде бы есть интерфейс IDirect3DSurface, но я им не пользовался. Если кто знает, покажите в коде. Заранее спасибо!

s3dworldДата: Среда, 20 Января 2010, 12:25 | Сообщение # 3 | Тема: C++ и 3D графика (OpenGL или Direct3D)
был не раз
Сейчас нет на сайте
Добрый день!

Вот решил написать игру, работал немного в OpenGL раньше, но всё таки больше в Direct3D. Конечно удобно что в последнем есть матрицы и вектора, хотя как-то те же вектора я и для OpenGL писал. Это не сложно. Просто OpenGL я программировал ещё тут, который шёл вместе с Visual C++ 6.0, а какие возможности у него сейчас, какие функции и структуры появились, я не знаю. Вот и хотелось бы мне обсудить это, чтобы Вы поделились своим опытом. А то мне в голову уже давно въелось: если Windows, то только Direct3D!

Direct3D подготавливает специальный буфер для хранения вершин. Потом их там можно изменять и от туда их можно извлекать. А вот в OpenGL все данные хранятся в массивах и вообще где хочешь. И потом прямо в момент визуализации они берутся из обычных переменных. По крайней мере это раньше так было. Расскажи те как сейчас. Что нового.

В обще какие плюсы у одного и другого, а так же какие минусы. Думаю на скорости это не так сильно влияет. А вот скажем средства для создания теней, зеркал, какие буфера есть и дополнения. Если кто знает, расскажи те, опишите. Мне будет очень интересно. Буду благодарен. И ещё один вопрос...вывод 2D графики.

В Direct3D я для этого использовал формат вершин RHW (экранные координаты). Создавал два треугольника, привязывал координаты текстуры и отображал. Получалось как то размазано (ну это всякие фильтрации). Говорят есть ещё способ через спрайты. Расскажи те как лучше и как вообще можно.

И хотелось бы узнать как выводить 2D графику через OpenGL.

Говоря про 2D графику, я имею ввиду рисунки с жёсткого диска, которые бы просто напросто формировали интерфейс игры (ну там рисунок крестика над здоровьем игрока и другое...).

Жду Ваших ответов. Заранее, большое спасибо!

  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг