Войти
ПрограммированиеФорумГрафика

Загрузка .obj в DirectX9

Страницы: 1 2 Следующая »
#0
22:16, 23 янв 2018

Доброго времени суток. Понимаю, тема, быть может избита, но..никак не могу разобраться. Реализовал парсер .obj, для практики, все загрузил, все хорошо - но все фэйсы вывернуты в обратную сторону. У direct установил правостороннюю систему координат(до этого стояла левосторонняя, но проблему это не исправило). Ниже скриншот. Подскажите, куда копать? Я уже измучился с этой проблемой..Код, разумеется, выложу сразу же, если он вообще потребуется.
P.S.: парсер переписывал раза 4ре, брал код из других источников - все одно и тоже, уже не понимаю, какого хрена. Модель создана в Maya.
2018-01-23 | Загрузка .obj в DirectX9

#1
22:23, 23 янв 2018

d3dDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
d3dDevice->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE);

#2
22:24, 23 янв 2018

MrShoor
> d3dDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
> d3dDevice->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE);
Большое спасибо, однако z-buffer включен и используется. Проблема остаётся.

#3
22:28, 23 янв 2018

Range
И куллинг выключен?
d3dDevice->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE);

#4
22:37, 23 янв 2018

MrShoor
да, сто процентов.

#5
22:58, 23 янв 2018

Если нужен код - приложу проект, просто он объёмный немного(строчек 600).

#6
7:02, 24 янв 2018

Range
с другой стороны модель тоже выглядит неправильно? если да, то дело в culling'е. если нет, то дело в z-buffer'е.

#7
8:00, 24 янв 2018

Range
Znear сколько выставил?

#8
9:23, 24 янв 2018

Матрица Projection znear и zfar.
И depth буфер верно сделан ?
У obj возможно идут иначе индексы вершин, но точно не могу утверждать.
Хотя при (D3DRS_CULLMODE, D3DCULL_NONE); должно быть тогда пофиг на индексы.
Но вот если косяк в загрузке OBJ модели то тоже такое может быть.
Например как OBJ из Маи экспортишь ? Triangle indecis или Quad ?


Range модель не понятная. Выложил бы как она выглядит в Мае. Что бы было ясно как должно быть.

#9
11:04, 24 янв 2018

Вместо кода можно просто засветить этот (или любой другой, но портированный из Maya в OBJ таким же образом) файл модели.
При чем здесь текстуры, я не в курсе, а вот вариант неверного обхода вершин при рисовании полигона. По часовой или против часовой стрелки обход идёт?

#10
11:38, 24 янв 2018

Suslik
в программе есть вращение, как только я ее поворачиваю на 180, она выгялдит точно также, проблемно

Wraith

D3DXMatrixPerspectiveFovRH(&persp, gradus_to_radian(90), (rect.right - rect.left) / (rect.bottom - rect.top), 2000.f, 1.f);

ronniko
сейчас будет скриншот из редактора. Модель триангулирована

PA3UJIb
Обход делал разными способами, все равно вывернуто все(меня порядок индексов треугольника)

#11
11:42, 24 янв 2018

ronniko
1 | Загрузка .obj в DirectX9

#12
12:05, 24 янв 2018

это же диван!

#13
12:09, 24 янв 2018

Ну, что ж, ждём код и файл данной модели

#14
13:23, 24 янв 2018

Да в индексах OBJ f(faces) начинают нумерацию с 1-го , а не с нуля(как в Directx). В индексах могут попадаться даже числа с минусом !
Типа -1.
Это надо учесть. Что бы правильно создать буфер индексов для Directx.

Но я еще и мел ввиду разный клоквайс индексов.
То есть 2,1,0 или другой 0, 1,2

Страницы: 1 2 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.