aruslan: (Default)
aruslan ([personal profile] aruslan) wrote2006-08-26 07:33 am

И всё-таки она Правая!

http://blogs.msdn.com/xna/archive/2006/08/25/724607.aspx

Math

Our Math API provides the types often used for game programming such as Vector2, Vector3, Vector4, Matrix, Plane, and Ray.  We also include bounding volume types including BoundingBox, BoundingSphere and BoundingFrustum. Our bounding volume types include methods for doing intersection and containment tests.  One thing to note is that our math libraries are right-handed by default. What I mean by that is on our Matrix, for example, we provide a CreateLookAt method, which provides a right-handed view matrix instead of offering a CreateLookAtLH and a CreateLookAtRHThe reason we’ve decided on going with this is to ease integration in both content and middleware components.  If everyone can agree on the coordinate system, then it makes it much easier to use content or APIs from outside of the XNA Framework.  I say “by default” because there is nothing that requires a right-handed system. So if you absolutely need to be left-handed (or something else) you can do so, you’ll just need to do some of the calculations yourself.

Коллеги из Microsoft как-то неправильно (читай - не посоветовавшись с дядей Димой) назвали вектора, матрицы, плоскости, лучи и ббоксы.  Впрочем, я надеюсь, что скоро кое-кто из наших проделает с ними необходимую разъяснительную работу.
Но несомненно другое.

Как и следовало ожидать, Единственно Правильной Координатной СистемойTM советского геймдева будет Правая Координатная Система (как в OpenGL), а вовсе не какая-то левая "Левая" (как у Шодана).

Ура, товарищи!

Точное направление осей, впрочем, пока неизвестно. 
Оставайтесь с нами.

[identity profile] sergey-shandar.livejournal.com 2006-08-26 05:27 am (UTC)(link)
>Впрочем, я надеюсь, что скоро кое-кто из наших проделает с ними необходимую разъяснительную работу.
3 ха

[identity profile] aruslan.livejournal.com 2006-08-26 09:00 am (UTC)(link)
Это будет сильно зависеть от внешнеполитической ситуации, конечно.
То есть ставить на одну доску закупку окорочков и CVec3 vs Vector3 вряд ли будут.
Пока.

[identity profile] sergey-shandar.livejournal.com 2006-08-26 10:48 am (UTC)(link)
>Это будет сильно зависеть от внешнеполитической ситуации, конечно.
>То есть ставить на одну доску закупку окорочков и CVec3 vs Vector3 вряд ли будут.
>Пока.
Как далеко ты смотришь в будующее...

[identity profile] aruslan.livejournal.com 2006-08-26 10:50 am (UTC)(link)
Тебе кажется, что закупку окорочков и CVec3 поставят на одну доску уже сейчас? :)

[identity profile] sergey-shandar.livejournal.com 2006-08-26 10:58 am (UTC)(link)
просто удивлен такой дальновидностью :-)

[identity profile] aruslan.livejournal.com 2006-08-26 11:01 am (UTC)(link)
Говоришь, у вас там вино не такое уж и дешевое?
Хм...

[identity profile] sergey-shandar.livejournal.com 2006-08-26 11:03 am (UTC)(link)
дело не в цене, а в компании

[identity profile] shodan-ru.livejournal.com 2006-08-26 05:29 am (UTC)(link)
those bastards!

[identity profile] aruslan.livejournal.com 2006-08-26 09:00 am (UTC)(link)
Один ты меня понимаешь, Шоданчег! :(

[identity profile] drpadawan.livejournal.com 2006-08-26 06:22 am (UTC)(link)
Согласен, что это более правильно, когда она правая. Зачем изменять привычкам. Иначе зачем нужен этот разброд. В школе работали с правой. В университете - тоже.

[identity profile] aruslan.livejournal.com 2006-08-26 08:59 am (UTC)(link)
Правильно мыслишь!
У нас всё по-военному будет теперь.
С детских пелёнок - всё будет правое.

Ну а кому подавай левое - так стране завсегда нужны лесорубы.

[identity profile] timai.livejournal.com 2006-08-26 08:46 am (UTC)(link)
А Я привык к левой.

Да и какая, нафиг, разница?..

[identity profile] aruslan.livejournal.com 2006-08-26 08:57 am (UTC)(link)
Да переучишься, не переживай :)

