Форум программистов, компьютерный форум CyberForum.ru

Объединение view и projection матриц - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Немного философии ООП http://www.cyberforum.ru/cpp/thread1808784.html
На днях на работе возник холивар с коллегами, к правильному решению пришли только на следующий день, почитав Мейерса и Саттера (один из участников холивара уже знал о правильном решении, но сторонников неправильного было большинство). Рекомендаций от упомянутых гуру пока не говорю, предлагаю поразмышлять) Итак - есть проект, в проекте используется ООП, скатываться до С считается мовитоном и...
C++ OpenCV захват видео с веб-камеры Начал изучать OpenCV. В просторах интернета нашел данный код: #include <cv.h> #include <highgui.h> #include <stdlib.h> #include <stdio.h> int main(int argc, char* argv) { // получаем любую подключённую камеру CvCapture* capture = cvCreateCameraCapture(CV_CAP_ANY); //cvCaptureFromCAM( 0 ); http://www.cyberforum.ru/cpp/thread1808506.html
Как компилятор обрабатывает член класса static constexpr const char* C++
Привет! Наткнулся на непонятный момент class Foo { public: static constexpr const char* PTR = "value"; }; без constexpr не компилируется. Вопрос - как компилятора без линкера разруливает это дело, ведь constexpr value ему нужен на этапе компиляции? Если он это пережевывает, почему тогда constexpr необходим?
C++ Распознование животных на изображении
Стала интересна тема распознавания образов на изображениях. Программа должна получать картинку с животным и определить какое это животное(как я понимаю, задача не простая, но все же) . Подскажите в какую сторону копать, какие есть статьи/книги/сайты посвященные этой теме. Слышал про OpenCV, но я уверен, что есть еще что-то похожее.
C++ Как подружить компьютер c МК через USB http://www.cyberforum.ru/cpp/thread1807335.html
Здравствуйте, уважаемые форумчане! Никогда не работал с USB нужна помощь. Есть компьютер под управлением Windows 7, плата разработки DE0-Nano-SoC. Необходимо написать программу для ОС, которая могла бы определять плату как USB устройство. В DE0-Nano-SoC есть два USb-интерфейса UART to USB (COM-порт) и USB OTG (FT232R). Думаю подключать через USB OTG. Пишу как в Microsoft Visual Stidio...
C++ Различия между Java и Си++ Я раньше программировал на си++,сейчас начал на java,нужно понять основные различия 1. Каковы отличия в структуре программы вычисления простого арифметического выражения на языке Си и Си++ от структуры программы на языке Java. 2. Если пакет содержит только один класс, нужно ли указывать класс, в котором находится функция main? 3. Могут ли в одном пакете определено несколько функций main и,... подробнее

Показать сообщение отдельно
Pro100Tom
69 / 28 / 7
Регистрация: 29.10.2012
Сообщений: 326
20.09.2016, 18:49  [ТС]     Объединение view и projection матриц
У меня все матрицы значит в column major записаны.
scaling - не имеет значения, она симметрична.
rotation
cos() 0 sin() 0
0 0 0 0
-sin() 0 cos() 0
0 0 0 1

translation
1 0 0 Tx
0 1 0 Ty
0 1 0 Tz
0 0 0 1

view
1 0 0 0
0 1 0 0
0 0 1 -15
0 0 0 1

projection
s 0 0 0
0 s 0 0
0 0 a -1
0 0 b 0
где s = 1 / tan(0.5 * fov * pi / 180)
a = -f / (f - n)
b = -f * n / (f - n)

Добавлено через 46 минут
Скажите, правильно ли я понимаию стадии pipeline'а?
(пошагово для удобства)
1). TransformationMatrix - пропускаем оригинальные вертекса объекта, чтобы получить вертексы в World пространстве
2). ViewMatrix - пропускаем вертексы World пространства, чтобы получить вертексы в Camera пространстве
3). ProjectionMatrix - пропускаем вертексы Camera пространства через матрицу проекции, чтобы симулировать перспективу.
Для этого надо каждую компоненту каждого вертекса разделить на компоненту w.
После этого просто используем x и y, предварительно проверив находятся ли они в пределах окна.

Ничего не пропустил?
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru