23 августа 2010 в 17:39
Координатные пространства
Прежде чем приступать к выводу графики на экран, необходимо рассмотреть каким образом графические объекты представляются изнутри.
В DirectX используется несколько координатных пространств.
Мировое координатное пространство (World space)
В мировом координатном пространстве описываются все графические объекты. Именно в этом пространстве можно "увидеть" весь виртуальный мир. Ещё это пространство называют глобальным или универсальным.
Почему нельзя ограничиться только одним пространством - мировым? Дело в том, что использование нескольких пространств сильно упрощают жизнь.
В солнечной системе для удобства расчёта орбит планет используется гелиоцентрическая система координат (центр - Солнце). Но траекторию движения Луны вокруг Земли гораздо проще представить не в гелиоцентрической, а в геоцентрической (центр - Земля) системе координат. Здесь мы видим пример использования двух систем координат - мировой и объектной. То же самое и в компьютерных играх.
Тут стоит помнить, что местоположение - оно относительно. Местоположение объекта можно описать в разных координатных пространствах: траекторию Луны можно показать и в геоцентрической и в гелиоцентрической системе, но в первой это сделать проще.
Рассмотрим картинку, на которой изображено мировое координатное пространство. В пространстве расположен один объект - треугольник, и камера, которая направлена в сторону треугольника. И у камеры и у треугольника свои координатные пространства.
На второй картинке эта же сцена, только вид сверху. Здесь треугольник представлен в виде чёрточки. Все последующие картинки будут использовать или вид сбоку (оси x,y) или вид сверху (оси x,z).
Объектное координатное пространство (object space)
Именно в объектном координатном пространстве происходит построение модели (объекта).
Начало объектного пространство нужно располагать так, чтобы было удобней создавать объект. Иногда начало объектного пространства совпадает с центром масс модели.
На картинке можно видеть пространство треугольника описываемое осями x1, y1.
Если объект сложный, то вводятся дополнительные пространства - для упрощения анимации. Но нам до этого ещё далеко.
Инерционное координатное пространство (inertial space)
Мы введём ещё одно дополнительное координатное пространство - инерционное. Оно не используется в реальности, но позволяет упростить восприятие того, как взаимодействуют координатные пространства. Посмотрим на картинку:
Здесь представлены: объектное (x1,y1) и инерционное (x2,y2) пространства.
Направление осей инерционного пространства совпадает с направлением осей мирового пространства, а начало координат инерционного пространства совпадает с началом координат объектного пространства.
Чтобы "попасть" из объектного пространства в инерционного, нужно вращение. А из инерционного пространства очень легко попасть в мировое. Для этого используется перемещение. Инерционное пространство позволяет отделить эти две операции (вращение и перемещение).
Координатное пространство камеры
Камера - это представление пользователя в виртуальном мире. Именно через камеру игрок видит маленькую часть мирового пространства.
У камеры есть направление - в какую сторону смотрит пользователь и поля (сектора) обзора: по вертикали и по горизонтали.
Направление камеры (взгляд игрока) всегда совпадает с положительным направлением оси z в координатном пространстве камеры.
Определение координатных пространств
Мы выяснили какие пространства существуют в DirectX: мировое, объектное (у каждого объекта своё) и пространство камеры. Теперь нужно выяснить каким образом эти пространства взаимодействуют.
У каждого пространства есть оси и начало координат - точка пересечения осей (обозначается как точка О). Начало координат - это местоположение координатного пространства. Например: начало координат пространства камеры - это местоположение (координаты) этого пространства в мировом пространстве. Оси задают ориентацию пространства.
Преобразования координатных пространств
Зная координаты объектного пространства, можно любую точку этого объекта выразить в мировых координатах, и наоборот, любую точку мировых координат можно выразить в координатах объектного пространства.
Разберём ситуацию, когда объектные координаты совпадают с инерционными. Допустим у нас есть треугольник в объектном пространстве с координатами (0,0)(1,1)(1,0). Координаты этого пространства в мире - (23, 12). Чтобы преобразовать точки треугольника в мировые координаты достаточно координаты каждой точки сложить с координатами объектного пространства: (23,12)(24,13)(24,12) - вот так выглядит треугольник в мировых координатах. Просто, правда?
Чтобы преобразовать координаты какой-то точки из мировых в объектные, нужно из координат этой точки вычесть координаты объектного пространства.
Если объектные координаты не совпадают с инерционными, то сначала нужно произвести вращение, всё остальное без изенений.
Важное замечание: при преобразованиях координатных пространств, координаты объектов не перемещаются!!! Мы просто выражаем местоположение объектов в разных координатных пространствах.
18 октября 2016 в 09:34
Applying for loan process has got allhttp://price6conline.com/ , online cialis online there for immediate use.
15 сентября 2017 в 06:54
Mais nous devrions également être clair que la précision de la montre, en plus de leur propre qualité, et les habitudes d'usure quotidienne des amis ont une relation géniale, nous ne devrions pas aller à desreplique montre en mousse chaque jour a été précis à la précision de l'erreur zéro . Comme mentionné ci-dessus, comme une montre mécanique, des centaines de milliers de tables et quelques milliers de dollars dans la table, l'exactitude peut ne pas être un écart clair, un bon mouvement ETA a été soigneusement ajusté, vous pouvez faire une erreur de jour En moins de cinq secondes, ou même la fin de la journée, erreur de 1 seconde, et son prix n'a besoin que de quelques milliers de dollars, le total ne peut pas demander des centaines de milliers d'erreur de table mécanique est zéro. Ainsi, la précision de la montre ne peut pas être une mesure de la valeur d'une norme de Hublot Montres dans la technologie de tabulation moderne est un environnement si mature, nous pouvons déjà contrôler la précision à un niveau très subtil, puis une faible signification. La montre par le magnétisme, ou l'usure dans certaines occasions spéciales, ou l'usure de l'exercice, aura un grand impact sur l'erreur de temps de déplacement, qui doit également être prise en compte dans la situation actuelle. Quand j'ai acheté une nouvelle table, je vais faire attention à ce qu'il ne soit pas autorisé à partir, après tout, c'est le meilleur moment pour trouver un remède opportun. Du point de vue de la marque, la précision de la montre est une bonne image de marque du point de publicité, plus la précision est élevée, représente le niveau de tabulation plus excellent. Rolex a osé affirmer publiquement que sa montre certifiée Observatoire de haut niveau pourrait atteindre l'erreur quotidienne de -2 / + 2 par jour, après une série de tests d'usure simulés et la production annuelle de Rolex de près d'un million de tables, de sorte que tant de tables ont atteint cette précision, vraiment choquant, et Rolex Montre l'a fait, et c'est sa valeur. Je ne doute pas que chaque marque puisse améliorer l'expression à petite échelle, mais dans une très grande taille d'échantillon, elle a une signification pratique plus importante.
авторизуйтесь
или войдите через