[identity profile] cyberzx.livejournal.com 2006-08-26 08:52 am (UTC)(link)
Во-первых. Математическая библиотека не может быть правосторонней или левосторонней. Это лишь вопрос генерации матриц проекции и вида.
Во-вторых. Почему бы не предоставить разработчикам выбор? Хотя бы вот так в Microsoft-style
#ifdef RIGHT_HANDED
#define CreateLookAt CreateLookAtRH
#else
#define CreateLookAt CreateLookAtLH
#endif
и т.д.

[identity profile] cyberzx.livejournal.com 2006-08-26 08:58 am (UTC)(link)
а за отсутсвие префиксо "C" всячески жму товарисщам из Микрософта руку.

[identity profile] aruslan.livejournal.com 2006-08-26 09:05 am (UTC)(link)
Ну, цитирую опять:

#ifdef MICROSOFTISH_CONVENTION
  typedef detail::brutal_vector<3,float> Vector3;
#else
  typedef detail::brutal_vector<3,float> CVec3;
#endif

[identity profile] cyberzx.livejournal.com 2006-08-26 09:09 am (UTC)(link)
одно дело настройка реализации, другое - настройка интерфейса
в любом API интерфейс должен быть инвариантным.

[identity profile] cyberzx.livejournal.com 2006-08-26 09:11 am (UTC)(link)
тогда уж лучше сделать так

#ifdef MICROSOFTISH_CONVENTION
typedef detail::brutal_vector<3,float> Vector3;
#elseif DDIMA_CONVENTION
typedef detail::brutal_vector<3,float> CVec3;
#elseif HLSL_STYLE
typedef detail::brutal_vector<3,float> float3;
#elseif GLSL_STYLE
typedef detail::brutal_vector<3,float> vec3;
#endif

и так во всём )

[identity profile] aruslan.livejournal.com 2006-08-26 09:11 am (UTC)(link)
Вот и дядя Дима с этим согласен.
Поэтому настраивать будет реализацию.
То есть тех, кому не нравиццо CVec3 ;)

[identity profile] cyberzx.livejournal.com 2006-08-26 09:14 am (UTC)(link)
кстати, есть более важный вопрос.
вектора суть матрицы столбцы или матрицы строки?
то есть row-major vs col-major!

+1

[identity profile] aruslan.livejournal.com 2006-08-26 09:20 am (UTC)(link)
Ха!
Ты хитрый!

Ты - первый, кто об этом спросил публично!
У тебя еще есть шанс повлиять на мажорность совецкого геймдева!
Дерзай!

Re: +1

[identity profile] http://users.livejournal.com/_winnie/ 2006-08-26 12:02 pm (UTC)(link)
afaik, матрицы как float* везде одинаковые, и в первой любви, и на работе.

Re: +1

[identity profile] aruslan.livejournal.com 2006-08-26 03:28 pm (UTC)(link)
Матрицы - да, а вот порядок умножений - нет ;)

Re: +1

[identity profile] http://users.livejournal.com/_winnie/ 2006-08-26 04:33 pm (UTC)(link)
Подумаешь, справа/налево. Я всегда путаю право и лево. Это просто запись.

[identity profile] sergey-shandar.livejournal.com 2006-08-26 10:40 am (UTC)(link)
смотри, как бы опция настройки не вызвала через некоторое время критику в духе - "я только за чистые компоненты"

[identity profile] aruslan.livejournal.com 2006-08-26 10:46 am (UTC)(link)
Еще никогда не слышал критики из тех мест, куда увезут всех ненастроенных.

[identity profile] sergey-shandar.livejournal.com 2006-08-26 10:59 am (UTC)(link)
не слышал - не значит что ее нет :-)

[identity profile] aruslan.livejournal.com 2006-08-26 11:01 am (UTC)(link)
Кого волнуют неудачники? ;)

