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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.05.2010, 23:01   #11
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

Цитата:
Сообщение от vaflea Посмотреть сообщение
D3DCULL работает правильно, так что врядли из-за этого.
А если отображать по две/три стороны..как это сделать, не подскажите?
куллом как раз это и реализуется. стороны на заднем плане меняют ориентацию обхода вершин относительно камеры, поэтому они не рендерятся. если кулл указан нормально.

Что у вас с буфером глубины? Похоже, что либо его просто нет, либо там мусор.
Carbon вне форума Ответить с цитированием
Старый 24.05.2010, 14:43   #12
vaflea
Пользователь
 
Регистрация: 16.05.2010
Сообщений: 13
По умолчанию

d3dpp.EnableAutoDepthStencil = TRUE;
d3dpp.AutoDepthStencilFormat = D3DFMT_D16;

и в начале Render():
g_pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET|D3DCLEAR_ZBUFFER,
D3DCOLOR_XRGB(0, 0, 0), 1.0f, 0 );
vaflea вне форума Ответить с цитированием
Старый 24.05.2010, 14:49   #13
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

Тогда мне нужен весь код создания девайса + весь код рендера.

И ещё: где находится передняя плоскость отсечения?
Carbon вне форума Ответить с цитированием
Старый 24.05.2010, 14:51   #14
vaflea
Пользователь
 
Регистрация: 16.05.2010
Сообщений: 13
По умолчанию

HRESULT InitD3D( HWND hWnd )
{
// Создание необходимой для устройства переменной.
if((g_pD3D = Direct3DCreate9( D3D_SDK_VERSION ))==NULL)
return E_FAIL; // Выход в случае неудачи.



// Задание параметров для нашего устройства.
D3DPRESENT_PARAMETERS d3dpp;
d3dpp.EnableAutoDepthStencil = TRUE;
d3dpp.AutoDepthStencilFormat = D3DFMT_D16;
// Обнуление большинства параметров.
ZeroMemory( &d3dpp, sizeof(d3dpp) );
d3dpp.Windowed = TRUE; // Устройство будет оконное.
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
d3dpp.BackBufferFormat = D3DFMT_UNKNOWN;

// Непосредственное создание устройства.
if( FAILED(g_pD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL,
hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING ,
&d3dpp, &g_pd3dDevice)))

{
// Если не удалось создать устройство, то выходим.
return E_FAIL;
}
// Показываем треугольник с обоих сторон.
g_pd3dDevice->SetRenderState (D3DRS_ZENABLE, D3DZB_TRUE);
g_pd3dDevice->SetRenderState( D3DRS_CULLMODE, D3DCULL_CW);
// Показываем цвет у треугольника.
g_pd3dDevice->SetRenderState( D3DRS_LIGHTING, FALSE );

// Если устройство создалось нормально, то выходим.
return S_OK;
}





VOID Render()
{
if(g_pd3dDevice == NULL)
return;
// Очистка и закраска фона в красный цвет.
/*g_pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET,
D3DCOLOR_XRGB(0, 0, 0), 1.0f, 0 );*/
g_pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET|D3DCLEAR_ZBUFFER,
D3DCOLOR_XRGB(0, 0, 0), 1.0f, 0 );

// Начало отрисовки сцены.
// Начало отрисовки сцены.
if(SUCCEEDED(g_pd3dDevice->BeginScene()))
{
g_pd3dDevice->SetStreamSource( 0, g_pVB, 0, sizeof(CUSTOMVERTEX));
g_pd3dDevice->SetFVF(D3DFVF_XYZ|D3DFVF_DIFFUSE );


for(int i = 0; i<27; i++)
{
DrawMyMesh(a[i*3+1],a[i*3+2],a[i*3+3],b[i*3+1],b[i*3+2],b[i*3+3]);
}
g_pd3dDevice->EndScene();
}


// Вывод из следующего буфера на экран.
g_pd3dDevice->Present( NULL, NULL, NULL, NULL );
}
vaflea вне форума Ответить с цитированием
Старый 24.05.2010, 14:52   #15
vaflea
Пользователь
 
Регистрация: 16.05.2010
Сообщений: 13
По умолчанию

Комментарии не мои, брал из примеров, перемешано все
vaflea вне форума Ответить с цитированием
Старый 24.05.2010, 19:14   #16
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

Слушай, выложи весь проект. Мне так проще будет разобраться.
Carbon вне форума Ответить с цитированием
Старый 25.05.2010, 18:49   #17
vaflea
Пользователь
 
Регистрация: 16.05.2010
Сообщений: 13
По умолчанию

Я уже разобрался, спасибо. оказалось, что
D3DPRESENT_PARAMETERS d3dpp;
d3dpp.EnableAutoDepthStencil = TRUE;
d3dpp.AutoDepthStencilFormat = D3DFMT_D16;
ZeroMemory( &d3dpp, sizeof(d3dpp) );
шло в неправильном порядке
vaflea вне форума Ответить с цитированием
Старый 25.05.2010, 20:35   #18
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

Цитата:
// Показываем треугольник с обоих сторон.
Тыльная сторона будет к тебе лицом только тогда, когда она будет где-то сзади, т.е. перекрыта чем-то еще. Убери это и, если правильно ориентируешь треугольники, то должно быть все гуд. (если не правильно, то будут другие глюки, просто координаты неправильно ориентированых треугольникв надо будет внести в обратном порядке либо прибегнуть к использованию нормалей, но я считаю,ч то утт они будут излишними (а вот для отражений они очень нужны))
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс

Последний раз редактировалось ROD; 25.05.2010 в 20:41.
ROD вне форума Ответить с цитированием
Старый 25.05.2010, 20:36   #19
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

удалено автором
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс
ROD вне форума Ответить с цитированием
Старый 26.05.2010, 01:15   #20
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

vaflea, ну походу я был прав, что проблема в буфере глубины.
Carbon вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С# классы проблема с созданием обьекта bondik Общие вопросы .NET 3 25.11.2009 10:02
Проблема с отображением времени HAMMAN Помощь студентам 2 22.04.2009 16:17
проблема с отображением DBGrid gotex БД в Delphi 12 04.06.2008 01:06
Проблема с отображением текста ALR Свободное общение 0 18.02.2007 20:08