Мне нужно получить расстояние от камеры до точки, которая при рендеринге отображается в данный момент в центре экрана. Кто-нибудь знает может быть для этого есть какая-нибудь API функция?
Объясню по русски: я должен знать расстояние до того предмета на который направлен прицел. Да не так, чтобы до предмета в целом а до того места на его оверхности, куда прицел направлен.
Ну на сколько я понимаю, графикой ты занимаешся где-то вторую неделю? Нет для этого никакой функции, а такая постановка вопроса говорит о том, что ты действительно еще не понимаешь что к чему. Тут у тебя два выхода. 1. Вручную трансформируешь модель в систему координат камеры и решаешь задачу о пересечении трямой и треугольника. Т.е. "честный" способ. 2. Читаешь в нужном месте значение из z-buffer-а и все. Очень простой и очень ленивый способ. "Нечестный".
А что быстрее работает? Я так понимаю - второе, ведь здесь не нужно проверять треугольники на пересечение с прямой, или я не прав? (Дело в том, что мне понадобится такая опереция при каждой прорисовке и я вполне готов убить время и на первый, и на второй способ, лишь бы не страдало быстродействие)
fridge По большому счету никто в здравом уме не будет считать расстояния именно до треугольников. Есть случаи когда это сделать впринципе невозможно. Например, если на вершинном шейдере происходит трансформация геометрии. z-buffer читать тоже не очень хорошо, т.к. объект может не попадать в кадр, или быть закрытым другим объектом. Все делается через баунд-объекты. Считай расстояние не до треугольника, а до баундинг-сферы. Погрешность будет небольшая, а вычисления намного проще быстрее.
Считай расстояние не до треугольника, а до баундинг-сферы. если попадаеш в сферу делай дополнительную проверку по баундинг боксу ато будет лажа с вытянутыми объектами