[identity profile] sergey-shandar.livejournal.com 2006-08-26 11:04 am (UTC)(link)
никого, до тех пор пока они не делают 1917 год

[identity profile] aruslan.livejournal.com 2006-08-26 11:36 am (UTC)(link)
кажется, я начинаю понимать, почему ты уехал на отдельный континент, а меня тянет в Англию.

[identity profile] sergey-shandar.livejournal.com 2006-08-26 01:30 pm (UTC)(link)
поясни :-) а то я человек простой

[identity profile] aruslan.livejournal.com 2006-08-26 03:29 pm (UTC)(link)
Ну, лучше быть подальше от эпицентра, когда неудачники будут тренироваться в 1917 году.

[identity profile] sergey-shandar.livejournal.com 2006-08-27 04:28 am (UTC)(link)
Думаешь в Англии неудачников мало?

[identity profile] aruslan.livejournal.com 2006-08-26 09:03 am (UTC)(link)
Так они ж тебе выбор предоставили.
И мы предоставим.
Вот такой, цитирую:

[...] There is nothing that requires a right-handed system.
So if you absolutely need to be left-handed (or something else) you can do so, you’ll just need to do some of the calculations yourself.

И вообще - если ты говоришь, что разницы нет никакой - и я с тобой согласен! - так зачем же ты так волнуешься? :)

[identity profile] cyberzx.livejournal.com 2006-08-26 09:06 am (UTC)(link)
для меня разницы никакой. я уже говорил, что я достиг уровня абстракции от направления осей :)
но есть много людей, для которых разницо есть!
насчёт do some of the calculations yourself это не выбор. зачем делать лишние телодвижения, если от них можно избавиться?
хотя левостороняя система сакс. но это уже религиозно-идеологические соображения :)

[identity profile] aruslan.livejournal.com 2006-08-26 09:10 am (UTC)(link)
Во, вот мы и надорвали совместными усилиями плёву настоящего клубка религиозно-идеологических соображений, заставившего тебя несколько раз написать "мне всё равно... но...".
Рассказывай за соображения уже!

А кроме людей, для которых разница есть и хочется "левого", в совецком геймдеве есть много неосвоенных земель. Там даже зарплаты чуть выше ;)

[identity profile] cyberzx.livejournal.com 2006-08-26 09:12 am (UTC)(link)
Правая система используется в OpenGL, а к нему я нежно отношусь. Это ведь как первая любовь... :)

[identity profile] cyberzx.livejournal.com 2006-08-26 09:15 am (UTC)(link)
я романтик, да :(

[identity profile] aruslan.livejournal.com 2006-08-26 09:22 am (UTC)(link)
Вот я знал, я знал, Сайба!
Поэтому и поставил в скобочках "(как в OpenGL)"! ;)

А сентиментальность и рефлексия - это иногда хорошо.
Если в разумных дозах.
И если не противоречит линии партии и правительства!

[identity profile] shodan-ru.livejournal.com 2006-08-26 07:44 pm (UTC)(link)
вот мне про зарплаты поподробнее бы
чуть
:)

[identity profile] aruslan.livejournal.com 2006-08-26 07:48 pm (UTC)(link)
Шоданчег, сладкий, всему своё "О"TM, всему свои баклажаны.

[identity profile] shodan-ru.livejournal.com 2006-08-26 08:50 pm (UTC)(link)
о нет! ведь связь между Стороной Ручности СК и зряплатой не дает покоя!...

[identity profile] justy-tylor.livejournal.com 2006-08-26 08:56 am (UTC)(link)
Очевидное рядом.

[identity profile] aruslan.livejournal.com 2006-08-26 09:12 am (UTC)(link)
Яблони в цвету ;)

[identity profile] loyso-b.livejournal.com 2006-08-26 09:00 am (UTC)(link)
а почему вектора неправильно назвали? имхо, покатит!

[identity profile] aruslan.livejournal.com 2006-08-26 09:06 am (UTC)(link)
В бустовском коде будет нелепо смотреццо.
Да и в вашем тоже, нет? ;)