Перейти к содержанию

Лидеры

Популярный контент

Показан контент с высокой репутацией 17.11.2020 во всех областях

  1. Тут просто обычная функция, или метод (если ты в классе реализуешь это), вот пример где всё хранится в массивах: private int WorldToScreen() { screenCoords[0] = objCoord[0] * view_matrix[0] + objCoord[1] * view_matrix[1] + objCoord[2] * view_matrix[2] + view_matrix[3]; screenCoords[1] = objCoord[0] * view_matrix[4] + objCoord[1] * view_matrix[5] + objCoord[2] * view_matrix[6] + view_matrix[7]; screenCoords[2] = objCoord[0] * view_matrix[8] + objCoord[1] * view_matrix[9] + objCoord[2] * view_matrix[10] + view_matrix[11]; screenCoords[3] = objCoord[0] * view_matrix[12] + objCoord[1] * view_matrix[13] + objCoord[2] * view_matrix[14] + view_matrix[15]; if (screenCoords[3] < 0.1f) { return 0; } ndc[0] = screenCoords[0] / screenCoords[3]; ndc[1] = screenCoords[1] / screenCoords[3]; ndc[2] = screenCoords[2] / screenCoords[3]; strucPoint.X = Convert.ToInt32((this.Width / 2 * ndc[0]) + (ndc[0] + this.Width / 2)); strucPoint.Y = Convert.ToInt32(-(this.Height / 2 * ndc[1]) + (ndc[1] + this.Height / 2)); return 1; } А вот источник где также описаны функции WorldToScreen, только для хранения они используют поля структур или классов: https://guidedhacking.com/threads/world2screen-direct3d-and-opengl-worldtoscreen-functions.8044/ Как найти видовую матрицу от туда же: https://guidedhacking.com/threads/how-to-get-started-with-learning-viewmatrix.13663/ Но я использовал метод поиска между -1.0 и 1.0
    1 балл
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.