Wanderer Опубликовано 14 июля, 2017 Поделиться Опубликовано 14 июля, 2017 Всем привет. Игра CSS. Несколько дней уже ищу как получить эти матрицы через девайс. Перехватил EndScene. Пробовал следующее.. device->GetTransform(D3DTS_VIEW, ......); device->GetTransform(D3DTS_PROJECTION, .......); В этом случае я просто получал 2 единичные матрицы, и они не обновлялись. device->GetVertexShaderConstantF - Через этот метод получал отдельно View, Projection ,World. Перемножал и вроде бы уже похожа на настоящую, но она не обновляется и остаётся статичной. Так же получал сразу перемноженную, результат тот же. Может я что-то не так делаю, или как можно по другому, помимо поиска самостоятельно матрицы. Спасибо! Ссылка на комментарий Поделиться на другие сайты Поделиться
uhx Опубликовано 14 июля, 2017 Поделиться Опубликовано 14 июля, 2017 (изменено) 22 часа назад, Wanderer сказал: Через этот метод получал отдельно View, Projection А что тебе собственно еще то нужно? О_о Скрытый текст bool WorldToScreen( D3DXVECTOR3* origin, D3DXVECTOR2* out ) { D3DXMATRIX pProjection; D3DXMATRIX pView; DirectX->pDevice->GetVertexShaderConstantF( PROJ_CONST, pProjection, 4 ); DirectX->pDevice->GetVertexShaderConstantF( VIEW_CONST, pView, 4 ); D3DVIEWPORT9 pViewport; DirectX->pDevice->GetViewport( &pViewport ); D3DXMATRIX pWorld; D3DXMatrixIdentity( &pWorld ); D3DXVECTOR3 screen; D3DXVec3Project( &screen, origin, &pViewport, &pProjection, &pView, &pWorld ); if( screen.z < 1.0f ) { out->x = screen.x; out->y = screen.y; return true; } return false; } Изменено 15 июля, 2017 пользователем Xipho Большие куски кода нужно прятать под спойлер. Ссылка на комментарий Поделиться на другие сайты Поделиться
Wanderer Опубликовано 14 июля, 2017 Автор Поделиться Опубликовано 14 июля, 2017 (изменено) 19 часов назад, uhx сказал: А что тебе собственно еще то нужно? О_о Я понял что брал неверный индекс регистра для метода GetVertexShaderConstantF, как узнать какой именно нужен? Изменено 15 июля, 2017 пользователем Xipho Не нужно цитировать все сообщение целиком, достаточно части, чтобы было понятно, на что отвечаешь. Ссылка на комментарий Поделиться на другие сайты Поделиться
uhx Опубликовано 14 июля, 2017 Поделиться Опубликовано 14 июля, 2017 11 час назад, Wanderer сказал: как узнать какой именно нужен Перебором)) А лучше просто найди ручками видовую матрицу и сделай классический W2S, без D3DXVec3Project, а то я думал что ты через константы нашел их, поэтому такой код предложил. Сам как-то так делал. Ссылка на комментарий Поделиться на другие сайты Поделиться
Wanderer Опубликовано 15 июля, 2017 Автор Поделиться Опубликовано 15 июля, 2017 (изменено) 6 часов назад, uhx сказал: Перебором)) А лучше просто найди ручками видовую матрицу и сделай классический W2S, без D3DXVec3Project, а то я думал что ты через константы нашел их, поэтому такой код предложил. Сам как-то так делал. Ну хорошо. Спасибо:) Изменено 15 июля, 2017 пользователем Wanderer Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения