|
J3D Engine 1.0 [Java 3D Framework]
|
|
| AlexanderBekker | Дата: Понедельник, 23 Февраля 2026, 12:10 | Сообщение # 1 |
BekkerDev Studio
Сейчас нет на сайте
| J3D Engine 1.0 — это фреймворк для разработки игр на языке программирования Java. Предназначен преимущественно для разработки 3D игр, но также годится и для 2D. Использует программный рендеринг (Software Rendering), вывод графики осуществляется растеризацией треугольников как на основе алгоритма барицентрических весов, так и посредством сканирования строк (Scanline). Из-за использования CPU для графических вычислений идеально подойдёт для разработки графически простых игр в ретро стилистике. Оптимальное разрешение рендеринга — 640х360, если необходимо получить разумный компромисс между качеством картинки и производительностью. !!! Java не предназначена для разработки игр без использования таких графических API, как OpenGL или Vulkan. В ней нет поддержки 3D рендера из коробки, поэтому рассматривайте данный фреймворк просто как демонстрацию того, что при желании можно реализовать, казалось бы, невозможные вещи. Это хоть и кустарное, но с технической точки зрения абсолютно полноценное 3D, как если бы вы использовали тот же OpenGL. Фреймворк предоставляет только 3D контекст без игровой архитектуры, поэтому вы вольны писать свою и не быть привязанным к моему решению. Документации, к сожалению, не будет, потому что мне банально лень её писать, ведь фреймворк был изначально разработан для себя чисто из академического интереса в процессе моего изучения 3D. Может, кому-то тоже станет интересно поковыряться. Закончил работу над ним ещё летом 2025.
Жанровая направленность: любая Язык программирования: Java Платформа: Windows (7 или выше) Лицензия: бесплатная для коммерческого использования Автор: Александр Беккер Паблик ВКонтакте Мой канал по геймдеву в Telegram
Скачать с Google Drive
Ключевые особенности и возможности: • Загрузка текстур, скайбоксов и TrueType шрифтов • Растеризация треугольников двумя алгоритмами • Z-Buffer (тест глубины) • Перспективная коррекция текстур • Матричная трансформация вершин и проекция • Z-Clipping (отсечение треугольников за камерой) • Затенение по Фонгу (базовое освещение) • Cull Face (отбраковка невидимых граней) • Fog Shading (плавное затенение сцены по глубине) • Skybox (полноценное небо с поддержкой 6 сторон) • Поддержка блендинга и прозрачности • Рендер кубов • Рендер плоскостей • Рендер мешей • Рендер воксельных спрайтов (пиксель спрайта рендерится как куб) • Рендер Billboard спрайтов (всегда обращённых к камере) • Рендер Billboard-Fix Y спрайтов (то же самое, но фикс. по оси Y) • Рендер 3D пикселей • Рендер 3D индикаторов • Рендер 3D шрифтов • Класс векторов, быстрые Sin/Cos и другие полезные функции • Поддержка смены разрешения и полноэкранного режима • Поддержка масштабирования Render Target • Наложение сцен друг на друга • Система ввода (клавиатура и мышь) • Чтение/запись конфигурационных файлов
Мини-гайд по подключению библиотеки в Eclipse IDE: 1) Нажмите ПКМ по своему проекту и выберите «Properties» 2) Перейдите на вкладку «Java Build Path» 3) Перейдите на вкладку «Libraries», кликните на «Classpath» и затем на «Add External JARs...» 4) Выберите «J3DEngine.jar» и нажмите «Apply and Close» Теперь фреймворк подключён и готов к работе. Под спойлером скрин с кодом, где происходит инициализация контекста 3D. Откройте его в новой вкладке, чтобы посмотреть в большем размере.
Видео-демонстрация возможностей фреймворка:
Разработчик, композитор и издатель инди-игр в Steam. Редактор карт: BekkerDev Level Editor 4 Страница разработчика в Steam Паблик ВК: BekkerDev Studio
Сообщение отредактировал AlexanderBekker - Понедельник, 23 Февраля 2026, 12:19 |
|
|
| |
| SpaceJumper | Дата: Понедельник, 23 Февраля 2026, 17:09 | Сообщение # 2 |
частый гость
Сейчас нет на сайте
| Спасибо, что поделился своими наработками, очень крутой pet проект для одного человека. Подскажи, а в процессе изучения какими ресурсами пользовался, чтобы изучить 3d математика для движка?
|
|
|
| |
| AlexanderBekker | Дата: Вторник, 24 Февраля 2026, 00:17 | Сообщение # 3 |
BekkerDev Studio
Сейчас нет на сайте
| SpaceJumper, и вам спасибо! Навскидку уже и не смогу вспомнить, что конкретно я гуглил. Но гуглить приходилось очень много всякой информации, потому что в 3D я был полным нулём. Фреймворк писал потом, кровью, бессонными ночами и литрами кофе. Примерно через неделю движок уже умел в растеризацию треугольников, проецировать 3D вершины на плоскость, имел перспективную коррекцию текстур, буфер глубины и прочие базовые штуки рендера. Остальное время занимался скрупулёзной оптимизацией, ибо одно лишнее вычисление в циклах или какая-нибудь сложная математика сильно просаживали FPS. Поэтому я старался выжать максимум производительности. Для меня это был очень ценный и хороший опыт, открывший мне путь в 3D. После этого, заручившись тем суровым опытом, я написал новый фреймворк, но уже на LWJGL, и назвал его J3D Engine 2.0. Там я тоже много говна пожрал, но оно того стоило! Хотя было попроще, когда уже сам с нуля писал свой рендер. Сейчас делаю на нём новую игру.
Разработчик, композитор и издатель инди-игр в Steam. Редактор карт: BekkerDev Level Editor 4 Страница разработчика в Steam Паблик ВК: BekkerDev Studio
|
|
|
| |
| TLT | Дата: Вторник, 24 Февраля 2026, 22:10 | Сообщение # 4 |
Сейчас нет на сайте
| Вполне себе неплохо.
Дао, выраженное словами, не есть истинное Дао.
|
|
|
| |
| AlexanderBekker | Дата: Среда, 25 Февраля 2026, 09:39 | Сообщение # 5 |
BekkerDev Studio
Сейчас нет на сайте
| TLT, спасибо! Может, попозже выложу и J3D Engine 2.0 на LWJGL & OpenGL, когда обкатаю его в разработке 2D/3D игр.
Разработчик, композитор и издатель инди-игр в Steam. Редактор карт: BekkerDev Level Editor 4 Страница разработчика в Steam Паблик ВК: BekkerDev Studio
|
|
|
| |