Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.06.2010, 22:34   #1
Crivel
Delphi\C++
Форумчанин
 
Аватар для Crivel
 
Регистрация: 18.06.2008
Сообщений: 277
По умолчанию Координаты текстур куба. DirectX.

Создаю куб с помощью D3DXCreateBox. Мне требуется наложить текстуру на него. Но для этого надо добавить в него координаты текстур. Как для сферы рассчитать я знаю:

Код:
 Sphere.CloneMeshFVF(D3DXMESH_SYSTEMMEM, FVF_VERTEX,
    FD3DDevice, TempMesh);
 TempMesh.LockVertexBuffer(0, pointer(pBuf));
 nVertex := TempMesh.GetNumVertices;
 for n := 0 to nVertex - 1 do
    begin
      /
      pBuf^.tu := pBuf^.normal.x / 2 + 0.5; // вот эти две строки и надо как-нибудь поменять...
      pBuf^.tv := pBuf^.normal.y / 2 + 0.5;
      inc(pBuf);
end;

TempMesh.UnlockVertexBuffer;
Sphere := TempMesh;
Но вот с кубом у меня затруднение. Куб и сфера создаются с помощью D3DXCreateBox и D3DXCreateSphere. Искал в гугле - нечего путного не нашёл.

Заранее благодарен.
Crivel вне форума Ответить с цитированием
Старый 16.06.2010, 12:45   #2
Crivel
Delphi\C++
Форумчанин
 
Аватар для Crivel
 
Регистрация: 18.06.2008
Сообщений: 277
По умолчанию

Отвечаю сам себе:

Код:
Cube.CloneMeshFVF(D3DXMESH_SYSTEMMEM, FVF_VERTEX,
    FD3DDevice, TempMesh);
 TempMesh.LockVertexBuffer(0, pointer(pBuf));
 nVertex := TempMesh.GetNumVertices;
      pBuf^.tu := 0;      pBuf^.tv := 0;
      inc(pBuf);
      pBuf^.tu := 1;      pBuf^.tv := 0;
      inc(pBuf);
      pBuf^.tu := 1;      pBuf^.tv := 1;
      inc(pBuf);
      pBuf^.tu := 0;      pBuf^.tv := 1;
      inc(pBuf);

      pBuf^.tu := 0;      pBuf^.tv := 0;
      inc(pBuf);
      pBuf^.tu := 1;      pBuf^.tv := 0;
      inc(pBuf);
      pBuf^.tu := 1;      pBuf^.tv := 1;
      inc(pBuf);
      pBuf^.tu := 0;      pBuf^.tv := 1;
      inc(pBuf);

      pBuf^.tu := 0;      pBuf^.tv := 0;
      inc(pBuf);
      pBuf^.tu := 1;      pBuf^.tv := 0;
      inc(pBuf);
      pBuf^.tu := 1;      pBuf^.tv := 1;
      inc(pBuf);
      pBuf^.tu := 0;      pBuf^.tv := 1;
      inc(pBuf);

      pBuf^.tu := 0;      pBuf^.tv := 0;
      inc(pBuf);
      pBuf^.tu := 1;      pBuf^.tv := 0;
      inc(pBuf);
      pBuf^.tu := 1;      pBuf^.tv := 1;
      inc(pBuf);
      pBuf^.tu := 0;      pBuf^.tv := 1;
      inc(pBuf);

      pBuf^.tu := 0;      pBuf^.tv := 0;
      inc(pBuf);
      pBuf^.tu := 1;      pBuf^.tv := 0;
      inc(pBuf);
      pBuf^.tu := 1;      pBuf^.tv := 1;
      inc(pBuf);
      pBuf^.tu := 0;      pBuf^.tv := 1;
      inc(pBuf);

      pBuf^.tu := 0;      pBuf^.tv := 0;
      inc(pBuf);
      pBuf^.tu := 1;      pBuf^.tv := 0;
      inc(pBuf);
      pBuf^.tu := 1;      pBuf^.tv := 1;
      inc(pBuf);
      pBuf^.tu := 0;      pBuf^.tv := 1;
      inc(pBuf);

TempMesh.UnlockVertexBuffer;
Cube := TempMesh;
Crivel вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поворот куба. Матрицы. DirectX. Crivel Gamedev - cоздание игр: Unity, OpenGL, DirectX 13 10.06.2010 21:07
Сборка текстур. Adler Общие вопросы Delphi 0 19.03.2009 15:23
СОЗДАНИЕ 3d КУБА Sergeu Gamedev - cоздание игр: Unity, OpenGL, DirectX 11 13.02.2009 07:31
Создание текстур KLOP Мультимедиа в Delphi 12 28.01.2009 22:36
Найти объём куба и площадь его боковой поверхности BASIC Ветренная Помощь студентам 23 02.06.2008 13:15