CyberForum.ru - Форум программистов и сисадминов
Вернуться   Форум программистов и сисадминов CyberForum.ru > Форум программистов > Форум .NET > Форум C# .NET > Форум Microsoft XNA

Ответ Создать новую тему
 
Старый 03.02.2012, 12:07   #1
444866
Форумчанин
 
Регистрация: 11.01.2012
Сообщений: 178
Репутация: 1 (2)
По умолчанию XNA 4.0. Зачем при построении модели указывать координаты камеры

Объясните кто нибудь. зачем при построении модели указывать координаты камеры? что если я хочу сначала построить модель, а потом указать координаты камеры?
444866 вне форума
Другие темы раздела
Подписаться на событие нажатия и отпускания нужной мне клавиши C# XNA
Есть ли сабж как в виндовсформс? Я хочу подписаться на событие нажатия и отпускания нужной мне клавиши. Подписаться на событие нажатия и отпускания нужной мне клавиши
C# XNA Как организовать прыжки персонажа
Как перемещать героя вправо, влево, вверх, вниз - я знаю. А как сделать, чтобы он прыгал? То есть поднимался на определенную высоту и спускался обратно? Игра типа Марио. Как организовать прыжки персонажа
Старый 03.02.2012, 12:50   #2
Nukutu
Форумчанин
 
Регистрация: 22.03.2010
Адрес: Киев
Сообщений: 440
Репутация: 165 (91)
По умолчанию Re: XNA 4.0. Зачем при построении модели указывать координаты камеры

Цитата Сообщение от 444866 Посмотреть сообщение
Объясните кто нибудь. зачем при построении модели указывать координаты камеры? что если я хочу сначала построить модель, а потом указать координаты камеры?
А кто Вас заставляет? Укажите обидчика.
Nukutu вне форума
Старый 04.02.2012, 10:05  [ТС]   #3
444866
Форумчанин
 
Регистрация: 11.01.2012
Сообщений: 178
Репутация: 1 (2)
По умолчанию Re: XNA 4.0. Зачем при построении модели указывать координаты камеры

во всех инструкциях что я читал при построении указываются все три матрицы и камера автоматически размещается возле модели. покажите как загружать текстуры не трогая камеру?

Добавлено через 16 часов 35 минут
Код C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
private void DrawModel(Model m)
{
Matrix[] transforms = new Matrix[m.Bones.Count];
m.CopyAbsoluteBoneTransformsTo(transforms);
world = Matrix.CreateTranslation(positionModel);
view = Matrix.CreateLookAt(new Vector3(0.0f, 0.0f, 150.0f),
Vector3.Zero, Vector3.Up);
proj = Matrix.CreatePerspectiveFieldOfView(FOV, aspectRatio,
nearClip, farClip);
foreach (ModelMesh mesh in m.Meshes)
{
foreach (BasicEffect effect in mesh.Effects)
{
effect.EnableDefaultLighting();
effect.World = transforms[mesh.ParentBone.Index] * world;
effect.View = view;
effect.Projection = proj;
}
mesh.Draw();
}
}

вот эти 2 строкчи
Код C#
1
2
effect.View = view;
effect.Projection = proj;
я так понял тут мы задаем матрицы вида и проекции камеры. Но зачем?

Последний раз редактировалось Памирыч; 04.02.2012 в 11:49. Причина: Используйте специальные теги форматирования программного кода
444866 вне форума
Старый 04.02.2012, 13:21   #4
Nukutu
Форумчанин
 
Регистрация: 22.03.2010
Адрес: Киев
Сообщений: 440
Репутация: 165 (91)
По умолчанию Re: XNA 4.0. Зачем при построении модели указывать координаты камеры

Просто Вы путаете последовательность. Загрузка модели, ее апдейт и собственно отображение на экране монитора.
В том коде, который Вы привели, Вы просто рисуете (DrawModel) уже, так сказать, построенную Вами модель, а точнее загруженную и может быть измененную. Еще раз, модель до этого момента Вами уже "построена".
А чтобы увидеть нарисованное (на экране) нужны все три матрицы.
Nukutu вне форума
Старый 04.02.2012, 14:42  [ТС]   #5
444866
Форумчанин
 
Регистрация: 11.01.2012
Сообщений: 178
Репутация: 1 (2)
По умолчанию Re: XNA 4.0. Зачем при построении модели указывать координаты камеры

Вообще ничего не понятно теперь. Как мне камерой управлять то? в манагет директх было понятно все там в свойствах девайса задаешь матрицу камеры и она устанавливается в нужную точку. тут вообще ничего не понятно. Разжуйте как нибудь если можно
444866 вне форума
Старый 04.02.2012, 14:46   #6
Eugene22
.
 
