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

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

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

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

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

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

Код:
void SetupCamera(D3DXVECTOR3 CameraPos,	D3DXVECTOR3 CameraTarget, D3DXVECTOR3 CameraUp)
{
	D3DXMATRIX matProjection;
	D3DXMATRIX matView;
	D3DXMatrixIdentity(&matView);
	D3DXMatrixLookAtLH(&matView, &CameraPos, &CameraTarget, &CameraUp);
	g_pd3dDevice->SetTransform(D3DTS_VIEW, &matView);
           D3DXMatrixIdentity(&matProjection);
	D3DXMatrixPerspectiveFovLH(&matProjection, D3DX_PI/4.0, 640 / 480, 0.3f, 200.0f);
	g_pd3dDevice->SetTransform(D3DTS_PROJECTION, &matProjection);
}
Вызываю так:
Код:
           D3DXVECTOR3 CameraTarget;
	D3DXVECTOR3 CameraUp;
	CameraPos.x = 5;
	CameraPos.y = 0;
	CameraPos.z = 50;
	CameraTarget.x = 0;
	CameraTarget.y = 0;
	CameraTarget.z = 0;
	CameraUp.x = 0;
	CameraUp.y = 0;
	CameraUp.z = 0;
	SetupCamera(CameraPos, CameraTarget, CameraUp);
Вообщем раньше я писал нечто подобное на дельфи, взял из книги и подкорректировал. Эту функцию тоже взял с одного сайта, но чуть переделал. Дело в том что "это чудо, юдо" не работает. С++ изучаю не так давно, так что строго не судите.
Crivel вне форума Ответить с цитированием
Старый 07.07.2010, 23:14   #2
Selestis
Форумчанин
 
Аватар для Selestis
 
Регистрация: 21.01.2009
Сообщений: 719
По умолчанию

Ну, а поподробнее? Что именно не работает? Пишите уж...

Предполагаю, что у вас черный экран. Тогда дело в том, что CameraUp у вас является нулевым вектором, чего быть не может. Установите в x=0 y=1 z=0 или любой другой.
Изобретатель велосипедов
Selestis вне форума Ответить с цитированием
Старый 08.07.2010, 12:09   #3
Selestis
Форумчанин
 
Аватар для Selestis
 
Регистрация: 21.01.2009
Сообщений: 719
По умолчанию

Посмотрел и вроде бы ничего не нашел... Можете выложить целиком исходник?
Изобретатель велосипедов
Selestis вне форума Ответить с цитированием
Старый 08.07.2010, 15:32   #4
Crivel
Delphi\C++
Форумчанин
 
Аватар для Crivel
 
Регистрация: 18.06.2008
Сообщений: 277
По умолчанию

Понял свою ошибку:

Код:
g_pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0,0,255), 1.0f, 0 );
, а надо:

Код:
g_pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(0,0,255), 1.0f, 0 );
Т.е. при инициализации у меня стоит:
Код:
d3dpp.EnableAutoDepthStencil = TRUE;
Надо z-буффер очищать.

Selestis, спасибо что заглянули в тему и ответили) некоторые, вообще просто просматривают и не отвечают.
Crivel вне форума Ответить с цитированием
Старый 08.07.2010, 16:36   #5
Wicort
Форумчанин
 
Аватар для Wicort
 
Регистрация: 04.08.2009
Сообщений: 684
По умолчанию

Оффтоп
Цитата:
некоторые, вообще просто просматривают и не отвечают
Наверное просто многие (как и я в частности) смотрят эту тему из интереса, но дельного ответить не могут, т.к. ничего в этом не понимают
Еслия Вам помог, не поленитесь нажать на весы и оставить отзыв. Это не займет много времени, но даст понять, что я старался не зря =)
Мой ник зарегистрирован, а твой?
Wicort вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Камера DirectX sfok3 Gamedev - cоздание игр: Unity, OpenGL, DirectX 2 06.02.2012 21:05
Direct3D9 VintProg Gamedev - cоздание игр: Unity, OpenGL, DirectX 15 02.11.2009 10:54
Телефон+камера vitya1979 Свободное общение 1 26.07.2009 14:01
Камера в OpenGL. Подскажите. spamer Общие вопросы Delphi 0 06.05.2009 23:45
Камера от третьего лица в DirectX Pedro Gamedev - cоздание игр: Unity, OpenGL, DirectX 5 08.04.2009 15:51