Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Создание billboard в DirectX

20 views
Skip to first unread message

Daniil Smolyakov

unread,
Jan 19, 2006, 1:24:49 AM1/19/06
to

Hi!
Я вдруг понял, что сам не могу сделать так, чтобы полигон (а затем и объект)
был все время повернут лицом в камеру. Взял пример Billboard из DirectX. По оси
Y - все поворачивается, но другие оси добавить не могу.
Слаб в математике, виноват. Можете подсказать как это делается?
Без всяких там: иди в школу! учи тригонометрию, двоечник! :)

Рабочий пример такой:
D3DXMatrixScaling(&mObject,scaling.x,scaling.y,scaling.z);
D3DXVECTOR3 cameraDir=translation-camera[currentCamera]->lookFrom;
if (cameraDir.x>0)
D3DXMatrixRotationY(&mTmp,-atanf(cameraDir.z/cameraDir.x)+D3DX_PI/2);
else
D3DXMatrixRotationY(&mTmp,-atanf(cameraDir.z/cameraDir.x)-D3DX_PI/2);
D3DXMatrixMultiply(&mObject,&mObject,&mTmp);
D3DXMatrixTranslation(&mTmp,translation.x,translation.y,translation.z);
D3DXMatrixMultiply(&mWorld,&mObject,&mTmp);
d3dd->SetTransform(D3DTS_WORLD,&mWorld);

Это для объекта в целом (работа с матрицами).
Еще есть какой-то вариант, когда каждая вершина считается вручную - подходит
непосредственно для частиц.
Подскажете?

Сейчас приследуемая цель: создание облаков с помощью частиц.
Но в будущем и объект целиком поворачивать понадобится, а это мне удобней
делать именно с помощью матриц.

Bye!
MoonStone.


0 new messages