Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Directx 12 export from blender model. 
:(
    Опции темы
Remiznik
Дата 23.2.2021, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 379
Регистрация: 30.4.2005

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



Добрый день, изучаю Directx 12 по книге Introduction to 3D Game Programming with DirectX 12, и столкнулся с такой проблемой.

Выгружаю из Blender модель куба с такими настройками (forward -Z,Y up) получаю такую модель в формате Wavefront.
Код

# Blender v2.91.0 OBJ File: ''
# www.blender.org
o Cube
v 1.000000 1.000000 -1.000000
v 1.000000 -1.000000 -1.000000
v 1.000000 1.000000 1.000000
v 1.000000 -1.000000 1.000000
v -1.000000 1.000000 -1.000000
v -1.000000 -1.000000 -1.000000
v -1.000000 1.000000 1.000000
v -1.000000 -1.000000 1.000000
s off
f 5 3 1
f 3 8 4
f 7 6 8
f 2 8 6
f 1 4 2
f 5 2 6
f 5 7 3
f 3 7 8
f 7 5 6
f 2 4 8
f 1 3 4
f 5 1 2


Но когда пытаюсь отредерить с помощью примера из книги картика получается странная, как будто порядок вершин не правильный, подскажите пожалуйста куда копать чтоб понять в чём проблема  ? 


Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  render.png 8,12 Kb
PM MAIL   Вверх
kurlyak
Дата 25.2.2021, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 212
Регистрация: 7.11.2007

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



Тут может быть не правильный порядок индексов. Я посмотрел на глаз 8м вершин координаты правильные но кажись не в том порядке.

А вот то место где ты индексы вершин обрабатываешь:

Код

f 5 3 1
f 3 8 4
f 7 6 8
f 2 8 6
f 1 4 2
f 5 2 6
f 5 7 3
f 3 7 8
f 7 5 6
f 2 4 8
f 1 3 4
f 5 1 2


Вот это место проверь. А вобще когда куб выводишь мне кажется тут не важно куда смотрит Z куда смотрит Y куб он со всех сторон одинаковый. 

Тут у тебя может быть с порядком индексов что то.

Если тебе надо именно экспортер с блендера писать, тогда проверь как индексы вершин записываются. Для примера могу дать просто куб с 8-ю вершинами и их порядок индексов как без файла модели- можно прямо сделать массив в программе, протестировать, если работает значит что то с экспортером твоим. 

Код


struct vector3 {
    float x,y,z;
};

enum { A, B, C, D, E, F, G, H };

vector3 vert_buff_temp[8];

    vert_buff_temp[0] = vector3(-4.0f,  -4.0f, -4.0f); // A
    vert_buff_temp[1] = vector3(4.0f,  -4.0f, -4.0f); // B
    vert_buff_temp[2] = vector3(-4.0f,   4.0f, -4.0f); // C
    vert_buff_temp[3] = vector3(4.0f,   4.0f, -4.0f); // D
                
    vert_buff_temp[4] = vector3(-4.0f,  -4.0f,  4.0f); // E
    vert_buff_temp[5] = vector3(4.0f,  -4.0f,  4.0f); // F
    vert_buff_temp[6] = vector3(-4.0f,   4.0f,  4.0f); // G
    vert_buff_temp[7] = vector3( 4.0f,   4.0f,  4.0f); // H


DWORD index_buff_temp[36] = {
    //front face    
    A, C, D,
    A, D, B,
    
    //left face
    E, G, C,
    E, C, A,

    //back face
    G, E, F,
    G, F, H,

    //right face
    B, D, H,
    B, H, F,

    //top face
    C, G, H,
    C, H, D,

    //bottom face
    E, A, B,
    E, B, F};


Тут конечно еще конструктор для структуры vector3 надо добавить.

Можно протестировать твою программу правильно ли выводит этот куб- эли правильно, значит проблема в самом файле модели и экспортере с блендера.

А если хочешь именно повозиться со своим файлом модели- возьми лист бумаги и ручку, проверь на бумаге расположение вершин (массив вершин) и последовательность их соединения в треугольники (массив индексов).


Это сообщение отредактировал(а) kurlyak - 25.2.2021, 16:44
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




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


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

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