изометрическая перспектива в серебряном свете - PullRequest
2 голосов
/ 02 марта 2011

Как я могу получить идеальную изометрическую перспективу в Silverlight?

Я хочу создать трехмерную среду в Silverlight, которая должна быть в изометрической перспективе.Если я использую план-проекцию, я могу сделать сетку похожей на изометрическую перспективу, но это не идеальная изометрическая перспектива, поскольку ячейки сетки не равны.

http://uwconcept.be/projects/uwconceptcity/grid_base_1.jpg

Люди будут иметьуметь «прокручивать» по сетке;т.е. двигаться вперед, назад, влево и вправо на нем.Вы можете видеть, как он летит над сеткой, но всегда сохраняет правильную изометрическую перспективу.Поворот не будет реализован (в первой версии).И даже если бы это было реализовано, поворот был бы точно на 90 градусов, чтобы сохранить изометрическую перспективу.

Редактировать: Я также заметил, что «нормальная» изометрия x, y,z Координаты не применяются, когда я пытался воспроизвести перспективу в Silverlight.«Нормальные» преобразования показаны в следующей статье Википедии: http://en.wikipedia.org/wiki/File:Wikipedia_isometric_cube_3.jpg

Ответы [ 2 ]

1 голос
/ 03 марта 2011

Если вы можете дождаться выпуска SL5, он должен иметь 3D API. Бета-версия Silverlight 5 была анонсирована в первой половине 2011 года (должна быть в любой день). Окончательный выпуск запланирован на конец 2011 года.

Я предполагаю, что SL API должен быть похож на 3D API WPF. Насколько я понимаю, вы можете создать изометрическую проекцию с правильным наклоном OrthographicCamera (который включен в WPF).

1 голос
/ 03 марта 2011

Встроенная поддержка трехмерной проекции в SL4, вероятно, не соответствует вашим потребностям.Он очень ограничен и обычно полезен только для вращения простых объектов.

Но у вас есть два других варианта:

  • Используйте 3D-движок и установите его для рендеринга в изометрическом 3D.Я думаю, что Балдер может сделать это, например, но, вероятно, не из коробки.
  • Подделать изометрическое 3D, рисуя предварительно визуализированные спрайты в правильном положении.Я полагаю, вы хотите, чтобы ваш «игровой мир» состоял из плиток (квадратов), которые вращались, чтобы соответствовать изометрической трехмерной перспективе.Если вы предварительно визуализируете все плитки под правильным углом, тогда вы можете рассчитать, где их разместить и получить желаемый эффект.Используя эту опцию, вы не получите никакой глубины на дисплее, плитки дальше будут того же размера, что и соседние, но, кроме того, это не слишком сложно.

Я пытался сделать это сам один раз, просто для удовольствия.Было довольно легко нарисовать плоский ландшафт, но он становится сложнее, если вы хотите поддерживать склоны.

Если в итоге вы это сделаете, то, надеюсь, вы откроете проект с открытым исходным кодом, ведь с изометрической 3d вы можете получить столько удовольствия: -)

...