Skip to content

Ogre deprecation j3o format - Example#2726

Open
NwosuTy wants to merge 1 commit intojMonkeyEngine:masterfrom
NwosuTy:Ogre-Deprecation-J3o-Format
Open

Ogre deprecation j3o format - Example#2726
NwosuTy wants to merge 1 commit intojMonkeyEngine:masterfrom
NwosuTy:Ogre-Deprecation-J3o-Format

Conversation

@NwosuTy
Copy link
Copy Markdown

@NwosuTy NwosuTy commented Apr 29, 2026

Tagged The Ogre Loader as Deprecated

Converted all Models and Scenes used in Examples to .j3o files, and then switched all deprecated ogre files loading paths to the new .j3o files except where specified needed for ogre loading testing, deleted all unused ogre files

Note: could not find the main.scene file for conversion in scenes such as the TestAspectFov, TestMultiplesFilters etc

closes #2667

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates various asset loading paths in the jMonkeyEngine examples to use the .j3o format instead of the deprecated OgreXML (.mesh.xml, .scene) formats. Additionally, it adds deprecation notices and annotations to the Ogre-related classes and packages to encourage migration to modern formats like glTF. I have no further feedback to provide.

@NwosuTy
Copy link
Copy Markdown
Author

NwosuTy commented Apr 30, 2026

@riccardobl I know where the problem is and would fix and send, in the mean time the main.scene/j3o file I asked of is throwing bull errors in some scenes I was asking for its location but it seems that's fine for you

@riccardobl
Copy link
Copy Markdown
Member

riccardobl commented Apr 30, 2026

The main.scene is loaded from a zip file via http, you can see the code here:

