Модератор: Mikle
djalex777 писал(а):Всё запускается и работает нормально.
PIV 2.8 Radeon 9600
Достоинств не заметил:
1) Туман он и в африке туман - одной командой...
2) Bump без тумана натягивается на небо...
3) Без тумана освещения нет
4) Освещение d3dlight ?
5) Теней не увидел...
6) Отражение - stencil buffer в самой простой интерпретации
В обшем может я просто не понял цель данного примера... Просто показать набор встроенных функций d3d ?? Удалось на троечку.
DirectXManiac писал(а):Начну сначала...
1) теней нет - это жалкие лайтмэпы... никакой динамики...
2) это бамп мэппинг? гм...
3) вообщем так неплохо, но зачем такая кривая камера? это все делается подругому
Хакер писал(а):StimorolD3DX
Почему от твоей демки у меня заболела голова. Наверное,.. совпадение.
А по делу:
1) Почему я застреваю в стенах? У стен что коэффициент трения равен бесконечнсти? (Хотя я уверен что им у тебя не пахнет)
2) Что за акробатические трюки вместо прышков совершает камера, когда я жму пробел?
3) Ты сам то пробовал подниматься по своей "лестнице"
4) Либо что то не так но bump mapping какой то ну очень кривой.
2) Обычные прижки, ничего особенного Player.y=player.y+0.01
Sneaks писал(а):Вот побегал по карте, и меня начали терзать смутные сомнения ...
а детекция столкновения ты как делал? Чет все у тебя квадратное и ни одного повернутого ящика...
Хакер писал(а):MARAVA ( 5 сообщений )
Sneaks ( 4 сообщения )
djalex777( 19 сообщений )
Наводит на странный мысли.
Хакер писал(а):Рейтрейс... знаешь такое? Рейтрейси всё грани куба и детекть коллизию.
MARAVA писал(а):Че заценять? Где ссылка на движек или примеры?
//-----------------------------------------------------------------------------
// Name: IntersectTriangle()
// Desc: Given a ray origin (orig) and direction (dir), and three vertices of
// of a triangle, this function returns TRUE and the interpolated texture
// coordinates if the ray intersects the triangle
//-----------------------------------------------------------------------------
BOOL CMyD3DApplication::IntersectTriangle( const D3DXVECTOR3& orig,
const D3DXVECTOR3& dir, D3DXVECTOR3& v0,
D3DXVECTOR3& v1, D3DXVECTOR3& v2,
FLOAT* t, FLOAT* u, FLOAT* v )
{
// Find vectors for two edges sharing vert0
D3DXVECTOR3 edge1 = v1 - v0;
D3DXVECTOR3 edge2 = v2 - v0;
// Begin calculating determinant - also used to calculate U parameter
D3DXVECTOR3 pvec;
D3DXVec3Cross( &pvec, &dir, &edge2 );
// If determinant is near zero, ray lies in plane of triangle
FLOAT det = D3DXVec3Dot( &edge1, &pvec );
D3DXVECTOR3 tvec;
if( det > 0 )
{
tvec = orig - v0;
}
else
{
tvec = v0 - orig;
det = -det;
}
if( det < 0.0001f )
return FALSE;
// Calculate U parameter and test bounds
*u = D3DXVec3Dot( &tvec, &pvec );
if( *u < 0.0f || *u > det )
return FALSE;
// Prepare to test V parameter
D3DXVECTOR3 qvec;
D3DXVec3Cross( &qvec, &tvec, &edge1 );
// Calculate V parameter and test bounds
*v = D3DXVec3Dot( &dir, &qvec );
if( *v < 0.0f || *u + *v > det )
return FALSE;
// Calculate t, scale parameters, ray intersects triangle
*t = D3DXVec3Dot( &edge2, &qvec );
FLOAT fInvDet = 1.0f / det;
*t *= fInvDet;
*u *= fInvDet;
*v *= fInvDet;
return TRUE;
}
Хакер писал(а):Как вариант: пример из DXSDK
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8