API-интерфейс мобильной 3D-графики, обычно именуемая M3G, представляет собой спецификацию, определяющую API для написания программ Java, которые создают трехмерную компьютерную графику. Он расширяет возможности Java ME, версии платформы Java, адаптированной для встроенных устройств, таких как мобильные телефоны и КПК. объектно-ориентированный интерфейс состоит из 30 классов, которые могут использоваться для рисования сложных анимированных трехмерных сцен. M3G был разработан в рамках процесса сообщества Java как JSR 184. По состоянию на 2007 год текущая версия M3G - 1.1, но версия 2.0 находится в разработке как JSR 297.
M3G был разработан для достижения специфические потребности мобильных устройств, которые ограничены с точки зрения памяти и вычислительной мощности, и которым часто не хватает FPU и графического оборудования, такого как GPU. Архитектура API позволяет полностью реализовать его внутри программного обеспечения или воспользоваться преимуществами оборудования, присутствующего на устройстве.
M3G предоставляет разработчикам два способа рисования трехмерной графики: немедленный режим и сохраненный режим. В немедленном режиме графические команды выдаются непосредственно в графический конвейер, и механизм визуализации выполняет их немедленно. При использовании этого метода разработчик должен написать код, который конкретно сообщает механизму рендеринга, что отрисовывать для каждого кадра анимации. Камера и набор источников света также связаны со сценой, но не обязательно являются ее частью. В непосредственном режиме можно отображать как отдельные объекты, так и целые сцены (или миры, с камерой, источниками света и фоном как части сцены).
В сохраненном режиме всегда используется граф сцены, который связывает все геометрические объекты в трехмерном мире в древовидной структуре, а также определяет камеру, источники света и фон. Информация более высокого уровня о каждом объекте, такая как его геометрическая структура, положение и внешний вид, сохраняется от кадра к кадру.
Стандарт M3G также определяет формат файла для данных 3D-модели, включая данные анимации. Это позволяет разработчикам создавать контент на ПК, который может быть загружен с помощью M3G на мобильные устройства.