Repository navigation
Conversation
Marked Ogre Loaders with Deprecated Tag Converted all Ogre files except where neccessary to .J3o file and modified where used in examples to load .j3o file itself, also deleted unused Ogre files
There was a problem hiding this comment.
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.
|
@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 |
|
The main.scene is loaded from a zip file via http, you can see the code here: 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 |
Restored Elephant.Skeleton.xml file for the Core tests, needed a mes.xml file with an anim composer Modified screenshottests files to load the .j3o files rather than the previously changed ogre files
|
🖼️ 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 did mean to change things: ✨ If you are creating entirely new tests: 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 |
Could Have Sworn i committed these files, restored them to fix null errors and failing screenshot tests
|
@riccardobl i am done, you could proceed with a manual test, thank you |
|
Thanks! I'll start reviewing this shortly. |
|
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 |
|
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. |
riccardobl
left a comment
There was a problem hiding this comment.
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.
…uTy/jmonkeyengine into Ogre-Deprecation-J3o-Format
|
Resolved all 3 Reviews raised @riccardobl |
| 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"); |
There was a problem hiding this comment.
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
…uTy/jmonkeyengine into Ogre-Deprecation-J3o-Format
9999e3a to
12ec523
Compare
Co-authored-by: Riccardo Balbo <os@rblb.it>
12ec523 to
9335e10
Compare
riccardobl
left a comment
There was a problem hiding this comment.
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 |
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
…uTy/jmonkeyengine into Ogre-Deprecation-J3o-Format
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
…testdata Port the code-side changes of #2726 (the .j3o assets are already published in the jme3-testdata artifact): - jme3-examples: switch example load paths from *.mesh.xml/*.scene to the equivalent .j3o (Oto, Sinbad, Sword, Elephant, Ninja, Teapot, Sign Post, Tank2, Rocket, MonkeyHead, Tree, WaterTest, Car_Scene, Terrain, ManyLights/Main, DotScene). Includes the getWorldLightList()-> getLocalLightList() adjustment in TestManyLightsSingle. - Add @deprecated to the ogre-loading examples kept for ogre coverage (TestOgreConvert, TestOgreLoading, TestOgreAnim, TestOgreComplexAnim). - Add @deprecated to the ogre loaders in jme3-plugins (MaterialLoader, MeshAnimationLoader, MeshLoader, OgreMeshKey, SceneLoader, SceneMaterialLoader, SceneMeshLoader, SkeletonLoader, package-info). - screenshot-tests shared scenarios: ScenarioCartoonEdge -> MonkeyHead.j3o, ScenarioLightScattering -> Terrain.j3o (ScenarioOgreConvert stays on ogre). Repoint town.zip/wildhouse.zip from the dead googleapis URL to the jme-testdata raw GitHub URLs, which now serve main.j3o instead of main.scene: - HelloCollision, TestAspectFov, TestSceneLoading, TestSceneWater, TestPostWaterLake, TestMultiplesFilters load "main.j3o" from the new URLs. - TestOnlineJar and jme3-core TestLocators use the new zip URLs. Co-authored-by: riccardobl <4943530+riccardobl@users.noreply.github.com>
…testdata Port the code-side changes of #2726 (the .j3o assets are already published in the jme3-testdata artifact): - jme3-examples: switch example load paths from *.mesh.xml/*.scene to the equivalent .j3o (Oto, Sinbad, Sword, Elephant, Ninja, Teapot, Sign Post, Tank2, Rocket, MonkeyHead, Tree, WaterTest, Car_Scene, Terrain, ManyLights/Main, DotScene). Includes the getWorldLightList()-> getLocalLightList() adjustment in TestManyLightsSingle. - Add @deprecated to the ogre-loading examples kept for ogre coverage (TestOgreConvert, TestOgreLoading, TestOgreAnim, TestOgreComplexAnim). - Add @deprecated to the ogre loaders in jme3-plugins (MaterialLoader, MeshAnimationLoader, MeshLoader, OgreMeshKey, SceneLoader, SceneMaterialLoader, SceneMeshLoader, SkeletonLoader, package-info). - screenshot-tests shared scenarios: ScenarioCartoonEdge -> MonkeyHead.j3o, ScenarioLightScattering -> Terrain.j3o (ScenarioOgreConvert stays on ogre). Repoint town.zip/wildhouse.zip from the dead googleapis URL to the jme-testdata raw GitHub URLs, which now serve main.j3o instead of main.scene: - HelloCollision, TestAspectFov, TestSceneLoading, TestSceneWater, TestPostWaterLake, TestMultiplesFilters load "main.j3o" from the new URLs. - TestOnlineJar and jme3-core TestLocators use the new zip URLs. Co-authored-by: riccardobl <4943530+riccardobl@users.noreply.github.com> Co-authored-by: Dev_Conceited <tthompson3012@gmail.com>
#3033) * Initial plan * Remove jme3-testdata module and use standalone org.jmonkeyengine:jme3-testdata artifact Migrate the engine build off the in-repo jme3-testdata module now that the test data lives in its own repository (jMonkeyEngine/jme-testdata) with its own release cycle on Maven Central. - Add org.jmonkeyengine:jme3-testdata:2026-10-31-2 to the version catalog - Replace project(':jme3-testdata') with the external artifact in jme3-core, jme3-terrain, jme3-jbullet, jme3-examples and the screenshot-tests modules - Extract the artifact jar for the Android and iOS example app assets instead of referencing the removed module's resources directory - Drop the module from settings.gradle and delete jme3-testdata/ Closes #3032 Co-authored-by: riccardobl <4943530+riccardobl@users.noreply.github.com> * Use jme3-testdata 2026-10-31-3 (Java 11 compatible) Bump the standalone test data artifact from 2026-10-31-2 to 2026-10-31-3, which is built for Java 11 compatibility. Co-authored-by: riccardobl <4943530+riccardobl@users.noreply.github.com> * Port ogre->j3o code changes from #2726 and repoint zip assets to jme-testdata Port the code-side changes of #2726 (the .j3o assets are already published in the jme3-testdata artifact): - jme3-examples: switch example load paths from *.mesh.xml/*.scene to the equivalent .j3o (Oto, Sinbad, Sword, Elephant, Ninja, Teapot, Sign Post, Tank2, Rocket, MonkeyHead, Tree, WaterTest, Car_Scene, Terrain, ManyLights/Main, DotScene). Includes the getWorldLightList()-> getLocalLightList() adjustment in TestManyLightsSingle. - Add @deprecated to the ogre-loading examples kept for ogre coverage (TestOgreConvert, TestOgreLoading, TestOgreAnim, TestOgreComplexAnim). - Add @deprecated to the ogre loaders in jme3-plugins (MaterialLoader, MeshAnimationLoader, MeshLoader, OgreMeshKey, SceneLoader, SceneMaterialLoader, SceneMeshLoader, SkeletonLoader, package-info). - screenshot-tests shared scenarios: ScenarioCartoonEdge -> MonkeyHead.j3o, ScenarioLightScattering -> Terrain.j3o (ScenarioOgreConvert stays on ogre). Repoint town.zip/wildhouse.zip from the dead googleapis URL to the jme-testdata raw GitHub URLs, which now serve main.j3o instead of main.scene: - HelloCollision, TestAspectFov, TestSceneLoading, TestSceneWater, TestPostWaterLake, TestMultiplesFilters load "main.j3o" from the new URLs. - TestOnlineJar and jme3-core TestLocators use the new zip URLs. Co-authored-by: riccardobl <4943530+riccardobl@users.noreply.github.com> Co-authored-by: Dev_Conceited <tthompson3012@gmail.com> * Apply remaining changes Co-authored-by: riccardobl <4943530+riccardobl@users.noreply.github.com> * fix --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: riccardobl <4943530+riccardobl@users.noreply.github.com> Co-authored-by: Riccardo Balbo <riccardo0blb@gmail.com> Co-authored-by: Dev_Conceited <tthompson3012@gmail.com> Co-authored-by: Riccardo Balbo <os@rblb.it>
|
Merged with #3033 |
…o (#3033)
NGE port: Consume the published official test-data artifact; preserve local NGE assets in nge-testdata and examples in nge-examples.
* Initial plan
* Remove jme3-testdata module and use standalone org.jmonkeyengine:jme3-testdata artifact
Migrate the engine build off the in-repo jme3-testdata module now that the
test data lives in its own repository (jMonkeyEngine/jme-testdata) with its
own release cycle on Maven Central.
- Add org.jmonkeyengine:jme3-testdata:2026-10-31-2 to the version catalog
- Replace project(':jme3-testdata') with the external artifact in jme3-core,
jme3-terrain, jme3-jbullet, jme3-examples and the screenshot-tests modules
- Extract the artifact jar for the Android and iOS example app assets instead
of referencing the removed module's resources directory
- Drop the module from settings.gradle and delete jme3-testdata/
Closes jMonkeyEngine/jmonkeyengine#3032
Co-authored-by: riccardobl <4943530+riccardobl@users.noreply.github.com>
* Use jme3-testdata 2026-10-31-3 (Java 11 compatible)
Bump the standalone test data artifact from 2026-10-31-2 to 2026-10-31-3,
which is built for Java 11 compatibility.
Co-authored-by: riccardobl <4943530+riccardobl@users.noreply.github.com>
* Port ogre->j3o code changes from #2726 and repoint zip assets to jme-testdata
Port the code-side changes of jMonkeyEngine/jmonkeyengine#2726 (the .j3o
assets are already published in the jme3-testdata artifact):
- jme3-examples: switch example load paths from *.mesh.xml/*.scene to the
equivalent .j3o (Oto, Sinbad, Sword, Elephant, Ninja, Teapot, Sign Post,
Tank2, Rocket, MonkeyHead, Tree, WaterTest, Car_Scene, Terrain,
ManyLights/Main, DotScene). Includes the getWorldLightList()->
getLocalLightList() adjustment in TestManyLightsSingle.
- Add @deprecated to the ogre-loading examples kept for ogre coverage
(TestOgreConvert, TestOgreLoading, TestOgreAnim, TestOgreComplexAnim).
- Add @deprecated to the ogre loaders in jme3-plugins (MaterialLoader,
MeshAnimationLoader, MeshLoader, OgreMeshKey, SceneLoader,
SceneMaterialLoader, SceneMeshLoader, SkeletonLoader, package-info).
- screenshot-tests shared scenarios: ScenarioCartoonEdge -> MonkeyHead.j3o,
ScenarioLightScattering -> Terrain.j3o (ScenarioOgreConvert stays on ogre).
Repoint town.zip/wildhouse.zip from the dead googleapis URL to the
jme-testdata raw GitHub URLs, which now serve main.j3o instead of main.scene:
- HelloCollision, TestAspectFov, TestSceneLoading, TestSceneWater,
TestPostWaterLake, TestMultiplesFilters load "main.j3o" from the new URLs.
- TestOnlineJar and jme3-core TestLocators use the new zip URLs.
Co-authored-by: riccardobl <4943530+riccardobl@users.noreply.github.com>
Co-authored-by: Dev_Conceited <tthompson3012@gmail.com>
* Apply remaining changes
Co-authored-by: riccardobl <4943530+riccardobl@users.noreply.github.com>
* fix
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: riccardobl <4943530+riccardobl@users.noreply.github.com>
Co-authored-by: Riccardo Balbo <riccardo0blb@gmail.com>
Co-authored-by: Dev_Conceited <tthompson3012@gmail.com>
Co-authored-by: Riccardo Balbo <os@rblb.it>
Upstream-Commit: 8eac246644e2df626bf4f0e16be39075dafe2cc3
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