Skip to content

Add 3D panoramic skybox feature with 4 different skies. - #1097

Open
jacke9708 wants to merge 3 commits into
117HD:masterfrom
jacke9708:feature/3d-skybox
Open

Add 3D panoramic skybox feature with 4 different skies.#1097
jacke9708 wants to merge 3 commits into
117HD:masterfrom
jacke9708:feature/3d-skybox

Conversation

@jacke9708

Copy link
Copy Markdown

Adds a manual "3D Skybox" configuration section with a dropdown selector. Uses a single equirectangular 2D texture projection.

Video.Project.1.mp4

This is my first contribution, so any feedback on style or code adjustments is welcome.

Changes

  • SkyboxTheme: Created enum to track selections and resource paths.
  • HdPluginConfig: Added configuration section and dropdown item.
  • EnvironmentManager: Exposed isOverworld().
  • ZoneRenderer: Added shader pass, camera tracking math, and overworld environment gating to disable rendering in caves/dungeons.
  • Texture Management: Cleans up old texture IDs via glDeleteTextures during real-time dropdown hot-swaps.
  • Assets: Added four CC0 4K panoramic textures from Polyhaven.
Skärmbild 2026-05-25 204131 Skärmbild 2026-05-25 204226 Skärmbild 2026-05-25 204309

@cypher112

Copy link
Copy Markdown

sick work dude

@3-X

3-X commented May 29, 2026

Copy link
Copy Markdown
Contributor

Skyboxes look really nice! Unfortunately plugins have a size limit of 10mb currently and the plugin is already about 9mb, that being said we are starting to look at possible solutions to be able to start to allow us to use larger images/textures! That may be a little while off though for full transparency

In the meantime if you'd like to pursue other ways of implementing nicer skyboxes using shaders, that would get you around the size limitation! I actually ran into the same thing when working on this pr #655 and pursued it through shaders if youd like to take a look and play around with it!

That pr should be hopefully getting merged in the somewhat near future so skyboxes are getting some love in the meantime as well while a solution is worked on for these larger files

@aHooder

aHooder commented Jul 19, 2026

Copy link
Copy Markdown
Member

I appreciate the PR, but this was just slightly unfortunate timing in terms of both lack of review time & what we're already working on. We have a daylight cycle in the works in #655, which we aim to get out soon ™️. There is still room for an implementation which supports loading custom skybox images, but there is the issue of the size limit as well. If you want to move forward with this PR, I think the best solution for now is to make it load textures from a directory in .runelite/117hd/custom-skyboxes or similar, using this as the base directory:

public static final ResourcePath PLUGIN_DIR = Props
.getFolder("rlhd.plugin-dir", () -> path(RuneLite.RUNELITE_DIR, "117hd"));

There is currently no way to dynamically update the config panel from code, so you could implement either a JSON manifest file in that folder which points the plugin to which texture file to use, or alternatively just make it load a file with a certain filename, or a devtool command to select one, or cycle through all files in the folder, or anything along those lines. Perhaps even pop up a file selection UI if RuneLite already has one, which I suppose could go in a config under the Experimental section if you prefer. I would like to avoid adding custom UI for this for the time being though.

Also, bonus points if you can make it support loading both equirectangular projection & unwrapped cube textures!

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.

4 participants