assetManager.registerLocator(
"https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/jmonkeyengine/wildhouse.zip",
HttpZipLocator.class);
} else {

that's from the very old jme repo on google code, if you want to convert it, I can rehost it somewhere else, but not an hard requirement for this PR as it is going to be a bit painful to debug

@github-actions
Copy link
Copy Markdown

🖼️ Screenshot tests have failed.

The purpose of these tests is to ensure that changes introduced in this PR don't break visual features. They are visual unit tests.

📄 Where to find the report:

⚠️ If you didn't expect to change anything visual:
Fix your changes so the screenshot tests pass.

If you did mean to change things:
Review the replacement images in jme3-screenshot-tests/build/changed-images to make sure they really are improvements and then replace and commit the replacement images at jme3-screenshot-tests/src/test/resources.

If you are creating entirely new tests:
Find the new images in jme3-screenshot-tests/build/changed-images and commit the new images at jme3-screenshot-tests/src/test/resources.

Note; it is very important that the committed reference images are created on the build pipeline, locally created images are not reliable. Similarly tests will fail locally but you can look at the report to check they are "visually similar".

See https://github.com/jMonkeyEngine/jmonkeyengine/blob/master/jme3-screenshot-tests/README.md for more information

Contact @richardTingle (aka richtea) for guidance if required

@NwosuTy NwosuTy changed the title Ogre deprecation j3o format Ogre deprecation j3o format - Example Apr 30, 2026
@NwosuTy
Copy link
Copy Markdown
Author

NwosuTy commented Apr 30, 2026

@riccardobl i am done, you could proceed with a manual test, thank you

@riccardobl
Copy link
Copy Markdown
Member

riccardobl commented May 1, 2026

Thanks! I'll start reviewing this shortly.
I am rebasing this on master, so do not worry about CI failures in the meantime

@NwosuTy
Copy link
Copy Markdown
Author

NwosuTy commented May 1, 2026

Sure whenever you are done and if you are satisfied with the results please inform, so I could try and apply for the bounty fee

@NwosuTy
Copy link
Copy Markdown
Author

NwosuTy commented May 1, 2026

Also if you want to fix the main.scene problem, I dont mind having a go at it next month, do enjoy the learning process.

Copy link
Copy Markdown
Member

@riccardobl riccardobl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good so far! I am still halfway through the testing, will continue later.
I've found only one single broken example so far, that is reported in this review.

Comment thread jme3-examples/src/main/java/jme3test/helloworld/HelloCollision.java Outdated
Comment thread jme3-examples/src/main/java/jme3test/model/anim/TestOgreComplexAnim.java Outdated
@NwosuTy
Copy link
Copy Markdown
Author

NwosuTy commented May 1, 2026

Resolved all 3 Reviews raised @riccardobl

@NwosuTy NwosuTy requested a review from riccardobl May 3, 2026 08:08
Comment thread jme3-examples/src/main/java/jme3test/post/TestMultiplesFilters.java Outdated
Comment thread jme3-examples/src/main/java/jme3test/renderer/TestAspectFov.java Outdated
Comment thread jme3-examples/src/main/java/jme3test/water/TestPostWaterLake.java Outdated
Comment thread jme3-examples/src/main/java/jme3test/water/TestSceneWater.java Outdated
Node rootNode = ((SimpleApplication)app).getRootNode();
Camera cam = app.getCamera();
Spatial ogreModel = assetManager.loadModel("Models/Oto/Oto.mesh.xml");
Spatial ogreModel = assetManager.loadModel("Models/Oto/Oto.j3o");
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is actually testing the ogre format itself, so it should not be modified by this PR, this means also the Oto model should be kept in the asset folder

Comment thread jme3-plugins/src/ogre/java/com/jme3/scene/plugins/ogre/MaterialLoader.java Outdated
Comment thread jme3-plugins/src/ogre/java/com/jme3/scene/plugins/ogre/MeshAnimationLoader.java Outdated
Comment thread jme3-plugins/src/ogre/java/com/jme3/scene/plugins/ogre/MeshLoader.java Outdated
Comment thread jme3-plugins/src/ogre/java/com/jme3/scene/plugins/ogre/SceneLoader.java Outdated
Comment thread jme3-plugins/src/ogre/java/com/jme3/scene/plugins/ogre/SceneMaterialLoader.java Outdated
Comment thread jme3-plugins/src/ogre/java/com/jme3/scene/plugins/ogre/SceneMeshLoader.java Outdated
Comment thread jme3-plugins/src/ogre/java/com/jme3/scene/plugins/ogre/SkeletonLoader.java Outdated
Copy link
Copy Markdown
Member

@riccardobl riccardobl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Every test works now!
There are only two issues left:

  1. you've changed TestOgreConvert to use j3o, but that test is specifically made for the ogre loader, so this change should be reverted
  2. you deprecation notice says See <a href="https://jmonkeyengine.org/docs/3.6/manual/upgrading_to_glTF/">glTF migration guide</a> everywhere, but that link was hallucinated by the llm, it does not exist.

@riccardobl
Copy link
Copy Markdown
Member

there are also 3 more examples that were not converted:

  • TestAssetLinkNode.java
  • TestRemoteCall.java
  • TestBumpModel.java

@NwosuTy
Copy link
Copy Markdown
Author

NwosuTy commented May 3, 2026

For the broken scene, I initially had to re-cobvert the scene as it seemed the conversion was happening before lights were loaded

Then on the java file in the project, I switched fro. Getting world Light to get local light

And alright I'd fix the current reviews mentioned and make another commit

@NwosuTy
Copy link
Copy Markdown
Author

NwosuTy commented May 3, 2026

Also do you have an actual link I should revert too, or i just remove the link entirely

@riccardobl
Copy link
Copy Markdown
Member

Also do you have an actual link I should revert too, or i just remove the link entirely

i don't think we have a page for that, just remove the link

@NwosuTy NwosuTy requested a review from riccardobl May 3, 2026 13:05
@NwosuTy
Copy link
Copy Markdown
Author

NwosuTy commented May 3, 2026

there are also 3 more examples that were not converted:

  • TestAssetLinkNode.java
  • TestRemoteCall.java
  • TestBumpModel.java

Also do you have an actual link I should revert too, or i just remove the link entirely

i don't think we have a page for that, just remove the link

Done both @riccardobl

Comment thread jme3-examples/src/main/java/jme3test/export/TestOgreConvert.java
Comment thread jme3-plugins/src/ogre/java/com/jme3/scene/plugins/ogre/MaterialLoader.java Outdated
Comment thread jme3-plugins/src/ogre/java/com/jme3/scene/plugins/ogre/package-info.java Outdated
Comment thread jme3-plugins/src/ogre/java/com/jme3/scene/plugins/ogre/package-info.java Outdated
Comment thread jme3-plugins/src/ogre/java/com/jme3/scene/plugins/ogre/package-info.java Outdated
@NwosuTy NwosuTy requested a review from riccardobl May 3, 2026 15:02
@riccardobl riccardobl force-pushed the Ogre-Deprecation-J3o-Format branch from 9999e3a to 12ec523 Compare May 3, 2026 16:20
Co-authored-by: Riccardo Balbo <os@rblb.it>
@riccardobl riccardobl force-pushed the Ogre-Deprecation-J3o-Format branch from 12ec523 to 9335e10 Compare May 3, 2026 16:25
Copy link
Copy Markdown
Member

@riccardobl riccardobl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!
I made some final touches and restored the ogre files (even if we don't need them anymore, i figured they could still be used by third party code).

Also if you want to fix the main.scene problem, I dont mind having a go at it next month, do enjoy the learning process.

Yeah, these two zip files basically need the same conversion you did here, the only difference is that you would have to submit the zip as attachment to the PR so that I can host it somewhere. And for testing you would need to temporarily switch the locator to ZipLocator instead of HttpZipLocator to load it locally (or just use a local http server to serve it).

If you want to submit a follow up pr for this, feel free.


Regarding this PR, it is complete and mergeable now.
You can claim the bounty by submitting an expense of type "invoice" to our bounty program via our opencollective organization page, let me know when you do that, so I can approve it on my side.

@NwosuTy
Copy link
Copy Markdown
Author

NwosuTy commented May 4, 2026

Thanks!
I made some final touches and restored the ogre files (even if we don't need them anymore, i figured they could still be used by third party code).

Also if you want to fix the main.scene problem, I dont mind having a go at it next month, do enjoy the learning process.

Yeah, these two zip files basically need the same conversion you did here, the only difference is that you would have to submit the zip as attachment to the PR so that I can host it somewhere. And for testing you would need to temporarily switch the locator to ZipLocator instead of HttpZipLocator to load it locally (or just use a local http server to serve it).

If you want to submit a follow up pr for this, feel free.


Regarding this PR, it is complete and mergeable now.
You can claim the bounty by submitting an expense of type "invoice" to our bounty program via our opencollective organization page, let me know when you do that, so I can approve it on my side.

Yeah I'd like take on the issue, where do I submit the follow up

Then for this PR, thank you very much I'd create the invoice now, I do hope a wise ACH transfer is possible

@NwosuTy
Copy link
Copy Markdown
Author

NwosuTy commented May 4, 2026

Expense-295902-jmonkeyengine-invoice-2026-05-04.pdf
Made use of USDT Ethereum as payment method @riccardobl , once again thank you

@riccardobl
Copy link
Copy Markdown
Member

Expense-295902-jmonkeyengine-invoice-2026-05-04.pdf Made use of USDT Ethereum as payment method @riccardobl , once again thank you

Approved. You'll receive the payout once our fiscal host confirms it

Yeah I'd like take on the issue, where do I submit the follow up

besides bounties, this project is open to receive any kind of pr. So you can just submit it, no need to have an issue attached.

@NwosuTy
Copy link
Copy Markdown
Author

NwosuTy commented May 4, 2026

Expense-295902-jmonkeyengine-invoice-2026-05-04.pdf Made use of USDT Ethereum as payment method @riccardobl , once again thank you

Approved. You'll receive the payout once our fiscal host confirms it

Yeah I'd like take on the issue, where do I submit the follow up

besides bounties, this project is open to receive any kind of pr. So you can just submit it, no need to have an issue attached.

Okay then, can i get the zip file, or is it already in the project file

@riccardobl
Copy link
Copy Markdown
Member

you can find the zip urls in the relevant examples, where the asset locator is configured

@NwosuTy
Copy link
Copy Markdown
Author

NwosuTy commented May 4, 2026

Alright then, also please could you re-approve the invoice, I had to specify the payment method address to not cause confusion

@riccardobl
Copy link
Copy Markdown
Member

done 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Deprecate ogre loader

2 participants