Как получить расстояние от камеры до точки?

Тема в разделе "WASM.GRAPHICS", создана пользователем fridge, 7 ноя 2005.

  1. fridge

    fridge New Member

    Публикаций:
    0
    Регистрация:
    30 окт 2005
    Сообщения:
    5
    Адрес:
    Russia
    Мне нужно получить расстояние от камеры до точки, которая при рендеринге отображается в данный момент в центре экрана.

    Кто-нибудь знает может быть для этого есть какая-нибудь API функция?
     
  2. fridge

    fridge New Member

    Публикаций:
    0
    Регистрация:
    30 окт 2005
    Сообщения:
    5
    Адрес:
    Russia
    Объясню по русски:

    я должен знать расстояние до того предмета на который направлен прицел. Да не так, чтобы до предмета в целом а до того места на его оверхности, куда прицел направлен.
     
  3. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан




    Ну на сколько я понимаю, графикой ты занимаешся где-то вторую неделю? Нет для этого никакой функции, а такая постановка вопроса говорит о том, что ты действительно еще не понимаешь что к чему.







    Тут у тебя два выхода.



    1. Вручную трансформируешь модель в систему координат камеры и решаешь задачу о пересечении трямой и треугольника. Т.е. "честный" способ.



    2. Читаешь в нужном месте значение из z-buffer-а и все. Очень простой и очень ленивый способ. "Нечестный".
     
  4. fridge

    fridge New Member

    Публикаций:
    0
    Регистрация:
    30 окт 2005
    Сообщения:
    5
    Адрес:
    Russia




    Где-то первую :)
     
  5. fridge

    fridge New Member

    Публикаций:
    0
    Регистрация:
    30 окт 2005
    Сообщения:
    5
    Адрес:
    Russia
    А что быстрее работает?

    Я так понимаю - второе, ведь здесь не нужно проверять треугольники на пересечение с прямой, или я не прав?

    (Дело в том, что мне понадобится такая опереция при каждой прорисовке и я вполне готов убить время и на первый, и на второй способ, лишь бы не страдало быстродействие)
     
  6. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    fridge



    По большому счету никто в здравом уме не будет считать расстояния именно до треугольников. Есть случаи когда это сделать впринципе невозможно. Например, если на вершинном шейдере происходит трансформация геометрии.

    z-buffer читать тоже не очень хорошо, т.к. объект может не попадать в кадр, или быть закрытым другим объектом.



    Все делается через баунд-объекты. Считай расстояние не до треугольника, а до баундинг-сферы. Погрешность будет небольшая, а вычисления намного проще быстрее.
     
  7. doctor_Ice

    doctor_Ice New Member

    Публикаций:
    0
    Регистрация:
    21 мар 2005
    Сообщения:
    845
    Адрес:
    Russia
    Считай расстояние не до треугольника, а до баундинг-сферы.



    если попадаеш в сферу делай дополнительную проверку по баундинг боксу ато будет лажа с вытянутыми объектами
     
  8. COOLOVEN

    COOLOVEN New Member

    Публикаций:
    0
    Регистрация:
    16 ноя 2005
    Сообщения:
    1
    Адрес:
    планета Земля
    позвони мне, я скажу