Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: 1 2 3 4 [5]   Вниз
  Печать  
Автор Тема: Создать камеру в DirectX 9  (Прочитано 123355 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #120 : 31-07-2009 07:48 » 

это смотря как ты объявил ) Ведь в функцию можно передать указатель на переменную (или ссылку) и переменная там заполнится. Тогда ничего не потеряется )
Записан

zuze
Опытный

ru
Offline Offline
Пол: Мужской
Россия, Москва


« Ответ #121 : 01-08-2009 17:27 » 

Почему происходит, где то вычитание, а где то складывания значений матрицы и почему берутся значения матрицы находящейся на этой позиции, а не на другой?

Для лучшего понимания вопроса приведу пример

Код:
// Левая плоскость
mPlanes[0].a = Matrix._14 + Matrix._13;
mPlanes[0].b = Matrix._24 + Matrix._23;
mPlanes[0].c = Matrix._34 + Matrix._33;
mPlanes[0].d = Matrix._44 + Matrix._43;

А почему не льзя было так сделать.

Код:
// Левая плоскость
mPlanes[0].a = Matrix._11 - Matrix._13;
mPlanes[0].b = Matrix._12 - Matrix._23;
mPlanes[0].c = Matrix._13 - Matrix._33;
mPlanes[0].d = Matrix._14 - Matrix._43;

или так

Код:
// Левая плоскость
mPlanes[0].a = Matrix._11 - Matrix._13;
mPlanes[0].b = Matrix._12 - Matrix._23;
mPlanes[0].c = Matrix._13 + Matrix._33;
mPlanes[0].d = Matrix._14 + Matrix._43;

Я нашёл только вот это по поводу моего вопроса.

Видимое изображение в 3d графике находится в единичном кубе. Оси в этом кубе называются шириной, высотой и глубиной (но так как монитор плоский, то глубина игнорируется). Всё что находится внутри куба видно на экране, всё что вне — нет.

Матрица проекции переводит усеченную пирамиду в этот самый единичный куб. Матрица вида задает положение этой усеченной прирамиды в пространстве нашей сцены. Это должно быть уже понятно.

Теперь, если ты хочешь получить уравнение плоскостей, ограничивающих сцену, то один из способов их найти состоит в том, что мы берем уравнение плосткости в экранных координатах (тут оно тривиально — это ведь грань единичного куба) и трансформируем его в пространство сцены.

Отсюда и формулы. Можешь проверить, они выводятся за пару минут.

Мог бы кто ни будь рассказать про это подробно?
« Последнее редактирование: 01-08-2009 17:36 от zuze » Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #122 : 01-08-2009 18:49 » 

уравнения плоскостей щас не вспомню, а у тебя вообще был курс высшей математики ? Там это всё подробно разжёвывается. Если не было курса - то листай вики, скажем "уравнение плоскости". Если приведённые выше формулы работают - просто используй их и всё Улыбаюсь А если уж интересно, как они работают - можешь глубиться в чтение вики. Только для изучения директикса это не поможет, так что смотри, как у тебя со временем и распределяй его )
Записан

zuze
Опытный

ru
Offline Offline
Пол: Мужской
Россия, Москва


« Ответ #123 : 01-08-2009 18:58 » 

Само уравнение плоскости я помню:

f(x, y, z) = Ax + By + Cz + D:

1. A, B, C - координаты вектора нормали к плоскости N(A, B, C)
2. Подставляя x, y, z получим лубую точку на плоскости
3. От значения D зависит разное положение плоскости, например - D=0 - плоскость проходит через начало координат

Я не понимаю слова

Цитата: zuze
Уравнение плосткости в экранных координатах (тут оно тривиально — это ведь грань единичного куба) и трансформируем его в пространство сцены.

Отсюда и формулы. Можешь проверить, они выводятся за пару минут.

Задайте направление в каком материале это можно почитать.

Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #124 : 01-08-2009 19:06 » new

я тоже не понимяу этого выражения. Пусть тот, кто это сказал на пальцах всё покажет. Например, пусть распишет обе матрицы в буквенных обозначениях, а так же в этих же буквах - результирующую матрицу. Там, глядишь, и разберёмся )
Записан

Страниц: 1 2 3 4 [5]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines