Vladimir kozhayev   isometry handmade
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Vladimir kozhayev isometry handmade

on

  • 553 views

Ciklum Game Developers Saturday, Isometry handmade

Ciklum Game Developers Saturday, Isometry handmade

Statistics

Views

Total Views
553
Views on SlideShare
548
Embed Views
5

Actions

Likes
0
Downloads
0
Comments
0

1 Embed 5

http://gamesdevandmath.blogspot.com 5

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Vladimir kozhayev isometry handmade Presentation Transcript

  • 1. Изометрия своими руками
    • Владимир Кожаев
    • [email_address]
    • http:// gamesdevandmath.blogspot.com
    []
  • 2. О докладчике
    • Владимир Кожаев
    • В прошлом разработчик J2ME и флеш игр
    • Сейчас работаю в энтерпрайзе
  • 3. О докладе
    • Рассмотрим математические основы создания изометрии.
    • Зачем?
    • Чтоб понимать как «оно» работает «внутри»!
  • 4. Содержание
    • Зачем нужна изометрия
    • Что такое изометрия
    • Плиточные миры
    • Математика(её будет много)
    • Немного о рендеринге
  • 5. Зачем нужна изометрия?
    • Применяется в играх с видом от третьего лица
    • Загружает процессор меньше, чем «натуральные» 3D движки
    • Использует плоские рисунки вместо 3 D моделей
    • Изометрическую игру создать проще
    • Возможностей достаточно для большинства игр
  • 6.
    • Что такое изометрия?
  • 7. Что такое изометрия?
    • Аксонометрическая проекция  ( греч.   άχοπ  — « ось » и « метрия ») — способ изображения геометрических  предметов  на  чертеже  при помощи  параллельных проекций .
    • Предмет с  системой координат , к которой он отнесён, проецируют на произвольную плоскость ( картинная плоскость  аксонометрической проекции) таким образом, чтобы эта плоскость не совпадала с его координатной плоскостью. В этом случае получается две взаимосвязанные проекции одной фигуры на одну плоскость, что позволяет восстановить положение в пространстве, получив наглядное изображение предмета. Так как картинная плоскость не параллельна ни одной из координатных осей, то имеются искажения отрезков по длине параллельных координатным осям. Это искажение может быть равным по всем трём осям —  изометрическая проекция , одинаковыми по двум осям —  диметрическая проекция  и с искажениями разными по всем трём осям —  триметрическая проекция .
  • 8. Что такое изометрия?
  • 9. Что такое изометрия
    • Вид трехмерного предмета со стороны без учета того, что удаленные предметы кажутся нам меньше
  • 10. Что такое изометрия?
    • Изометрическая проекция – одинаковое искажение размеров по всем трем осям координат
  • 11. Что такое изометрия?
    • Диметрическая проекция – два коэффициента искажения
  • 12. Что такое изометрия?
    • Триметрическая проекция – три коэффициента искажения
  • 13. Что такое изометрия?
    • Все эти виды проекций в иногда(неправильно) называют изометрией.
    • Мы будем говорить о аксонометрии
  • 14. Что не изометрия?
    • Перспективная проекция – искажение вдоль координатной оси не является постоянным
    • Далекое кажется маленьким
    • Параллельные линии на рисунке не параллельны
  • 15. Что не изометрия?
    • Параллельные стены не параллельны на рисунке, дальняя стенка «меньше» ближней
  • 16.
    • Плиточные миры
  • 17. Плиточные миры
    • Описанные свойства аксонометрической проекции позволяют представить мир в виде плоскости разделенной на плитки
  • 18. Плиточные миры
    • Плитки имеют одинаковые размеры
    • Игровые предметы или персонажи расположены на одной или нескольких плитках
    • Персонажи перемещаются от плитке к плитке
    • Сортировка глубины объектов происходит по плиткам на которых они стоят
  • 19. Плиточные миры
    • При создании плиточного мира нам нужно знать:
    • Как зная координаты плитки в проецируемой системе получить координаты на экране
    • Как зная координаты на экране получить координаты в проецируемой системе
    • Как сортировать по глубине
  • 20.
    • Математика
  • 21. Как увидеть 3D ?
    • Положим у нас есть вид сверху – мы хотим получить вид со стороны.
    • Что нужно сделать?
    • Повернуть камеру.
  • 22. От проецируемой системы к экрану
    • У нас есть координаты плитки в проецируемой системе. Как получить координаты плитки на экране?
    • Как координаты той – же точки повернутой относительно исходной. Координаты можно получить умножением вектора координат на матрицу поворота
  • 23. От проецируемой системы к экрану
    • Матрицы поворота
    • Вокруг OX
    • Вокруг OY
    • Вокруг OZ
  • 24. От проецируемой системы к экрану
    • Допустим, мы вращаем вокруг оси OZ на угол и вокруг оси OX на угол
    • Тогда нужно умножить координаты в исходной системе на матрицу поворота вокруг OZ , затем полученные координаты на матрицу поворота вокруг OX
  • 25. От проецируемой системы к экрану
    • Пусть (x , y,z) координаты в проецируемой системе. (x1, y1,z1) координаты после поворота вокруг оси OZ . ( x2,y2,z2 ) – координаты, после поворота вокруг OX
  • 26. От проецируемой системы к экрану
    • Тогда
  • 27. От проецируемой системы к экрану
    • Или, если Z=0
  • 28. От экрана к проецируемой системе
    • Есть координаты плитки на экране. Как получить координаты в проецируемой системе?
    • Последовательно умножить на матрицы поворота обратные данным
  • 29. От экрана к проецируемой системе
    • Пусть B и A – матрицы поворота,
    • B -1 и A -1 – обратные им.
    • X координаты точки в проецируемой системе. X 2 – в экранной.
    • Тогда:
  • 30. От экрана к проецируемой системе
    • Пусть (x 2, y 2 ,z 2 ) координаты в экранной системе. (x1, y1,z1) координаты после поворота вокруг оси OX в обратную сторону. ( x,y,z ) – координаты, после поворота вокруг OZ в обратную сторону
  • 31. От экрана к проецируемой системе
    • Тогда
  • 32. От экрана к проецируемой системе
    • Или
  • 33. От экрана к проецируемой системе
    • Мы не можем получить из проекции значение всех трех координат
  • 34. От экрана к проецируемой системе
    • Поэтому одну из координат принимаем постоянной.
    • Например аппликату( OZ )
  • 35. Сортировка глубин
    • Если два спрайта перекрываются, какой из них ближе к пользователю?
  • 36. Как замостить плоскость
  • 37. Как замостить плоскость?
    • Как можно сделать, чтобы персонажи не ходили друг через друга?
    • Уступать дорогу
    • Сделать так, чтобы их пути не пересекались в принципе
  • 38. Как замостить плоскость?
    • Первый путь понятен, реализация его сложна
    • Рассмотрим второй путь: нужно чтобы путь из клетки в соседнюю проходил только по этим двум клеткам
  • 39. Как замостить плоскость
    • Треугольниками, квадратами и шестиугольниками – по другому никак
  • 40. Немного о рендеринге
    • MVC спасет человечество
    • Не рисуйте всё – только то, что видно на экране
    • Изменение глубин вместо сортировки
    • Пол - не место для честного мувиклипа
  • 41. Вопросы
    • Вопросы?