Регистрация: 28.10.2009
Сообщений: 3,252
Репутация: 1825 (898)
По умолчанию Re: XNA 4.0. Зачем при построении модели указывать координаты камеры

444866, как управлять камерой - это вам книжки надо почитать - тут в одном посте вам никто не расскажет.
В любом случае без матриц вида и проекции вы не сможете создать правильное отображение модели на экране.
Eugene22 вне форума
Старый 04.02.2012, 14:52  [ТС]   #7
444866
Форумчанин
 
Регистрация: 11.01.2012
Сообщений: 178
Репутация: 1 (2)
По умолчанию Re: XNA 4.0. Зачем при построении модели указывать координаты камеры

книжки я читал. мне это не помогло. Про матрицы я в курсе что каждая матрица делает. Я не могу понять зачем они при прорисовке модели. В МДХ я в свойстве девайса задавал все 3 матрицы и камера устанавливалась в нужную точку. тут вообще такого нет и зачем то камера ставится при прорисовке моделей и вообще не понятно как ей управлять.
444866 вне форума
Старый 04.02.2012, 15:04   #8
Eugene22
.
 
Регистрация: 28.10.2009
Сообщений: 3,252
Репутация: 1825 (898)
По умолчанию Re: XNA 4.0. Зачем при построении модели указывать координаты камеры

444866, говорите, что знаете про все эти матрицы, и при этом задаете вопрос, зачем они нужны при прорисовке.
Мировая матрица у нас позиционирует объект в трехмерном пространстве. Матрица вида переводит все видимое трехмерное пространство в пространство камеры. А матрица проекции осуществляет проекцию координат объекта с точки зрения камеры для вывода на экран.
Мы же рисуем модель не саму по себе, а с точки зрения камеры или точки обзора.
Eugene22 вне форума
Старый 04.02.2012, 16:26  [ТС]   #9
444866
Форумчанин
 
Регистрация: 11.01.2012
Сообщений: 178
Репутация: 1 (2)
По умолчанию Re: XNA 4.0. Зачем при построении модели указывать координаты камеры

Теперь понятно. А двигать саму камеру без перерисовки модели реально? В мдх было именно так (по крайней мере я ничего не перерисовывал я просто задавал 2 матрицы камеры и она становилась в нужное место)
444866 вне форума
После регистрации реклама в сообщениях будет скрыта
Старый 04.02.2012, 16:51   #10
Eugene22
.
 
Регистрация: 28.10.2009
Сообщений: 3,252
Репутация: 1825 (898)
По умолчанию Re: XNA 4.0. Зачем при построении модели указывать координаты камеры

Цитата Сообщение от 444866 Посмотреть сообщение
А двигать саму камеру без перерисовки модели реально?
Так приложение то организовано по принципу игрового цикла - и с определенной частотой идет перерисовка - за счет перерисовки и изменения координат для камеры и будет создаваться имитация движения камеры или модели. читайте книгу в разделе по 3D - Aaron Reed - Learning XNA 4.0 - там все подробно написано, как перемещать камеру
Eugene22 вне форума
Ответ Создать новую тему

Похожие темы
Тема Автор
DirectX Координаты камеры в DirectX по умолчанию
Всем привет! Перевожу старый проект, написанный то ли на 5, то ли на 6 DirectX на OpenGL. C DirectX до этого работать не приходилось. Возник такой вопрос: кто-нибудь может подсказать, как по умолчанию направлена камера в DirectX? В OpenGL, например, она по умолчанию устанавливается вдоль оси Z,...
gammaray
MySQL как указывать дату рождения?
такой вопрос: в таблице БД как указывать дату рождения? id - INT login - VARCHAR data - ?
DJ_eXtreme
С++ для начинающих сегодня наконец то понял что такое КЛАСС, и ОБЪЕКТ. понято всё, кроме одного - зачем всё это? в смысле, можно же без этого? так зачем жизнь усложнять?
сегодня наконец то понял что такое КЛАСС, и ОБЪЕКТ. понято всё, кроме одного - зачем всё это? в смысле, можно же без этого? так зачем жизнь усложнять?
nikkka
MMORPG/Online игры Где указывать сервер в линейка 2
народ гдє указивать сервер в лінейдж 2)і подскажитє хорошой сервер))
cTaJIKep
C# .NET Как указывать путь к файлам?
Всем доброй поры суток! Есть у меня проблемка..В общем, не знаю, как правильно указать путь. Вот кусок кода из проги: xmlDoc = new XmlDocument(); xmlDoc.Load("../../docs/Planets.xml"); Дебаггер выбивает экзепшн, что мол Data at the root level is invalid. Что вообще значит...
lomza_t
Опции темы

Текущее время: 16:34. Часовой пояс GMT +4.

Компьютерный форум программистов и сисадминов
Powered by vBulletin® Version 3.8.7 PL2
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Рейтинг@Mail.ru