Есть ли C# 3D Graphics Library, которая может помочь мне рассчитать 2D-положение 3D-объекта в пространстве?
Моя цель состоит в том, чтобы я поместил некоторые объекты в трехмерное пространство и вызвал Render(), тогда эта библиотека могла бы сообщить мне положение рендеринга на 2-м экране каждого объекта.
Или как движок 3D-игр, но я хочу взять на себя часть рендеринга, я хочу визуализировать эти объекты самостоятельно.
Может кто-нибудь мне помочь?
2 ответа
Что насчет XNAMath? Это должно быть достаточно хорошо, чтобы удовлетворить все ваши потребности. Фактически это теперь часть DirectX SDK.
Изменить: Если вы хотите получить практическое представление о геометрии для компьютерной графики, вот обширная книга, которая охватывает все темы. И независимо от того, какую графику вы разрабатываете, игру, демо-версию или что-то еще, математика везде одинакова.
Может быть полезна любая библиотека, поддерживающая матричные операции, но я рекомендую вам использовать Managed DirectX. Он имеет много полезных функций, особенно для 3D-графики.
После выбора библиотеки создайте правильную матрицу вида и матрицу проекции, используя ее. Умножьте две матрицы в матрицу, а затем умножьте матрицу с позицией в 3D(центр объекта или некоторой вершины). Результирующий вектор будет указывать положение объекта на 2D-экране. Это стандартный конвейер трехмерной графики, вы можете найти много ссылок, используя ключевое слово.